diff --git a/cmd/registry/main.go b/cmd/registry/main.go index 863df4b..1412ef2 100644 --- a/cmd/registry/main.go +++ b/cmd/registry/main.go @@ -46,7 +46,7 @@ func main() { // Initialize services based on environment switch cfg.DatabaseType { case config.DatabaseTypeMemory: - db = database.NewMemoryDB(map[string]*model.Server{}) + db = database.NewMemoryDB(map[string]*model.ServerDetail{}) registryService = service.NewRegistryServiceWithDB(db) case config.DatabaseTypePostgreSQL: // Use PostgreSQL for real registry service diff --git a/data/seed.json b/data/seed.json index 975edc4..a343a4d 100644 --- a/data/seed.json +++ b/data/seed.json @@ -1,14725 +1,17497 @@ [ { - "id": "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", - "name": "io.github.21st-dev/magic-mcp", - "description": "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", - "repository": { - "url": "https://github.com/21st-dev/magic-mcp", - "source": "github", - "id": "935450522" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:56:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@21st-dev/magic", - "version": "0.0.46", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] - }, - { - "id": "d3669201-252f-403c-944b-c3ec0845782b", - "name": "io.github.adfin-engineering/mcp-server-adfin", - "description": "A Model Context Protocol Server for connecting with Adfin APIs ", - "repository": { - "url": "https://github.com/Adfin-Engineering/mcp-server-adfin", - "source": "github", - "id": "951338147" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:56:52Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "adfinmcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Directory to run the project from", - "is_required": true, - "format": "string", - "value": "--directory ", - "default": "--directory ", - "type": "named", - "name": "--directory ", - "value_hint": "" - }, - { - "description": "Script to execute", - "is_required": true, - "format": "string", - "value": "main_adfin_mcp.py", - "default": "main_adfin_mcp.py", - "type": "positional", - "value_hint": "main_adfin_mcp.py" - } - ], - "environment_variables": [ - { - "description": "", - "name": "ADFIN_EMAIL" - }, - { - "description": "", - "name": "ADFIN_PASSWORD" - } - ] - } - ] - }, - { - "id": "d86f2098-0be9-4b52-b32e-9d0f17333197", - "name": "io.github.tinyfish-io/agentql-mcp", - "description": "Model Context Protocol server that integrates AgentQL's data extraction capabilities.", - "repository": { - "url": "https://github.com/tinyfish-io/agentql-mcp", - "source": "github", - "id": "906462272" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:56:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "agentql-mcp", - "version": "1.0.0", - "environment_variables": [ - { - "description": "YOUR_API_KEY", - "name": "AGENTQL_API_KEY" - } - ] - } - ] - }, - { - "id": "c296f683-5578-474a-bbef-00cfc2716fbc", - "name": "io.github.agentrpc/agentrpc", - "description": "A universal RPC layer for AI agents. Connect to any function, any language, any framework, in minutes.", - "repository": { - "url": "https://github.com/agentrpc/agentrpc", - "source": "github", - "id": "949728461" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:56:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "agentrpc/agentrpc", - "version": "", - "package_arguments": [ - { - "description": "Positional argument", - "is_required": true, - "format": "string", - "value": "mcp", - "default": "mcp", - "type": "positional", - "value_hint": "mcp" - } - ], - "environment_variables": [ - { - "description": "", - "name": "AGENTRPC_API_SECRET" - } - ] - } - ] - }, - { - "id": "2a0775fa-ff8e-47ff-a5e3-8b7c9b0567a9", - "name": "io.github.aiven-open/mcp-aiven", - "description": "Model Context Protocol server for Aiven", - "repository": { - "url": "https://github.com/Aiven-Open/mcp-aiven", - "source": "github", - "id": "947751392" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-aiven", - "version": "0.1.4", - "package_arguments": [ - { - "description": "$REPOSITORY_DIRECTORY", - "is_required": true, - "format": "string", - "value": "--directory $REPOSITORY_DIRECTORY", - "default": "--directory $REPOSITORY_DIRECTORY", - "type": "named", - "name": "--directory $REPOSITORY_DIRECTORY", - "value_hint": "$REPOSITORY_DIRECTORY" - }, - { - "description": "--with-editable $REPOSITORY_DIRECTORY", - "is_required": true, - "format": "string", - "value": "--with-editable $REPOSITORY_DIRECTORY", - "default": "--with-editable $REPOSITORY_DIRECTORY", - "type": "named", - "name": "--with-editable $REPOSITORY_DIRECTORY", - "value_hint": "$REPOSITORY_DIRECTORY" - }, - { - "description": "--python 3.13", - "is_required": true, - "format": "string", - "value": "--python 3.13", - "default": "--python 3.13", - "type": "named", - "name": "--python 3.13", - "value_hint": "3.13" - }, - { - "description": "mcp-aiven", - "is_required": true, - "format": "string", - "value": "mcp-aiven", - "default": "mcp-aiven", - "type": "positional", - "value_hint": "mcp-aiven" - } - ], - "environment_variables": [ - { - "description": "https://api.aiven.io", - "name": "AIVEN_BASE_URL" - }, - { - "description": "$AIVEN_TOKEN", - "name": "AIVEN_TOKEN" - } - ] - } - ] - }, - { - "id": "7f6e6610-4df3-490e-95e3-03ec954eb2ab", - "name": "io.github.aliyun/alibabacloud-adb-mysql-mcp-server", - "description": "AnalyticDB for MySQL MCP Server", - "repository": { - "url": "https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server", - "source": "github", - "id": "956503834" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "adb-mysql-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "With flag and value", - "is_required": true, - "format": "string", - "value": "--with adb-mysql-mcp-server", - "default": "--with adb-mysql-mcp-server", - "type": "named", - "name": "--with adb-mysql-mcp-server", - "value_hint": "adb-mysql-mcp-server" - }, - { - "description": "Script/module to run", - "is_required": true, - "format": "string", - "value": "adb-mysql-mcp-server", - "default": "adb-mysql-mcp-server", - "type": "positional", - "value_hint": "adb-mysql-mcp-server" - } - ], - "environment_variables": [ - { - "description": "host", - "name": "ADB_MYSQL_HOST" - }, - { - "description": "port", - "name": "ADB_MYSQL_PORT" - }, - { - "description": "database_user", - "name": "ADB_MYSQL_USER" - }, - { - "description": "database_password", - "name": "ADB_MYSQL_PASSWORD" - }, - { - "description": "database", - "name": "ADB_MYSQL_DATABASE" - } - ] - } - ] - }, - { - "id": "24303d73-1ee0-4119-b2f1-3a57c17de967", - "name": "io.github.aliyun/alibaba-cloud-ops-mcp-server", - "description": "AlibabaCloud CloudOps MCP Server", - "repository": { - "url": "https://github.com/aliyun/alibaba-cloud-ops-mcp-server", - "source": "github", - "id": "967873415" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "alibaba-cloud-ops-mcp-server", - "version": "0.8.6", - "environment_variables": [ - { - "description": "Your Access Key ID", - "name": "ALIBABA_CLOUD_ACCESS_KEY_ID" - }, - { - "description": "Your Access Key SECRET", - "name": "ALIBABA_CLOUD_ACCESS_KEY_SECRET" - } - ] - } - ] - }, - { - "id": "31d9b130-4676-45d9-930f-a8bc2d5a3b9e", - "name": "io.github.apache/iotdb-mcp-server", - "description": "Apache IoTDB MCP Server", - "repository": { - "url": "https://github.com/apache/iotdb-mcp-server", - "source": "github", - "id": "959057712" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "iotdb-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "The working directory for the command", - "is_required": true, - "format": "string", - "value": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", - "default": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", - "type": "named", - "name": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", - "value_hint": "YOUR_REPO_PATH/src/iotdb_mcp_server" - }, - { - "description": "Python script to run", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ], - "environment_variables": [ - { - "description": "127.0.0.1", - "name": "IOTDB_HOST" - }, - { - "description": "6667", - "name": "IOTDB_PORT" - }, - { - "description": "root", - "name": "IOTDB_USER" - }, - { - "description": "root", - "name": "IOTDB_PASSWORD" - }, - { - "description": "test", - "name": "IOTDB_DATABASE" - }, - { - "description": "table", - "name": "IOTDB_SQL_DIALECT" - } - ] - } - ] - }, - { - "id": "330047d1-f8c2-4931-9347-d133f1717de3", - "name": "io.github.apache/iotdb", - "description": "Apache IoTDB", - "repository": { - "url": "https://github.com/apache/iotdb", - "source": "github", - "id": "158975124" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "apache/iotdb", - "version": "" - } - ] - }, - { - "id": "195dfdbd-bb15-4752-80b6-abc9212cd80f", - "name": "io.github.apify/actors-mcp-server", - "description": "Model Context Protocol (MCP) Server for Apify's Actors", - "repository": { - "url": "https://github.com/apify/actors-mcp-server", - "source": "github", - "id": "911256711" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@apify/actors-mcp-server", - "version": "0.1.31", - "package_arguments": [ - { - "description": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", - "is_required": true, - "format": "string", - "value": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", - "default": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", - "type": "named", - "name": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", - "value_hint": "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper" - } - ], - "environment_variables": [ - { - "description": "${input:apify_token}", - "name": "APIFY_TOKEN" - } - ] - } - ] - }, - { - "id": "5c95a170-d394-4b21-a100-bb953b872922", - "name": "io.github.apimatic/apimatic-validator-mcp", - "description": "APIMatic Validator MCP Server for validating OpenAPI specs via APIMatic's API with MCP", - "repository": { - "url": "https://github.com/apimatic/apimatic-validator-mcp", - "source": "github", - "id": "951214203" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "apimatic-validator---mcp", - "version": "1.0.0", - "environment_variables": [ - { - "description": "", - "name": "APIMATIC_API_KEY" - } - ] - } - ] - }, - { - "id": "de2d7f51-ca20-4fac-abdb-85a912d26375", - "name": "io.github.arize-ai/phoenix", - "description": "AI Observability & Evaluation", - "repository": { - "url": "https://github.com/Arize-ai/phoenix", - "source": "github", - "id": "564072810" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "arize-phoenix", - "version": "" - } - ] - }, - { - "id": "50f15d97-7d84-49f7-9232-f797e006358d", - "name": "io.github.datastax/astra-db-mcp", - "description": "An MCP server for Astra DB workloads", - "repository": { - "url": "https://github.com/datastax/astra-db-mcp", - "source": "github", - "id": "943241240" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@datastax/astra-db-mcp", - "version": "1.2.0" - } - ] - }, - { - "id": "d85fa87b-48e1-4b81-8408-9d0c446f7de3", - "name": "io.github.audienseco/mcp-audiense-insights", - "description": "Audiense Insights MCP Server is a server based on the Model Context Protocol (MCP) that allows Claude and other MCP-compatible clients to interact with your Audiense Insights account", - "repository": { - "url": "https://github.com/AudienseCo/mcp-audiense-insights", - "source": "github", - "id": "925304505" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:26Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-audiense-insights", - "version": "0.2.0", - "environment_variables": [ - { - "description": "your_client_id_here", - "name": "AUDIENSE_CLIENT_ID" - }, - { - "description": "your_client_secret_here", - "name": "AUDIENSE_CLIENT_SECRET" - }, - { - "description": "your_token_here", - "name": "TWITTER_BEARER_TOKEN" - } - ] - } - ] - }, - { - "id": "2535daf3-637b-40d1-a4c2-41ef60a726b8", - "name": "io.github.bankless/onchain-mcp", - "description": "Bringing the bankless onchain API to MCP", - "repository": { - "url": "https://github.com/Bankless/onchain-mcp", - "source": "github", - "id": "946011336" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:37Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@bankless/onchain-mcp", - "version": "1.0.6", - "environment_variables": [ - { - "description": "your_api_token_here", - "name": "BANKLESS_API_TOKEN" - } - ] - } - ] - }, - { - "id": "36e14e79-6228-442f-b3c7-c7080b6282f0", - "name": "io.github.ahnlabio/bicscan-mcp", - "description": "BICScan MCP Server", - "repository": { - "url": "https://github.com/ahnlabio/bicscan-mcp", - "source": "github", - "id": "954410951" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "bicscan-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "use repo url", - "is_required": true, - "format": "string", - "value": "--from git+https://github.com/ahnlabio/bicscan-mcp", - "default": "--from git+https://github.com/ahnlabio/bicscan-mcp", - "type": "named", - "name": "--from git+https://github.com/ahnlabio/bicscan-mcp", - "value_hint": "git+https://github.com/ahnlabio/bicscan-mcp" - }, - { - "description": "subcommand or positional argument", - "is_required": true, - "format": "string", - "value": "bicscan-mcp", - "default": "bicscan-mcp", - "type": "positional", - "value_hint": "bicscan-mcp" - } - ], - "environment_variables": [ - { - "description": "YOUR_BICSCAN_API_KEY_HERE", - "name": "BICSCAN_API_KEY" - } - ] - } - ] - }, - { - "id": "9e07df79-22e2-464d-a842-06f08b875196", - "name": "io.github.bitrise-io/bitrise-mcp", - "description": "MCP Server for the Bitrise API, enabling app management, build operations, artifact management and more.", - "repository": { - "url": "https://github.com/bitrise-io/bitrise-mcp", - "source": "github", - "id": "958502546" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "bitrise-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "source package location", - "is_required": true, - "format": "string", - "value": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", - "default": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", - "type": "named", - "name": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", - "value_hint": "git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0" - }, - { - "description": "local entrypoint command", - "is_required": true, - "format": "string", - "value": "bitrise-mcp", - "default": "bitrise-mcp", - "type": "positional", - "value_hint": "bitrise-mcp" - }, - { - "description": "list of enabled API groups", - "is_required": true, - "format": "string", - "value": "--enabled-api-groups cache-items,pipelines", - "default": "--enabled-api-groups cache-items,pipelines", - "type": "named", - "name": "--enabled-api-groups cache-items,pipelines", - "value_hint": "cache-items,pipelines" - } - ], - "environment_variables": [ - { - "description": "", - "name": "BITRISE_TOKEN" - } - ] - } - ] - }, - { - "id": "46bcb36f-ede9-412e-8181-7c7ece41fa04", - "name": "io.github.box-community/mcp-server-box", - "description": "An MCP server capable of interacting with the Box API", - "repository": { - "url": "https://github.com/box-community/mcp-server-box", - "source": "github", - "id": "938387717" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-box", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "src/mcp_server_box.py", - "default": "src/mcp_server_box.py", - "type": "positional", - "value_hint": "src/mcp_server_box.py" - } - ] - } - ] - }, - { - "id": "97de67c4-a78f-4ea7-9233-4da9fe6752cf", - "name": "io.github.chroma-core/chroma-mcp", - "description": "A Model Context Protocol (MCP) server implementation that provides database capabilities for Chroma", - "repository": { - "url": "https://github.com/chroma-core/chroma-mcp", - "source": "github", - "id": "930632525" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "chroma-mcp", - "version": "0.2.2" - } - ] - }, - { - "id": "a48ff624-6d95-4b8e-a0ed-498c4d838411", - "name": "io.github.circleci-public/mcp-server-circleci", - "description": "A specialized server implementation for the Model Context Protocol (MCP) designed to integrate with CircleCI's development workflow. This project serves as a bridge between CircleCI's infrastructure and the Model Context Protocol, enabling enhanced AI-powered development experiences.", - "repository": { - "url": "https://github.com/CircleCI-Public/mcp-server-circleci", - "source": "github", - "id": "955501958" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:57:58Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@circleci/mcp-server-circleci", - "version": "0.7.1", - "environment_variables": [ - { - "description": "your-circleci-token", - "name": "CIRCLECI_TOKEN" - }, - { - "description": "https://circleci.com", - "name": "CIRCLECI_BASE_URL" - } - ] - } - ] - }, - { - "id": "98259539-3c6f-4462-b2b6-9a2567ff0545", - "name": "io.github.clickhouse/mcp-clickhouse", - "description": "", - "repository": { - "url": "https://github.com/ClickHouse/mcp-clickhouse", - "source": "github", - "id": "908231244" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:58:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-clickhouse", - "version": "0.1.7", - "package_arguments": [ - { - "description": "Use the specified runtime feature", - "is_required": true, - "format": "string", - "value": "--with mcp-clickhouse", - "default": "--with mcp-clickhouse", - "type": "named", - "name": "--with mcp-clickhouse", - "value_hint": "mcp-clickhouse" - }, - { - "description": "Specify Python version", - "is_required": true, - "format": "string", - "value": "--python 3.13", - "default": "--python 3.13", - "type": "named", - "name": "--python 3.13", - "value_hint": "3.13" - }, - { - "description": "Positional argument to run (script or module)", - "is_required": true, - "format": "string", - "value": "mcp-clickhouse", - "default": "mcp-clickhouse", - "type": "positional", - "value_hint": "mcp-clickhouse" - } - ], - "environment_variables": [ - { - "description": "", - "name": "CLICKHOUSE_HOST" - }, - { - "description": "", - "name": "CLICKHOUSE_USER" - }, - { - "description": "", - "name": "CLICKHOUSE_PASSWORD" - }, - { - "description": "", - "name": "CLICKHOUSE_DATABASE" - } - ] - } - ] - }, - { - "id": "2ad7c503-7daa-46c8-9295-8a1ed53271a6", - "name": "io.github.cloudflare/mcp-server-cloudflare", - "description": "", - "repository": { - "url": "https://github.com/cloudflare/mcp-server-cloudflare", - "source": "github", - "id": "895268756" - }, - "version_detail": { - "version": "0.0.1-seed", - "release_date": "2025-05-16T18:58:05Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@cloudflare/mcp-server-cloudflare", - "version": "1.0.0", - "package_arguments": [ - { - "description": "URL to SSE endpoint for observability", - "is_required": true, - "format": "string", - "value": "https://observability.mcp.cloudflare.com/sse", - "default": "https://observability.mcp.cloudflare.com/sse", - "type": "positional", - "value_hint": "https://observability.mcp.cloudflare.com/sse" - } - ] - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "https://observability.mcp.cloudflare.com/sse" + "server": { + "name": "io.github.21st-dev/magic-mcp", + "description": "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", + "status": "active", + "repository": { + "url": "https://github.com/21st-dev/magic-mcp", + "source": "github", + "id": "935450522" }, - { - "transport_type": "sse", - "url": "https://bindings.mcp.cloudflare.com/sse" - } - ] + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@21st-dev/magic", + "version": "0.0.46", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:49Z", + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c746fe90-e3f6-4328-82c1-aeef49a2b6d9", - "name": "io.github.codacy/codacy-mcp-server", - "description": "Codacy's MCP Server implementation", - "repository": { - "url": "https://github.com/codacy/codacy-mcp-server", - "source": "github", - "id": "954645052" + "server": { + "name": "io.github.adfin-engineering/mcp-server-adfin", + "description": "A Model Context Protocol Server for connecting with Adfin APIs ", + "status": "active", + "repository": { + "url": "https://github.com/Adfin-Engineering/mcp-server-adfin", + "source": "github", + "id": "951338147" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "adfinmcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Directory to run the project from", + "is_required": true, + "format": "string", + "value": "--directory \u003cabsolute_path_to_adfin_mcp_folder\u003e", + "default": "--directory \u003cabsolute_path_to_adfin_mcp_folder\u003e", + "type": "named", + "name": "--directory \u003cabsolute_path_to_adfin_mcp_folder\u003e", + "value_hint": "\u003cabsolute_path_to_adfin_mcp_folder\u003e" + }, + { + "description": "Script to execute", + "is_required": true, + "format": "string", + "value": "main_adfin_mcp.py", + "default": "main_adfin_mcp.py", + "type": "positional", + "value_hint": "main_adfin_mcp.py" + } + ], + "environment_variables": [ + { + "description": "\u003cemail\u003e", + "name": "ADFIN_EMAIL" + }, + { + "description": "\u003cpassword\u003e", + "name": "ADFIN_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d3669201-252f-403c-944b-c3ec0845782b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:52Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.tinyfish-io/agentql-mcp", + "description": "Model Context Protocol server that integrates AgentQL's data extraction capabilities.", + "status": "active", + "repository": { + "url": "https://github.com/tinyfish-io/agentql-mcp", + "source": "github", + "id": "906462272" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "agentql-mcp", + "version": "1.0.0", + "environment_variables": [ + { + "description": "YOUR_API_KEY", + "name": "AGENTQL_API_KEY" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "d86f2098-0be9-4b52-b32e-9d0f17333197", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:54Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.agentrpc/agentrpc", + "description": "A universal RPC layer for AI agents. Connect to any function, any language, any framework, in minutes.", + "status": "active", + "repository": { + "url": "https://github.com/agentrpc/agentrpc", + "source": "github", + "id": "949728461" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "agentrpc/agentrpc", + "version": "", + "package_arguments": [ + { + "description": "Positional argument", + "is_required": true, + "format": "string", + "value": "mcp", + "default": "mcp", + "type": "positional", + "value_hint": "mcp" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_API_SECRET\u003e", + "name": "AGENTRPC_API_SECRET" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "c296f683-5578-474a-bbef-00cfc2716fbc", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:57Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.aiven-open/mcp-aiven", + "description": "Model Context Protocol server for Aiven", + "status": "active", + "repository": { + "url": "https://github.com/Aiven-Open/mcp-aiven", + "source": "github", + "id": "947751392" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-aiven", + "version": "0.1.4", + "package_arguments": [ + { + "description": "$REPOSITORY_DIRECTORY", + "is_required": true, + "format": "string", + "value": "--directory $REPOSITORY_DIRECTORY", + "default": "--directory $REPOSITORY_DIRECTORY", + "type": "named", + "name": "--directory $REPOSITORY_DIRECTORY", + "value_hint": "$REPOSITORY_DIRECTORY" + }, + { + "description": "--with-editable $REPOSITORY_DIRECTORY", + "is_required": true, + "format": "string", + "value": "--with-editable $REPOSITORY_DIRECTORY", + "default": "--with-editable $REPOSITORY_DIRECTORY", + "type": "named", + "name": "--with-editable $REPOSITORY_DIRECTORY", + "value_hint": "$REPOSITORY_DIRECTORY" + }, + { + "description": "--python 3.13", + "is_required": true, + "format": "string", + "value": "--python 3.13", + "default": "--python 3.13", + "type": "named", + "name": "--python 3.13", + "value_hint": "3.13" + }, + { + "description": "mcp-aiven", + "is_required": true, + "format": "string", + "value": "mcp-aiven", + "default": "mcp-aiven", + "type": "positional", + "value_hint": "mcp-aiven" + } + ], + "environment_variables": [ + { + "description": "https://api.aiven.io", + "name": "AIVEN_BASE_URL" + }, + { + "description": "$AIVEN_TOKEN", + "name": "AIVEN_TOKEN" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "2a0775fa-ff8e-47ff-a5e3-8b7c9b0567a9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:01Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.aliyun/alibabacloud-adb-mysql-mcp-server", + "description": "AnalyticDB for MySQL MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/aliyun/alibabacloud-adb-mysql-mcp-server", + "source": "github", + "id": "956503834" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "adb-mysql-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "With flag and value", + "is_required": true, + "format": "string", + "value": "--with adb-mysql-mcp-server", + "default": "--with adb-mysql-mcp-server", + "type": "named", + "name": "--with adb-mysql-mcp-server", + "value_hint": "adb-mysql-mcp-server" + }, + { + "description": "Script/module to run", + "is_required": true, + "format": "string", + "value": "adb-mysql-mcp-server", + "default": "adb-mysql-mcp-server", + "type": "positional", + "value_hint": "adb-mysql-mcp-server" + } + ], + "environment_variables": [ + { + "description": "host", + "name": "ADB_MYSQL_HOST" + }, + { + "description": "port", + "name": "ADB_MYSQL_PORT" + }, + { + "description": "database_user", + "name": "ADB_MYSQL_USER" + }, + { + "description": "database_password", + "name": "ADB_MYSQL_PASSWORD" + }, + { + "description": "database", + "name": "ADB_MYSQL_DATABASE" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "7f6e6610-4df3-490e-95e3-03ec954eb2ab", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:04Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.aliyun/alibaba-cloud-ops-mcp-server", + "description": "AlibabaCloud CloudOps MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/aliyun/alibaba-cloud-ops-mcp-server", + "source": "github", + "id": "967873415" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "alibaba-cloud-ops-mcp-server", + "version": "0.8.6", + "environment_variables": [ + { + "description": "Your Access Key ID", + "name": "ALIBABA_CLOUD_ACCESS_KEY_ID" + }, + { + "description": "Your Access Key SECRET", + "name": "ALIBABA_CLOUD_ACCESS_KEY_SECRET" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "24303d73-1ee0-4119-b2f1-3a57c17de967", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:06Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.apache/iotdb-mcp-server", + "description": "Apache IoTDB MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/apache/iotdb-mcp-server", + "source": "github", + "id": "959057712" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "iotdb-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "The working directory for the command", + "is_required": true, + "format": "string", + "value": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", + "default": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", + "type": "named", + "name": "--directory YOUR_REPO_PATH/src/iotdb_mcp_server", + "value_hint": "YOUR_REPO_PATH/src/iotdb_mcp_server" + }, + { + "description": "Python script to run", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ], + "environment_variables": [ + { + "description": "127.0.0.1", + "name": "IOTDB_HOST" + }, + { + "description": "6667", + "name": "IOTDB_PORT" + }, + { + "description": "root", + "name": "IOTDB_USER" + }, + { + "description": "root", + "name": "IOTDB_PASSWORD" + }, + { + "description": "test", + "name": "IOTDB_DATABASE" + }, + { + "description": "table", + "name": "IOTDB_SQL_DIALECT" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "31d9b130-4676-45d9-930f-a8bc2d5a3b9e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:10Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.apache/iotdb", + "description": "Apache IoTDB", + "status": "active", + "repository": { + "url": "https://github.com/apache/iotdb", + "source": "github", + "id": "158975124" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "apache/iotdb", + "version": "" + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "330047d1-f8c2-4931-9347-d133f1717de3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:12Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.apify/actors-mcp-server", + "description": "Model Context Protocol (MCP) Server for Apify's Actors", + "status": "active", + "repository": { + "url": "https://github.com/apify/actors-mcp-server", + "source": "github", + "id": "911256711" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@apify/actors-mcp-server", + "version": "0.1.31", + "package_arguments": [ + { + "description": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", + "is_required": true, + "format": "string", + "value": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", + "default": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", + "type": "named", + "name": "--actors lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper", + "value_hint": "lukaskrivka/google-maps-with-contact-details,apify/instagram-scraper" + } + ], + "environment_variables": [ + { + "description": "${input:apify_token}", + "name": "APIFY_TOKEN" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "195dfdbd-bb15-4752-80b6-abc9212cd80f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:16Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.apimatic/apimatic-validator-mcp", + "description": "APIMatic Validator MCP Server for validating OpenAPI specs via APIMatic's API with MCP", + "status": "active", + "repository": { + "url": "https://github.com/apimatic/apimatic-validator-mcp", + "source": "github", + "id": "951214203" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "apimatic-validator---mcp", + "version": "1.0.0", + "environment_variables": [ + { + "description": "\u003cAdd your APIMatic token here\u003e", + "name": "APIMATIC_API_KEY" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "5c95a170-d394-4b21-a100-bb953b872922", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:18Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.arize-ai/phoenix", + "description": "AI Observability \u0026 Evaluation", + "status": "active", + "repository": { + "url": "https://github.com/Arize-ai/phoenix", + "source": "github", + "id": "564072810" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "arize-phoenix", + "version": "" + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "de2d7f51-ca20-4fac-abdb-85a912d26375", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:20Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.datastax/astra-db-mcp", + "description": "An MCP server for Astra DB workloads", + "status": "active", + "repository": { + "url": "https://github.com/datastax/astra-db-mcp", + "source": "github", + "id": "943241240" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@datastax/astra-db-mcp", + "version": "1.2.0" + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "50f15d97-7d84-49f7-9232-f797e006358d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:22Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.audienseco/mcp-audiense-insights", + "description": "Audiense Insights MCP Server is a server based on the Model Context Protocol (MCP) that allows Claude and other MCP-compatible clients to interact with your Audiense Insights account", + "status": "active", + "repository": { + "url": "https://github.com/AudienseCo/mcp-audiense-insights", + "source": "github", + "id": "925304505" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-audiense-insights", + "version": "0.2.0", + "environment_variables": [ + { + "description": "your_client_id_here", + "name": "AUDIENSE_CLIENT_ID" + }, + { + "description": "your_client_secret_here", + "name": "AUDIENSE_CLIENT_SECRET" + }, + { + "description": "your_token_here", + "name": "TWITTER_BEARER_TOKEN" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "d85fa87b-48e1-4b81-8408-9d0c446f7de3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:26Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.bankless/onchain-mcp", + "description": "Bringing the bankless onchain API to MCP", + "status": "active", + "repository": { + "url": "https://github.com/Bankless/onchain-mcp", + "source": "github", + "id": "946011336" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@bankless/onchain-mcp", + "version": "1.0.6", + "environment_variables": [ + { + "description": "your_api_token_here", + "name": "BANKLESS_API_TOKEN" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "2535daf3-637b-40d1-a4c2-41ef60a726b8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:37Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.ahnlabio/bicscan-mcp", + "description": "BICScan MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/ahnlabio/bicscan-mcp", + "source": "github", + "id": "954410951" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "bicscan-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "use repo url", + "is_required": true, + "format": "string", + "value": "--from git+https://github.com/ahnlabio/bicscan-mcp", + "default": "--from git+https://github.com/ahnlabio/bicscan-mcp", + "type": "named", + "name": "--from git+https://github.com/ahnlabio/bicscan-mcp", + "value_hint": "git+https://github.com/ahnlabio/bicscan-mcp" + }, + { + "description": "subcommand or positional argument", + "is_required": true, + "format": "string", + "value": "bicscan-mcp", + "default": "bicscan-mcp", + "type": "positional", + "value_hint": "bicscan-mcp" + } + ], + "environment_variables": [ + { + "description": "YOUR_BICSCAN_API_KEY_HERE", + "name": "BICSCAN_API_KEY" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "36e14e79-6228-442f-b3c7-c7080b6282f0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:40Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.bitrise-io/bitrise-mcp", + "description": "MCP Server for the Bitrise API, enabling app management, build operations, artifact management and more.", + "status": "active", + "repository": { + "url": "https://github.com/bitrise-io/bitrise-mcp", + "source": "github", + "id": "958502546" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "bitrise-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "source package location", + "is_required": true, + "format": "string", + "value": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", + "default": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", + "type": "named", + "name": "--from git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0", + "value_hint": "git+https://github.com/bitrise-io/bitrise-mcp@v1.1.0" + }, + { + "description": "local entrypoint command", + "is_required": true, + "format": "string", + "value": "bitrise-mcp", + "default": "bitrise-mcp", + "type": "positional", + "value_hint": "bitrise-mcp" + }, + { + "description": "list of enabled API groups", + "is_required": true, + "format": "string", + "value": "--enabled-api-groups cache-items,pipelines", + "default": "--enabled-api-groups cache-items,pipelines", + "type": "named", + "name": "--enabled-api-groups cache-items,pipelines", + "value_hint": "cache-items,pipelines" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_PAT\u003e", + "name": "BITRISE_TOKEN" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "9e07df79-22e2-464d-a842-06f08b875196", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:44Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.box-community/mcp-server-box", + "description": "An MCP server capable of interacting with the Box API", + "status": "active", + "repository": { + "url": "https://github.com/box-community/mcp-server-box", + "source": "github", + "id": "938387717" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-box", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "src/mcp_server_box.py", + "default": "src/mcp_server_box.py", + "type": "positional", + "value_hint": "src/mcp_server_box.py" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "46bcb36f-ede9-412e-8181-7c7ece41fa04", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:46Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.chroma-core/chroma-mcp", + "description": "A Model Context Protocol (MCP) server implementation that provides database capabilities for Chroma", + "status": "active", + "repository": { + "url": "https://github.com/chroma-core/chroma-mcp", + "source": "github", + "id": "930632525" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "chroma-mcp", + "version": "0.2.2" + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "97de67c4-a78f-4ea7-9233-4da9fe6752cf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:54Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.circleci-public/mcp-server-circleci", + "description": "A specialized server implementation for the Model Context Protocol (MCP) designed to integrate with CircleCI's development workflow. This project serves as a bridge between CircleCI's infrastructure and the Model Context Protocol, enabling enhanced AI-powered development experiences.", + "status": "active", + "repository": { + "url": "https://github.com/CircleCI-Public/mcp-server-circleci", + "source": "github", + "id": "955501958" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@circleci/mcp-server-circleci", + "version": "0.7.1", + "environment_variables": [ + { + "description": "your-circleci-token", + "name": "CIRCLECI_TOKEN" + }, + { + "description": "https://circleci.com", + "name": "CIRCLECI_BASE_URL" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "a48ff624-6d95-4b8e-a0ed-498c4d838411", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:57:58Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.clickhouse/mcp-clickhouse", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/ClickHouse/mcp-clickhouse", + "source": "github", + "id": "908231244" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-clickhouse", + "version": "0.1.7", + "package_arguments": [ + { + "description": "Use the specified runtime feature", + "is_required": true, + "format": "string", + "value": "--with mcp-clickhouse", + "default": "--with mcp-clickhouse", + "type": "named", + "name": "--with mcp-clickhouse", + "value_hint": "mcp-clickhouse" + }, + { + "description": "Specify Python version", + "is_required": true, + "format": "string", + "value": "--python 3.13", + "default": "--python 3.13", + "type": "named", + "name": "--python 3.13", + "value_hint": "3.13" + }, + { + "description": "Positional argument to run (script or module)", + "is_required": true, + "format": "string", + "value": "mcp-clickhouse", + "default": "mcp-clickhouse", + "type": "positional", + "value_hint": "mcp-clickhouse" + } + ], + "environment_variables": [ + { + "description": "\u003cclickhouse-host\u003e", + "name": "CLICKHOUSE_HOST" + }, + { + "description": "\u003cclickhouse-user\u003e", + "name": "CLICKHOUSE_USER" + }, + { + "description": "\u003cclickhouse-password\u003e", + "name": "CLICKHOUSE_PASSWORD" + }, + { + "description": "\u003coptional-database\u003e", + "name": "CLICKHOUSE_DATABASE" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "98259539-3c6f-4462-b2b6-9a2567ff0545", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:58:02Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.cloudflare/mcp-server-cloudflare", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/cloudflare/mcp-server-cloudflare", + "source": "github", + "id": "895268756" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@cloudflare/mcp-server-cloudflare", + "version": "1.0.0", + "package_arguments": [ + { + "description": "URL to SSE endpoint for observability", + "is_required": true, + "format": "string", + "value": "https://observability.mcp.cloudflare.com/sse", + "default": "https://observability.mcp.cloudflare.com/sse", + "type": "positional", + "value_hint": "https://observability.mcp.cloudflare.com/sse" + } + ] + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "https://observability.mcp.cloudflare.com/sse" + }, + { + "transport_type": "sse", + "url": "https://bindings.mcp.cloudflare.com/sse" + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "2ad7c503-7daa-46c8-9295-8a1ed53271a6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:58:05Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.codacy/codacy-mcp-server", + "description": "Codacy's MCP Server implementation", + "status": "active", + "repository": { + "url": "https://github.com/codacy/codacy-mcp-server", + "source": "github", + "id": "954645052" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@codacy/codacy-mcp", + "version": "0.0.1", + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "CODACY_ACCOUNT_TOKEN" + }, + { + "description": "\u003cVERSION\u003e", + "name": "CODACY_CLI_VERSION" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "c746fe90-e3f6-4328-82c1-aeef49a2b6d9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@codacy/codacy-mcp", - "version": "0.0.1", - "environment_variables": [ - { - "description": "", - "name": "CODACY_ACCOUNT_TOKEN" - }, - { - "description": "", - "name": "CODACY_CLI_VERSION" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6e6e3083-47bf-47da-9d0f-14805de093a9", - "name": "io.github.codelogicincengineering/codelogic-mcp-server", - "description": "An MCP Server to utilize Codelogic's rich software dependency data in your AI programming assistant.", - "repository": { - "url": "https://github.com/CodeLogicIncEngineering/codelogic-mcp-server", - "source": "github", - "id": "959229901" + "server": { + "name": "io.github.codelogicincengineering/codelogic-mcp-server", + "description": "An MCP Server to utilize Codelogic's rich software dependency data in your AI programming assistant.", + "status": "active", + "repository": { + "url": "https://github.com/CodeLogicIncEngineering/codelogic-mcp-server", + "source": "github", + "id": "959229901" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "codelogic-mcp-server", + "version": "1.0.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6e6e3083-47bf-47da-9d0f-14805de093a9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "codelogic-mcp-server", - "version": "1.0.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "61b3cbd8-8eee-4bef-a0ef-5fcaf6449201", - "name": "io.github.comet-ml/opik-mcp", - "description": "Model Context Protocol (MCP) implementation for Opik enabling seamless IDE integration and unified access to prompts, projects, traces, and metrics. ", - "repository": { - "url": "https://github.com/comet-ml/opik-mcp", - "source": "github", - "id": "946763772" + "server": { + "name": "io.github.comet-ml/opik-mcp", + "description": "Model Context Protocol (MCP) implementation for Opik enabling seamless IDE integration and unified access to prompts, projects, traces, and metrics. ", + "status": "active", + "repository": { + "url": "https://github.com/comet-ml/opik-mcp", + "source": "github", + "id": "946763772" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "test-opik-mcp", + "version": "0.0.1", + "package_arguments": [ + { + "description": "API URL for the opik MCP server", + "is_required": true, + "format": "string", + "value": "--apiUrl https://www.comet.com/opik/api", + "default": "--apiUrl https://www.comet.com/opik/api", + "type": "named", + "name": "--apiUrl https://www.comet.com/opik/api", + "value_hint": "https://www.comet.com/opik/api" + }, + { + "description": "API Key for authentication", + "is_required": true, + "format": "string", + "value": "--apiKey YOUR_API_KEY", + "default": "--apiKey YOUR_API_KEY", + "type": "named", + "name": "--apiKey YOUR_API_KEY", + "value_hint": "YOUR_API_KEY" + }, + { + "description": "Workspace name", + "is_required": true, + "format": "string", + "value": "--workspace default", + "default": "--workspace default", + "type": "named", + "name": "--workspace default", + "value_hint": "default" + }, + { + "description": "Enable debug mode", + "is_required": true, + "format": "string", + "value": "--debug true", + "default": "--debug true", + "type": "named", + "name": "--debug true", + "value_hint": "true" + } + ], + "environment_variables": [ + { + "description": "https://www.comet.com/opik/api", + "name": "OPIK_API_BASE_URL" + }, + { + "description": "YOUR_API_KEY", + "name": "OPIK_API_KEY" + }, + { + "description": "default", + "name": "OPIK_WORKSPACE_NAME" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "61b3cbd8-8eee-4bef-a0ef-5fcaf6449201", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "test-opik-mcp", - "version": "0.0.1", - "package_arguments": [ - { - "description": "API URL for the opik MCP server", - "is_required": true, - "format": "string", - "value": "--apiUrl https://www.comet.com/opik/api", - "default": "--apiUrl https://www.comet.com/opik/api", - "type": "named", - "name": "--apiUrl https://www.comet.com/opik/api", - "value_hint": "https://www.comet.com/opik/api" - }, - { - "description": "API Key for authentication", - "is_required": true, - "format": "string", - "value": "--apiKey YOUR_API_KEY", - "default": "--apiKey YOUR_API_KEY", - "type": "named", - "name": "--apiKey YOUR_API_KEY", - "value_hint": "YOUR_API_KEY" - }, - { - "description": "Workspace name", - "is_required": true, - "format": "string", - "value": "--workspace default", - "default": "--workspace default", - "type": "named", - "name": "--workspace default", - "value_hint": "default" - }, - { - "description": "Enable debug mode", - "is_required": true, - "format": "string", - "value": "--debug true", - "default": "--debug true", - "type": "named", - "name": "--debug true", - "value_hint": "true" - } - ], - "environment_variables": [ - { - "description": "https://www.comet.com/opik/api", - "name": "OPIK_API_BASE_URL" - }, - { - "description": "YOUR_API_KEY", - "name": "OPIK_API_KEY" - }, - { - "description": "default", - "name": "OPIK_WORKSPACE_NAME" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3f49614c-5424-4875-92ef-9697923375cf", - "name": "io.github.couchbase-ecosystem/mcp-server-couchbase", - "description": "MCP Server to interact with data in Couchbase Clusters", - "repository": { - "url": "https://github.com/Couchbase-Ecosystem/mcp-server-couchbase", - "source": "github", - "id": "955488295" + "server": { + "name": "io.github.couchbase-ecosystem/mcp-server-couchbase", + "description": "MCP Server to interact with data in Couchbase Clusters", + "status": "active", + "repository": { + "url": "https://github.com/Couchbase-Ecosystem/mcp-server-couchbase", + "source": "github", + "id": "955488295" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-couchbase", + "version": "0.2.0", + "package_arguments": [ + { + "description": "Specify directory to work in.", + "is_required": true, + "format": "string", + "value": "--directory path/to/cloned/repo/mcp-server-couchbase/", + "default": "--directory path/to/cloned/repo/mcp-server-couchbase/", + "type": "named", + "name": "--directory path/to/cloned/repo/mcp-server-couchbase/", + "value_hint": "path/to/cloned/repo/mcp-server-couchbase/" + }, + { + "description": "Positional argument for Python script to execute.", + "is_required": true, + "format": "string", + "value": "src/mcp_server.py", + "default": "src/mcp_server.py", + "type": "positional", + "value_hint": "src/mcp_server.py" + } + ], + "environment_variables": [ + { + "description": "couchbases://connection-string", + "name": "CB_CONNECTION_STRING" + }, + { + "description": "username", + "name": "CB_USERNAME" + }, + { + "description": "password", + "name": "CB_PASSWORD" + }, + { + "description": "bucket_name", + "name": "CB_BUCKET_NAME" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3f49614c-5424-4875-92ef-9697923375cf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-couchbase", - "version": "0.2.0", - "package_arguments": [ - { - "description": "Specify directory to work in.", - "is_required": true, - "format": "string", - "value": "--directory path/to/cloned/repo/mcp-server-couchbase/", - "default": "--directory path/to/cloned/repo/mcp-server-couchbase/", - "type": "named", - "name": "--directory path/to/cloned/repo/mcp-server-couchbase/", - "value_hint": "path/to/cloned/repo/mcp-server-couchbase/" - }, - { - "description": "Positional argument for Python script to execute.", - "is_required": true, - "format": "string", - "value": "src/mcp_server.py", - "default": "src/mcp_server.py", - "type": "positional", - "value_hint": "src/mcp_server.py" - } - ], - "environment_variables": [ - { - "description": "couchbases://connection-string", - "name": "CB_CONNECTION_STRING" - }, - { - "description": "username", - "name": "CB_USERNAME" - }, - { - "description": "password", - "name": "CB_PASSWORD" - }, - { - "description": "bucket_name", - "name": "CB_BUCKET_NAME" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9c2d91f0-76c4-4292-a19f-e81e962954b5", - "name": "io.github.its-dart/dart-mcp-server", - "description": "Dart AI Model Context Protocol (MCP) server", - "repository": { - "url": "https://github.com/its-dart/dart-mcp-server", - "source": "github", - "id": "936960342" + "server": { + "name": "io.github.its-dart/dart-mcp-server", + "description": "Dart AI Model Context Protocol (MCP) server", + "status": "active", + "repository": { + "url": "https://github.com/its-dart/dart-mcp-server", + "source": "github", + "id": "936960342" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "dart-mcp-server", + "version": "0.1.13", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "positional", + "value_hint": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "positional", + "value_hint": "--rm" + }, + { + "description": "-e", + "is_required": true, + "format": "string", + "value": "-e DART_TOKEN", + "default": "-e DART_TOKEN", + "type": "named", + "name": "-e DART_TOKEN", + "value_hint": "DART_TOKEN" + }, + { + "description": "mcp/dart", + "is_required": true, + "format": "string", + "value": "mcp/dart", + "default": "mcp/dart", + "type": "positional", + "value_hint": "mcp/dart" + } + ], + "environment_variables": [ + { + "description": "dsa_...", + "name": "DART_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9c2d91f0-76c4-4292-a19f-e81e962954b5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:23Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "dart-mcp-server", - "version": "0.1.13", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "positional", - "value_hint": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "positional", - "value_hint": "--rm" - }, - { - "description": "-e", - "is_required": true, - "format": "string", - "value": "-e DART_TOKEN", - "default": "-e DART_TOKEN", - "type": "named", - "name": "-e DART_TOKEN", - "value_hint": "DART_TOKEN" - }, - { - "description": "mcp/dart", - "is_required": true, - "format": "string", - "value": "mcp/dart", - "default": "mcp/dart", - "type": "positional", - "value_hint": "mcp/dart" - } - ], - "environment_variables": [ - { - "description": "dsa_...", - "name": "DART_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1743c861-7e1a-42b2-a300-6059fcd82cb9", - "name": "io.github.devhub/devhub-cms-mcp", - "description": "DevHub CMS LLM integration through the Model Context Protocol", - "repository": { - "url": "https://github.com/devhub/devhub-cms-mcp", - "source": "github", - "id": "950064178" + "server": { + "name": "io.github.devhub/devhub-cms-mcp", + "description": "DevHub CMS LLM integration through the Model Context Protocol", + "status": "active", + "repository": { + "url": "https://github.com/devhub/devhub-cms-mcp", + "source": "github", + "id": "950064178" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "devhub-cms-mcp", + "version": "0.3.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1743c861-7e1a-42b2-a300-6059fcd82cb9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "devhub-cms-mcp", - "version": "0.3.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3afff2d4-d77f-42c2-bf39-ce786ecb0ecf", - "name": "io.github.dynatrace-oss/dynatrace-mcp", - "description": "MCP server for Dynatrace Observability", - "repository": { - "url": "https://github.com/dynatrace-oss/dynatrace-mcp", - "source": "github", - "id": "971357826" + "server": { + "name": "io.github.dynatrace-oss/dynatrace-mcp", + "description": "MCP server for Dynatrace Observability", + "status": "active", + "repository": { + "url": "https://github.com/dynatrace-oss/dynatrace-mcp", + "source": "github", + "id": "971357826" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@dynatrace-oss/dynatrace-mcp-server", + "version": "0.1.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3afff2d4-d77f-42c2-bf39-ce786ecb0ecf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:26Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@dynatrace-oss/dynatrace-mcp-server", - "version": "0.1.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1f25c28f-9afe-4f34-9e29-d18aab507255", - "name": "io.github.e2b-dev/mcp-server", - "description": "Giving Claude ability to run code with E2B via MCP (Model Context Protocol)", - "repository": { - "url": "https://github.com/e2b-dev/mcp-server", - "source": "github", - "id": "896943331" + "server": { + "name": "io.github.e2b-dev/mcp-server", + "description": "Giving Claude ability to run code with E2B via MCP (Model Context Protocol)", + "status": "active", + "repository": { + "url": "https://github.com/e2b-dev/mcp-server", + "source": "github", + "id": "896943331" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "e2b-mcp-root", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1f25c28f-9afe-4f34-9e29-d18aab507255", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "e2b-mcp-root", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7c870985-c457-4221-8088-977680764f70", - "name": "io.github.edgee-cloud/mcp-server-edgee", - "description": "", - "repository": { - "url": "https://github.com/edgee-cloud/mcp-server-edgee", - "source": "github", - "id": "957822597" + "server": { + "name": "io.github.edgee-cloud/mcp-server-edgee", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/edgee-cloud/mcp-server-edgee", + "source": "github", + "id": "957822597" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@edgee/mcp-server-edgee", + "version": "0.1.3", + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "EDGEE_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7c870985-c457-4221-8088-977680764f70", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@edgee/mcp-server-edgee", - "version": "0.1.3", - "environment_variables": [ - { - "description": "", - "name": "EDGEE_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "33102362-9e44-442f-8aa9-4443ce50c396", - "name": "io.github.edubase/mcp", - "description": "The EduBase MCP server enables Claude and other LLMs to interact with EduBase's comprehensive e-learning platform through the Model Context Protocol (MCP).", - "repository": { - "url": "https://github.com/EduBase/MCP", - "source": "github", - "id": "940803959" + "server": { + "name": "io.github.edubase/mcp", + "description": "The EduBase MCP server enables Claude and other LLMs to interact with EduBase's comprehensive e-learning platform through the Model Context Protocol (MCP).", + "status": "active", + "repository": { + "url": "https://github.com/EduBase/MCP", + "source": "github", + "id": "940803959" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@edubase/mcp", + "version": "1.0.10", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "-e EDUBASE_API_URL", + "is_required": true, + "format": "string", + "value": "-e EDUBASE_API_URL", + "default": "-e EDUBASE_API_URL", + "type": "named", + "name": "-e EDUBASE_API_URL", + "value_hint": "EDUBASE_API_URL" + }, + { + "description": "-e EDUBASE_API_APP", + "is_required": true, + "format": "string", + "value": "-e EDUBASE_API_APP", + "default": "-e EDUBASE_API_APP", + "type": "named", + "name": "-e EDUBASE_API_APP", + "value_hint": "EDUBASE_API_APP" + }, + { + "description": "-e EDUBASE_API_KEY", + "is_required": true, + "format": "string", + "value": "-e EDUBASE_API_KEY", + "default": "-e EDUBASE_API_KEY", + "type": "named", + "name": "-e EDUBASE_API_KEY", + "value_hint": "EDUBASE_API_KEY" + }, + { + "description": "edubase/mcp", + "is_required": true, + "format": "string", + "value": "edubase/mcp", + "default": "edubase/mcp", + "type": "positional", + "value_hint": "edubase/mcp" + } + ], + "environment_variables": [ + { + "description": "https://domain.edubase.net/api", + "name": "EDUBASE_API_URL" + }, + { + "description": "your_integration_app_id", + "name": "EDUBASE_API_APP" + }, + { + "description": "your_integration_secret_key", + "name": "EDUBASE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "33102362-9e44-442f-8aa9-4443ce50c396", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:35Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@edubase/mcp", - "version": "1.0.10", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "-e EDUBASE_API_URL", - "is_required": true, - "format": "string", - "value": "-e EDUBASE_API_URL", - "default": "-e EDUBASE_API_URL", - "type": "named", - "name": "-e EDUBASE_API_URL", - "value_hint": "EDUBASE_API_URL" - }, - { - "description": "-e EDUBASE_API_APP", - "is_required": true, - "format": "string", - "value": "-e EDUBASE_API_APP", - "default": "-e EDUBASE_API_APP", - "type": "named", - "name": "-e EDUBASE_API_APP", - "value_hint": "EDUBASE_API_APP" - }, - { - "description": "-e EDUBASE_API_KEY", - "is_required": true, - "format": "string", - "value": "-e EDUBASE_API_KEY", - "default": "-e EDUBASE_API_KEY", - "type": "named", - "name": "-e EDUBASE_API_KEY", - "value_hint": "EDUBASE_API_KEY" - }, - { - "description": "edubase/mcp", - "is_required": true, - "format": "string", - "value": "edubase/mcp", - "default": "edubase/mcp", - "type": "positional", - "value_hint": "edubase/mcp" - } - ], - "environment_variables": [ - { - "description": "https://domain.edubase.net/api", - "name": "EDUBASE_API_URL" - }, - { - "description": "your_integration_app_id", - "name": "EDUBASE_API_APP" - }, - { - "description": "your_integration_secret_key", - "name": "EDUBASE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1b8a16d9-0648-4790-b853-d919a6be16e9", - "name": "io.github.elastic/mcp-server-elasticsearch", - "description": "", - "repository": { - "url": "https://github.com/elastic/mcp-server-elasticsearch", - "source": "github", - "id": "953992846" + "server": { + "name": "io.github.elastic/mcp-server-elasticsearch", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/elastic/mcp-server-elasticsearch", + "source": "github", + "id": "953992846" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@elastic/mcp-server-elasticsearch", + "version": "0.1.1", + "package_arguments": [ + { + "description": "/path/to/your/project/dist/index.js", + "is_required": true, + "format": "string", + "value": "/path/to/your/project/dist/index.js", + "default": "/path/to/your/project/dist/index.js", + "type": "positional", + "value_hint": "/path/to/your/project/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "your-elasticsearch-url", + "name": "ES_URL" + }, + { + "description": "your-api-key", + "name": "ES_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1b8a16d9-0648-4790-b853-d919a6be16e9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:37Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@elastic/mcp-server-elasticsearch", - "version": "0.1.1", - "package_arguments": [ - { - "description": "/path/to/your/project/dist/index.js", - "is_required": true, - "format": "string", - "value": "/path/to/your/project/dist/index.js", - "default": "/path/to/your/project/dist/index.js", - "type": "positional", - "value_hint": "/path/to/your/project/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "your-elasticsearch-url", - "name": "ES_URL" - }, - { - "description": "your-api-key", - "name": "ES_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d689b152-64e8-4f5d-a937-91331fa3a771", - "name": "io.github.esignaturescom/mcp-server-esignatures", - "description": "MCP server for eSignatures (https://esignatures.com)", - "repository": { - "url": "https://github.com/esignaturescom/mcp-server-esignatures", - "source": "github", - "id": "922105354" + "server": { + "name": "io.github.esignaturescom/mcp-server-esignatures", + "description": "MCP server for eSignatures (https://esignatures.com)", + "status": "active", + "repository": { + "url": "https://github.com/esignaturescom/mcp-server-esignatures", + "source": "github", + "id": "922105354" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-esignatures", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d689b152-64e8-4f5d-a937-91331fa3a771", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-esignatures", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2a2aa283-57c8-474f-8a27-27954214cb6b", - "name": "io.github.exa-labs/exa-mcp-server", - "description": "Claude can perform Web Search | Exa with MCP (Model Context Protocol)", - "repository": { - "url": "https://github.com/exa-labs/exa-mcp-server", - "source": "github", - "id": "895291604" + "server": { + "name": "io.github.exa-labs/exa-mcp-server", + "description": "Claude can perform Web Search | Exa with MCP (Model Context Protocol)", + "status": "active", + "repository": { + "url": "https://github.com/exa-labs/exa-mcp-server", + "source": "github", + "id": "895291604" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "exa-mcp-server", + "version": "0.3.10", + "package_arguments": [ + { + "description": "Comma-separated list of tools", + "is_required": true, + "format": "string", + "value": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", + "default": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", + "type": "named", + "name": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", + "value_hint": "web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search" + } + ], + "environment_variables": [ + { + "description": "your-api-key-here", + "name": "EXA_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2a2aa283-57c8-474f-8a27-27954214cb6b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "exa-mcp-server", - "version": "0.3.10", - "package_arguments": [ - { - "description": "Comma-separated list of tools", - "is_required": true, - "format": "string", - "value": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", - "default": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", - "type": "named", - "name": "--tools=web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search", - "value_hint": "web_search_exa,research_paper_search,company_research,crawling,competitor_finder,linkedin_search,wikipedia_search_exa,github_search" - } - ], - "environment_variables": [ - { - "description": "your-api-key-here", - "name": "EXA_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0e7533d0-5925-4e06-a6bf-5da4e4e21aec", - "name": "io.github.fewsats/fewsats-mcp", - "description": "Fewsats MCP server", - "repository": { - "url": "https://github.com/Fewsats/fewsats-mcp", - "source": "github", - "id": "947211439" + "server": { + "name": "io.github.fewsats/fewsats-mcp", + "description": "Fewsats MCP server", + "status": "active", + "repository": { + "url": "https://github.com/Fewsats/fewsats-mcp", + "source": "github", + "id": "947211439" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "fewsats-mcp", + "version": "0.1.4", + "environment_variables": [ + { + "description": "YOUR_FEWSATS_API_KEY", + "name": "FEWSATS_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0e7533d0-5925-4e06-a6bf-5da4e4e21aec", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:45Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "fewsats-mcp", - "version": "0.1.4", - "environment_variables": [ - { - "description": "YOUR_FEWSATS_API_KEY", - "name": "FEWSATS_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "78c126ff-906a-4596-9bf4-db2cf61796b8", - "name": "io.github.fibery-inc/fibery-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/Fibery-inc/fibery-mcp-server", - "source": "github", - "id": "947810349" + "server": { + "name": "io.github.fibery-inc/fibery-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Fibery-inc/fibery-mcp-server", + "source": "github", + "id": "947810349" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "fibery-mcp-server", + "version": "0.1.3", + "package_arguments": [ + { + "description": "directory to run from", + "is_required": true, + "format": "string", + "value": "--directory path/to/cloned/fibery-mcp-server", + "default": "--directory path/to/cloned/fibery-mcp-server", + "type": "named", + "name": "--directory path/to/cloned/fibery-mcp-server", + "value_hint": "path/to/cloned/fibery-mcp-server" + }, + { + "description": "server entry point", + "is_required": true, + "format": "string", + "value": "fibery-mcp-server", + "default": "fibery-mcp-server", + "type": "positional", + "value_hint": "fibery-mcp-server" + }, + { + "description": "Fibery host domain", + "is_required": true, + "format": "string", + "value": "--fibery-host your-domain.fibery.io", + "default": "--fibery-host your-domain.fibery.io", + "type": "named", + "name": "--fibery-host your-domain.fibery.io", + "value_hint": "your-domain.fibery.io" + }, + { + "description": "Fibery API Token", + "is_required": true, + "format": "string", + "value": "--fibery-api-token your-api-token", + "default": "--fibery-api-token your-api-token", + "type": "named", + "name": "--fibery-api-token your-api-token", + "value_hint": "your-api-token" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "78c126ff-906a-4596-9bf4-db2cf61796b8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "fibery-mcp-server", - "version": "0.1.3", - "package_arguments": [ - { - "description": "directory to run from", - "is_required": true, - "format": "string", - "value": "--directory path/to/cloned/fibery-mcp-server", - "default": "--directory path/to/cloned/fibery-mcp-server", - "type": "named", - "name": "--directory path/to/cloned/fibery-mcp-server", - "value_hint": "path/to/cloned/fibery-mcp-server" - }, - { - "description": "server entry point", - "is_required": true, - "format": "string", - "value": "fibery-mcp-server", - "default": "fibery-mcp-server", - "type": "positional", - "value_hint": "fibery-mcp-server" - }, - { - "description": "Fibery host domain", - "is_required": true, - "format": "string", - "value": "--fibery-host your-domain.fibery.io", - "default": "--fibery-host your-domain.fibery.io", - "type": "named", - "name": "--fibery-host your-domain.fibery.io", - "value_hint": "your-domain.fibery.io" - }, - { - "description": "Fibery API Token", - "is_required": true, - "format": "string", - "value": "--fibery-api-token your-api-token", - "default": "--fibery-api-token your-api-token", - "type": "named", - "name": "--fibery-api-token your-api-token", - "value_hint": "your-api-token" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2d870a4e-d521-4d66-a471-abce884ea07b", - "name": "io.github.financial-datasets/mcp-server", - "description": "An MCP server for interacting with the Financial Datasets stock market API.", - "repository": { - "url": "https://github.com/financial-datasets/mcp-server", - "source": "github", - "id": "944516885" + "server": { + "name": "io.github.financial-datasets/mcp-server", + "description": "An MCP server for interacting with the Financial Datasets stock market API.", + "status": "active", + "repository": { + "url": "https://github.com/financial-datasets/mcp-server", + "source": "github", + "id": "944516885" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2d870a4e-d521-4d66-a471-abce884ea07b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "13b91785-9041-468d-a136-e6c9e9dd7be9", - "name": "io.github.mendableai/firecrawl-mcp-server", - "description": "Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients.", - "repository": { - "url": "https://github.com/mendableai/firecrawl-mcp-server", - "source": "github", - "id": "899407931" + "server": { + "name": "io.github.mendableai/firecrawl-mcp-server", + "description": "Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients.", + "status": "active", + "repository": { + "url": "https://github.com/mendableai/firecrawl-mcp-server", + "source": "github", + "id": "899407931" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "firecrawl-mcp", + "version": "1.9.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "13b91785-9041-468d-a136-e6c9e9dd7be9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "firecrawl-mcp", - "version": "1.9.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0bee6074-d16a-4482-a315-5b8f0f1abcf1", - "name": "io.github.fireproof-storage/mcp-database-server", - "description": "Store and load JSON documents from LLM tool use", - "repository": { - "url": "https://github.com/fireproof-storage/mcp-database-server", - "source": "github", - "id": "904432283" + "server": { + "name": "io.github.fireproof-storage/mcp-database-server", + "description": "Store and load JSON documents from LLM tool use", + "status": "active", + "repository": { + "url": "https://github.com/fireproof-storage/mcp-database-server", + "source": "github", + "id": "904432283" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "todos", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0bee6074-d16a-4482-a315-5b8f0f1abcf1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:58:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "todos", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3e50df21-8223-440d-bad9-dfc9ce117af4", - "name": "io.github.gleanwork/mcp-server", - "description": "MCP server for Glean API integration", - "repository": { - "url": "https://github.com/gleanwork/mcp-server", - "source": "github", - "id": "946754858" + "server": { + "name": "io.github.gleanwork/mcp-server", + "description": "MCP server for Glean API integration", + "status": "active", + "repository": { + "url": "https://github.com/gleanwork/mcp-server", + "source": "github", + "id": "946754858" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gleanwork/mcp-server", + "version": "0.6.1", + "environment_variables": [ + { + "description": "\u003cglean instance name\u003e", + "name": "GLEAN_INSTANCE" + }, + { + "description": "\u003cglean api token\u003e", + "name": "GLEAN_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3e50df21-8223-440d-bad9-dfc9ce117af4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gleanwork/mcp-server", - "version": "0.6.1", - "environment_variables": [ - { - "description": "", - "name": "GLEAN_INSTANCE" - }, - { - "description": "", - "name": "GLEAN_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "11e3a5f5-867c-4f1e-ba79-1b803550fb1a", - "name": "io.github.nota/gyazo-mcp-server", - "description": "Official Model Context Protocol server for Gyazo", - "repository": { - "url": "https://github.com/nota/gyazo-mcp-server", - "source": "github", - "id": "922406701" + "server": { + "name": "io.github.nota/gyazo-mcp-server", + "description": "Official Model Context Protocol server for Gyazo", + "status": "active", + "repository": { + "url": "https://github.com/nota/gyazo-mcp-server", + "source": "github", + "id": "922406701" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@notainc/gyazo-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "docker named argument for stdin", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "docker named argument for removing the container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "docker named argument to set environment variable", + "is_required": true, + "format": "string", + "value": "-e", + "default": "-e", + "type": "named", + "name": "-e", + "value_hint": "-e" + }, + { + "description": "docker positional argument indicating the image name", + "is_required": true, + "format": "string", + "value": "GYAZO_ACCESS_TOKEN", + "default": "GYAZO_ACCESS_TOKEN", + "type": "positional", + "value_hint": "GYAZO_ACCESS_TOKEN" + }, + { + "description": "docker positional argument indicating the package to run", + "is_required": true, + "format": "string", + "value": "gyazo-mcp-server", + "default": "gyazo-mcp-server", + "type": "positional", + "value_hint": "gyazo-mcp-server" + } + ], + "environment_variables": [ + { + "description": "your-access-token-here", + "name": "GYAZO_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "11e3a5f5-867c-4f1e-ba79-1b803550fb1a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@notainc/gyazo-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "docker named argument for stdin", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "docker named argument for removing the container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "docker named argument to set environment variable", - "is_required": true, - "format": "string", - "value": "-e", - "default": "-e", - "type": "named", - "name": "-e", - "value_hint": "-e" - }, - { - "description": "docker positional argument indicating the image name", - "is_required": true, - "format": "string", - "value": "GYAZO_ACCESS_TOKEN", - "default": "GYAZO_ACCESS_TOKEN", - "type": "positional", - "value_hint": "GYAZO_ACCESS_TOKEN" - }, - { - "description": "docker positional argument indicating the package to run", - "is_required": true, - "format": "string", - "value": "gyazo-mcp-server", - "default": "gyazo-mcp-server", - "type": "positional", - "value_hint": "gyazo-mcp-server" - } - ], - "environment_variables": [ - { - "description": "your-access-token-here", - "name": "GYAZO_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0f970fc6-418a-45c7-a665-00e725e8338d", - "name": "io.github.gotohuman/gotohuman-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/gotohuman/gotohuman-mcp-server", - "source": "github", - "id": "952612861" + "server": { + "name": "io.github.gotohuman/gotohuman-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/gotohuman/gotohuman-mcp-server", + "source": "github", + "id": "952612861" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gotohuman/mcp-server", + "version": "0.1.2", + "environment_variables": [ + { + "description": "your-api-key", + "name": "GOTOHUMAN_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0f970fc6-418a-45c7-a665-00e725e8338d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:13Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gotohuman/mcp-server", - "version": "0.1.2", - "environment_variables": [ - { - "description": "your-api-key", - "name": "GOTOHUMAN_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1329d108-67d0-488a-85a1-cc65b58cf5cd", - "name": "io.github.grafana/mcp-grafana", - "description": "MCP server for Grafana", - "repository": { - "url": "https://github.com/grafana/mcp-grafana", - "source": "github", - "id": "907869862" + "server": { + "name": "io.github.grafana/mcp-grafana", + "description": "MCP server for Grafana", + "status": "active", + "repository": { + "url": "https://github.com/grafana/mcp-grafana", + "source": "github", + "id": "907869862" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "grafana/mcp-grafana", + "version": "", + "package_arguments": [ + { + "description": "Remove container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Publish a container's port(s) to the host", + "is_required": true, + "format": "string", + "value": "-p 8000:8000", + "default": "-p 8000:8000", + "type": "named", + "name": "-p 8000:8000", + "value_hint": "8000:8000" + }, + { + "description": "Set environment variable GRAFANA_URL", + "is_required": true, + "format": "string", + "value": "-e GRAFANA_URL", + "default": "-e GRAFANA_URL", + "type": "named", + "name": "-e GRAFANA_URL", + "value_hint": "GRAFANA_URL" + }, + { + "description": "Set environment variable GRAFANA_API_KEY", + "is_required": true, + "format": "string", + "value": "-e GRAFANA_API_KEY", + "default": "-e GRAFANA_API_KEY", + "type": "named", + "name": "-e GRAFANA_API_KEY", + "value_hint": "GRAFANA_API_KEY" + }, + { + "description": "Container image to run", + "is_required": true, + "format": "string", + "value": "mcp/grafana", + "default": "mcp/grafana", + "type": "positional", + "value_hint": "mcp/grafana" + }, + { + "description": "Enable debug mode", + "format": "string", + "value": "-debug", + "default": "-debug", + "type": "named", + "name": "-debug" + } + ], + "environment_variables": [ + { + "description": "http://localhost:3000", + "name": "GRAFANA_URL" + }, + { + "description": "\u003cyour service account token\u003e", + "name": "GRAFANA_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1329d108-67d0-488a-85a1-cc65b58cf5cd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "grafana/mcp-grafana", - "version": "", - "package_arguments": [ - { - "description": "Remove container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Publish a container's port(s) to the host", - "is_required": true, - "format": "string", - "value": "-p 8000:8000", - "default": "-p 8000:8000", - "type": "named", - "name": "-p 8000:8000", - "value_hint": "8000:8000" - }, - { - "description": "Set environment variable GRAFANA_URL", - "is_required": true, - "format": "string", - "value": "-e GRAFANA_URL", - "default": "-e GRAFANA_URL", - "type": "named", - "name": "-e GRAFANA_URL", - "value_hint": "GRAFANA_URL" - }, - { - "description": "Set environment variable GRAFANA_API_KEY", - "is_required": true, - "format": "string", - "value": "-e GRAFANA_API_KEY", - "default": "-e GRAFANA_API_KEY", - "type": "named", - "name": "-e GRAFANA_API_KEY", - "value_hint": "GRAFANA_API_KEY" - }, - { - "description": "Container image to run", - "is_required": true, - "format": "string", - "value": "mcp/grafana", - "default": "mcp/grafana", - "type": "positional", - "value_hint": "mcp/grafana" - }, - { - "description": "Enable debug mode", - "format": "string", - "value": "-debug", - "default": "-debug", - "type": "named", - "name": "-debug" - } - ], - "environment_variables": [ - { - "description": "http://localhost:3000", - "name": "GRAFANA_URL" - }, - { - "description": "", - "name": "GRAFANA_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e44b5cad-3801-4403-b8ee-67f3ea1cd909", - "name": "io.github.graphlit/graphlit-mcp-server", - "description": "Model Context Protocol (MCP) Server for Graphlit Platform", - "repository": { - "url": "https://github.com/graphlit/graphlit-mcp-server", - "source": "github", - "id": "940989522" + "server": { + "name": "io.github.graphlit/graphlit-mcp-server", + "description": "Model Context Protocol (MCP) Server for Graphlit Platform", + "status": "active", + "repository": { + "url": "https://github.com/graphlit/graphlit-mcp-server", + "source": "github", + "id": "940989522" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "graphlit-mcp-server", + "version": "1.0.0", + "environment_variables": [ + { + "description": "${input:organization_id}", + "name": "GRAPHLIT_ORGANIZATION_ID" + }, + { + "description": "${input:environment_id}", + "name": "GRAPHLIT_ENVIRONMENT_ID" + }, + { + "description": "${input:jwt_secret}", + "name": "GRAPHLIT_JWT_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e44b5cad-3801-4403-b8ee-67f3ea1cd909", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:21Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "graphlit-mcp-server", - "version": "1.0.0", - "environment_variables": [ - { - "description": "${input:organization_id}", - "name": "GRAPHLIT_ORGANIZATION_ID" - }, - { - "description": "${input:environment_id}", - "name": "GRAPHLIT_ENVIRONMENT_ID" - }, - { - "description": "${input:jwt_secret}", - "name": "GRAPHLIT_JWT_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7974b19d-8030-428b-a016-168c65058b41", - "name": "io.github.greptimeteam/greptimedb-mcp-server", - "description": "A Model Context Protocol (MCP) server implementation for GreptimeDB", - "repository": { - "url": "https://github.com/GreptimeTeam/greptimedb-mcp-server", - "source": "github", - "id": "947171153" + "server": { + "name": "io.github.greptimeteam/greptimedb-mcp-server", + "description": "A Model Context Protocol (MCP) server implementation for GreptimeDB", + "status": "active", + "repository": { + "url": "https://github.com/GreptimeTeam/greptimedb-mcp-server", + "source": "github", + "id": "947171153" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "greptimedb-mcp-server", + "version": "0.1.0", + "environment_variables": [ + { + "description": "localhost", + "name": "GREPTIMEDB_HOST" + }, + { + "description": "4002", + "name": "GREPTIMEDB_PORT" + }, + { + "description": "root", + "name": "GREPTIMEDB_USER" + }, + { + "description": "public", + "name": "GREPTIMEDB_DATABASE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7974b19d-8030-428b-a016-168c65058b41", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "greptimedb-mcp-server", - "version": "0.1.0", - "environment_variables": [ - { - "description": "localhost", - "name": "GREPTIMEDB_HOST" - }, - { - "description": "4002", - "name": "GREPTIMEDB_PORT" - }, - { - "description": "root", - "name": "GREPTIMEDB_USER" - }, - { - "description": "public", - "name": "GREPTIMEDB_DATABASE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cb1a844b-0145-433b-9a6f-f8ef19b2b3f4", - "name": "io.github.heroku/heroku-mcp-server", - "description": "Heroku Platform MCP Server using the Heroku CLI", - "repository": { - "url": "https://github.com/heroku/heroku-mcp-server", - "source": "github", - "id": "955359601" + "server": { + "name": "io.github.heroku/heroku-mcp-server", + "description": "Heroku Platform MCP Server using the Heroku CLI", + "status": "active", + "repository": { + "url": "https://github.com/heroku/heroku-mcp-server", + "source": "github", + "id": "955359601" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@heroku/mcp-server", + "version": "1.0.4" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cb1a844b-0145-433b-9a6f-f8ef19b2b3f4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:29Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@heroku/mcp-server", - "version": "1.0.4" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e67dda78-7d99-43e5-9e98-c80267f34940", - "name": "io.github.aliyun/alibabacloud-hologres-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/aliyun/alibabacloud-hologres-mcp-server", - "source": "github", - "id": "951662313" + "server": { + "name": "io.github.aliyun/alibabacloud-hologres-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/aliyun/alibabacloud-hologres-mcp-server", + "source": "github", + "id": "951662313" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "hologres-mcp-server", + "version": "0.1.9", + "environment_variables": [ + { + "description": "host", + "name": "HOLOGRES_HOST" + }, + { + "description": "port", + "name": "HOLOGRES_PORT" + }, + { + "description": "access_id", + "name": "HOLOGRES_USER" + }, + { + "description": "access_key", + "name": "HOLOGRES_PASSWORD" + }, + { + "description": "database", + "name": "HOLOGRES_DATABASE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e67dda78-7d99-43e5-9e98-c80267f34940", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:31Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "hologres-mcp-server", - "version": "0.1.9", - "environment_variables": [ - { - "description": "host", - "name": "HOLOGRES_HOST" - }, - { - "description": "port", - "name": "HOLOGRES_PORT" - }, - { - "description": "access_id", - "name": "HOLOGRES_USER" - }, - { - "description": "access_key", - "name": "HOLOGRES_PASSWORD" - }, - { - "description": "database", - "name": "HOLOGRES_DATABASE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "feb2b365-5fab-461e-a8d3-89e9349ee743", - "name": "io.github.hyperbrowserai/mcp", - "description": "A MCP server implementation for hyperbrowser", - "repository": { - "url": "https://github.com/hyperbrowserai/mcp", - "source": "github", - "id": "938957096" + "server": { + "name": "io.github.hyperbrowserai/mcp", + "description": "A MCP server implementation for hyperbrowser", + "status": "active", + "repository": { + "url": "https://github.com/hyperbrowserai/mcp", + "source": "github", + "id": "938957096" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "hyperbrowser-mcp", + "version": "1.0.25", + "environment_variables": [ + { + "description": "your-api-key", + "name": "HYPERBROWSER_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "feb2b365-5fab-461e-a8d3-89e9349ee743", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:35Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "hyperbrowser-mcp", - "version": "1.0.25", - "environment_variables": [ - { - "description": "your-api-key", - "name": "HYPERBROWSER_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "afd9f984-ea69-4a8c-86ac-fdb58f3ab37c", - "name": "io.github.elie222/inbox-zero", - "description": "The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.", - "repository": { - "url": "https://github.com/elie222/inbox-zero", - "source": "github", - "id": "665613753" + "server": { + "name": "io.github.elie222/inbox-zero", + "description": "The world's best AI personal assistant for email. Open source app to help you reach inbox zero fast.", + "status": "active", + "repository": { + "url": "https://github.com/elie222/inbox-zero", + "source": "github", + "id": "665613753" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "inbox-zero", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "afd9f984-ea69-4a8c-86ac-fdb58f3ab37c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "inbox-zero", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bfcde7fb-0ea1-499f-bca0-17ffcba95a0c", - "name": "io.github.inkeep/mcp-server-python", - "description": "Inkeep MCP Server", - "repository": { - "url": "https://github.com/inkeep/mcp-server-python", - "source": "github", - "id": "947631175" + "server": { + "name": "io.github.inkeep/mcp-server-python", + "description": "Inkeep MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/inkeep/mcp-server-python", + "source": "github", + "id": "947631175" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "inkeep-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Directory for the inkeep-mcp-server", + "is_required": true, + "format": "string", + "value": "--directory \u003cYOUR_INKEEP_MCP_SERVER_ABSOLUTE_PATH\u003e", + "default": "--directory \u003cYOUR_INKEEP_MCP_SERVER_ABSOLUTE_PATH\u003e", + "type": "named", + "name": "--directory \u003cYOUR_INKEEP_MCP_SERVER_ABSOLUTE_PATH\u003e", + "value_hint": "\u003cYOUR_INKEEP_MCP_SERVER_ABSOLUTE_PATH\u003e" + }, + { + "description": "Run python module", + "is_required": true, + "format": "string", + "value": "-m inkeep_mcp_server", + "default": "-m inkeep_mcp_server", + "type": "named", + "name": "-m inkeep_mcp_server", + "value_hint": "inkeep_mcp_server" + } + ], + "environment_variables": [ + { + "description": "https://api.inkeep.com/v1", + "name": "INKEEP_API_BASE_URL" + }, + { + "description": "\u003cYOUR_INKEEP_API_KEY\u003e", + "name": "INKEEP_API_KEY" + }, + { + "description": "inkeep-rag", + "name": "INKEEP_API_MODEL" + }, + { + "description": "search-product-content", + "name": "INKEEP_MCP_TOOL_NAME" + }, + { + "description": "Retrieves product documentation about Inkeep. The query should be framed as a conversational question about Inkeep.", + "name": "INKEEP_MCP_TOOL_DESCRIPTION" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bfcde7fb-0ea1-499f-bca0-17ffcba95a0c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "inkeep-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Directory for the inkeep-mcp-server", - "is_required": true, - "format": "string", - "value": "--directory ", - "default": "--directory ", - "type": "named", - "name": "--directory ", - "value_hint": "" - }, - { - "description": "Run python module", - "is_required": true, - "format": "string", - "value": "-m inkeep_mcp_server", - "default": "-m inkeep_mcp_server", - "type": "named", - "name": "-m inkeep_mcp_server", - "value_hint": "inkeep_mcp_server" - } - ], - "environment_variables": [ - { - "description": "https://api.inkeep.com/v1", - "name": "INKEEP_API_BASE_URL" - }, - { - "description": "", - "name": "INKEEP_API_KEY" - }, - { - "description": "inkeep-rag", - "name": "INKEEP_API_MODEL" - }, - { - "description": "search-product-content", - "name": "INKEEP_MCP_TOOL_NAME" - }, - { - "description": "Retrieves product documentation about Inkeep. The query should be framed as a conversational question about Inkeep.", - "name": "INKEEP_MCP_TOOL_DESCRIPTION" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "584b368d-b659-4bac-9036-dc319cf8d88d", - "name": "io.github.integration-app/mcp-server", - "description": "", - "repository": { - "url": "https://github.com/integration-app/mcp-server", - "source": "github", - "id": "916850434" + "server": { + "name": "io.github.integration-app/mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/integration-app/mcp-server", + "source": "github", + "id": "916850434" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@integration-app/mcp-server", + "version": "1.0.3", + "environment_variables": [ + { + "description": "\u003cyour-integration-app-token\u003e", + "name": "INTEGRATION_APP_TOKEN" + }, + { + "description": "hubspot", + "name": "INTEGRATION_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "584b368d-b659-4bac-9036-dc319cf8d88d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@integration-app/mcp-server", - "version": "1.0.3", - "environment_variables": [ - { - "description": "", - "name": "INTEGRATION_APP_TOKEN" - }, - { - "description": "hubspot", - "name": "INTEGRATION_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a51c6dec-56ed-403e-831b-fa5f155f8696", - "name": "io.github.jetbrains/mcp-jetbrains", - "description": "A model context protocol server to work with JetBrains IDEs: IntelliJ, PyCharm, WebStorm, etc. Also, works with Android Studio", - "repository": { - "url": "https://github.com/JetBrains/mcp-jetbrains", - "source": "github", - "id": "900744587" + "server": { + "name": "io.github.jetbrains/mcp-jetbrains", + "description": "A model context protocol server to work with JetBrains IDEs: IntelliJ, PyCharm, WebStorm, etc. Also, works with Android Studio", + "status": "active", + "repository": { + "url": "https://github.com/JetBrains/mcp-jetbrains", + "source": "github", + "id": "900744587" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@jetbrains/mcp-proxy", + "version": "1.8.0", + "environment_variables": [ + { + "description": "true", + "name": "LOG_ENABLED" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a51c6dec-56ed-403e-831b-fa5f155f8696", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@jetbrains/mcp-proxy", - "version": "1.8.0", - "environment_variables": [ - { - "description": "true", - "name": "LOG_ENABLED" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "77963df5-3dc8-4961-ae0c-03e448b8713c", - "name": "io.github.kagisearch/kagimcp", - "description": "A Model Context Protocol (MCP) server for Kagi search & other tools.", - "repository": { - "url": "https://github.com/kagisearch/kagimcp", - "source": "github", - "id": "902662933" + "server": { + "name": "io.github.kagisearch/kagimcp", + "description": "A Model Context Protocol (MCP) server for Kagi search \u0026 other tools.", + "status": "active", + "repository": { + "url": "https://github.com/kagisearch/kagimcp", + "source": "github", + "id": "902662933" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "kagimcp", + "version": "0.1.3", + "package_arguments": [ + { + "description": "Specifies the working directory", + "is_required": true, + "format": "string", + "value": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", + "default": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", + "type": "named", + "name": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", + "value_hint": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp" + }, + { + "description": "Name of the package or executable to run", + "is_required": true, + "format": "string", + "value": "kagimcp", + "default": "kagimcp", + "type": "positional", + "value_hint": "kagimcp" + } + ], + "environment_variables": [ + { + "description": "YOUR_API_KEY_HERE", + "name": "KAGI_API_KEY" + }, + { + "description": "YOUR_ENGINE_CHOICE_HERE", + "name": "KAGI_SUMMARIZER_ENGINE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "77963df5-3dc8-4961-ae0c-03e448b8713c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "kagimcp", - "version": "0.1.3", - "package_arguments": [ - { - "description": "Specifies the working directory", - "is_required": true, - "format": "string", - "value": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", - "default": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", - "type": "named", - "name": "--directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp", - "value_hint": "/ABSOLUTE/PATH/TO/PARENT/FOLDER/kagimcp" - }, - { - "description": "Name of the package or executable to run", - "is_required": true, - "format": "string", - "value": "kagimcp", - "default": "kagimcp", - "type": "positional", - "value_hint": "kagimcp" - } - ], - "environment_variables": [ - { - "description": "YOUR_API_KEY_HERE", - "name": "KAGI_API_KEY" - }, - { - "description": "YOUR_ENGINE_CHOICE_HERE", - "name": "KAGI_SUMMARIZER_ENGINE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "eba4813b-2591-4264-b7bc-c485b7652e92", - "name": "io.github.keboola/keboola-mcp-server", - "description": "Model Context Protocol (MCP) Server for the Keboola Platform", - "repository": { - "url": "https://github.com/keboola/mcp-server", - "source": "github", - "id": "915789942" + "server": { + "name": "io.github.keboola/keboola-mcp-server", + "description": "Model Context Protocol (MCP) Server for the Keboola Platform", + "status": "active", + "repository": { + "url": "https://github.com/keboola/mcp-server", + "source": "github", + "id": "915789942" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "keboola-mcp-server", + "version": "0.17.4", + "package_arguments": [ + { + "description": "Module to run", + "is_required": true, + "format": "string", + "value": "-m keboola_mcp_server.cli", + "default": "-m keboola_mcp_server.cli", + "type": "positional", + "value_hint": "keboola_mcp_server.cli" + }, + { + "description": "Specify the transport type", + "is_required": true, + "format": "string", + "value": "--transport stdio", + "default": "--transport stdio", + "type": "named", + "name": "--transport stdio", + "value_hint": "stdio" + }, + { + "description": "API URL for Keboola Connection", + "is_required": true, + "format": "string", + "value": "--api-url https://connection.YOUR_REGION.keboola.com", + "default": "--api-url https://connection.YOUR_REGION.keboola.com", + "type": "named", + "name": "--api-url https://connection.YOUR_REGION.keboola.com", + "value_hint": "https://connection.YOUR_REGION.keboola.com" + } + ], + "environment_variables": [ + { + "description": "your_keboola_storage_token", + "name": "KBC_STORAGE_TOKEN" + }, + { + "description": "your_workspace_schema", + "name": "KBC_WORKSPACE_SCHEMA" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "eba4813b-2591-4264-b7bc-c485b7652e92", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T18:59:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "keboola-mcp-server", - "version": "0.17.4", - "package_arguments": [ - { - "description": "Module to run", - "is_required": true, - "format": "string", - "value": "-m keboola_mcp_server.cli", - "default": "-m keboola_mcp_server.cli", - "type": "positional", - "value_hint": "keboola_mcp_server.cli" - }, - { - "description": "Specify the transport type", - "is_required": true, - "format": "string", - "value": "--transport stdio", - "default": "--transport stdio", - "type": "named", - "name": "--transport stdio", - "value_hint": "stdio" - }, - { - "description": "API URL for Keboola Connection", - "is_required": true, - "format": "string", - "value": "--api-url https://connection.YOUR_REGION.keboola.com", - "default": "--api-url https://connection.YOUR_REGION.keboola.com", - "type": "named", - "name": "--api-url https://connection.YOUR_REGION.keboola.com", - "value_hint": "https://connection.YOUR_REGION.keboola.com" - } - ], - "environment_variables": [ - { - "description": "your_keboola_storage_token", - "name": "KBC_STORAGE_TOKEN" - }, - { - "description": "your_workspace_schema", - "name": "KBC_WORKSPACE_SCHEMA" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5026f1b0-0426-4ea2-8ec2-fab1fabb0a7e", - "name": "io.github.translated/lara-mcp", - "description": "", - "repository": { - "url": "https://github.com/translated/lara-mcp", - "source": "github", - "id": "957768661" + "server": { + "name": "io.github.translated/lara-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/translated/lara-mcp", + "source": "github", + "id": "957768661" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@translated/lara-mcp", + "version": "0.0.10", + "package_arguments": [ + { + "description": "Run the docker container in interactive mode", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "Automatically remove the container when it exits", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Set environment variable LARA_ACCESS_KEY_ID in the container", + "is_required": true, + "format": "string", + "value": "-e LARA_ACCESS_KEY_ID", + "default": "-e LARA_ACCESS_KEY_ID", + "type": "named", + "name": "-e LARA_ACCESS_KEY_ID", + "value_hint": "LARA_ACCESS_KEY_ID" + }, + { + "description": "Set environment variable LARA_ACCESS_KEY_SECRET in the container", + "is_required": true, + "format": "string", + "value": "-e LARA_ACCESS_KEY_SECRET", + "default": "-e LARA_ACCESS_KEY_SECRET", + "type": "named", + "name": "-e LARA_ACCESS_KEY_SECRET", + "value_hint": "LARA_ACCESS_KEY_SECRET" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_ACCESS_KEY_ID\u003e", + "name": "LARA_ACCESS_KEY_ID" + }, + { + "description": "\u003cYOUR_ACCESS_KEY_SECRET\u003e", + "name": "LARA_ACCESS_KEY_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5026f1b0-0426-4ea2-8ec2-fab1fabb0a7e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@translated/lara-mcp", - "version": "0.0.10", - "package_arguments": [ - { - "description": "Run the docker container in interactive mode", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "Automatically remove the container when it exits", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Set environment variable LARA_ACCESS_KEY_ID in the container", - "is_required": true, - "format": "string", - "value": "-e LARA_ACCESS_KEY_ID", - "default": "-e LARA_ACCESS_KEY_ID", - "type": "named", - "name": "-e LARA_ACCESS_KEY_ID", - "value_hint": "LARA_ACCESS_KEY_ID" - }, - { - "description": "Set environment variable LARA_ACCESS_KEY_SECRET in the container", - "is_required": true, - "format": "string", - "value": "-e LARA_ACCESS_KEY_SECRET", - "default": "-e LARA_ACCESS_KEY_SECRET", - "type": "named", - "name": "-e LARA_ACCESS_KEY_SECRET", - "value_hint": "LARA_ACCESS_KEY_SECRET" - } - ], - "environment_variables": [ - { - "description": "", - "name": "LARA_ACCESS_KEY_ID" - }, - { - "description": "", - "name": "LARA_ACCESS_KEY_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6e66e04c-86cc-43ec-90ed-1a91a0e4eb76", - "name": "io.github.pydantic/logfire-mcp", - "description": "The Logfire MCP Server is here! :tada:", - "repository": { - "url": "https://github.com/pydantic/logfire-mcp", - "source": "github", - "id": "943883428" + "server": { + "name": "io.github.pydantic/logfire-mcp", + "description": "The Logfire MCP Server is here! :tada:", + "status": "active", + "repository": { + "url": "https://github.com/pydantic/logfire-mcp", + "source": "github", + "id": "943883428" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "logfire-mcp", + "version": "", + "package_arguments": [ + { + "description": "SELECT trace_id, message, created_at, attributes-\u003e\u003e'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", + "is_required": true, + "format": "string", + "value": "SELECT trace_id, message, created_at, attributes-\u003e\u003e'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", + "default": "SELECT trace_id, message, created_at, attributes-\u003e\u003e'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", + "type": "named", + "name": "SELECT trace_id, message, created_at, attributes-\u003e\u003e'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", + "value_hint": "SELECT trace_id, message, created_at, attributes-\u003e\u003e'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10" + }, + { + "description": "1440", + "is_required": true, + "format": "string", + "value": "1440", + "default": "1440", + "type": "named", + "name": "1440", + "value_hint": "1440" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6e66e04c-86cc-43ec-90ed-1a91a0e4eb76", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "logfire-mcp", - "version": "", - "package_arguments": [ - { - "description": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", - "is_required": true, - "format": "string", - "value": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", - "default": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", - "type": "named", - "name": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10", - "value_hint": "SELECT trace_id, message, created_at, attributes->>'service.name' as service FROM records WHERE severity_text = 'ERROR' ORDER BY created_at DESC LIMIT 10" - }, - { - "description": "1440", - "is_required": true, - "format": "string", - "value": "1440", - "default": "1440", - "type": "named", - "name": "1440", - "value_hint": "1440" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f88b50da-f452-452b-9f22-1c7da7542b36", - "name": "io.github.langfuse/mcp-server-langfuse", - "description": "Model Context Protocol (MCP) Server for Langfuse Prompt Management. This server allows you to access and manage your Langfuse prompts through the Model Context Protocol.", - "repository": { - "url": "https://github.com/langfuse/mcp-server-langfuse", - "source": "github", - "id": "933201974" + "server": { + "name": "io.github.langfuse/mcp-server-langfuse", + "description": "Model Context Protocol (MCP) Server for Langfuse Prompt Management. This server allows you to access and manage your Langfuse prompts through the Model Context Protocol.", + "status": "active", + "repository": { + "url": "https://github.com/langfuse/mcp-server-langfuse", + "source": "github", + "id": "933201974" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-langfuse", + "version": "0.0.1", + "environment_variables": [ + { + "description": "your-public-key", + "name": "LANGFUSE_PUBLIC_KEY" + }, + { + "description": "your-secret-key", + "name": "LANGFUSE_SECRET_KEY" + }, + { + "description": "https://cloud.langfuse.com", + "name": "LANGFUSE_BASEURL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f88b50da-f452-452b-9f22-1c7da7542b36", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-langfuse", - "version": "0.0.1", - "environment_variables": [ - { - "description": "your-public-key", - "name": "LANGFUSE_PUBLIC_KEY" - }, - { - "description": "your-secret-key", - "name": "LANGFUSE_SECRET_KEY" - }, - { - "description": "https://cloud.langfuse.com", - "name": "LANGFUSE_BASEURL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1e2d718a-95b0-460b-8e57-86feec5356ce", - "name": "io.github.lingodotdev/lingo.dev", - "description": "⚡️ Open-source AI-powered CLI for web & mobile localization. Bring your own LLM or use Lingo.dev-managed localization engine.", - "repository": { - "url": "https://github.com/lingodotdev/lingo.dev", - "source": "github", - "id": "771479895" + "server": { + "name": "io.github.lingodotdev/lingo.dev", + "description": "⚡️ Open-source AI-powered CLI for web \u0026 mobile localization. Bring your own LLM or use Lingo.dev-managed localization engine.", + "status": "active", + "repository": { + "url": "https://github.com/lingodotdev/lingo.dev", + "source": "github", + "id": "771479895" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@lingo.dev", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1e2d718a-95b0-460b-8e57-86feec5356ce", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@lingo.dev", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f4fca7d7-fbab-4174-ba76-1396c3451cf1", - "name": "io.github.integromat/make-mcp-server", - "description": "Make MCP Server", - "repository": { - "url": "https://github.com/integromat/make-mcp-server", - "source": "github", - "id": "946079810" + "server": { + "name": "io.github.integromat/make-mcp-server", + "description": "Make MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/integromat/make-mcp-server", + "source": "github", + "id": "946079810" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@makehq/mcp-server", + "version": "0.5.0", + "environment_variables": [ + { + "description": "\u003cyour-api-key\u003e", + "name": "MAKE_API_KEY" + }, + { + "description": "\u003cyour-zone\u003e", + "name": "MAKE_ZONE" + }, + { + "description": "\u003cyour-team-id\u003e", + "name": "MAKE_TEAM" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f4fca7d7-fbab-4174-ba76-1396c3451cf1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@makehq/mcp-server", - "version": "0.5.0", - "environment_variables": [ - { - "description": "", - "name": "MAKE_API_KEY" - }, - { - "description": "", - "name": "MAKE_ZONE" - }, - { - "description": "", - "name": "MAKE_TEAM" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "11d467e3-6001-4e60-ba90-494ad9eb7ad2", - "name": "io.github.meilisearch/meilisearch-mcp", - "description": "A Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces.", - "repository": { - "url": "https://github.com/meilisearch/meilisearch-mcp", - "source": "github", - "id": "907425333" + "server": { + "name": "io.github.meilisearch/meilisearch-mcp", + "description": "A Model Context Protocol (MCP) server for interacting with Meilisearch through LLM interfaces.", + "status": "active", + "repository": { + "url": "https://github.com/meilisearch/meilisearch-mcp", + "source": "github", + "id": "907425333" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "meilisearch-mcp", + "version": "0.4.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "11d467e3-6001-4e60-ba90-494ad9eb7ad2", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "meilisearch-mcp", - "version": "0.4.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dd730dba-107c-40f0-b172-85500a22b5c2", - "name": "io.github.memgraph/mcp-memgraph", - "description": "Memgraph MCP Server", - "repository": { - "url": "https://github.com/memgraph/mcp-memgraph", - "source": "github", - "id": "946087272" + "server": { + "name": "io.github.memgraph/mcp-memgraph", + "description": "Memgraph MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/memgraph/mcp-memgraph", + "source": "github", + "id": "946087272" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-memgraph", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dd730dba-107c-40f0-b172-85500a22b5c2", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-memgraph", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e458676a-2727-4daf-84c5-d607932fa000", - "name": "io.github.zilliztech/mcp-server-milvus", - "description": "Model Context Protocol Servers for Milvus", - "repository": { - "url": "https://github.com/zilliztech/mcp-server-milvus", - "source": "github", - "id": "943619628" + "server": { + "name": "io.github.zilliztech/mcp-server-milvus", + "description": "Model Context Protocol Servers for Milvus", + "status": "active", + "repository": { + "url": "https://github.com/zilliztech/mcp-server-milvus", + "source": "github", + "id": "943619628" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-milvus", + "version": "0.1.1", + "package_arguments": [ + { + "description": "Directory argument", + "is_required": true, + "format": "string", + "value": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", + "default": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", + "type": "named", + "name": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", + "value_hint": "/path/to/mcp-server-milvus/src/mcp_server_milvus" + }, + { + "description": "Python server entry file", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + }, + { + "description": "Milvus URI", + "is_required": true, + "format": "string", + "value": "--milvus-uri http://127.0.0.1:19530", + "default": "--milvus-uri http://127.0.0.1:19530", + "type": "named", + "name": "--milvus-uri http://127.0.0.1:19530", + "value_hint": "http://127.0.0.1:19530" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e458676a-2727-4daf-84c5-d607932fa000", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-milvus", - "version": "0.1.1", - "package_arguments": [ - { - "description": "Directory argument", - "is_required": true, - "format": "string", - "value": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", - "default": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", - "type": "named", - "name": "--directory /path/to/mcp-server-milvus/src/mcp_server_milvus", - "value_hint": "/path/to/mcp-server-milvus/src/mcp_server_milvus" - }, - { - "description": "Python server entry file", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - }, - { - "description": "Milvus URI", - "is_required": true, - "format": "string", - "value": "--milvus-uri http://127.0.0.1:19530", - "default": "--milvus-uri http://127.0.0.1:19530", - "type": "named", - "name": "--milvus-uri http://127.0.0.1:19530", - "value_hint": "http://127.0.0.1:19530" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b99e5603-6346-4b2c-bae8-876c9b71e18b", - "name": "io.github.momentohq/mcp-momento", - "description": "A model context protocol server for Momento", - "repository": { - "url": "https://github.com/momentohq/mcp-momento", - "source": "github", - "id": "960008375" + "server": { + "name": "io.github.momentohq/mcp-momento", + "description": "A model context protocol server for Momento", + "status": "active", + "repository": { + "url": "https://github.com/momentohq/mcp-momento", + "source": "github", + "id": "960008375" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gomomento/mcp-momento", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your-api-key", + "name": "MOMENTO_API_KEY" + }, + { + "description": "your-cache-name", + "name": "MOMENTO_CACHE_NAME" + }, + { + "description": "60", + "name": "DEFAULT_TTL_SECONDS" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b99e5603-6346-4b2c-bae8-876c9b71e18b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:31Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gomomento/mcp-momento", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your-api-key", - "name": "MOMENTO_API_KEY" - }, - { - "description": "your-cache-name", - "name": "MOMENTO_CACHE_NAME" - }, - { - "description": "60", - "name": "DEFAULT_TTL_SECONDS" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9fd2c1fb-b8a6-4411-89cf-d4612cc3a539", - "name": "io.github.mongodb-js/mongodb-mcp-server", - "description": "A Model Context Protocol server to connect to MongoDB databases and MongoDB Atlas Clusters.", - "repository": { - "url": "https://github.com/mongodb-js/mongodb-mcp-server", - "source": "github", - "id": "960484071" + "server": { + "name": "io.github.mongodb-js/mongodb-mcp-server", + "description": "A Model Context Protocol server to connect to MongoDB databases and MongoDB Atlas Clusters.", + "status": "active", + "repository": { + "url": "https://github.com/mongodb-js/mongodb-mcp-server", + "source": "github", + "id": "960484071" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mongodb-mcp-server", + "version": "0.1.1", + "package_arguments": [ + { + "description": "your-atlas-service-accounts-client-id", + "is_required": true, + "format": "string", + "value": "--apiClientId your-atlas-service-accounts-client-id", + "default": "--apiClientId your-atlas-service-accounts-client-id", + "type": "named", + "name": "--apiClientId your-atlas-service-accounts-client-id", + "value_hint": "your-atlas-service-accounts-client-id" + }, + { + "description": "your-atlas-service-accounts-client-secret", + "is_required": true, + "format": "string", + "value": "--apiClientSecret your-atlas-service-accounts-client-secret", + "default": "--apiClientSecret your-atlas-service-accounts-client-secret", + "type": "named", + "name": "--apiClientSecret your-atlas-service-accounts-client-secret", + "value_hint": "your-atlas-service-accounts-client-secret" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9fd2c1fb-b8a6-4411-89cf-d4612cc3a539", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mongodb-mcp-server", - "version": "0.1.1", - "package_arguments": [ - { - "description": "your-atlas-service-accounts-client-id", - "is_required": true, - "format": "string", - "value": "--apiClientId your-atlas-service-accounts-client-id", - "default": "--apiClientId your-atlas-service-accounts-client-id", - "type": "named", - "name": "--apiClientId your-atlas-service-accounts-client-id", - "value_hint": "your-atlas-service-accounts-client-id" - }, - { - "description": "your-atlas-service-accounts-client-secret", - "is_required": true, - "format": "string", - "value": "--apiClientSecret your-atlas-service-accounts-client-secret", - "default": "--apiClientSecret your-atlas-service-accounts-client-secret", - "type": "named", - "name": "--apiClientSecret your-atlas-service-accounts-client-secret", - "value_hint": "your-atlas-service-accounts-client-secret" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b3fa3fa4-901d-4584-82cf-d027dbdf290b", - "name": "io.github.motherduckdb/mcp-server-motherduck", - "description": "MCP server for DuckDB and MotherDuck", - "repository": { - "url": "https://github.com/motherduckdb/mcp-server-motherduck", - "source": "github", - "id": "902619224" + "server": { + "name": "io.github.motherduckdb/mcp-server-motherduck", + "description": "MCP server for DuckDB and MotherDuck", + "status": "active", + "repository": { + "url": "https://github.com/motherduckdb/mcp-server-motherduck", + "source": "github", + "id": "902619224" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-motherduck", + "version": "0.4.2", + "package_arguments": [ + { + "description": "--directory /path/to/your/local/mcp-server-motherduck", + "is_required": true, + "format": "string", + "value": "--directory /path/to/your/local/mcp-server-motherduck", + "default": "--directory /path/to/your/local/mcp-server-motherduck", + "type": "named", + "name": "--directory /path/to/your/local/mcp-server-motherduck", + "value_hint": "/path/to/your/local/mcp-server-motherduck" + }, + { + "description": "mcp-server-motherduck", + "is_required": true, + "format": "string", + "value": "mcp-server-motherduck", + "default": "mcp-server-motherduck", + "type": "positional", + "value_hint": "mcp-server-motherduck" + }, + { + "description": "--db-path md:", + "is_required": true, + "format": "string", + "value": "--db-path md:", + "default": "--db-path md:", + "type": "named", + "name": "--db-path md:", + "value_hint": "md:" + }, + { + "description": "--motherduck-token \u003cYOUR_MOTHERDUCK_TOKEN_HERE\u003e", + "is_required": true, + "format": "string", + "value": "--motherduck-token \u003cYOUR_MOTHERDUCK_TOKEN_HERE\u003e", + "default": "--motherduck-token \u003cYOUR_MOTHERDUCK_TOKEN_HERE\u003e", + "type": "named", + "name": "--motherduck-token \u003cYOUR_MOTHERDUCK_TOKEN_HERE\u003e", + "value_hint": "\u003cYOUR_MOTHERDUCK_TOKEN_HERE\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b3fa3fa4-901d-4584-82cf-d027dbdf290b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-motherduck", - "version": "0.4.2", - "package_arguments": [ - { - "description": "--directory /path/to/your/local/mcp-server-motherduck", - "is_required": true, - "format": "string", - "value": "--directory /path/to/your/local/mcp-server-motherduck", - "default": "--directory /path/to/your/local/mcp-server-motherduck", - "type": "named", - "name": "--directory /path/to/your/local/mcp-server-motherduck", - "value_hint": "/path/to/your/local/mcp-server-motherduck" - }, - { - "description": "mcp-server-motherduck", - "is_required": true, - "format": "string", - "value": "mcp-server-motherduck", - "default": "mcp-server-motherduck", - "type": "positional", - "value_hint": "mcp-server-motherduck" - }, - { - "description": "--db-path md:", - "is_required": true, - "format": "string", - "value": "--db-path md:", - "default": "--db-path md:", - "type": "named", - "name": "--db-path md:", - "value_hint": "md:" - }, - { - "description": "--motherduck-token ", - "is_required": true, - "format": "string", - "value": "--motherduck-token ", - "default": "--motherduck-token ", - "type": "named", - "name": "--motherduck-token ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "be6eb263-3492-4073-b28f-0fd33d070982", - "name": "io.github.needle-ai/needle-mcp", - "description": "Integration of Needle in modelcontextprotocol", - "repository": { - "url": "https://github.com/needle-ai/needle-mcp", - "source": "github", - "id": "903772115" + "server": { + "name": "io.github.needle-ai/needle-mcp", + "description": "Integration of Needle in modelcontextprotocol", + "status": "active", + "repository": { + "url": "https://github.com/needle-ai/needle-mcp", + "source": "github", + "id": "903772115" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "needle-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "/path/to/needle-mcp", + "is_required": true, + "format": "string", + "value": "/path/to/needle-mcp", + "default": "/path/to/needle-mcp", + "type": "positional", + "value_hint": "/path/to/needle-mcp" + }, + { + "description": "needle-mcp", + "is_required": true, + "format": "string", + "value": "needle-mcp", + "default": "needle-mcp", + "type": "positional", + "value_hint": "needle-mcp" + } + ], + "environment_variables": [ + { + "description": "your_needle_api_key", + "name": "NEEDLE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "be6eb263-3492-4073-b28f-0fd33d070982", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "needle-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "/path/to/needle-mcp", - "is_required": true, - "format": "string", - "value": "/path/to/needle-mcp", - "default": "/path/to/needle-mcp", - "type": "positional", - "value_hint": "/path/to/needle-mcp" - }, - { - "description": "needle-mcp", - "is_required": true, - "format": "string", - "value": "needle-mcp", - "default": "needle-mcp", - "type": "positional", - "value_hint": "needle-mcp" - } - ], - "environment_variables": [ - { - "description": "your_needle_api_key", - "name": "NEEDLE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9a6bd437-fe20-4f40-b776-5507f2871441", - "name": "io.github.neondatabase/mcp-server-neon", - "description": "MCP server for interacting with Neon Management API and databases", - "repository": { - "url": "https://github.com/neondatabase-labs/mcp-server-neon", - "source": "github", - "id": "896203400" + "server": { + "name": "io.github.neondatabase/mcp-server-neon", + "description": "MCP server for interacting with Neon Management API and databases", + "status": "active", + "repository": { + "url": "https://github.com/neondatabase-labs/mcp-server-neon", + "source": "github", + "id": "896203400" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@neondatabase/mcp-server-neon", + "version": "0.4.0", + "package_arguments": [ + { + "description": "Start the Neon MCP server", + "is_required": true, + "format": "string", + "value": "start", + "default": "start", + "type": "positional", + "value_hint": "start" + }, + { + "description": "Your Neon API key", + "is_required": true, + "format": "string", + "value": "\u003cYOUR_NEON_API_KEY\u003e", + "default": "\u003cYOUR_NEON_API_KEY\u003e", + "type": "positional", + "value_hint": "\u003cYOUR_NEON_API_KEY\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9a6bd437-fe20-4f40-b776-5507f2871441", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:45Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@neondatabase/mcp-server-neon", - "version": "0.4.0", - "package_arguments": [ - { - "description": "Start the Neon MCP server", - "is_required": true, - "format": "string", - "value": "start", - "default": "start", - "type": "positional", - "value_hint": "start" - }, - { - "description": "Your Neon API key", - "is_required": true, - "format": "string", - "value": "", - "default": "", - "type": "positional", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "afe07206-691c-4bfb-bf17-8a39014cf4a7", - "name": "io.github.oceanbase/mcp-oceanbase", - "description": "MCP Server for OceanBase database and its tools", - "repository": { - "url": "https://github.com/oceanbase/mcp-oceanbase", - "source": "github", - "id": "951176417" + "server": { + "name": "io.github.oceanbase/mcp-oceanbase", + "description": "MCP Server for OceanBase database and its tools", + "status": "active", + "repository": { + "url": "https://github.com/oceanbase/mcp-oceanbase", + "source": "github", + "id": "951176417" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-oceanbase", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "afe07206-691c-4bfb-bf17-8a39014cf4a7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-oceanbase", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2d53cc39-27e0-446f-96b5-1324bab9eb21", - "name": "io.github.octagonai/octagon-mcp-server", - "description": "A free MCP server to analyze and extract insights from public filings, earnings transcripts, financial metrics, stock market data, private market transactions, and deep web-based research within Claude Desktop and other popular MCP clients.", - "repository": { - "url": "https://github.com/OctagonAI/octagon-mcp-server", - "source": "github", - "id": "947569884" + "server": { + "name": "io.github.octagonai/octagon-mcp-server", + "description": "A free MCP server to analyze and extract insights from public filings, earnings transcripts, financial metrics, stock market data, private market transactions, and deep web-based research within Claude Desktop and other popular MCP clients.", + "status": "active", + "repository": { + "url": "https://github.com/OctagonAI/octagon-mcp-server", + "source": "github", + "id": "947569884" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "octagon-mcp", + "version": "1.0.18", + "environment_variables": [ + { + "description": "YOUR_API_KEY_HERE", + "name": "OCTAGON_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2d53cc39-27e0-446f-96b5-1324bab9eb21", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "octagon-mcp", - "version": "1.0.18", - "environment_variables": [ - { - "description": "YOUR_API_KEY_HERE", - "name": "OCTAGON_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4632fbcb-d313-4e26-ad1d-aea8f57524f7", - "name": "io.github.oxylabs/oxylabs-mcp", - "description": "Official Oxylabs MCP integration", - "repository": { - "url": "https://github.com/oxylabs/oxylabs-mcp", - "source": "github", - "id": "918221533" + "server": { + "name": "io.github.oxylabs/oxylabs-mcp", + "description": "Official Oxylabs MCP integration", + "status": "active", + "repository": { + "url": "https://github.com/oxylabs/oxylabs-mcp", + "source": "github", + "id": "918221533" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "oxylabs-mcp", + "version": "0.2.0", + "package_arguments": [ + { + "description": "Set the working directory", + "is_required": true, + "format": "string", + "value": "--directory /\u003cAbsolute-path-to-folder\u003e/oxylabs-mcp", + "default": "--directory /\u003cAbsolute-path-to-folder\u003e/oxylabs-mcp", + "type": "named", + "name": "--directory /\u003cAbsolute-path-to-folder\u003e/oxylabs-mcp", + "value_hint": "/\u003cAbsolute-path-to-folder\u003e/oxylabs-mcp" + }, + { + "description": "Python application/module to run", + "is_required": true, + "format": "string", + "value": "oxylabs-mcp", + "default": "oxylabs-mcp", + "type": "positional", + "value_hint": "oxylabs-mcp" + } + ], + "environment_variables": [ + { + "description": "OXYLABS_USERNAME", + "name": "OXYLABS_USERNAME" + }, + { + "description": "OXYLABS_PASSWORD", + "name": "OXYLABS_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4632fbcb-d313-4e26-ad1d-aea8f57524f7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "oxylabs-mcp", - "version": "0.2.0", - "package_arguments": [ - { - "description": "Set the working directory", - "is_required": true, - "format": "string", - "value": "--directory //oxylabs-mcp", - "default": "--directory //oxylabs-mcp", - "type": "named", - "name": "--directory //oxylabs-mcp", - "value_hint": "//oxylabs-mcp" - }, - { - "description": "Python application/module to run", - "is_required": true, - "format": "string", - "value": "oxylabs-mcp", - "default": "oxylabs-mcp", - "type": "positional", - "value_hint": "oxylabs-mcp" - } - ], - "environment_variables": [ - { - "description": "OXYLABS_USERNAME", - "name": "OXYLABS_USERNAME" - }, - { - "description": "OXYLABS_PASSWORD", - "name": "OXYLABS_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "be79836b-8a99-4e4e-9487-c81c02833f4a", - "name": "io.github.paddlehq/paddle-mcp-server", - "description": "Interact with the Paddle API using AI assistants like Claude, or in AI-powered IDEs like Cursor. Manage product catalog, billing and subscriptions, and reports.", - "repository": { - "url": "https://github.com/PaddleHQ/paddle-mcp-server", - "source": "github", - "id": "955461567" + "server": { + "name": "io.github.paddlehq/paddle-mcp-server", + "description": "Interact with the Paddle API using AI assistants like Claude, or in AI-powered IDEs like Cursor. Manage product catalog, billing and subscriptions, and reports.", + "status": "active", + "repository": { + "url": "https://github.com/PaddleHQ/paddle-mcp-server", + "source": "github", + "id": "955461567" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@paddle/paddle-mcp", + "version": "0.1.2", + "package_arguments": [ + { + "description": "Path to the mcp server entry point", + "is_required": true, + "format": "string", + "value": "path/to/paddle-mcp-server/build/index.js", + "default": "path/to/paddle-mcp-server/build/index.js", + "type": "positional", + "value_hint": "path/to/paddle-mcp-server/build/index.js" + } + ], + "environment_variables": [ + { + "description": "your_api_key", + "name": "PADDLE_API_KEY" + }, + { + "description": "sandbox", + "name": "PADDLE_ENVIRONMENT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "be79836b-8a99-4e4e-9487-c81c02833f4a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:00:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@paddle/paddle-mcp", - "version": "0.1.2", - "package_arguments": [ - { - "description": "Path to the mcp server entry point", - "is_required": true, - "format": "string", - "value": "path/to/paddle-mcp-server/build/index.js", - "default": "path/to/paddle-mcp-server/build/index.js", - "type": "positional", - "value_hint": "path/to/paddle-mcp-server/build/index.js" - } - ], - "environment_variables": [ - { - "description": "your_api_key", - "name": "PADDLE_API_KEY" - }, - { - "description": "sandbox", - "name": "PADDLE_ENVIRONMENT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9eab3795-a96d-4fad-8521-921599e85240", - "name": "io.github.ppl-ai/modelcontextprotocol", - "description": "A Model Context Protocol Server connector for Perplexity API, to enable web search without leaving the MCP ecosystem.", - "repository": { - "url": "https://github.com/ppl-ai/modelcontextprotocol", - "source": "github", - "id": "946214670" + "server": { + "name": "io.github.ppl-ai/modelcontextprotocol", + "description": "A Model Context Protocol Server connector for Perplexity API, to enable web search without leaving the MCP ecosystem.", + "status": "active", + "repository": { + "url": "https://github.com/ppl-ai/modelcontextprotocol", + "source": "github", + "id": "946214670" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "ppl-ai/modelcontextprotocol", + "version": "", + "environment_variables": [ + { + "description": "YOUR_API_KEY_HERE", + "name": "PERPLEXITY_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9eab3795-a96d-4fad-8521-921599e85240", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:00Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "ppl-ai/modelcontextprotocol", - "version": "", - "environment_variables": [ - { - "description": "YOUR_API_KEY_HERE", - "name": "PERPLEXITY_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ed4c9613-5046-4570-8d15-209f7294ba75", - "name": "io.github.pinecone-io/pinecone-mcp", - "description": "Connect your Pinecone projects to Cursor, Claude, and other AI assistants", - "repository": { - "url": "https://github.com/pinecone-io/pinecone-mcp", - "source": "github", - "id": "963450460" + "server": { + "name": "io.github.pinecone-io/pinecone-mcp", + "description": "Connect your Pinecone projects to Cursor, Claude, and other AI assistants", + "status": "active", + "repository": { + "url": "https://github.com/pinecone-io/pinecone-mcp", + "source": "github", + "id": "963450460" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@pinecone-database/mcp", + "version": "0.1.14" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ed4c9613-5046-4570-8d15-209f7294ba75", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@pinecone-database/mcp", - "version": "0.1.14" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "08668c6a-c2f6-47b0-a4e0-75a8ee9bcf10", - "name": "io.github.pinecone-io/assistant-mcp", - "description": "Pinecone Assistant MCP server", - "repository": { - "url": "https://github.com/pinecone-io/assistant-mcp", - "source": "github", - "id": "940446625" + "server": { + "name": "io.github.pinecone-io/assistant-mcp", + "description": "Pinecone Assistant MCP server", + "status": "active", + "repository": { + "url": "https://github.com/pinecone-io/assistant-mcp", + "source": "github", + "id": "940446625" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "pinecone-io/assistant-mcp", + "version": "", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "-e PINECONE_API_KEY", + "is_required": true, + "format": "string", + "value": "-e PINECONE_API_KEY", + "default": "-e PINECONE_API_KEY", + "type": "named", + "name": "-e PINECONE_API_KEY", + "value_hint": "PINECONE_API_KEY" + }, + { + "description": "-e PINECONE_ASSISTANT_HOST", + "is_required": true, + "format": "string", + "value": "-e PINECONE_ASSISTANT_HOST", + "default": "-e PINECONE_ASSISTANT_HOST", + "type": "named", + "name": "-e PINECONE_ASSISTANT_HOST", + "value_hint": "PINECONE_ASSISTANT_HOST" + }, + { + "description": "pinecone/assistant-mcp", + "is_required": true, + "format": "string", + "value": "pinecone/assistant-mcp", + "default": "pinecone/assistant-mcp", + "type": "positional", + "value_hint": "pinecone/assistant-mcp" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_PINECONE_API_KEY_HERE\u003e", + "name": "PINECONE_API_KEY" + }, + { + "description": "\u003cYOUR_PINECONE_ASSISTANT_HOST_HERE\u003e", + "name": "PINECONE_ASSISTANT_HOST" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "08668c6a-c2f6-47b0-a4e0-75a8ee9bcf10", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "pinecone-io/assistant-mcp", - "version": "", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "-e PINECONE_API_KEY", - "is_required": true, - "format": "string", - "value": "-e PINECONE_API_KEY", - "default": "-e PINECONE_API_KEY", - "type": "named", - "name": "-e PINECONE_API_KEY", - "value_hint": "PINECONE_API_KEY" - }, - { - "description": "-e PINECONE_ASSISTANT_HOST", - "is_required": true, - "format": "string", - "value": "-e PINECONE_ASSISTANT_HOST", - "default": "-e PINECONE_ASSISTANT_HOST", - "type": "named", - "name": "-e PINECONE_ASSISTANT_HOST", - "value_hint": "PINECONE_ASSISTANT_HOST" - }, - { - "description": "pinecone/assistant-mcp", - "is_required": true, - "format": "string", - "value": "pinecone/assistant-mcp", - "default": "pinecone/assistant-mcp", - "type": "positional", - "value_hint": "pinecone/assistant-mcp" - } - ], - "environment_variables": [ - { - "description": "", - "name": "PINECONE_API_KEY" - }, - { - "description": "", - "name": "PINECONE_ASSISTANT_HOST" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "324d6879-eb6f-4565-bdeb-6c4b00d91384", - "name": "io.github.ragieai/ragie-mcp-server", - "description": "Ragie Model Context Protocol Server", - "repository": { - "url": "https://github.com/ragieai/ragie-mcp-server", - "source": "github", - "id": "940305209" + "server": { + "name": "io.github.ragieai/ragie-mcp-server", + "description": "Ragie Model Context Protocol Server", + "status": "active", + "repository": { + "url": "https://github.com/ragieai/ragie-mcp-server", + "source": "github", + "id": "940305209" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@ragieai/mcp-server", + "version": "0.0.7", + "package_arguments": [ + { + "description": "Partition identifier (optional)", + "is_required": true, + "format": "string", + "value": "--partition optional_partition_id", + "default": "--partition optional_partition_id", + "type": "named", + "name": "--partition optional_partition_id", + "value_hint": "optional_partition_id" + } + ], + "environment_variables": [ + { + "description": "your_api_key", + "name": "RAGIE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "324d6879-eb6f-4565-bdeb-6c4b00d91384", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@ragieai/mcp-server", - "version": "0.0.7", - "package_arguments": [ - { - "description": "Partition identifier (optional)", - "is_required": true, - "format": "string", - "value": "--partition optional_partition_id", - "default": "--partition optional_partition_id", - "type": "named", - "name": "--partition optional_partition_id", - "value_hint": "optional_partition_id" - } - ], - "environment_variables": [ - { - "description": "your_api_key", - "name": "RAGIE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "87f325e6-a742-43e4-b8ae-069f7301475d", - "name": "io.github.redis/mcp-redis", - "description": "The official Redis MCP Server is a natural language interface designed for agentic applications to manage and search data in Redis efficiently", - "repository": { - "url": "https://github.com/redis/mcp-redis", - "source": "github", - "id": "959084910" + "server": { + "name": "io.github.redis/mcp-redis", + "description": "The official Redis MCP Server is a natural language interface designed for agentic applications to manage and search data in Redis efficiently", + "status": "active", + "repository": { + "url": "https://github.com/redis/mcp-redis", + "source": "github", + "id": "959084910" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "redis-mcp-server", + "version": "0.2.0", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "87f325e6-a742-43e4-b8ae-069f7301475d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "redis-mcp-server", - "version": "0.2.0", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b8c0e12b-0c04-486d-95a7-caa33b9eefeb", - "name": "io.github.redis/mcp-redis-cloud", - "description": "", - "repository": { - "url": "https://github.com/redis/mcp-redis-cloud", - "source": "github", - "id": "956477944" + "server": { + "name": "io.github.redis/mcp-redis-cloud", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/redis/mcp-redis-cloud", + "source": "github", + "id": "956477944" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-redis-cloud", + "version": "1.0.0", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "-e API_KEY=\u003cyour_redis_cloud_api_key\u003e", + "is_required": true, + "format": "string", + "value": "-e API_KEY=\u003cyour_redis_cloud_api_key\u003e", + "default": "-e API_KEY=\u003cyour_redis_cloud_api_key\u003e", + "type": "named", + "name": "-e API_KEY=\u003cyour_redis_cloud_api_key\u003e", + "value_hint": "API_KEY=\u003cyour_redis_cloud_api_key\u003e" + }, + { + "description": "-e SECRET_KEY=\u003cyour_redis_cloud_api_secret_key\u003e", + "is_required": true, + "format": "string", + "value": "-e SECRET_KEY=\u003cyour_redis_cloud_api_secret_key\u003e", + "default": "-e SECRET_KEY=\u003cyour_redis_cloud_api_secret_key\u003e", + "type": "named", + "name": "-e SECRET_KEY=\u003cyour_redis_cloud_api_secret_key\u003e", + "value_hint": "SECRET_KEY=\u003cyour_redis_cloud_api_secret_key\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b8c0e12b-0c04-486d-95a7-caa33b9eefeb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:13Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-redis-cloud", - "version": "1.0.0", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "-e API_KEY=", - "is_required": true, - "format": "string", - "value": "-e API_KEY=", - "default": "-e API_KEY=", - "type": "named", - "name": "-e API_KEY=", - "value_hint": "API_KEY=" - }, - { - "description": "-e SECRET_KEY=", - "is_required": true, - "format": "string", - "value": "-e SECRET_KEY=", - "default": "-e SECRET_KEY=", - "type": "named", - "name": "-e SECRET_KEY=", - "value_hint": "SECRET_KEY=" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "823afe6f-4494-4fc1-a2ab-2ca989e59d21", - "name": "io.github.qdrant/mcp-server-qdrant", - "description": "An official Qdrant Model Context Protocol (MCP) server implementation", - "repository": { - "url": "https://github.com/qdrant/mcp-server-qdrant", - "source": "github", - "id": "897308110" + "server": { + "name": "io.github.qdrant/mcp-server-qdrant", + "description": "An official Qdrant Model Context Protocol (MCP) server implementation", + "status": "active", + "repository": { + "url": "https://github.com/qdrant/mcp-server-qdrant", + "source": "github", + "id": "897308110" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-qdrant", + "version": "0.7.1", + "package_arguments": [ + { + "description": "Publish port 8000:8000", + "is_required": true, + "format": "string", + "value": "-p 8000:8000", + "default": "-p 8000:8000", + "type": "named", + "name": "-p 8000:8000", + "value_hint": "8000:8000" + }, + { + "description": "Run in interactive mode", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "Remove container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Set environment variable QDRANT_URL", + "is_required": true, + "format": "string", + "value": "-e QDRANT_URL", + "default": "-e QDRANT_URL", + "type": "named", + "name": "-e QDRANT_URL", + "value_hint": "QDRANT_URL" + }, + { + "description": "Set environment variable QDRANT_API_KEY", + "is_required": true, + "format": "string", + "value": "-e QDRANT_API_KEY", + "default": "-e QDRANT_API_KEY", + "type": "named", + "name": "-e QDRANT_API_KEY", + "value_hint": "QDRANT_API_KEY" + }, + { + "description": "Set environment variable COLLECTION_NAME", + "is_required": true, + "format": "string", + "value": "-e COLLECTION_NAME", + "default": "-e COLLECTION_NAME", + "type": "named", + "name": "-e COLLECTION_NAME", + "value_hint": "COLLECTION_NAME" + }, + { + "description": "Docker image to run", + "is_required": true, + "format": "string", + "value": "mcp-server-qdrant", + "default": "mcp-server-qdrant", + "type": "positional", + "value_hint": "mcp-server-qdrant" + } + ], + "environment_variables": [ + { + "description": "${input:qdrantUrl}", + "name": "QDRANT_URL" + }, + { + "description": "${input:qdrantApiKey}", + "name": "QDRANT_API_KEY" + }, + { + "description": "${input:collectionName}", + "name": "COLLECTION_NAME" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "823afe6f-4494-4fc1-a2ab-2ca989e59d21", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:35Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-qdrant", - "version": "0.7.1", - "package_arguments": [ - { - "description": "Publish port 8000:8000", - "is_required": true, - "format": "string", - "value": "-p 8000:8000", - "default": "-p 8000:8000", - "type": "named", - "name": "-p 8000:8000", - "value_hint": "8000:8000" - }, - { - "description": "Run in interactive mode", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "Remove container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Set environment variable QDRANT_URL", - "is_required": true, - "format": "string", - "value": "-e QDRANT_URL", - "default": "-e QDRANT_URL", - "type": "named", - "name": "-e QDRANT_URL", - "value_hint": "QDRANT_URL" - }, - { - "description": "Set environment variable QDRANT_API_KEY", - "is_required": true, - "format": "string", - "value": "-e QDRANT_API_KEY", - "default": "-e QDRANT_API_KEY", - "type": "named", - "name": "-e QDRANT_API_KEY", - "value_hint": "QDRANT_API_KEY" - }, - { - "description": "Set environment variable COLLECTION_NAME", - "is_required": true, - "format": "string", - "value": "-e COLLECTION_NAME", - "default": "-e COLLECTION_NAME", - "type": "named", - "name": "-e COLLECTION_NAME", - "value_hint": "COLLECTION_NAME" - }, - { - "description": "Docker image to run", - "is_required": true, - "format": "string", - "value": "mcp-server-qdrant", - "default": "mcp-server-qdrant", - "type": "positional", - "value_hint": "mcp-server-qdrant" - } - ], - "environment_variables": [ - { - "description": "${input:qdrantUrl}", - "name": "QDRANT_URL" - }, - { - "description": "${input:qdrantApiKey}", - "name": "QDRANT_API_KEY" - }, - { - "description": "${input:collectionName}", - "name": "COLLECTION_NAME" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "687591a4-a5da-44df-8d55-f32e19d5658a", - "name": "io.github.ramp-public/ramp-mcp", - "description": "ramp_mcp", - "repository": { - "url": "https://github.com/ramp-public/ramp_mcp", - "source": "github", - "id": "951969645" + "server": { + "name": "io.github.ramp-public/ramp-mcp", + "description": "ramp_mcp", + "status": "active", + "repository": { + "url": "https://github.com/ramp-public/ramp_mcp", + "source": "github", + "id": "951969645" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "ramp-mcp", + "version": "0.0.1", + "package_arguments": [ + { + "description": "Specify the directory to use", + "is_required": true, + "format": "string", + "value": "--directory /\u003cABSOLUTE-PATH-TO\u003e/ramp-mcp", + "default": "--directory /\u003cABSOLUTE-PATH-TO\u003e/ramp-mcp", + "type": "named", + "name": "--directory /\u003cABSOLUTE-PATH-TO\u003e/ramp-mcp", + "value_hint": "/\u003cABSOLUTE-PATH-TO\u003e/ramp-mcp" + }, + { + "description": "Application name", + "is_required": true, + "format": "string", + "value": "ramp-mcp", + "default": "ramp-mcp", + "type": "positional", + "value_hint": "ramp-mcp" + }, + { + "description": "Run in silent mode", + "is_required": true, + "format": "string", + "value": "-s", + "default": "-s", + "type": "named", + "name": "-s" + }, + { + "description": "Specify resource permissions", + "is_required": true, + "format": "string", + "value": "transactions:read,reimbursements:read", + "default": "transactions:read,reimbursements:read", + "type": "positional", + "value_hint": "transactions:read,reimbursements:read" + } + ], + "environment_variables": [ + { + "description": "\u003cCLIENT_ID\u003e", + "name": "RAMP_CLIENT_ID" + }, + { + "description": "\u003cCLIENT_SECRET\u003e", + "name": "RAMP_CLIENT_SECRET" + }, + { + "description": "\u003cdemo|qa|prd\u003e", + "name": "RAMP_ENV" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "687591a4-a5da-44df-8d55-f32e19d5658a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "ramp-mcp", - "version": "0.0.1", - "package_arguments": [ - { - "description": "Specify the directory to use", - "is_required": true, - "format": "string", - "value": "--directory //ramp-mcp", - "default": "--directory //ramp-mcp", - "type": "named", - "name": "--directory //ramp-mcp", - "value_hint": "//ramp-mcp" - }, - { - "description": "Application name", - "is_required": true, - "format": "string", - "value": "ramp-mcp", - "default": "ramp-mcp", - "type": "positional", - "value_hint": "ramp-mcp" - }, - { - "description": "Run in silent mode", - "is_required": true, - "format": "string", - "value": "-s", - "default": "-s", - "type": "named", - "name": "-s" - }, - { - "description": "Specify resource permissions", - "is_required": true, - "format": "string", - "value": "transactions:read,reimbursements:read", - "default": "transactions:read,reimbursements:read", - "type": "positional", - "value_hint": "transactions:read,reimbursements:read" - } - ], - "environment_variables": [ - { - "description": "", - "name": "RAMP_CLIENT_ID" - }, - { - "description": "", - "name": "RAMP_CLIENT_SECRET" - }, - { - "description": "", - "name": "RAMP_ENV" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f6ee7600-c27a-4210-9a94-29a35c41c274", - "name": "io.github.mindscapehq/mcp-server-raygun", - "description": "", - "repository": { - "url": "https://github.com/MindscapeHQ/mcp-server-raygun", - "source": "github", - "id": "895741231" + "server": { + "name": "io.github.mindscapehq/mcp-server-raygun", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/MindscapeHQ/mcp-server-raygun", + "source": "github", + "id": "895741231" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@raygun.io/mcp-server-raygun", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your-pat-token-ken", + "name": "RAYGUN_PAT_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f6ee7600-c27a-4210-9a94-29a35c41c274", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@raygun.io/mcp-server-raygun", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your-pat-token-ken", - "name": "RAYGUN_PAT_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5e354d7f-e19e-40ba-a760-342d5c93e9aa", - "name": "io.github.rember/rember-mcp", - "description": "A Model Context Protocol (MCP) server for Rember.", - "repository": { - "url": "https://github.com/rember/rember-mcp", - "source": "github", - "id": "940533374" + "server": { + "name": "io.github.rember/rember-mcp", + "description": "A Model Context Protocol (MCP) server for Rember.", + "status": "active", + "repository": { + "url": "https://github.com/rember/rember-mcp", + "source": "github", + "id": "940533374" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@getrember/mcp", + "version": "1.1.3", + "package_arguments": [ + { + "description": "Rember API Key", + "is_required": true, + "format": "string", + "value": "--api-key=YOUR_REMBER_API_KEY", + "default": "--api-key=YOUR_REMBER_API_KEY", + "type": "named", + "name": "--api-key=YOUR_REMBER_API_KEY", + "value_hint": "YOUR_REMBER_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5e354d7f-e19e-40ba-a760-342d5c93e9aa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@getrember/mcp", - "version": "1.1.3", - "package_arguments": [ - { - "description": "Rember API Key", - "is_required": true, - "format": "string", - "value": "--api-key=YOUR_REMBER_API_KEY", - "default": "--api-key=YOUR_REMBER_API_KEY", - "type": "named", - "name": "--api-key=YOUR_REMBER_API_KEY", - "value_hint": "YOUR_REMBER_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7b93304c-5a49-45a7-a37c-84e82707d81d", - "name": "io.github.riza-io/riza-mcp", - "description": "", - "repository": { - "url": "https://github.com/riza-io/riza-mcp", - "source": "github", - "id": "902093354" + "server": { + "name": "io.github.riza-io/riza-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/riza-io/riza-mcp", + "source": "github", + "id": "902093354" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "riza-io/riza-mcp", + "version": "", + "environment_variables": [ + { + "description": "your-api-key", + "name": "RIZA_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7b93304c-5a49-45a7-a37c-84e82707d81d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "riza-io/riza-mcp", - "version": "", - "environment_variables": [ - { - "description": "your-api-key", - "name": "RIZA_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cb1647e0-2df7-4f2a-b63b-cfaea1e5e98a", - "name": "io.github.fatwang2/search1api-mcp", - "description": "", - "repository": { - "url": "https://github.com/fatwang2/search1api-mcp", - "source": "github", - "id": "894382523" + "server": { + "name": "io.github.fatwang2/search1api-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/fatwang2/search1api-mcp", + "source": "github", + "id": "894382523" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "search1api-mcp", + "version": "0.2.0", + "environment_variables": [ + { + "description": "YOUR_SEARCH1API_KEY", + "name": "SEARCH1API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cb1647e0-2df7-4f2a-b63b-cfaea1e5e98a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "search1api-mcp", - "version": "0.2.0", - "environment_variables": [ - { - "description": "YOUR_SEARCH1API_KEY", - "name": "SEARCH1API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "87c7dec1-1b0c-414b-9f7b-7a113e67989d", - "name": "io.github.screenshotone/mcp", - "description": "A simple implementation of an MCP server for the ScreenshotOne API", - "repository": { - "url": "https://github.com/screenshotone/mcp", - "source": "github", - "id": "934098377" + "server": { + "name": "io.github.screenshotone/mcp", + "description": "A simple implementation of an MCP server for the ScreenshotOne API", + "status": "active", + "repository": { + "url": "https://github.com/screenshotone/mcp", + "source": "github", + "id": "934098377" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "screenshotone-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Positional argument for 'path/to/screenshotone/mcp/build/index.js'", + "is_required": true, + "format": "string", + "value": "path/to/screenshotone/mcp/build/index.js", + "default": "path/to/screenshotone/mcp/build/index.js", + "type": "positional", + "value_hint": "path/to/screenshotone/mcp/build/index.js" + } + ], + "environment_variables": [ + { + "description": "\u003cyour api key\u003e", + "name": "SCREENSHOTONE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "87c7dec1-1b0c-414b-9f7b-7a113e67989d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "screenshotone-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Positional argument for 'path/to/screenshotone/mcp/build/index.js'", - "is_required": true, - "format": "string", - "value": "path/to/screenshotone/mcp/build/index.js", - "default": "path/to/screenshotone/mcp/build/index.js", - "type": "positional", - "value_hint": "path/to/screenshotone/mcp/build/index.js" - } - ], - "environment_variables": [ - { - "description": "", - "name": "SCREENSHOTONE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d012ea8c-2f32-43e4-9583-7418d750193e", - "name": "io.github.semgrep/mcp", - "description": "A MCP server for using Semgrep to scan code for security vulnerabilities.", - "repository": { - "url": "https://github.com/semgrep/mcp", - "source": "github", - "id": "950213855" + "server": { + "name": "io.github.semgrep/mcp", + "description": "A MCP server for using Semgrep to scan code for security vulnerabilities.", + "status": "active", + "repository": { + "url": "https://github.com/semgrep/mcp", + "source": "github", + "id": "950213855" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "semgrep-mcp", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d012ea8c-2f32-43e4-9583-7418d750193e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "semgrep-mcp", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "901e1b1c-7414-4240-89b8-1def9aca4708", - "name": "io.github.singlestore-labs/mcp-server-singlestore", - "description": "MCP server for interacting with SingleStore Management API and services", - "repository": { - "url": "https://github.com/singlestore-labs/mcp-server-singlestore", - "source": "github", - "id": "941979361" + "server": { + "name": "io.github.singlestore-labs/mcp-server-singlestore", + "description": "MCP server for interacting with SingleStore Management API and services", + "status": "active", + "repository": { + "url": "https://github.com/singlestore-labs/mcp-server-singlestore", + "source": "github", + "id": "941979361" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "singlestore_mcp_server", + "version": "", + "package_arguments": [ + { + "description": "Start the single store MCP server", + "is_required": true, + "format": "string", + "value": "start", + "default": "start", + "type": "positional", + "value_hint": "start" + }, + { + "description": "SingleStore API Key", + "is_required": true, + "format": "string", + "value": "\u003cSINGLESTORE_API_KEY\u003e", + "default": "\u003cSINGLESTORE_API_KEY\u003e", + "type": "positional", + "value_hint": "\u003cSINGLESTORE_API_KEY\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "901e1b1c-7414-4240-89b8-1def9aca4708", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:01:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "singlestore_mcp_server", - "version": "", - "package_arguments": [ - { - "description": "Start the single store MCP server", - "is_required": true, - "format": "string", - "value": "start", - "default": "start", - "type": "positional", - "value_hint": "start" - }, - { - "description": "SingleStore API Key", - "is_required": true, - "format": "string", - "value": "", - "default": "", - "type": "positional", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ba8028f7-73e6-4d3d-9974-790d438a1446", - "name": "io.github.tavily-ai/tavily-mcp", - "description": "", - "repository": { - "url": "https://github.com/tavily-ai/tavily-mcp", - "source": "github", - "id": "923109265" + "server": { + "name": "io.github.tavily-ai/tavily-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/tavily-ai/tavily-mcp", + "source": "github", + "id": "923109265" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "tavily-mcp", + "version": "0.2.0", + "environment_variables": [ + { + "description": "your-api-key-here", + "name": "TAVILY_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ba8028f7-73e6-4d3d-9974-790d438a1446", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "tavily-mcp", - "version": "0.2.0", - "environment_variables": [ - { - "description": "your-api-key-here", - "name": "TAVILY_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9dd7f908-4c1b-4ba3-a33f-86be881cc8b6", - "name": "io.github.msgbyte/tianji", - "description": "Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives", - "repository": { - "url": "https://github.com/msgbyte/tianji", - "source": "github", - "id": "685392779" + "server": { + "name": "io.github.msgbyte/tianji", + "description": "Tianji: Insight into everything, Website Analytics + Uptime Monitor + Server Status. not only another GA alternatives", + "status": "active", + "repository": { + "url": "https://github.com/msgbyte/tianji", + "source": "github", + "id": "685392779" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "tianji", + "version": "1.20.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9dd7f908-4c1b-4ba3-a33f-86be881cc8b6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "tianji", - "version": "1.20.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "adb9a058-774f-4505-aa80-1afa9bab8cb9", - "name": "io.github.tinybirdco/mcp-tinybird", - "description": "", - "repository": { - "url": "https://github.com/tinybirdco/mcp-tinybird", - "source": "github", - "id": "894960290" + "server": { + "name": "io.github.tinybirdco/mcp-tinybird", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/tinybirdco/mcp-tinybird", + "source": "github", + "id": "894960290" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-tinybird", + "version": "1.0.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "adb9a058-774f-4505-aa80-1afa9bab8cb9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-tinybird", - "version": "1.0.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8b01f838-0cb6-4c17-b381-108713321d6d", - "name": "io.github.unstructured-io/uns-mcp", - "description": "", - "repository": { - "url": "https://github.com/Unstructured-IO/UNS-MCP", - "source": "github", - "id": "947454003" + "server": { + "name": "io.github.unstructured-io/uns-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Unstructured-IO/UNS-MCP", + "source": "github", + "id": "947454003" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "uns_mcp", + "version": "0.1.6", + "package_arguments": [ + { + "description": "Directory to use", + "is_required": true, + "format": "string", + "value": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", + "default": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", + "type": "named", + "name": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", + "value_hint": "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp" + }, + { + "description": "Python script file", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8b01f838-0cb6-4c17-b381-108713321d6d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:15Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "uns_mcp", - "version": "0.1.6", - "package_arguments": [ - { - "description": "Directory to use", - "is_required": true, - "format": "string", - "value": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", - "default": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", - "type": "named", - "name": "--directory ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp", - "value_hint": "ABSOLUTE/PATH/TO/YOUR-UNS-MCP-REPO/uns_mcp" - }, - { - "description": "Python script file", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c1b727f7-1570-465f-8153-585840de260a", - "name": "io.github.vectorize-io/vectorize-mcp-server", - "description": "Official Vectorize MCP Server", - "repository": { - "url": "https://github.com/vectorize-io/vectorize-mcp-server", - "source": "github", - "id": "946057362" + "server": { + "name": "io.github.vectorize-io/vectorize-mcp-server", + "description": "Official Vectorize MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/vectorize-io/vectorize-mcp-server", + "source": "github", + "id": "946057362" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@vectorize-io/vectorize-mcp-server", + "version": "0.4.3", + "package_arguments": [ + { + "description": "Generate a financial status report about the company", + "is_required": true, + "format": "string", + "value": "Generate a financial status report about the company", + "default": "Generate a financial status report about the company", + "type": "named", + "name": "Generate a financial status report about the company", + "value_hint": "Generate a financial status report about the company" + }, + { + "description": "true", + "is_required": true, + "format": "string", + "value": "true", + "default": "true", + "type": "named", + "name": "true", + "value_hint": "true" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c1b727f7-1570-465f-8153-585840de260a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@vectorize-io/vectorize-mcp-server", - "version": "0.4.3", - "package_arguments": [ - { - "description": "Generate a financial status report about the company", - "is_required": true, - "format": "string", - "value": "Generate a financial status report about the company", - "default": "Generate a financial status report about the company", - "type": "named", - "name": "Generate a financial status report about the company", - "value_hint": "Generate a financial status report about the company" - }, - { - "description": "true", - "is_required": true, - "format": "string", - "value": "true", - "default": "true", - "type": "named", - "name": "true", - "value_hint": "true" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c0c30db1-cc08-426e-886f-0bdbcd31d101", - "name": "io.github.verodat/verodat-mcp-server", - "description": "Verodat MCP Server Implementation", - "repository": { - "url": "https://github.com/Verodat/verodat-mcp-server", - "source": "github", - "id": "924683561" + "server": { + "name": "io.github.verodat/verodat-mcp-server", + "description": "Verodat MCP Server Implementation", + "status": "active", + "repository": { + "url": "https://github.com/Verodat/verodat-mcp-server", + "source": "github", + "id": "924683561" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "verodat-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Path to script file to run", + "is_required": true, + "format": "string", + "value": "path/to/verodat-mcp-server/build/src/consume.js", + "default": "path/to/verodat-mcp-server/build/src/consume.js", + "type": "positional", + "value_hint": "path/to/verodat-mcp-server/build/src/consume.js" + } + ], + "environment_variables": [ + { + "description": "your-api-key", + "name": "VERODAT_AI_API_KEY" + }, + { + "description": "https://verodat.io/api/v3", + "name": "VERODAT_API_BASE_URL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c0c30db1-cc08-426e-886f-0bdbcd31d101", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "verodat-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Path to script file to run", - "is_required": true, - "format": "string", - "value": "path/to/verodat-mcp-server/build/src/consume.js", - "default": "path/to/verodat-mcp-server/build/src/consume.js", - "type": "positional", - "value_hint": "path/to/verodat-mcp-server/build/src/consume.js" - } - ], - "environment_variables": [ - { - "description": "your-api-key", - "name": "VERODAT_AI_API_KEY" - }, - { - "description": "https://verodat.io/api/v3", - "name": "VERODAT_API_BASE_URL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2cc83e0a-3ca5-4e21-b346-83254cc72e1f", - "name": "io.github.veyrax/veyrax-mcp", - "description": "", - "repository": { - "url": "https://github.com/VeyraX/veyrax-mcp", - "source": "github", - "id": "942928935" + "server": { + "name": "io.github.veyrax/veyrax-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/VeyraX/veyrax-mcp", + "source": "github", + "id": "942928935" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "veyrax-mcp", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2cc83e0a-3ca5-4e21-b346-83254cc72e1f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "veyrax-mcp", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4bc3b6d3-666e-4bb7-8ad7-6b38bc9c5ab8", - "name": "io.github.xeroapi/xero-mcp-server", - "description": "An MCP server that integrates with the MCP protocol. https://modelcontextprotocol.io/introduction", - "repository": { - "url": "https://github.com/XeroAPI/xero-mcp-server", - "source": "github", - "id": "949710667" + "server": { + "name": "io.github.xeroapi/xero-mcp-server", + "description": "An MCP server that integrates with the MCP protocol. https://modelcontextprotocol.io/introduction", + "status": "active", + "repository": { + "url": "https://github.com/XeroAPI/xero-mcp-server", + "source": "github", + "id": "949710667" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@xeroapi/xero-mcp-server", + "version": "0.0.12", + "package_arguments": [ + { + "description": "Path to MCP server entry file", + "is_required": true, + "format": "string", + "value": "insert-your-file-path-here/xero-mcp-server/dist/index.js", + "default": "insert-your-file-path-here/xero-mcp-server/dist/index.js", + "type": "positional", + "value_hint": "insert-your-file-path-here/xero-mcp-server/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "your_client_id_here", + "name": "XERO_CLIENT_ID" + }, + { + "description": "your_client_secret_here", + "name": "XERO_CLIENT_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4bc3b6d3-666e-4bb7-8ad7-6b38bc9c5ab8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@xeroapi/xero-mcp-server", - "version": "0.0.12", - "package_arguments": [ - { - "description": "Path to MCP server entry file", - "is_required": true, - "format": "string", - "value": "insert-your-file-path-here/xero-mcp-server/dist/index.js", - "default": "insert-your-file-path-here/xero-mcp-server/dist/index.js", - "type": "positional", - "value_hint": "insert-your-file-path-here/xero-mcp-server/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "your_client_id_here", - "name": "XERO_CLIENT_ID" - }, - { - "description": "your_client_secret_here", - "name": "XERO_CLIENT_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "64fdea5a-9fe3-4492-b9fb-6260e6c3dc34", - "name": "io.github.zenml-io/mcp-zenml", - "description": "MCP server to connect an MCP client (Cursor, Claude Desktop etc) with your ZenML MLOps and LLMOps pipelines", - "repository": { - "url": "https://github.com/zenml-io/mcp-zenml", - "source": "github", - "id": "937211343" + "server": { + "name": "io.github.zenml-io/mcp-zenml", + "description": "MCP server to connect an MCP client (Cursor, Claude Desktop etc) with your ZenML MLOps and LLMOps pipelines", + "status": "active", + "repository": { + "url": "https://github.com/zenml-io/mcp-zenml", + "source": "github", + "id": "937211343" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "zenml-io/mcp-zenml", + "version": "", + "package_arguments": [ + { + "description": "Python script to run", + "is_required": true, + "format": "string", + "value": "path/to/zenml_server.py", + "default": "path/to/zenml_server.py", + "type": "positional", + "value_hint": "path/to/zenml_server.py" + } + ], + "environment_variables": [ + { + "description": "INFO", + "name": "LOGLEVEL" + }, + { + "description": "1", + "name": "NO_COLOR" + }, + { + "description": "1", + "name": "PYTHONUNBUFFERED" + }, + { + "description": "UTF-8", + "name": "PYTHONIOENCODING" + }, + { + "description": "https://your-zenml-server-goes-here.com", + "name": "ZENML_STORE_URL" + }, + { + "description": "your-api-key-here", + "name": "ZENML_STORE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "64fdea5a-9fe3-4492-b9fb-6260e6c3dc34", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "zenml-io/mcp-zenml", - "version": "", - "package_arguments": [ - { - "description": "Python script to run", - "is_required": true, - "format": "string", - "value": "path/to/zenml_server.py", - "default": "path/to/zenml_server.py", - "type": "positional", - "value_hint": "path/to/zenml_server.py" - } - ], - "environment_variables": [ - { - "description": "INFO", - "name": "LOGLEVEL" - }, - { - "description": "1", - "name": "NO_COLOR" - }, - { - "description": "1", - "name": "PYTHONUNBUFFERED" - }, - { - "description": "UTF-8", - "name": "PYTHONIOENCODING" - }, - { - "description": "https://your-zenml-server-goes-here.com", - "name": "ZENML_STORE_URL" - }, - { - "description": "your-api-key-here", - "name": "ZENML_STORE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "60b95692-579f-4de4-8095-1efdca5d8591", - "name": "io.github.simon-kansara/ableton-live-mcp-server", - "description": "MCP Server implementation for Ableton Live OSC control", - "repository": { - "url": "https://github.com/Simon-Kansara/ableton-live-mcp-server", - "source": "github", - "id": "938133354" + "server": { + "name": "io.github.simon-kansara/ableton-live-mcp-server", + "description": "MCP Server implementation for Ableton Live OSC control", + "status": "active", + "repository": { + "url": "https://github.com/Simon-Kansara/ableton-live-mcp-server", + "source": "github", + "id": "938133354" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "ableton-live-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "60b95692-579f-4de4-8095-1efdca5d8591", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "ableton-live-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "98b8992b-77cc-43a5-825e-d14270fd9ca5", - "name": "io.github.ahujasid/ableton-mcp", - "description": "", - "repository": { - "url": "https://github.com/ahujasid/ableton-mcp", - "source": "github", - "id": "951429064" + "server": { + "name": "io.github.ahujasid/ableton-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/ahujasid/ableton-mcp", + "source": "github", + "id": "951429064" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "ableton-mcp", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "98b8992b-77cc-43a5-825e-d14270fd9ca5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "ableton-mcp", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1101c394-e912-42b6-85be-d2479b72d27f", - "name": "io.github.openbnb-org/mcp-server-airbnb", - "description": "", - "repository": { - "url": "https://github.com/openbnb-org/mcp-server-airbnb", - "source": "github", - "id": "945678498" + "server": { + "name": "io.github.openbnb-org/mcp-server-airbnb", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/openbnb-org/mcp-server-airbnb", + "source": "github", + "id": "945678498" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@openbnb/mcp-server-airbnb", + "version": "0.1.1", + "package_arguments": [ + { + "description": "Ignore robots.txt directives", + "is_required": true, + "format": "string", + "value": "--ignore-robots-txt", + "default": "--ignore-robots-txt", + "type": "named", + "name": "--ignore-robots-txt" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1101c394-e912-42b6-85be-d2479b72d27f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@openbnb/mcp-server-airbnb", - "version": "0.1.1", - "package_arguments": [ - { - "description": "Ignore robots.txt directives", - "is_required": true, - "format": "string", - "value": "--ignore-robots-txt", - "default": "--ignore-robots-txt", - "type": "named", - "name": "--ignore-robots-txt" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ffe051ab-1088-4040-9bbb-8a1bf3fd2a7b", - "name": "io.github.ai-agent-hub/ai-agent-marketplace-index-mcp", - "description": "MCP Server for AI Agent Marketplace Index from DeepNLP", - "repository": { - "url": "https://github.com/AI-Agent-Hub/ai-agent-marketplace-index-mcp", - "source": "github", - "id": "958905017" + "server": { + "name": "io.github.ai-agent-hub/ai-agent-marketplace-index-mcp", + "description": "MCP Server for AI Agent Marketplace Index from DeepNLP", + "status": "active", + "repository": { + "url": "https://github.com/AI-Agent-Hub/ai-agent-marketplace-index-mcp", + "source": "github", + "id": "958905017" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "ai-agent-marketplace-index-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ffe051ab-1088-4040-9bbb-8a1bf3fd2a7b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:37Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "ai-agent-marketplace-index-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4813a35a-7d43-42fa-999d-86e68b2aca1a", - "name": "io.github.goplausible/algorand-mcp", - "description": "Algorand Model Context Protocol (Server & Client)", - "repository": { - "url": "https://github.com/GoPlausible/algorand-mcp", - "source": "github", - "id": "946072706" + "server": { + "name": "io.github.goplausible/algorand-mcp", + "description": "Algorand Model Context Protocol (Server \u0026 Client)", + "status": "active", + "repository": { + "url": "https://github.com/GoPlausible/algorand-mcp", + "source": "github", + "id": "946072706" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "algorand-mcp", + "version": "2.7.7" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4813a35a-7d43-42fa-999d-86e68b2aca1a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "algorand-mcp", - "version": "2.7.7" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ae6d4cd8-c930-4737-9aba-93609f53cde1", - "name": "io.github.yangkyeongmo/mcp-server-apache-airflow", - "description": "", - "repository": { - "url": "https://github.com/yangkyeongmo/mcp-server-apache-airflow", - "source": "github", - "id": "931916510" + "server": { + "name": "io.github.yangkyeongmo/mcp-server-apache-airflow", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/yangkyeongmo/mcp-server-apache-airflow", + "source": "github", + "id": "931916510" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-apache-airflow", + "version": "0.2.2", + "package_arguments": [ + { + "description": "Directory to run the server from", + "is_required": true, + "format": "string", + "value": "--directory /path/to/mcp-server-apache-airflow", + "default": "--directory /path/to/mcp-server-apache-airflow", + "type": "named", + "name": "--directory /path/to/mcp-server-apache-airflow", + "value_hint": "/path/to/mcp-server-apache-airflow" + }, + { + "description": "Name of the Airflow MCP server", + "is_required": true, + "format": "string", + "value": "mcp-server-apache-airflow", + "default": "mcp-server-apache-airflow", + "type": "positional", + "value_hint": "mcp-server-apache-airflow" + } + ], + "environment_variables": [ + { + "description": "https://your-airflow-host", + "name": "AIRFLOW_HOST" + }, + { + "description": "your-username", + "name": "AIRFLOW_USERNAME" + }, + { + "description": "your-password", + "name": "AIRFLOW_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ae6d4cd8-c930-4737-9aba-93609f53cde1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-apache-airflow", - "version": "0.2.2", - "package_arguments": [ - { - "description": "Directory to run the server from", - "is_required": true, - "format": "string", - "value": "--directory /path/to/mcp-server-apache-airflow", - "default": "--directory /path/to/mcp-server-apache-airflow", - "type": "named", - "name": "--directory /path/to/mcp-server-apache-airflow", - "value_hint": "/path/to/mcp-server-apache-airflow" - }, - { - "description": "Name of the Airflow MCP server", - "is_required": true, - "format": "string", - "value": "mcp-server-apache-airflow", - "default": "mcp-server-apache-airflow", - "type": "positional", - "value_hint": "mcp-server-apache-airflow" - } - ], - "environment_variables": [ - { - "description": "https://your-airflow-host", - "name": "AIRFLOW_HOST" - }, - { - "description": "your-username", - "name": "AIRFLOW_USERNAME" - }, - { - "description": "your-password", - "name": "AIRFLOW_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a4902ee8-060c-47d1-9dfc-ec6af1a9c398", - "name": "io.github.domdomegg/airtable-mcp-server", - "description": "🗂️🤖 Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases", - "repository": { - "url": "https://github.com/domdomegg/airtable-mcp-server", - "source": "github", - "id": "902495626" + "server": { + "name": "io.github.domdomegg/airtable-mcp-server", + "description": "🗂️🤖 Airtable Model Context Protocol Server, for allowing AI systems to interact with your Airtable bases", + "status": "active", + "repository": { + "url": "https://github.com/domdomegg/airtable-mcp-server", + "source": "github", + "id": "902495626" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "airtable-mcp-server", + "version": "1.4.1", + "environment_variables": [ + { + "description": "pat123.abc123", + "name": "AIRTABLE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a4902ee8-060c-47d1-9dfc-ec6af1a9c398", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:45Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "airtable-mcp-server", - "version": "1.4.1", - "environment_variables": [ - { - "description": "pat123.abc123", - "name": "AIRTABLE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "04216a87-0760-4f25-b809-42ffbfbb8962", - "name": "io.github.felores/airtable-mcp", - "description": "Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients", - "repository": { - "url": "https://github.com/felores/airtable-mcp", - "source": "github", - "id": "904238387" + "server": { + "name": "io.github.felores/airtable-mcp", + "description": "Search, create and update Airtable bases, tables, fields, and records using Claude Desktop and MCP (Model Context Protocol) clients", + "status": "active", + "repository": { + "url": "https://github.com/felores/airtable-mcp", + "source": "github", + "id": "904238387" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@felores/airtable-mcp-server", + "version": "0.3.0", + "package_arguments": [ + { + "description": "Positional argument for the package entry point", + "is_required": true, + "format": "string", + "value": "path/to/airtable-mcp/build/index.js", + "default": "path/to/airtable-mcp/build/index.js", + "type": "positional", + "value_hint": "path/to/airtable-mcp/build/index.js" + } + ], + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "AIRTABLE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "04216a87-0760-4f25-b809-42ffbfbb8962", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@felores/airtable-mcp-server", - "version": "0.3.0", - "package_arguments": [ - { - "description": "Positional argument for the package entry point", - "is_required": true, - "format": "string", - "value": "path/to/airtable-mcp/build/index.js", - "default": "path/to/airtable-mcp/build/index.js", - "type": "positional", - "value_hint": "path/to/airtable-mcp/build/index.js" - } - ], - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "AIRTABLE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cac9fd2a-2c08-441f-a94d-16c67821221f", - "name": "io.github.calvernaz/alphavantage", - "description": "A MCP server for the stock market data API, Alphavantage API.", - "repository": { - "url": "https://github.com/calvernaz/alphavantage", - "source": "github", - "id": "899668514" + "server": { + "name": "io.github.calvernaz/alphavantage", + "description": "A MCP server for the stock market data API, Alphavantage API.", + "status": "active", + "repository": { + "url": "https://github.com/calvernaz/alphavantage", + "source": "github", + "id": "899668514" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "alphavantage", + "version": "0.3.10" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cac9fd2a-2c08-441f-a94d-16c67821221f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "alphavantage", - "version": "0.3.10" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ad6e04de-5f80-4274-9464-c6bbff533ad3", - "name": "io.github.donghyun-chae/mcp-amadeus", - "description": "Amadeus MCP(Model Context Protocol) Server", - "repository": { - "url": "https://github.com/donghyun-chae/mcp-amadeus", - "source": "github", - "id": "963136865" + "server": { + "name": "io.github.donghyun-chae/mcp-amadeus", + "description": "Amadeus MCP(Model Context Protocol) Server", + "status": "active", + "repository": { + "url": "https://github.com/donghyun-chae/mcp-amadeus", + "source": "github", + "id": "963136865" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-amadeus", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ad6e04de-5f80-4274-9464-c6bbff533ad3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:02:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-amadeus", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fee5894b-e255-408d-9cd2-e6ee29d78d78", - "name": "io.github.datastrato/mcp-server-gravitino", - "description": "MCP server for Apache Gravitino(incubating)", - "repository": { - "url": "https://github.com/datastrato/mcp-server-gravitino", - "source": "github", - "id": "966588444" + "server": { + "name": "io.github.datastrato/mcp-server-gravitino", + "description": "MCP server for Apache Gravitino(incubating)", + "status": "active", + "repository": { + "url": "https://github.com/datastrato/mcp-server-gravitino", + "source": "github", + "id": "966588444" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-gravitino", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Set working directory", + "is_required": true, + "format": "string", + "value": "--directory /Users/user/workspace/mcp-server-gravitino", + "default": "--directory /Users/user/workspace/mcp-server-gravitino", + "type": "named", + "name": "--directory /Users/user/workspace/mcp-server-gravitino", + "value_hint": "/Users/user/workspace/mcp-server-gravitino" + }, + { + "description": "Add fastmcp", + "is_required": true, + "format": "string", + "value": "--with fastmcp", + "default": "--with fastmcp", + "type": "named", + "name": "--with fastmcp", + "value_hint": "fastmcp" + }, + { + "description": "Add httpx", + "is_required": true, + "format": "string", + "value": "--with httpx", + "default": "--with httpx", + "type": "named", + "name": "--with httpx", + "value_hint": "httpx" + }, + { + "description": "Add mcp-server-gravitino", + "is_required": true, + "format": "string", + "value": "--with mcp-server-gravitino", + "default": "--with mcp-server-gravitino", + "type": "named", + "name": "--with mcp-server-gravitino", + "value_hint": "mcp-server-gravitino" + }, + { + "description": "Run python", + "is_required": true, + "format": "string", + "value": "python", + "default": "python", + "type": "positional", + "value_hint": "python" + }, + { + "description": "Run module", + "is_required": true, + "format": "string", + "value": "-m mcp_server_gravitino.server", + "default": "-m mcp_server_gravitino.server", + "type": "named", + "name": "-m mcp_server_gravitino.server", + "value_hint": "mcp_server_gravitino.server" + } + ], + "environment_variables": [ + { + "description": "http://localhost:8090", + "name": "GRAVITINO_URI" + }, + { + "description": "admin", + "name": "GRAVITINO_USERNAME" + }, + { + "description": "admin", + "name": "GRAVITINO_PASSWORD" + }, + { + "description": "metalake_demo", + "name": "GRAVITINO_METALAKE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fee5894b-e255-408d-9cd2-e6ee29d78d78", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-gravitino", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Set working directory", - "is_required": true, - "format": "string", - "value": "--directory /Users/user/workspace/mcp-server-gravitino", - "default": "--directory /Users/user/workspace/mcp-server-gravitino", - "type": "named", - "name": "--directory /Users/user/workspace/mcp-server-gravitino", - "value_hint": "/Users/user/workspace/mcp-server-gravitino" - }, - { - "description": "Add fastmcp", - "is_required": true, - "format": "string", - "value": "--with fastmcp", - "default": "--with fastmcp", - "type": "named", - "name": "--with fastmcp", - "value_hint": "fastmcp" - }, - { - "description": "Add httpx", - "is_required": true, - "format": "string", - "value": "--with httpx", - "default": "--with httpx", - "type": "named", - "name": "--with httpx", - "value_hint": "httpx" - }, - { - "description": "Add mcp-server-gravitino", - "is_required": true, - "format": "string", - "value": "--with mcp-server-gravitino", - "default": "--with mcp-server-gravitino", - "type": "named", - "name": "--with mcp-server-gravitino", - "value_hint": "mcp-server-gravitino" - }, - { - "description": "Run python", - "is_required": true, - "format": "string", - "value": "python", - "default": "python", - "type": "positional", - "value_hint": "python" - }, - { - "description": "Run module", - "is_required": true, - "format": "string", - "value": "-m mcp_server_gravitino.server", - "default": "-m mcp_server_gravitino.server", - "type": "named", - "name": "-m mcp_server_gravitino.server", - "value_hint": "mcp_server_gravitino.server" - } - ], - "environment_variables": [ - { - "description": "http://localhost:8090", - "name": "GRAVITINO_URI" - }, - { - "description": "admin", - "name": "GRAVITINO_USERNAME" - }, - { - "description": "admin", - "name": "GRAVITINO_PASSWORD" - }, - { - "description": "metalake_demo", - "name": "GRAVITINO_METALAKE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0d7bc864-fdf3-4afd-8b44-48468b12d550", - "name": "io.github.omar-v2/mcp-ical", - "description": "A Model Context Protocol Server that allows you to interact with your MacOS Calendar through natural language.", - "repository": { - "url": "https://github.com/Omar-V2/mcp-ical", - "source": "github", - "id": "930007673" + "server": { + "name": "io.github.omar-v2/mcp-ical", + "description": "A Model Context Protocol Server that allows you to interact with your MacOS Calendar through natural language.", + "status": "active", + "repository": { + "url": "https://github.com/Omar-V2/mcp-ical", + "source": "github", + "id": "930007673" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-ical", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "mcp-ical", + "default": "mcp-ical", + "type": "positional", + "value_hint": "mcp-ical" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0d7bc864-fdf3-4afd-8b44-48468b12d550", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:05Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-ical", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "mcp-ical", - "default": "mcp-ical", - "type": "positional", - "value_hint": "mcp-ical" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8a38266e-dee5-41ce-8228-2b51a307785f", - "name": "io.github.peakmojo/applescript-mcp", - "description": "MCP server that execute applescript giving you full control of your Mac", - "repository": { - "url": "https://github.com/peakmojo/applescript-mcp", - "source": "github", - "id": "970501693" + "server": { + "name": "io.github.peakmojo/applescript-mcp", + "description": "MCP server that execute applescript giving you full control of your Mac", + "status": "active", + "repository": { + "url": "https://github.com/peakmojo/applescript-mcp", + "source": "github", + "id": "970501693" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-server-applescript", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8a38266e-dee5-41ce-8228-2b51a307785f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-server-applescript", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "775bd83c-b33a-471c-9deb-8a444fb4ac79", - "name": "io.github.diegobit/aranet4-mcp-server", - "description": "SImple MCP server to manage your aranet4 device and local db.", - "repository": { - "url": "https://github.com/diegobit/aranet4-mcp-server", - "source": "github", - "id": "965063885" + "server": { + "name": "io.github.diegobit/aranet4-mcp-server", + "description": "SImple MCP server to manage your aranet4 device and local db.", + "status": "active", + "repository": { + "url": "https://github.com/diegobit/aranet4-mcp-server", + "source": "github", + "id": "965063885" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "aranet4-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Directory flag and its value", + "is_required": true, + "format": "string", + "value": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", + "default": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", + "type": "named", + "name": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", + "value_hint": "{{PATH_TO_SRC}}/aranet4-mcp-server/" + }, + { + "description": "Python server file", + "is_required": true, + "format": "string", + "value": "src/server.py", + "default": "src/server.py", + "type": "positional", + "value_hint": "src/server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "775bd83c-b33a-471c-9deb-8a444fb4ac79", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "aranet4-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Directory flag and its value", - "is_required": true, - "format": "string", - "value": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", - "default": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", - "type": "named", - "name": "--directory {{PATH_TO_SRC}}/aranet4-mcp-server/", - "value_hint": "{{PATH_TO_SRC}}/aranet4-mcp-server/" - }, - { - "description": "Python server file", - "is_required": true, - "format": "string", - "value": "src/server.py", - "default": "src/server.py", - "type": "positional", - "value_hint": "src/server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1e97b930-031a-47b6-afb1-8af61dd81ec0", - "name": "io.github.ravenwits/mcp-server-arangodb", - "description": "This is a TypeScript-based MCP server that provides database interaction capabilities through ArangoDB. It implements core database operations and allows seamless integration with ArangoDB through MCP tools. You can use it wih Claude app and also extension for VSCode that works with mcp like Cline!", - "repository": { - "url": "https://github.com/ravenwits/mcp-server-arangodb", - "source": "github", - "id": "909459279" + "server": { + "name": "io.github.ravenwits/mcp-server-arangodb", + "description": "This is a TypeScript-based MCP server that provides database interaction capabilities through ArangoDB. It implements core database operations and allows seamless integration with ArangoDB through MCP tools. You can use it wih Claude app and also extension for VSCode that works with mcp like Cline!", + "status": "active", + "repository": { + "url": "https://github.com/ravenwits/mcp-server-arangodb", + "source": "github", + "id": "909459279" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "arango-server", + "version": "0.4.4", + "environment_variables": [ + { + "description": "your_database_url", + "name": "ARANGO_URL" + }, + { + "description": "your_database_name", + "name": "ARANGO_DB" + }, + { + "description": "your_username", + "name": "ARANGO_USERNAME" + }, + { + "description": "your_password", + "name": "ARANGO_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1e97b930-031a-47b6-afb1-8af61dd81ec0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:13Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "arango-server", - "version": "0.4.4", - "environment_variables": [ - { - "description": "your_database_url", - "name": "ARANGO_URL" - }, - { - "description": "your_database_name", - "name": "ARANGO_DB" - }, - { - "description": "your_username", - "name": "ARANGO_USERNAME" - }, - { - "description": "your_password", - "name": "ARANGO_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "466926d1-72a6-42be-b2c1-ef94d44e5a67", - "name": "io.github.vishalmysore/choturobo", - "description": "Integrate Arduino-based robotics (using the NodeMCU ESP32 or Arduino Nano 368 board) with AI using the MCP (Model Context Protocol) framework from Claude Anthropic", - "repository": { - "url": "https://github.com/vishalmysore/choturobo", - "source": "github", - "id": "947567270" + "server": { + "name": "io.github.vishalmysore/choturobo", + "description": "Integrate Arduino-based robotics (using the NodeMCU ESP32 or Arduino Nano 368 board) with AI using the MCP (Model Context Protocol) framework from Claude Anthropic", + "status": "active", + "repository": { + "url": "https://github.com/vishalmysore/choturobo", + "source": "github", + "id": "947567270" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "choturoboserver", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "466926d1-72a6-42be-b2c1-ef94d44e5a67", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "choturoboserver", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4df1406c-1bb1-4495-96e8-8c25de454b5d", - "name": "io.github.sooperset/mcp-atlassian", - "description": "MCP server for Atlassian tools (Confluence, Jira)", - "repository": { - "url": "https://github.com/sooperset/mcp-atlassian", - "source": "github", - "id": "897809208" + "server": { + "name": "io.github.sooperset/mcp-atlassian", + "description": "MCP server for Atlassian tools (Confluence, Jira)", + "status": "active", + "repository": { + "url": "https://github.com/sooperset/mcp-atlassian", + "source": "github", + "id": "897809208" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-atlassian", + "version": "0.10.6" + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "http://localhost:9000/sse" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4df1406c-1bb1-4495-96e8-8c25de454b5d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-atlassian", - "version": "0.10.6" - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "http://localhost:9000/sse" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "05ca6ccc-d6e1-47ab-ab8d-25949db9ada7", - "name": "io.github.co-browser/attestable-mcp-server", - "description": "Verify that any MCP server is running the intended and untampered code via hardware attestation.", - "repository": { - "url": "https://github.com/co-browser/attestable-mcp-server", - "source": "github", - "id": "955641588" + "server": { + "name": "io.github.co-browser/attestable-mcp-server", + "description": "Verify that any MCP server is running the intended and untampered code via hardware attestation.", + "status": "active", + "repository": { + "url": "https://github.com/co-browser/attestable-mcp-server", + "source": "github", + "id": "955641588" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "attestable-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "05ca6ccc-d6e1-47ab-ab8d-25949db9ada7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "attestable-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e9799403-3917-4c38-9638-c69aebf1ac08", - "name": "io.github.rishikavikondala/mcp-server-aws", - "description": "A Model Context Protocol server implementation for operations on AWS resources", - "repository": { - "url": "https://github.com/rishikavikondala/mcp-server-aws", - "source": "github", - "id": "898207013" + "server": { + "name": "io.github.rishikavikondala/mcp-server-aws", + "description": "A Model Context Protocol server implementation for operations on AWS resources", + "status": "active", + "repository": { + "url": "https://github.com/rishikavikondala/mcp-server-aws", + "source": "github", + "id": "898207013" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-aws", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e9799403-3917-4c38-9638-c69aebf1ac08", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-aws", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d3139564-f4c3-44f9-902a-8d172038af01", - "name": "io.github.lishenxydlgzs/aws-athena-mcp", - "description": "MCP server to run AWS Athena queries", - "repository": { - "url": "https://github.com/lishenxydlgzs/aws-athena-mcp", - "source": "github", - "id": "938923691" + "server": { + "name": "io.github.lishenxydlgzs/aws-athena-mcp", + "description": "MCP server to run AWS Athena queries", + "status": "active", + "repository": { + "url": "https://github.com/lishenxydlgzs/aws-athena-mcp", + "source": "github", + "id": "938923691" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@lishenxydlgzs/aws-athena-mcp", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Named argument for query identifier", + "is_required": true, + "format": "string", + "value": "--namedQueryId abcd-1234-efgh-5678", + "default": "--namedQueryId abcd-1234-efgh-5678", + "type": "named", + "name": "--namedQueryId abcd-1234-efgh-5678", + "value_hint": "abcd-1234-efgh-5678" + }, + { + "description": "Named argument for maximum rows", + "is_required": true, + "format": "string", + "value": "--maxRows 100", + "default": "--maxRows 100", + "type": "named", + "name": "--maxRows 100", + "value_hint": "100" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d3139564-f4c3-44f9-902a-8d172038af01", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:23Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@lishenxydlgzs/aws-athena-mcp", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Named argument for query identifier", - "is_required": true, - "format": "string", - "value": "--namedQueryId abcd-1234-efgh-5678", - "default": "--namedQueryId abcd-1234-efgh-5678", - "type": "named", - "name": "--namedQueryId abcd-1234-efgh-5678", - "value_hint": "abcd-1234-efgh-5678" - }, - { - "description": "Named argument for maximum rows", - "is_required": true, - "format": "string", - "value": "--maxRows 100", - "default": "--maxRows 100", - "type": "named", - "name": "--maxRows 100", - "value_hint": "100" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9ddac40e-d776-4232-a00f-7e698eb2dca8", - "name": "io.github.aarora79/aws-cost-explorer-mcp-server", - "description": "MCP server for understanding AWS spend", - "repository": { - "url": "https://github.com/aarora79/aws-cost-explorer-mcp-server", - "source": "github", - "id": "945535318" + "server": { + "name": "io.github.aarora79/aws-cost-explorer-mcp-server", + "description": "MCP server for understanding AWS spend", + "status": "active", + "repository": { + "url": "https://github.com/aarora79/aws-cost-explorer-mcp-server", + "source": "github", + "id": "945535318" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "aws-cost-explorer-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Path to the directory.", + "is_required": true, + "format": "string", + "value": "--directory /path/to/aws-cost-explorer-mcp-server", + "default": "--directory /path/to/aws-cost-explorer-mcp-server", + "type": "named", + "name": "--directory /path/to/aws-cost-explorer-mcp-server", + "value_hint": "/path/to/aws-cost-explorer-mcp-server" + }, + { + "description": "Python script to run.", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ], + "environment_variables": [ + { + "description": "YOUR_ACCESS_KEY_ID", + "name": "AWS_ACCESS_KEY_ID" + }, + { + "description": "YOUR_SECRET_ACCESS_KEY", + "name": "AWS_SECRET_ACCESS_KEY" + }, + { + "description": "us-east-1", + "name": "AWS_REGION" + }, + { + "description": "YOUR_CLOUDWATCH_BEDROCK_MODEL_INVOCATION_LOG_GROUP_NAME", + "name": "BEDROCK_LOG_GROUP_NAME" + }, + { + "description": "ROLE_NAME_FOR_THE_ROLE_TO_ASSUME_IN_OTHER_ACCOUNTS", + "name": "CROSS_ACCOUNT_ROLE_NAME" + }, + { + "description": "stdio", + "name": "MCP_TRANSPORT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9ddac40e-d776-4232-a00f-7e698eb2dca8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "aws-cost-explorer-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Path to the directory.", - "is_required": true, - "format": "string", - "value": "--directory /path/to/aws-cost-explorer-mcp-server", - "default": "--directory /path/to/aws-cost-explorer-mcp-server", - "type": "named", - "name": "--directory /path/to/aws-cost-explorer-mcp-server", - "value_hint": "/path/to/aws-cost-explorer-mcp-server" - }, - { - "description": "Python script to run.", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ], - "environment_variables": [ - { - "description": "YOUR_ACCESS_KEY_ID", - "name": "AWS_ACCESS_KEY_ID" - }, - { - "description": "YOUR_SECRET_ACCESS_KEY", - "name": "AWS_SECRET_ACCESS_KEY" - }, - { - "description": "us-east-1", - "name": "AWS_REGION" - }, - { - "description": "YOUR_CLOUDWATCH_BEDROCK_MODEL_INVOCATION_LOG_GROUP_NAME", - "name": "BEDROCK_LOG_GROUP_NAME" - }, - { - "description": "ROLE_NAME_FOR_THE_ROLE_TO_ASSUME_IN_OTHER_ACCOUNTS", - "name": "CROSS_ACCOUNT_ROLE_NAME" - }, - { - "description": "stdio", - "name": "MCP_TRANSPORT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6dd26dd7-d5c3-4aa8-bb9a-3aba328790ad", - "name": "io.github.baryhuang/mcp-server-aws-resources-python", - "description": "A Python-based MCP server that lets Claude run boto3 code to query and manage AWS resources. Execute powerful AWS operations directly through Claude with proper sandboxing and containerization. No need for complex setups - just pass your AWS credentials and start interacting with all AWS services.", - "repository": { - "url": "https://github.com/baryhuang/mcp-server-aws-resources-python", - "source": "github", - "id": "916512524" + "server": { + "name": "io.github.baryhuang/mcp-server-aws-resources-python", + "description": "A Python-based MCP server that lets Claude run boto3 code to query and manage AWS resources. Execute powerful AWS operations directly through Claude with proper sandboxing and containerization. No need for complex setups - just pass your AWS credentials and start interacting with all AWS services.", + "status": "active", + "repository": { + "url": "https://github.com/baryhuang/mcp-server-aws-resources-python", + "source": "github", + "id": "916512524" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-aws-resources", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Keep STDIN open even if not attached", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "Automatically remove the container when it exits", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Set environment variables in the container", + "is_required": true, + "format": "string", + "value": "-e AWS_PROFILE=default", + "default": "-e AWS_PROFILE=default", + "type": "named", + "name": "-e AWS_PROFILE=default", + "value_hint": "AWS_PROFILE=default" + }, + { + "description": "Bind mount a volume", + "is_required": true, + "format": "string", + "value": "-v ~/.aws:/root/.aws", + "default": "-v ~/.aws:/root/.aws", + "type": "named", + "name": "-v ~/.aws:/root/.aws", + "value_hint": "~/.aws:/root/.aws" + }, + { + "description": "Docker image name with tag", + "is_required": true, + "format": "string", + "value": "buryhuang/mcp-server-aws-resources:latest", + "default": "buryhuang/mcp-server-aws-resources:latest", + "type": "positional", + "value_hint": "buryhuang/mcp-server-aws-resources:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6dd26dd7-d5c3-4aa8-bb9a-3aba328790ad", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-aws-resources", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Keep STDIN open even if not attached", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "Automatically remove the container when it exits", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Set environment variables in the container", - "is_required": true, - "format": "string", - "value": "-e AWS_PROFILE=default", - "default": "-e AWS_PROFILE=default", - "type": "named", - "name": "-e AWS_PROFILE=default", - "value_hint": "AWS_PROFILE=default" - }, - { - "description": "Bind mount a volume", - "is_required": true, - "format": "string", - "value": "-v ~/.aws:/root/.aws", - "default": "-v ~/.aws:/root/.aws", - "type": "named", - "name": "-v ~/.aws:/root/.aws", - "value_hint": "~/.aws:/root/.aws" - }, - { - "description": "Docker image name with tag", - "is_required": true, - "format": "string", - "value": "buryhuang/mcp-server-aws-resources:latest", - "default": "buryhuang/mcp-server-aws-resources:latest", - "type": "positional", - "value_hint": "buryhuang/mcp-server-aws-resources:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f7f8acea-8725-48ec-a2f8-08ee16c738db", - "name": "io.github.aws-samples/sample-mcp-server-s3", - "description": "", - "repository": { - "url": "https://github.com/aws-samples/sample-mcp-server-s3", - "source": "github", - "id": "907453245" + "server": { + "name": "io.github.aws-samples/sample-mcp-server-s3", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/aws-samples/sample-mcp-server-s3", + "source": "github", + "id": "907453245" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "s3-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f7f8acea-8725-48ec-a2f8-08ee16c738db", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "s3-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bb734a22-a274-48ee-9740-d4a6a9a0a367", - "name": "io.github.pab1it0/adx-mcp-server", - "description": "A Model Context Protocol (MCP) server that enables AI assistants to query and analyze Azure Data Explorer databases through standardized interfaces.", - "repository": { - "url": "https://github.com/pab1it0/adx-mcp-server", - "source": "github", - "id": "945904536" + "server": { + "name": "io.github.pab1it0/adx-mcp-server", + "description": "A Model Context Protocol (MCP) server that enables AI assistants to query and analyze Azure Data Explorer databases through standardized interfaces.", + "status": "active", + "repository": { + "url": "https://github.com/pab1it0/adx-mcp-server", + "source": "github", + "id": "945904536" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "adx_mcp_server", + "version": "1.0.9", + "package_arguments": [ + { + "description": "Remove container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Keep STDIN open even if not attached", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "Set environment variable in container: ADX_CLUSTER_URL", + "is_required": true, + "format": "string", + "value": "-e ADX_CLUSTER_URL", + "default": "-e ADX_CLUSTER_URL", + "type": "named", + "name": "-e ADX_CLUSTER_URL", + "value_hint": "ADX_CLUSTER_URL" + }, + { + "description": "Set environment variable in container: ADX_DATABASE", + "is_required": true, + "format": "string", + "value": "-e ADX_DATABASE", + "default": "-e ADX_DATABASE", + "type": "named", + "name": "-e ADX_DATABASE", + "value_hint": "ADX_DATABASE" + }, + { + "description": "Set environment variable in container: AZURE_TENANT_ID", + "is_required": true, + "format": "string", + "value": "-e AZURE_TENANT_ID", + "default": "-e AZURE_TENANT_ID", + "type": "named", + "name": "-e AZURE_TENANT_ID", + "value_hint": "AZURE_TENANT_ID" + }, + { + "description": "Set environment variable in container: AZURE_CLIENT_ID", + "is_required": true, + "format": "string", + "value": "-e AZURE_CLIENT_ID", + "default": "-e AZURE_CLIENT_ID", + "type": "named", + "name": "-e AZURE_CLIENT_ID", + "value_hint": "AZURE_CLIENT_ID" + }, + { + "description": "Set environment variable in container: ADX_TOKEN_FILE_PATH", + "is_required": true, + "format": "string", + "value": "-e ADX_TOKEN_FILE_PATH", + "default": "-e ADX_TOKEN_FILE_PATH", + "type": "named", + "name": "-e ADX_TOKEN_FILE_PATH", + "value_hint": "ADX_TOKEN_FILE_PATH" + }, + { + "description": "Container image to run", + "is_required": true, + "format": "string", + "value": "adx-mcp-server", + "default": "adx-mcp-server", + "type": "positional", + "value_hint": "adx-mcp-server" + } + ], + "environment_variables": [ + { + "description": "https://yourcluster.region.kusto.windows.net", + "name": "ADX_CLUSTER_URL" + }, + { + "description": "your_database", + "name": "ADX_DATABASE" + }, + { + "description": "your_tenant_id", + "name": "AZURE_TENANT_ID" + }, + { + "description": "your_client_id", + "name": "AZURE_CLIENT_ID" + }, + { + "description": "/var/run/secrets/azure/tokens/azure-identity-token", + "name": "ADX_TOKEN_FILE_PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bb734a22-a274-48ee-9740-d4a6a9a0a367", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "adx_mcp_server", - "version": "1.0.9", - "package_arguments": [ - { - "description": "Remove container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Keep STDIN open even if not attached", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "Set environment variable in container: ADX_CLUSTER_URL", - "is_required": true, - "format": "string", - "value": "-e ADX_CLUSTER_URL", - "default": "-e ADX_CLUSTER_URL", - "type": "named", - "name": "-e ADX_CLUSTER_URL", - "value_hint": "ADX_CLUSTER_URL" - }, - { - "description": "Set environment variable in container: ADX_DATABASE", - "is_required": true, - "format": "string", - "value": "-e ADX_DATABASE", - "default": "-e ADX_DATABASE", - "type": "named", - "name": "-e ADX_DATABASE", - "value_hint": "ADX_DATABASE" - }, - { - "description": "Set environment variable in container: AZURE_TENANT_ID", - "is_required": true, - "format": "string", - "value": "-e AZURE_TENANT_ID", - "default": "-e AZURE_TENANT_ID", - "type": "named", - "name": "-e AZURE_TENANT_ID", - "value_hint": "AZURE_TENANT_ID" - }, - { - "description": "Set environment variable in container: AZURE_CLIENT_ID", - "is_required": true, - "format": "string", - "value": "-e AZURE_CLIENT_ID", - "default": "-e AZURE_CLIENT_ID", - "type": "named", - "name": "-e AZURE_CLIENT_ID", - "value_hint": "AZURE_CLIENT_ID" - }, - { - "description": "Set environment variable in container: ADX_TOKEN_FILE_PATH", - "is_required": true, - "format": "string", - "value": "-e ADX_TOKEN_FILE_PATH", - "default": "-e ADX_TOKEN_FILE_PATH", - "type": "named", - "name": "-e ADX_TOKEN_FILE_PATH", - "value_hint": "ADX_TOKEN_FILE_PATH" - }, - { - "description": "Container image to run", - "is_required": true, - "format": "string", - "value": "adx-mcp-server", - "default": "adx-mcp-server", - "type": "positional", - "value_hint": "adx-mcp-server" - } - ], - "environment_variables": [ - { - "description": "https://yourcluster.region.kusto.windows.net", - "name": "ADX_CLUSTER_URL" - }, - { - "description": "your_database", - "name": "ADX_DATABASE" - }, - { - "description": "your_tenant_id", - "name": "AZURE_TENANT_ID" - }, - { - "description": "your_client_id", - "name": "AZURE_CLIENT_ID" - }, - { - "description": "/var/run/secrets/azure/tokens/azure-identity-token", - "name": "ADX_TOKEN_FILE_PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4502246b-f419-4879-a179-149c6d87a871", - "name": "io.github.vortiago/mcp-azure-devops", - "description": "A Model Context Protocol (MCP) server enabling AI assistants to interact with Azure DevOps services via Python SDK.", - "repository": { - "url": "https://github.com/Vortiago/mcp-azure-devops", - "source": "github", - "id": "948085438" + "server": { + "name": "io.github.vortiago/mcp-azure-devops", + "description": "A Model Context Protocol (MCP) server enabling AI assistants to interact with Azure DevOps services via Python SDK.", + "status": "active", + "repository": { + "url": "https://github.com/Vortiago/mcp-azure-devops", + "source": "github", + "id": "948085438" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-azure-devops", + "version": "0.6.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4502246b-f419-4879-a179-149c6d87a871", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-azure-devops", - "version": "0.6.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b7e8b7c6-548b-49a7-9001-2bf1733ca539", - "name": "io.github.baidubce/app-builder", - "description": "appbuilder-sdk, 千帆AppBuilder-SDK帮助开发者灵活、快速的搭建AI原生应用", - "repository": { - "url": "https://github.com/baidubce/app-builder", - "source": "github", - "id": "727502310" + "server": { + "name": "io.github.baidubce/app-builder", + "description": "appbuilder-sdk, 千帆AppBuilder-SDK帮助开发者灵活、快速的搭建AI原生应用", + "status": "active", + "repository": { + "url": "https://github.com/baidubce/app-builder", + "source": "github", + "id": "727502310" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "baidubce/app-builder", + "version": "", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b7e8b7c6-548b-49a7-9001-2bf1733ca539", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "baidubce/app-builder", - "version": "", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c3123664-33b3-4f29-bc08-40b88300f57c", - "name": "io.github.magnetai/mcp-free-usdc-transfer", - "description": "MCP (Model Context Protocol) server - free usdc transfer powered by Coinbase CDP", - "repository": { - "url": "https://github.com/magnetai/mcp-free-usdc-transfer", - "source": "github", - "id": "914708046" + "server": { + "name": "io.github.magnetai/mcp-free-usdc-transfer", + "description": "MCP (Model Context Protocol) server - free usdc transfer powered by Coinbase CDP", + "status": "active", + "repository": { + "url": "https://github.com/magnetai/mcp-free-usdc-transfer", + "source": "github", + "id": "914708046" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@magnetai/free-usdc-transfer", + "version": "0.1.5", + "environment_variables": [ + { + "description": "YOUR_COINBASE_CDP_API_KEY_NAME", + "name": "COINBASE_CDP_API_KEY_NAME" + }, + { + "description": "YOUR_COINBASE_CDP_PRIVATE_KEY", + "name": "COINBASE_CDP_PRIVATE_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c3123664-33b3-4f29-bc08-40b88300f57c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@magnetai/free-usdc-transfer", - "version": "0.1.5", - "environment_variables": [ - { - "description": "YOUR_COINBASE_CDP_API_KEY_NAME", - "name": "COINBASE_CDP_API_KEY_NAME" - }, - { - "description": "YOUR_COINBASE_CDP_PRIVATE_KEY", - "name": "COINBASE_CDP_PRIVATE_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "377dba9b-63cc-4ca9-bb39-97f5e12497b4", - "name": "io.github.basicmachines-co/basic-memory", - "description": "Basic Memory is a knowledge management system that allows you to build a persistent semantic graph from conversations with AI assistants, stored in standard Markdown files on your computer. Integrates directly with Obsidan.md", - "repository": { - "url": "https://github.com/basicmachines-co/basic-memory", - "source": "github", - "id": "897595329" + "server": { + "name": "io.github.basicmachines-co/basic-memory", + "description": "Basic Memory is a knowledge management system that allows you to build a persistent semantic graph from conversations with AI assistants, stored in standard Markdown files on your computer. Integrates directly with Obsidan.md", + "status": "active", + "repository": { + "url": "https://github.com/basicmachines-co/basic-memory", + "source": "github", + "id": "897595329" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "basic-memory", + "version": "0.12.3", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "mcp", + "default": "mcp", + "type": "positional", + "value_hint": "mcp" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "377dba9b-63cc-4ca9-bb39-97f5e12497b4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "basic-memory", - "version": "0.12.3", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "mcp", - "default": "mcp", - "type": "positional", - "value_hint": "mcp" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0e517488-6e73-41c3-a297-7602f5937079", - "name": "io.github.lucashild/mcp-server-bigquery", - "description": "A Model Context Protocol server that provides access to BigQuery", - "repository": { - "url": "https://github.com/LucasHild/mcp-server-bigquery", - "source": "github", - "id": "898062517" + "server": { + "name": "io.github.lucashild/mcp-server-bigquery", + "description": "A Model Context Protocol server that provides access to BigQuery", + "status": "active", + "repository": { + "url": "https://github.com/LucasHild/mcp-server-bigquery", + "source": "github", + "id": "898062517" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-bigquery", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0e517488-6e73-41c3-a297-7602f5937079", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:52Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-bigquery", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e3053bd5-1a4d-473c-a41b-f83ab1a46174", - "name": "io.github.ergut/mcp-bigquery-server", - "description": "A Model Context Protocol (MCP) server that provides secure, read-only access to BigQuery datasets. Enables Large Language Models (LLMs) to safely query and analyze data through a standardized interface.", - "repository": { - "url": "https://github.com/ergut/mcp-bigquery-server", - "source": "github", - "id": "898108083" + "server": { + "name": "io.github.ergut/mcp-bigquery-server", + "description": "A Model Context Protocol (MCP) server that provides secure, read-only access to BigQuery datasets. Enables Large Language Models (LLMs) to safely query and analyze data through a standardized interface.", + "status": "active", + "repository": { + "url": "https://github.com/ergut/mcp-bigquery-server", + "source": "github", + "id": "898108083" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@ergut/mcp-bigquery-server", + "version": "1.0.3", + "package_arguments": [ + { + "description": "--project-id your-project-id", + "is_required": true, + "format": "string", + "value": "--project-id your-project-id", + "default": "--project-id your-project-id", + "type": "named", + "name": "--project-id your-project-id", + "value_hint": "your-project-id" + }, + { + "description": "--location us-central1", + "is_required": true, + "format": "string", + "value": "--location us-central1", + "default": "--location us-central1", + "type": "named", + "name": "--location us-central1", + "value_hint": "us-central1" + }, + { + "description": "--key-file /path/to/service-account-key.json", + "is_required": true, + "format": "string", + "value": "--key-file /path/to/service-account-key.json", + "default": "--key-file /path/to/service-account-key.json", + "type": "named", + "name": "--key-file /path/to/service-account-key.json", + "value_hint": "/path/to/service-account-key.json" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e3053bd5-1a4d-473c-a41b-f83ab1a46174", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@ergut/mcp-bigquery-server", - "version": "1.0.3", - "package_arguments": [ - { - "description": "--project-id your-project-id", - "is_required": true, - "format": "string", - "value": "--project-id your-project-id", - "default": "--project-id your-project-id", - "type": "named", - "name": "--project-id your-project-id", - "value_hint": "your-project-id" - }, - { - "description": "--location us-central1", - "is_required": true, - "format": "string", - "value": "--location us-central1", - "default": "--location us-central1", - "type": "named", - "name": "--location us-central1", - "value_hint": "us-central1" - }, - { - "description": "--key-file /path/to/service-account-key.json", - "is_required": true, - "format": "string", - "value": "--key-file /path/to/service-account-key.json", - "default": "--key-file /path/to/service-account-key.json", - "type": "named", - "name": "--key-file /path/to/service-account-key.json", - "value_hint": "/path/to/service-account-key.json" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a0db598f-81d1-44d6-9008-e9a71e742cd3", - "name": "io.github.leehanchung/bing-search-mcp", - "description": "MCP Server for Bing Search API", - "repository": { - "url": "https://github.com/leehanchung/bing-search-mcp", - "source": "github", - "id": "949213032" + "server": { + "name": "io.github.leehanchung/bing-search-mcp", + "description": "MCP Server for Bing Search API", + "status": "active", + "repository": { + "url": "https://github.com/leehanchung/bing-search-mcp", + "source": "github", + "id": "949213032" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp_server_bing", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your-bing-api-key", + "name": "BING_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a0db598f-81d1-44d6-9008-e9a71e742cd3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp_server_bing", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your-bing-api-key", - "name": "BING_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4a33ebab-f5cf-48b3-adb3-3f7094ea706c", - "name": "io.github.lloydzhou/bitable-mcp", - "description": "This MCP server provides access to Lark Bitable through the Model Context Protocol. It allows users to interact with Bitable tables using predefined tools.", - "repository": { - "url": "https://github.com/lloydzhou/bitable-mcp", - "source": "github", - "id": "951621343" + "server": { + "name": "io.github.lloydzhou/bitable-mcp", + "description": "This MCP server provides access to Lark Bitable through the Model Context Protocol. It allows users to interact with Bitable tables using predefined tools.", + "status": "active", + "repository": { + "url": "https://github.com/lloydzhou/bitable-mcp", + "source": "github", + "id": "951621343" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "bitable-mcp", + "version": "0.2.1", + "package_arguments": [ + { + "description": "-m bitable_mcp", + "is_required": true, + "format": "string", + "value": "-m bitable_mcp", + "default": "-m bitable_mcp", + "type": "named", + "name": "-m bitable_mcp", + "value_hint": "bitable_mcp" + } + ], + "environment_variables": [ + { + "description": "your-personal-base-token", + "name": "PERSONAL_BASE_TOKEN" + }, + { + "description": "your-app-token", + "name": "APP_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4a33ebab-f5cf-48b3-adb3-3f7094ea706c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:03:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "bitable-mcp", - "version": "0.2.1", - "package_arguments": [ - { - "description": "-m bitable_mcp", - "is_required": true, - "format": "string", - "value": "-m bitable_mcp", - "default": "-m bitable_mcp", - "type": "named", - "name": "-m bitable_mcp", - "value_hint": "bitable_mcp" - } - ], - "environment_variables": [ - { - "description": "your-personal-base-token", - "name": "PERSONAL_BASE_TOKEN" - }, - { - "description": "your-app-token", - "name": "APP_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fd341719-247e-45e8-a911-ad7c336eb163", - "name": "io.github.ahujasid/blender-mcp", - "description": "", - "repository": { - "url": "https://github.com/ahujasid/blender-mcp", - "source": "github", - "id": "944414751" + "server": { + "name": "io.github.ahujasid/blender-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/ahujasid/blender-mcp", + "source": "github", + "id": "944414751" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "blender-mcp", + "version": "1.1.3", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "uvx", + "default": "uvx", + "type": "positional", + "value_hint": "uvx" + }, + { + "is_required": true, + "format": "string", + "value": "blender-mcp", + "default": "blender-mcp", + "type": "positional", + "value_hint": "blender-mcp" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fd341719-247e-45e8-a911-ad7c336eb163", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "blender-mcp", - "version": "1.1.3", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "uvx", - "default": "uvx", - "type": "positional", - "value_hint": "uvx" - }, - { - "is_required": true, - "format": "string", - "value": "blender-mcp", - "default": "blender-mcp", - "type": "positional", - "value_hint": "blender-mcp" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b9bf1c69-4a64-47ec-a781-fb81d1922695", - "name": "io.github.agree-able/room-mcp", - "description": "Allow MCP clients like claude-desktop to use rooms to coordinate with other agents", - "repository": { - "url": "https://github.com/agree-able/room-mcp", - "source": "github", - "id": "939073414" + "server": { + "name": "io.github.agree-able/room-mcp", + "description": "Allow MCP clients like claude-desktop to use rooms to coordinate with other agents", + "status": "active", + "repository": { + "url": "https://github.com/agree-able/room-mcp", + "source": "github", + "id": "939073414" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@agree-able/room-mcp", + "version": "1.0.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b9bf1c69-4a64-47ec-a781-fb81d1922695", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:03Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@agree-able/room-mcp", - "version": "1.0.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "27b05d20-fd9c-437d-a86c-923629491ff5", - "name": "io.github.co-browser/browser-use-mcp-server", - "description": "Browse the web, directly from Cursor etc.", - "repository": { - "url": "https://github.com/co-browser/browser-use-mcp-server", - "source": "github", - "id": "943806192" + "server": { + "name": "io.github.co-browser/browser-use-mcp-server", + "description": "Browse the web, directly from Cursor etc.", + "status": "active", + "repository": { + "url": "https://github.com/co-browser/browser-use-mcp-server", + "source": "github", + "id": "943806192" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "browser-use-mcp-server", + "version": "", + "package_arguments": [ + { + "description": "server", + "is_required": true, + "format": "string", + "value": "server", + "default": "server", + "type": "positional", + "value_hint": "server" + }, + { + "description": "--port 8000", + "is_required": true, + "format": "string", + "value": "--port 8000", + "default": "--port 8000", + "type": "named", + "name": "--port 8000", + "value_hint": "8000" + }, + { + "description": "--stdio", + "is_required": true, + "format": "string", + "value": "--stdio", + "default": "--stdio", + "type": "named", + "name": "--stdio" + }, + { + "description": "--proxy-port 9000", + "is_required": true, + "format": "string", + "value": "--proxy-port 9000", + "default": "--proxy-port 9000", + "type": "named", + "name": "--proxy-port 9000", + "value_hint": "9000" + } + ], + "environment_variables": [ + { + "description": "your-api-key", + "name": "OPENAI_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "27b05d20-fd9c-437d-a86c-923629491ff5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "browser-use-mcp-server", - "version": "", - "package_arguments": [ - { - "description": "server", - "is_required": true, - "format": "string", - "value": "server", - "default": "server", - "type": "positional", - "value_hint": "server" - }, - { - "description": "--port 8000", - "is_required": true, - "format": "string", - "value": "--port 8000", - "default": "--port 8000", - "type": "named", - "name": "--port 8000", - "value_hint": "8000" - }, - { - "description": "--stdio", - "is_required": true, - "format": "string", - "value": "--stdio", - "default": "--stdio", - "type": "named", - "name": "--stdio" - }, - { - "description": "--proxy-port 9000", - "is_required": true, - "format": "string", - "value": "--proxy-port 9000", - "default": "--proxy-port 9000", - "type": "named", - "name": "--proxy-port 9000", - "value_hint": "9000" - } - ], - "environment_variables": [ - { - "description": "your-api-key", - "name": "OPENAI_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "36156772-6775-4b79-b560-b72ccaaca085", - "name": "io.github.termix-official/bsc-mcp", - "description": "", - "repository": { - "url": "https://github.com/TermiX-official/bsc-mcp", - "source": "github", - "id": "949735444" + "server": { + "name": "io.github.termix-official/bsc-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/TermiX-official/bsc-mcp", + "source": "github", + "id": "949735444" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "bnbchain-mcp", + "version": "1.0.12" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "36156772-6775-4b79-b560-b72ccaaca085", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "bnbchain-mcp", - "version": "1.0.12" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "87cf029b-441f-439a-aae9-9ef27ddd4322", - "name": "io.github.githejie/mcp-server-calculator", - "description": "A Model Context Protocol server for calculating.", - "repository": { - "url": "https://github.com/githejie/mcp-server-calculator", - "source": "github", - "id": "951246115" + "server": { + "name": "io.github.githejie/mcp-server-calculator", + "description": "A Model Context Protocol server for calculating.", + "status": "active", + "repository": { + "url": "https://github.com/githejie/mcp-server-calculator", + "source": "github", + "id": "951246115" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-calculator", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "87cf029b-441f-439a-aae9-9ef27ddd4322", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:11Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-calculator", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9fcb3e74-e8af-4b55-9bfc-808fa2560148", - "name": "io.github.lenwood/cfbd-mcp-server", - "description": "An MCP server enabling CFBD API queries within Claude Desktop.", - "repository": { - "url": "https://github.com/lenwood/cfbd-mcp-server", - "source": "github", - "id": "906271992" + "server": { + "name": "io.github.lenwood/cfbd-mcp-server", + "description": "An MCP server enabling CFBD API queries within Claude Desktop.", + "status": "active", + "repository": { + "url": "https://github.com/lenwood/cfbd-mcp-server", + "source": "github", + "id": "906271992" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "cfbd-mcp-server", + "version": "0.5.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "cfbd-mcp-server", + "default": "cfbd-mcp-server", + "type": "positional", + "value_hint": "cfbd-mcp-server" + } + ], + "environment_variables": [ + { + "description": "xxx", + "name": "CFB_API_KEY" + }, + { + "description": "/full/path/to/python", + "name": "PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9fcb3e74-e8af-4b55-9bfc-808fa2560148", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "cfbd-mcp-server", - "version": "0.5.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "cfbd-mcp-server", - "default": "cfbd-mcp-server", - "type": "positional", - "value_hint": "cfbd-mcp-server" - } - ], - "environment_variables": [ - { - "description": "xxx", - "name": "CFB_API_KEY" - }, - { - "description": "/full/path/to/python", - "name": "PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "16fc441d-0d72-4b14-afd7-d5c9dd25c909", - "name": "io.github.ai-ql/chat-mcp", - "description": "A Desktop Chat App that leverages MCP(Model Context Protocol) to interface with other LLMs.", - "repository": { - "url": "https://github.com/AI-QL/chat-mcp", - "source": "github", - "id": "896905855" + "server": { + "name": "io.github.ai-ql/chat-mcp", + "description": "A Desktop Chat App that leverages MCP(Model Context Protocol) to interface with other LLMs.", + "status": "active", + "repository": { + "url": "https://github.com/AI-QL/chat-mcp", + "source": "github", + "id": "896905855" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "aiql-desktop", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Path to the working directory", + "is_required": true, + "format": "string", + "value": "D:/Github/mcp-test", + "default": "D:/Github/mcp-test", + "type": "positional", + "value_hint": "D:/Github/mcp-test" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "16fc441d-0d72-4b14-afd7-d5c9dd25c909", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "aiql-desktop", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Path to the working directory", - "is_required": true, - "format": "string", - "value": "D:/Github/mcp-test", - "default": "D:/Github/mcp-test", - "type": "positional", - "value_hint": "D:/Github/mcp-test" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "196a8cbd-8234-4336-a4d7-f6dda870bcfb", - "name": "io.github.mcpso/mcp-server-chatsum", - "description": "Query and Summarize your chat messages.", - "repository": { - "url": "https://github.com/chatmcp/mcp-server-chatsum", - "source": "github", - "id": "898004429" + "server": { + "name": "io.github.mcpso/mcp-server-chatsum", + "description": "Query and Summarize your chat messages.", + "status": "active", + "repository": { + "url": "https://github.com/chatmcp/mcp-server-chatsum", + "source": "github", + "id": "898004429" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-chatsum", + "version": "0.1.0", + "environment_variables": [ + { + "description": "path-to/mcp-server-chatsum/chatbot/data/chat.db", + "name": "CHAT_DB_PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "196a8cbd-8234-4336-a4d7-f6dda870bcfb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-chatsum", - "version": "0.1.0", - "environment_variables": [ - { - "description": "path-to/mcp-server-chatsum/chatbot/data/chat.db", - "name": "CHAT_DB_PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "12ca72e6-3bbf-4c79-94d5-91016543f8ca", - "name": "io.github.pab1it0/chess-mcp", - "description": "A Model Context Protocol server for Chess.com's Published Data API. This provides access to Chess.com player data, game records, and other public information through standardized MCP interfaces, allowing AI assistants to search and analyze chess information.", - "repository": { - "url": "https://github.com/pab1it0/chess-mcp", - "source": "github", - "id": "956967521" + "server": { + "name": "io.github.pab1it0/chess-mcp", + "description": "A Model Context Protocol server for Chess.com's Published Data API. This provides access to Chess.com player data, game records, and other public information through standardized MCP interfaces, allowing AI assistants to search and analyze chess information.", + "status": "active", + "repository": { + "url": "https://github.com/pab1it0/chess-mcp", + "source": "github", + "id": "956967521" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "chess_mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "The directory to use for the operation", + "is_required": true, + "format": "string", + "value": "--directory \u003cfull path to chess-mcp directory\u003e", + "default": "--directory \u003cfull path to chess-mcp directory\u003e", + "type": "named", + "name": "--directory \u003cfull path to chess-mcp directory\u003e", + "value_hint": "\u003cfull path to chess-mcp directory\u003e" + }, + { + "description": "Script to run with python", + "is_required": true, + "format": "string", + "value": "run src/chess_mcp/main.py", + "default": "run src/chess_mcp/main.py", + "type": "positional", + "value_hint": "run src/chess_mcp/main.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "12ca72e6-3bbf-4c79-94d5-91016543f8ca", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "chess_mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "The directory to use for the operation", - "is_required": true, - "format": "string", - "value": "--directory ", - "default": "--directory ", - "type": "named", - "name": "--directory ", - "value_hint": "" - }, - { - "description": "Script to run with python", - "is_required": true, - "format": "string", - "value": "run src/chess_mcp/main.py", - "default": "run src/chess_mcp/main.py", - "type": "positional", - "value_hint": "run src/chess_mcp/main.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4b637a92-c1af-463d-afc1-e0ce65d7c057", - "name": "io.github.privetin/chroma", - "description": "MCP server for Chroma", - "repository": { - "url": "https://github.com/privetin/chroma", - "source": "github", - "id": "909977348" + "server": { + "name": "io.github.privetin/chroma", + "description": "MCP server for Chroma", + "status": "active", + "repository": { + "url": "https://github.com/privetin/chroma", + "source": "github", + "id": "909977348" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "chroma", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Named argument", + "is_required": true, + "format": "string", + "value": "--directory C:/MCP/server/community/chroma", + "default": "--directory C:/MCP/server/community/chroma", + "type": "named", + "name": "--directory C:/MCP/server/community/chroma", + "value_hint": "C:/MCP/server/community/chroma" + }, + { + "description": "Positional argument", + "is_required": true, + "format": "string", + "value": "chroma", + "default": "chroma", + "type": "positional", + "value_hint": "chroma" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4b637a92-c1af-463d-afc1-e0ce65d7c057", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "chroma", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Named argument", - "is_required": true, - "format": "string", - "value": "--directory C:/MCP/server/community/chroma", - "default": "--directory C:/MCP/server/community/chroma", - "type": "named", - "name": "--directory C:/MCP/server/community/chroma", - "value_hint": "C:/MCP/server/community/chroma" - }, - { - "description": "Positional argument", - "is_required": true, - "format": "string", - "value": "chroma", - "default": "chroma", - "type": "positional", - "value_hint": "chroma" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3b404956-9bad-4bd9-89a9-17534b4bd22e", - "name": "io.github.zilongxue/claude-post", - "description": "ClaudePost enables seamless email management through natural language conversations with Claude, offering secure features like email search, reading, and sending.", - "repository": { - "url": "https://github.com/ZilongXue/claude-post", - "source": "github", - "id": "913146173" + "server": { + "name": "io.github.zilongxue/claude-post", + "description": "ClaudePost enables seamless email management through natural language conversations with Claude, offering secure features like email search, reading, and sending.", + "status": "active", + "repository": { + "url": "https://github.com/ZilongXue/claude-post", + "source": "github", + "id": "913146173" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "email_client", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Directory to execute the command in", + "is_required": true, + "format": "string", + "value": "--directory /path/to/claude-post/src/email_client", + "default": "--directory /path/to/claude-post/src/email_client", + "type": "named", + "name": "--directory /path/to/claude-post/src/email_client", + "value_hint": "/path/to/claude-post/src/email_client" + }, + { + "description": "Name of the email client script", + "is_required": true, + "format": "string", + "value": "email-client", + "default": "email-client", + "type": "positional", + "value_hint": "email-client" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3b404956-9bad-4bd9-89a9-17534b4bd22e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "email_client", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Directory to execute the command in", - "is_required": true, - "format": "string", - "value": "--directory /path/to/claude-post/src/email_client", - "default": "--directory /path/to/claude-post/src/email_client", - "type": "named", - "name": "--directory /path/to/claude-post/src/email_client", - "value_hint": "/path/to/claude-post/src/email_client" - }, - { - "description": "Name of the email client script", - "is_required": true, - "format": "string", - "value": "email-client", - "default": "email-client", - "type": "positional", - "value_hint": "email-client" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "34b93e72-0fa8-4dbe-ae9b-82a9e40de735", - "name": "io.github.taazkareem/clickup-mcp-server", - "description": "ClickUp MCP Server - Integrate ClickUp task management with AI through Model Context Protocol", - "repository": { - "url": "https://github.com/taazkareem/clickup-mcp-server", - "source": "github", - "id": "930539984" + "server": { + "name": "io.github.taazkareem/clickup-mcp-server", + "description": "ClickUp MCP Server - Integrate ClickUp task management with AI through Model Context Protocol", + "status": "active", + "repository": { + "url": "https://github.com/taazkareem/clickup-mcp-server", + "source": "github", + "id": "930539984" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@taazkareem/clickup-mcp-server", + "version": "0.7.2", + "environment_variables": [ + { + "description": "your-api-key", + "name": "CLICKUP_API_KEY" + }, + { + "description": "your-team-id", + "name": "CLICKUP_TEAM_ID" + }, + { + "description": "true", + "name": "ENABLE_SSE" + }, + { + "description": "8000", + "name": "PORT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "34b93e72-0fa8-4dbe-ae9b-82a9e40de735", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@taazkareem/clickup-mcp-server", - "version": "0.7.2", - "environment_variables": [ - { - "description": "your-api-key", - "name": "CLICKUP_API_KEY" - }, - { - "description": "your-team-id", - "name": "CLICKUP_TEAM_ID" - }, - { - "description": "true", - "name": "ENABLE_SSE" - }, - { - "description": "8000", - "name": "PORT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7baddfbe-3618-41d8-befe-40fc2aabcd8e", - "name": "io.github.felores/cloudinary-mcp-server", - "description": "MCP (Model Context Protocol) server for uploading media to Cloudinary using Claude Desktop", - "repository": { - "url": "https://github.com/felores/cloudinary-mcp-server", - "source": "github", - "id": "913564273" + "server": { + "name": "io.github.felores/cloudinary-mcp-server", + "description": "MCP (Model Context Protocol) server for uploading media to Cloudinary using Claude Desktop", + "status": "active", + "repository": { + "url": "https://github.com/felores/cloudinary-mcp-server", + "source": "github", + "id": "913564273" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@felores/cloudinary-mcp-server", + "version": "1.1.3", + "package_arguments": [ + { + "description": "Path to the package entrypoint", + "is_required": true, + "format": "string", + "value": "c:/path/to/cloudinary-mcp-server/dist/index.js", + "default": "c:/path/to/cloudinary-mcp-server/dist/index.js", + "type": "positional", + "value_hint": "c:/path/to/cloudinary-mcp-server/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "your_cloud_name", + "name": "CLOUDINARY_CLOUD_NAME" + }, + { + "description": "your_api_key", + "name": "CLOUDINARY_API_KEY" + }, + { + "description": "your_api_secret", + "name": "CLOUDINARY_API_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7baddfbe-3618-41d8-befe-40fc2aabcd8e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@felores/cloudinary-mcp-server", - "version": "1.1.3", - "package_arguments": [ - { - "description": "Path to the package entrypoint", - "is_required": true, - "format": "string", - "value": "c:/path/to/cloudinary-mcp-server/dist/index.js", - "default": "c:/path/to/cloudinary-mcp-server/dist/index.js", - "type": "positional", - "value_hint": "c:/path/to/cloudinary-mcp-server/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "your_cloud_name", - "name": "CLOUDINARY_CLOUD_NAME" - }, - { - "description": "your_api_key", - "name": "CLOUDINARY_API_KEY" - }, - { - "description": "your_api_secret", - "name": "CLOUDINARY_API_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0cdfed38-6495-42a3-a837-3788f35aadd3", - "name": "io.github.bazinga012/mcp_code_executor", - "description": "The MCP Code Executor is an MCP server that allows LLMs to execute Python code within a specified Conda environment.", - "repository": { - "url": "https://github.com/bazinga012/mcp_code_executor", - "source": "github", - "id": "928420039" + "server": { + "name": "io.github.bazinga012/mcp_code_executor", + "description": "The MCP Code Executor is an MCP server that allows LLMs to execute Python code within a specified Conda environment.", + "status": "active", + "repository": { + "url": "https://github.com/bazinga012/mcp_code_executor", + "source": "github", + "id": "928420039" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "code_execution_server", + "version": "0.2.0", + "package_arguments": [ + { + "description": "file_path positional argument for the code file to be read", + "is_required": true, + "format": "string", + "value": "/path/to/code/storage/my_script_abc123.py", + "default": "/path/to/code/storage/my_script_abc123.py", + "type": "positional", + "value_hint": "/path/to/code/storage/my_script_abc123.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0cdfed38-6495-42a3-a837-3788f35aadd3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:37Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "code_execution_server", - "version": "0.2.0", - "package_arguments": [ - { - "description": "file_path positional argument for the code file to be read", - "is_required": true, - "format": "string", - "value": "/path/to/code/storage/my_script_abc123.py", - "default": "/path/to/code/storage/my_script_abc123.py", - "type": "positional", - "value_hint": "/path/to/code/storage/my_script_abc123.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a9fe34f1-7c82-4f7d-8fbe-20bb8ca29e7b", - "name": "io.github.kocierik/consul-mcp-server", - "description": "A consul MCP Server (modelcontextprotocol) ", - "repository": { - "url": "https://github.com/kocierik/consul-mcp-server", - "source": "github", - "id": "969129017" + "server": { + "name": "io.github.kocierik/consul-mcp-server", + "description": "A consul MCP Server (modelcontextprotocol) ", + "status": "active", + "repository": { + "url": "https://github.com/kocierik/consul-mcp-server", + "source": "github", + "id": "969129017" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "consul-mcp", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a9fe34f1-7c82-4f7d-8fbe-20bb8ca29e7b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "consul-mcp", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ae9ce022-800d-4a10-a452-5bc396d25430", - "name": "io.github.topoteretes/cognee", - "description": "Memory for AI Agents in 5 lines of code", - "repository": { - "url": "https://github.com/topoteretes/cognee", - "source": "github", - "id": "679343504" + "server": { + "name": "io.github.topoteretes/cognee", + "description": "Memory for AI Agents in 5 lines of code", + "status": "active", + "repository": { + "url": "https://github.com/topoteretes/cognee", + "source": "github", + "id": "679343504" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "cognee", + "version": "0.1.40" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ae9ce022-800d-4a10-a452-5bc396d25430", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "cognee", - "version": "0.1.40" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "28fc08e1-1afc-42cb-8eca-0b500e23c73e", - "name": "io.github.longmans/coin_api_mcp", - "description": "A Model Context Protocol server that provides access to CoinMarketCap's cryptocurrency data. This server enables AI-powered applications to retrieve cryptocurrency listings, quotes, and detailed information about various coins.", - "repository": { - "url": "https://github.com/longmans/coin_api_mcp", - "source": "github", - "id": "903449956" + "server": { + "name": "io.github.longmans/coin_api_mcp", + "description": "A Model Context Protocol server that provides access to CoinMarketCap's cryptocurrency data. This server enables AI-powered applications to retrieve cryptocurrency listings, quotes, and detailed information about various coins.", + "status": "active", + "repository": { + "url": "https://github.com/longmans/coin_api_mcp", + "source": "github", + "id": "903449956" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "coin-api-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "-m coin_api_mcp", + "is_required": true, + "format": "string", + "value": "-m coin_api_mcp", + "default": "-m coin_api_mcp", + "type": "named", + "name": "-m coin_api_mcp", + "value_hint": "coin_api_mcp" + } + ], + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "COINMARKETCAP_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "28fc08e1-1afc-42cb-8eca-0b500e23c73e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "coin-api-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "-m coin_api_mcp", - "is_required": true, - "format": "string", - "value": "-m coin_api_mcp", - "default": "-m coin_api_mcp", - "type": "named", - "name": "-m coin_api_mcp", - "value_hint": "coin_api_mcp" - } - ], - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "COINMARKETCAP_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7e3a17ce-fbbd-48cb-b29f-34a4b8c6ca55", - "name": "io.github.shinzo-labs/coinmarketcap-mcp", - "description": "MCP Implementation for CoinMarketCap", - "repository": { - "url": "https://github.com/shinzo-labs/coinmarketcap-mcp", - "source": "github", - "id": "952163210" + "server": { + "name": "io.github.shinzo-labs/coinmarketcap-mcp", + "description": "MCP Implementation for CoinMarketCap", + "status": "active", + "repository": { + "url": "https://github.com/shinzo-labs/coinmarketcap-mcp", + "source": "github", + "id": "952163210" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@shinzolabs/coinmarketcap-mcp", + "version": "1.3.7" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7e3a17ce-fbbd-48cb-b29f-34a4b8c6ca55", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@shinzolabs/coinmarketcap-mcp", - "version": "1.3.7" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5e32ec37-7a46-4e84-9f19-845cd6b151f4", - "name": "io.github.baryhuang/mcp-remote-macos-use", - "description": "The only general AI agent that does NOT requires extra API key, giving you full control on your local and remote MacOs from Claude Desktop App", - "repository": { - "url": "https://github.com/baryhuang/mcp-remote-macos-use", - "source": "github", - "id": "952732612" + "server": { + "name": "io.github.baryhuang/mcp-remote-macos-use", + "description": "The only general AI agent that does NOT requires extra API key, giving you full control on your local and remote MacOs from Claude Desktop App", + "status": "active", + "repository": { + "url": "https://github.com/baryhuang/mcp-remote-macos-use", + "source": "github", + "id": "952732612" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp_remote_macos_use", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Pass environment variable MACOS_USERNAME", + "is_required": true, + "format": "string", + "value": "-e MACOS_USERNAME=your_macos_username", + "default": "-e MACOS_USERNAME=your_macos_username", + "type": "named", + "name": "-e MACOS_USERNAME=your_macos_username", + "value_hint": "MACOS_USERNAME=your_macos_username" + }, + { + "description": "Pass environment variable MACOS_PASSWORD", + "is_required": true, + "format": "string", + "value": "-e MACOS_PASSWORD=your_macos_password", + "default": "-e MACOS_PASSWORD=your_macos_password", + "type": "named", + "name": "-e MACOS_PASSWORD=your_macos_password", + "value_hint": "MACOS_PASSWORD=your_macos_password" + }, + { + "description": "Pass environment variable MACOS_HOST", + "is_required": true, + "format": "string", + "value": "-e MACOS_HOST=your_macos_hostname_or_ip", + "default": "-e MACOS_HOST=your_macos_hostname_or_ip", + "type": "named", + "name": "-e MACOS_HOST=your_macos_hostname_or_ip", + "value_hint": "MACOS_HOST=your_macos_hostname_or_ip" + }, + { + "description": "Remove container when it exits", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Docker image to use", + "is_required": true, + "format": "string", + "value": "buryhuang/mcp-remote-macos-use:latest", + "default": "buryhuang/mcp-remote-macos-use:latest", + "type": "positional", + "value_hint": "buryhuang/mcp-remote-macos-use:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5e32ec37-7a46-4e84-9f19-845cd6b151f4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:52Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp_remote_macos_use", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Pass environment variable MACOS_USERNAME", - "is_required": true, - "format": "string", - "value": "-e MACOS_USERNAME=your_macos_username", - "default": "-e MACOS_USERNAME=your_macos_username", - "type": "named", - "name": "-e MACOS_USERNAME=your_macos_username", - "value_hint": "MACOS_USERNAME=your_macos_username" - }, - { - "description": "Pass environment variable MACOS_PASSWORD", - "is_required": true, - "format": "string", - "value": "-e MACOS_PASSWORD=your_macos_password", - "default": "-e MACOS_PASSWORD=your_macos_password", - "type": "named", - "name": "-e MACOS_PASSWORD=your_macos_password", - "value_hint": "MACOS_PASSWORD=your_macos_password" - }, - { - "description": "Pass environment variable MACOS_HOST", - "is_required": true, - "format": "string", - "value": "-e MACOS_HOST=your_macos_hostname_or_ip", - "default": "-e MACOS_HOST=your_macos_hostname_or_ip", - "type": "named", - "name": "-e MACOS_HOST=your_macos_hostname_or_ip", - "value_hint": "MACOS_HOST=your_macos_hostname_or_ip" - }, - { - "description": "Remove container when it exits", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Docker image to use", - "is_required": true, - "format": "string", - "value": "buryhuang/mcp-remote-macos-use:latest", - "default": "buryhuang/mcp-remote-macos-use:latest", - "type": "positional", - "value_hint": "buryhuang/mcp-remote-macos-use:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "347d6881-c509-4dca-9ece-95e25098436b", - "name": "io.github.ivo-toby/contentful-mcp", - "description": "MCP (Model Context Protocol) server for the Contentful Management API", - "repository": { - "url": "https://github.com/ivo-toby/contentful-mcp", - "source": "github", - "id": "898628964" + "server": { + "name": "io.github.ivo-toby/contentful-mcp", + "description": "MCP (Model Context Protocol) server for the Contentful Management API", + "status": "active", + "repository": { + "url": "https://github.com/ivo-toby/contentful-mcp", + "source": "github", + "id": "898628964" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@ivotoby/contentful-management-mcp-server", + "version": "1.14.0", + "package_arguments": [ + { + "description": "Management token for Contentful", + "is_required": true, + "format": "string", + "value": "--management-token \u003cyour token\u003e", + "default": "--management-token \u003cyour token\u003e", + "type": "named", + "name": "--management-token \u003cyour token\u003e", + "value_hint": "\u003cyour token\u003e" + }, + { + "description": "Contentful API host address", + "is_required": true, + "format": "string", + "value": "--host http://api.contentful.com", + "default": "--host http://api.contentful.com", + "type": "named", + "name": "--host http://api.contentful.com", + "value_hint": "http://api.contentful.com" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "347d6881-c509-4dca-9ece-95e25098436b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@ivotoby/contentful-management-mcp-server", - "version": "1.14.0", - "package_arguments": [ - { - "description": "Management token for Contentful", - "is_required": true, - "format": "string", - "value": "--management-token ", - "default": "--management-token ", - "type": "named", - "name": "--management-token ", - "value_hint": "" - }, - { - "description": "Contentful API host address", - "is_required": true, - "format": "string", - "value": "--host http://api.contentful.com", - "default": "--host http://api.contentful.com", - "type": "named", - "name": "--host http://api.contentful.com", - "value_hint": "http://api.contentful.com" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "45ee52ba-1e4c-48a5-9eef-de7a234997db", - "name": "io.github.kukapay/crypto-feargreed-mcp", - "description": "Providing real-time and historical Crypto Fear & Greed Index data", - "repository": { - "url": "https://github.com/kukapay/crypto-feargreed-mcp", - "source": "github", - "id": "948974664" + "server": { + "name": "io.github.kukapay/crypto-feargreed-mcp", + "description": "Providing real-time and historical Crypto Fear \u0026 Greed Index data", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/crypto-feargreed-mcp", + "source": "github", + "id": "948974664" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "crypto-feargreed-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "45ee52ba-1e4c-48a5-9eef-de7a234997db", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:04:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "crypto-feargreed-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0852caec-a861-4f9c-9e94-a7c8b67a1641", - "name": "io.github.kukapay/crypto-indicators-mcp", - "description": "An MCP server providing a range of cryptocurrency technical analysis indicators and strategies.", - "repository": { - "url": "https://github.com/kukapay/crypto-indicators-mcp", - "source": "github", - "id": "953321792" + "server": { + "name": "io.github.kukapay/crypto-indicators-mcp", + "description": "An MCP server providing a range of cryptocurrency technical analysis indicators and strategies.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/crypto-indicators-mcp", + "source": "github", + "id": "953321792" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "crypto-indicators-mcp", + "version": "1.0.1", + "package_arguments": [ + { + "description": "Positional argument: path/to/crypto-indicators-mcp/index.js", + "is_required": true, + "format": "string", + "value": "path/to/crypto-indicators-mcp/index.js", + "default": "path/to/crypto-indicators-mcp/index.js", + "type": "positional", + "value_hint": "path/to/crypto-indicators-mcp/index.js" + } + ], + "environment_variables": [ + { + "description": "binance", + "name": "EXCHANGE_NAME" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0852caec-a861-4f9c-9e94-a7c8b67a1641", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "crypto-indicators-mcp", - "version": "1.0.1", - "package_arguments": [ - { - "description": "Positional argument: path/to/crypto-indicators-mcp/index.js", - "is_required": true, - "format": "string", - "value": "path/to/crypto-indicators-mcp/index.js", - "default": "path/to/crypto-indicators-mcp/index.js", - "type": "positional", - "value_hint": "path/to/crypto-indicators-mcp/index.js" - } - ], - "environment_variables": [ - { - "description": "binance", - "name": "EXCHANGE_NAME" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bb7a2190-2e72-4ccf-9603-226e0fde174c", - "name": "io.github.kukapay/crypto-sentiment-mcp", - "description": "An MCP server that delivers cryptocurrency sentiment analysis to AI agents.", - "repository": { - "url": "https://github.com/kukapay/crypto-sentiment-mcp", - "source": "github", - "id": "953543740" + "server": { + "name": "io.github.kukapay/crypto-sentiment-mcp", + "description": "An MCP server that delivers cryptocurrency sentiment analysis to AI agents.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/crypto-sentiment-mcp", + "source": "github", + "id": "953543740" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "crypto-sentiment-mcp", + "version": "0.1.0", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bb7a2190-2e72-4ccf-9603-226e0fde174c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "crypto-sentiment-mcp", - "version": "0.1.0", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "91f75500-0051-4d05-a5b2-9a87aa52ec3a", - "name": "io.github.kukapay/cryptopanic-mcp-server", - "description": "Provide latest cryptocurrency news to AI agents.", - "repository": { - "url": "https://github.com/kukapay/cryptopanic-mcp-server", - "source": "github", - "id": "946301386" + "server": { + "name": "io.github.kukapay/cryptopanic-mcp-server", + "description": "Provide latest cryptocurrency news to AI agents.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/cryptopanic-mcp-server", + "source": "github", + "id": "946301386" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "cryptopanic-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "91f75500-0051-4d05-a5b2-9a87aa52ec3a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:05Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "cryptopanic-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "58b5f6c8-1ad7-4378-9921-7b9b7982c84c", - "name": "io.github.dappierai/dappier-mcp", - "description": "Enable fast, free real-time web search and access premium data from trusted media brands—news, financial markets, sports, entertainment, weather, and more. Build powerful AI agents with Dappier.", - "repository": { - "url": "https://github.com/DappierAI/dappier-mcp", - "source": "github", - "id": "923666627" + "server": { + "name": "io.github.dappierai/dappier-mcp", + "description": "Enable fast, free real-time web search and access premium data from trusted media brands—news, financial markets, sports, entertainment, weather, and more. Build powerful AI agents with Dappier.", + "status": "active", + "repository": { + "url": "https://github.com/DappierAI/dappier-mcp", + "source": "github", + "id": "923666627" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "dappier-mcp", + "version": "0.3.2", + "environment_variables": [ + { + "description": "YOUR_API_KEY_HERE", + "name": "DAPPIER_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "58b5f6c8-1ad7-4378-9921-7b9b7982c84c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "dappier-mcp", - "version": "0.3.2", - "environment_variables": [ - { - "description": "YOUR_API_KEY_HERE", - "name": "DAPPIER_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "24f2d280-583d-4511-af0c-47910fc52c4d", - "name": "io.github.geli2001/datadog-mcp-server", - "description": "MCP server interacts with the official Datadog API", - "repository": { - "url": "https://github.com/GeLi2001/datadog-mcp-server", - "source": "github", - "id": "960104719" + "server": { + "name": "io.github.geli2001/datadog-mcp-server", + "description": "MCP server interacts with the official Datadog API", + "status": "active", + "repository": { + "url": "https://github.com/GeLi2001/datadog-mcp-server", + "source": "github", + "id": "960104719" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "datadog-mcp-server", + "version": "1.0.8", + "package_arguments": [ + { + "description": "\u003cYOUR_API_KEY\u003e", + "is_required": true, + "format": "string", + "value": "--apiKey \u003cYOUR_API_KEY\u003e", + "default": "--apiKey \u003cYOUR_API_KEY\u003e", + "type": "named", + "name": "--apiKey \u003cYOUR_API_KEY\u003e", + "value_hint": "\u003cYOUR_API_KEY\u003e" + }, + { + "description": "\u003cYOUR_APP_KEY\u003e", + "is_required": true, + "format": "string", + "value": "--appKey \u003cYOUR_APP_KEY\u003e", + "default": "--appKey \u003cYOUR_APP_KEY\u003e", + "type": "named", + "name": "--appKey \u003cYOUR_APP_KEY\u003e", + "value_hint": "\u003cYOUR_APP_KEY\u003e" + }, + { + "description": "\u003cYOUR_DD_SITE\u003e", + "is_required": true, + "format": "string", + "value": "--site \u003cYOUR_DD_SITE\u003e", + "default": "--site \u003cYOUR_DD_SITE\u003e", + "type": "named", + "name": "--site \u003cYOUR_DD_SITE\u003e", + "value_hint": "\u003cYOUR_DD_SITE\u003e" + }, + { + "description": "\u003cYOUR_LOGS_SITE\u003e", + "is_required": true, + "format": "string", + "value": "--logsSite \u003cYOUR_LOGS_SITE\u003e", + "default": "--logsSite \u003cYOUR_LOGS_SITE\u003e", + "type": "named", + "name": "--logsSite \u003cYOUR_LOGS_SITE\u003e", + "value_hint": "\u003cYOUR_LOGS_SITE\u003e" + }, + { + "description": "\u003cYOUR_METRICS_SITE\u003e", + "is_required": true, + "format": "string", + "value": "--metricsSite \u003cYOUR_METRICS_SITE\u003e", + "default": "--metricsSite \u003cYOUR_METRICS_SITE\u003e", + "type": "named", + "name": "--metricsSite \u003cYOUR_METRICS_SITE\u003e", + "value_hint": "\u003cYOUR_METRICS_SITE\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "24f2d280-583d-4511-af0c-47910fc52c4d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "datadog-mcp-server", - "version": "1.0.8", - "package_arguments": [ - { - "description": "", - "is_required": true, - "format": "string", - "value": "--apiKey ", - "default": "--apiKey ", - "type": "named", - "name": "--apiKey ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--appKey ", - "default": "--appKey ", - "type": "named", - "name": "--appKey ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--site ", - "default": "--site ", - "type": "named", - "name": "--site ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--logsSite ", - "default": "--logsSite ", - "type": "named", - "name": "--logsSite ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--metricsSite ", - "default": "--metricsSite ", - "type": "named", - "name": "--metricsSite ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "14074b80-f3a7-4b45-97ba-7204c92c5f6e", - "name": "io.github.reading-plus-ai/mcp-server-data-exploration", - "description": "", - "repository": { - "url": "https://github.com/reading-plus-ai/mcp-server-data-exploration", - "source": "github", - "id": "899661027" + "server": { + "name": "io.github.reading-plus-ai/mcp-server-data-exploration", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/reading-plus-ai/mcp-server-data-exploration", + "source": "github", + "id": "899661027" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-ds", + "version": "0.1.6" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "14074b80-f3a7-4b45-97ba-7204c92c5f6e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-ds", - "version": "0.1.6" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "59a6acf5-d65f-4884-a9b8-ae7d2c9f6728", - "name": "io.github.samuelgursky/davinci-resolve-mcp", - "description": "MCP server integration for DaVinci Resolve", - "repository": { - "url": "https://github.com/samuelgursky/davinci-resolve-mcp", - "source": "github", - "id": "950355259" + "server": { + "name": "io.github.samuelgursky/davinci-resolve-mcp", + "description": "MCP server integration for DaVinci Resolve", + "status": "active", + "repository": { + "url": "https://github.com/samuelgursky/davinci-resolve-mcp", + "source": "github", + "id": "950355259" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "samuelgursky/davinci-resolve-mcp", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "59a6acf5-d65f-4884-a9b8-ae7d2c9f6728", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "samuelgursky/davinci-resolve-mcp", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "200d7310-6d18-4b22-98b3-68ae63ea985a", - "name": "io.github.privetin/dataset-viewer", - "description": "MCP server for Hugging Face dataset viewer", - "repository": { - "url": "https://github.com/privetin/dataset-viewer", - "source": "github", - "id": "911084198" + "server": { + "name": "io.github.privetin/dataset-viewer", + "description": "MCP server for Hugging Face dataset viewer", + "status": "active", + "repository": { + "url": "https://github.com/privetin/dataset-viewer", + "source": "github", + "id": "911084198" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "dataset-viewer", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "dataset-viewer", + "default": "dataset-viewer", + "type": "positional", + "value_hint": "dataset-viewer" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "200d7310-6d18-4b22-98b3-68ae63ea985a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "dataset-viewer", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "dataset-viewer", - "default": "dataset-viewer", - "type": "positional", - "value_hint": "dataset-viewer" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ec2849c6-e8ed-46b1-8e57-646fd2e8be93", - "name": "io.github.snagasuri/deebo-prototype", - "description": "Autonomous debugging agent MCP server", - "repository": { - "url": "https://github.com/snagasuri/deebo-prototype", - "source": "github", - "id": "954456943" + "server": { + "name": "io.github.snagasuri/deebo-prototype", + "description": "Autonomous debugging agent MCP server", + "status": "active", + "repository": { + "url": "https://github.com/snagasuri/deebo-prototype", + "source": "github", + "id": "954456943" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "deebo-prototype", + "version": "1.0.0", + "package_arguments": [ + { + "description": "--experimental-specifier-resolution=node", + "is_required": true, + "format": "string", + "value": "--experimental-specifier-resolution=node", + "default": "--experimental-specifier-resolution=node", + "type": "named", + "name": "--experimental-specifier-resolution=node", + "value_hint": "node" + }, + { + "description": "--experimental-modules", + "is_required": true, + "format": "string", + "value": "--experimental-modules", + "default": "--experimental-modules", + "type": "named", + "name": "--experimental-modules" + }, + { + "description": "--max-old-space-size=4096", + "is_required": true, + "format": "string", + "value": "--max-old-space-size=4096", + "default": "--max-old-space-size=4096", + "type": "named", + "name": "--max-old-space-size=4096", + "value_hint": "4096" + }, + { + "description": "/Users/[your-name]/.deebo/build/index.js", + "is_required": true, + "format": "string", + "value": "/Users/[your-name]/.deebo/build/index.js", + "default": "/Users/[your-name]/.deebo/build/index.js", + "type": "positional" + } + ], + "environment_variables": [ + { + "description": "development", + "name": "NODE_ENV" + }, + { + "description": "true", + "name": "USE_MEMORY_BANK" + }, + { + "description": "openrouter", + "name": "MOTHER_HOST" + }, + { + "description": "anthropic/claude-3.5-sonnet", + "name": "MOTHER_MODEL" + }, + { + "description": "openrouter", + "name": "SCENARIO_HOST" + }, + { + "description": "deepseek/deepseek-chat", + "name": "SCENARIO_MODEL" + }, + { + "description": "your-openrouter-api-key", + "name": "OPENROUTER_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ec2849c6-e8ed-46b1-8e57-646fd2e8be93", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "deebo-prototype", - "version": "1.0.0", - "package_arguments": [ - { - "description": "--experimental-specifier-resolution=node", - "is_required": true, - "format": "string", - "value": "--experimental-specifier-resolution=node", - "default": "--experimental-specifier-resolution=node", - "type": "named", - "name": "--experimental-specifier-resolution=node", - "value_hint": "node" - }, - { - "description": "--experimental-modules", - "is_required": true, - "format": "string", - "value": "--experimental-modules", - "default": "--experimental-modules", - "type": "named", - "name": "--experimental-modules" - }, - { - "description": "--max-old-space-size=4096", - "is_required": true, - "format": "string", - "value": "--max-old-space-size=4096", - "default": "--max-old-space-size=4096", - "type": "named", - "name": "--max-old-space-size=4096", - "value_hint": "4096" - }, - { - "description": "/Users/[your-name]/.deebo/build/index.js", - "is_required": true, - "format": "string", - "value": "/Users/[your-name]/.deebo/build/index.js", - "default": "/Users/[your-name]/.deebo/build/index.js", - "type": "positional" - } - ], - "environment_variables": [ - { - "description": "development", - "name": "NODE_ENV" - }, - { - "description": "true", - "name": "USE_MEMORY_BANK" - }, - { - "description": "openrouter", - "name": "MOTHER_HOST" - }, - { - "description": "anthropic/claude-3.5-sonnet", - "name": "MOTHER_MODEL" - }, - { - "description": "openrouter", - "name": "SCENARIO_HOST" - }, - { - "description": "deepseek/deepseek-chat", - "name": "SCENARIO_MODEL" - }, - { - "description": "your-openrouter-api-key", - "name": "OPENROUTER_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "79f72036-83ee-4420-9767-980e27590e6f", - "name": "io.github.reading-plus-ai/mcp-server-deep-research", - "description": "", - "repository": { - "url": "https://github.com/reading-plus-ai/mcp-server-deep-research", - "source": "github", - "id": "953282616" + "server": { + "name": "io.github.reading-plus-ai/mcp-server-deep-research", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/reading-plus-ai/mcp-server-deep-research", + "source": "github", + "id": "953282616" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-deep-research", + "version": "0.1.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "79f72036-83ee-4420-9767-980e27590e6f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-deep-research", - "version": "0.1.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "345bf964-02ce-4814-b37f-52c2e73ab395", - "name": "io.github.dmontgomery40/deepseek-mcp-server", - "description": "Model Context Protocol server for DeepSeek's advanced language models", - "repository": { - "url": "https://github.com/DMontgomery40/deepseek-mcp-server", - "source": "github", - "id": "920179950" + "server": { + "name": "io.github.dmontgomery40/deepseek-mcp-server", + "description": "Model Context Protocol server for DeepSeek's advanced language models", + "status": "active", + "repository": { + "url": "https://github.com/DMontgomery40/deepseek-mcp-server", + "source": "github", + "id": "920179950" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "deepseek-mcp-server", + "version": "0.2.1", + "environment_variables": [ + { + "description": "your-api-key", + "name": "DEEPSEEK_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "345bf964-02ce-4814-b37f-52c2e73ab395", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "deepseek-mcp-server", - "version": "0.2.1", - "environment_variables": [ - { - "description": "your-api-key", - "name": "DEEPSEEK_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a2015046-780d-421a-999f-c52c808236fa", - "name": "io.github.66julienmartin/mcp-server-deepseek_r1", - "description": "A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)", - "repository": { - "url": "https://github.com/66julienmartin/MCP-server-Deepseek_R1", - "source": "github", - "id": "927737184" + "server": { + "name": "io.github.66julienmartin/mcp-server-deepseek_r1", + "description": "A Model Context Protocol (MCP) server implementation connecting Claude Desktop with DeepSeek's language models (R1/V3)", + "status": "active", + "repository": { + "url": "https://github.com/66julienmartin/MCP-server-Deepseek_R1", + "source": "github", + "id": "927737184" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "deepseek_r1", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your-api-key", + "name": "DEEPSEEK_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a2015046-780d-421a-999f-c52c808236fa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "deepseek_r1", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your-api-key", - "name": "DEEPSEEK_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "883a7c72-e6ca-41cb-91e9-e65436a58729", - "name": "io.github.ruixingshi/deepseek-thinker-mcp", - "description": "A MCP provider Deepseek reasoning content to MCP-enabled AI Clients, like Claude Desktop. Supports access to Deepseek's CoT from the Deepseek API service or a local Ollama server.", - "repository": { - "url": "https://github.com/ruixingshi/deepseek-thinker-mcp", - "source": "github", - "id": "931883120" + "server": { + "name": "io.github.ruixingshi/deepseek-thinker-mcp", + "description": "A MCP provider Deepseek reasoning content to MCP-enabled AI Clients, like Claude Desktop. Supports access to Deepseek's CoT from the Deepseek API service or a local Ollama server.", + "status": "active", + "repository": { + "url": "https://github.com/ruixingshi/deepseek-thinker-mcp", + "source": "github", + "id": "931883120" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "deepseek-thinker-mcp", + "version": "1.0.2", + "environment_variables": [ + { + "description": "\u003cYour API Key\u003e", + "name": "API_KEY" + }, + { + "description": "\u003cYour Base URL\u003e", + "name": "BASE_URL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "883a7c72-e6ca-41cb-91e9-e65436a58729", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "deepseek-thinker-mcp", - "version": "1.0.2", - "environment_variables": [ - { - "description": "", - "name": "API_KEY" - }, - { - "description": "", - "name": "BASE_URL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bac14e5d-08c4-4b69-8e40-b845632d26ed", - "name": "io.github.descope-sample-apps/descope-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/descope-sample-apps/descope-mcp-server-stdio", - "source": "github", - "id": "921929368" + "server": { + "name": "io.github.descope-sample-apps/descope-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/descope-sample-apps/descope-mcp-server-stdio", + "source": "github", + "id": "921929368" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "descope-mcp-server", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your-descope-project-id-here", + "name": "DESCOPE_PROJECT_ID" + }, + { + "description": "your-descope-management-key-here", + "name": "DESCOPE_MANAGEMENT_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bac14e5d-08c4-4b69-8e40-b845632d26ed", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "descope-mcp-server", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your-descope-project-id-here", - "name": "DESCOPE_PROJECT_ID" - }, - { - "description": "your-descope-management-key-here", - "name": "DESCOPE_MANAGEMENT_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8b17658e-2a1b-4ca7-a1ae-583e7b190bce", - "name": "io.github.kpsunil97/devrev-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/kpsunil97/devrev-mcp-server", - "source": "github", - "id": "906414289" + "server": { + "name": "io.github.kpsunil97/devrev-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/kpsunil97/devrev-mcp-server", + "source": "github", + "id": "906414289" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "devrev-mcp", + "version": "0.1.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8b17658e-2a1b-4ca7-a1ae-583e7b190bce", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "devrev-mcp", - "version": "0.1.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c83f2ca0-ca97-43cf-8288-5ff4a0771e29", - "name": "io.github.christianhinge/dicom-mcp", - "description": "Model Context Protocol (MCP) for interacting with dicom servers (PACS etc.)", - "repository": { - "url": "https://github.com/ChristianHinge/dicom-mcp", - "source": "github", - "id": "946779028" + "server": { + "name": "io.github.christianhinge/dicom-mcp", + "description": "Model Context Protocol (MCP) for interacting with dicom servers (PACS etc.)", + "status": "active", + "repository": { + "url": "https://github.com/ChristianHinge/dicom-mcp", + "source": "github", + "id": "946779028" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "dicom-mcp", + "version": "0.1.1", + "package_arguments": [ + { + "description": "Specify the directory to operate in", + "is_required": true, + "format": "string", + "value": "--directory path/to/cloned/dicom-mcp", + "default": "--directory path/to/cloned/dicom-mcp", + "type": "named", + "name": "--directory path/to/cloned/dicom-mcp", + "value_hint": "path/to/cloned/dicom-mcp" + }, + { + "description": "Script or module to execute", + "is_required": true, + "format": "string", + "value": "dicom-mcp", + "default": "dicom-mcp", + "type": "positional", + "value_hint": "dicom-mcp" + }, + { + "description": "Path to the configuration YAML file", + "is_required": true, + "format": "string", + "value": "/path/to/your_config.yaml", + "default": "/path/to/your_config.yaml", + "type": "positional", + "value_hint": "/path/to/your_config.yaml" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c83f2ca0-ca97-43cf-8288-5ff4a0771e29", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "dicom-mcp", - "version": "0.1.1", - "package_arguments": [ - { - "description": "Specify the directory to operate in", - "is_required": true, - "format": "string", - "value": "--directory path/to/cloned/dicom-mcp", - "default": "--directory path/to/cloned/dicom-mcp", - "type": "named", - "name": "--directory path/to/cloned/dicom-mcp", - "value_hint": "path/to/cloned/dicom-mcp" - }, - { - "description": "Script or module to execute", - "is_required": true, - "format": "string", - "value": "dicom-mcp", - "default": "dicom-mcp", - "type": "positional", - "value_hint": "dicom-mcp" - }, - { - "description": "Path to the configuration YAML file", - "is_required": true, - "format": "string", - "value": "/path/to/your_config.yaml", - "default": "/path/to/your_config.yaml", - "type": "positional", - "value_hint": "/path/to/your_config.yaml" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5f64133c-70f4-4044-ac82-dcb2e7758c8c", - "name": "io.github.yanxingliu/dify-mcp-server", - "description": "Model Context Protocol (MCP) Server for dify workflows", - "repository": { - "url": "https://github.com/YanxingLiu/dify-mcp-server", - "source": "github", - "id": "908244326" + "server": { + "name": "io.github.yanxingliu/dify-mcp-server", + "description": "Model Context Protocol (MCP) Server for dify workflows", + "status": "active", + "repository": { + "url": "https://github.com/YanxingLiu/dify-mcp-server", + "source": "github", + "id": "908244326" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "dify-mcp-server", + "version": "0.1.1", + "package_arguments": [ + { + "description": "Directory path to operate in", + "is_required": true, + "format": "string", + "value": "--directory /Users/lyx/Downloads/dify-mcp-server", + "default": "--directory /Users/lyx/Downloads/dify-mcp-server", + "type": "named", + "name": "--directory /Users/lyx/Downloads/dify-mcp-server", + "value_hint": "/Users/lyx/Downloads/dify-mcp-server" + }, + { + "description": "Server script/module", + "is_required": true, + "format": "string", + "value": "dify_mcp_server", + "default": "dify_mcp_server", + "type": "positional", + "value_hint": "dify_mcp_server" + } + ], + "environment_variables": [ + { + "description": "https://cloud.dify.ai/v1", + "name": "DIFY_BASE_URL" + }, + { + "description": "app-sk1,app-sk2", + "name": "DIFY_APP_SKS" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5f64133c-70f4-4044-ac82-dcb2e7758c8c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "dify-mcp-server", - "version": "0.1.1", - "package_arguments": [ - { - "description": "Directory path to operate in", - "is_required": true, - "format": "string", - "value": "--directory /Users/lyx/Downloads/dify-mcp-server", - "default": "--directory /Users/lyx/Downloads/dify-mcp-server", - "type": "named", - "name": "--directory /Users/lyx/Downloads/dify-mcp-server", - "value_hint": "/Users/lyx/Downloads/dify-mcp-server" - }, - { - "description": "Server script/module", - "is_required": true, - "format": "string", - "value": "dify_mcp_server", - "default": "dify_mcp_server", - "type": "positional", - "value_hint": "dify_mcp_server" - } - ], - "environment_variables": [ - { - "description": "https://cloud.dify.ai/v1", - "name": "DIFY_BASE_URL" - }, - { - "description": "app-sk1,app-sk2", - "name": "DIFY_APP_SKS" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "361ed7f4-8df4-4a8e-931f-edfb380e0019", - "name": "io.github.v-3/discordmcp", - "description": "Discord MCP Server for Claude Integration", - "repository": { - "url": "https://github.com/v-3/discordmcp", - "source": "github", - "id": "919856605" + "server": { + "name": "io.github.v-3/discordmcp", + "description": "Discord MCP Server for Claude Integration", + "status": "active", + "repository": { + "url": "https://github.com/v-3/discordmcp", + "source": "github", + "id": "919856605" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "discord-mcp-server", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "361ed7f4-8df4-4a8e-931f-edfb380e0019", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "discord-mcp-server", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ae4c8106-9947-4577-924e-c7106256dd69", - "name": "io.github.saseq/discord-mcp", - "description": "A MCP server for the Discord integration. Enable your AI assistants to seamlessly interact with Discord. Enhance your Discord experience with powerful automation capabilities.", - "repository": { - "url": "https://github.com/SaseQ/discord-mcp", - "source": "github", - "id": "948723723" + "server": { + "name": "io.github.saseq/discord-mcp", + "description": "A MCP server for the Discord integration. Enable your AI assistants to seamlessly interact with Discord. Enhance your Discord experience with powerful automation capabilities.", + "status": "active", + "repository": { + "url": "https://github.com/SaseQ/discord-mcp", + "source": "github", + "id": "948723723" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "SaseQ/discord-mcp", + "version": "", + "package_arguments": [ + { + "description": "Second positional argument", + "is_required": true, + "format": "string", + "value": "https://gitmcp.io/SaseQ/discord-mcp", + "default": "https://gitmcp.io/SaseQ/discord-mcp", + "type": "positional", + "value_hint": "https://gitmcp.io/SaseQ/discord-mcp" + } + ], + "environment_variables": [ + { + "description": "YOUR_DISCORD_BOT_TOKEN", + "name": "DISCORD_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ae4c8106-9947-4577-924e-c7106256dd69", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:56Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "SaseQ/discord-mcp", - "version": "", - "package_arguments": [ - { - "description": "Second positional argument", - "is_required": true, - "format": "string", - "value": "https://gitmcp.io/SaseQ/discord-mcp", - "default": "https://gitmcp.io/SaseQ/discord-mcp", - "type": "positional", - "value_hint": "https://gitmcp.io/SaseQ/discord-mcp" - } - ], - "environment_variables": [ - { - "description": "YOUR_DISCORD_BOT_TOKEN", - "name": "DISCORD_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dedc68af-03ef-49ce-a331-e4717b96f693", - "name": "io.github.ashdevfr/discourse-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/AshDevFr/discourse-mcp-server", - "source": "github", - "id": "946264788" + "server": { + "name": "io.github.ashdevfr/discourse-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/AshDevFr/discourse-mcp-server", + "source": "github", + "id": "946264788" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@ashdev/discourse-mcp-server", + "version": "1.0.2", + "environment_variables": [ + { + "description": "https://try.discourse.org", + "name": "DISCOURSE_API_URL" + }, + { + "description": "1234", + "name": "DISCOURSE_API_KEY" + }, + { + "description": "ash", + "name": "DISCOURSE_API_USERNAME" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dedc68af-03ef-49ce-a331-e4717b96f693", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:05:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@ashdev/discourse-mcp-server", - "version": "1.0.2", - "environment_variables": [ - { - "description": "https://try.discourse.org", - "name": "DISCOURSE_API_URL" - }, - { - "description": "1234", - "name": "DISCOURSE_API_KEY" - }, - { - "description": "ash", - "name": "DISCOURSE_API_USERNAME" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d2aacd5b-0642-4832-8629-58272a922e4b", - "name": "io.github.ckreiling/mcp-server-docker", - "description": "MCP server for Docker", - "repository": { - "url": "https://github.com/ckreiling/mcp-server-docker", - "source": "github", - "id": "899787279" + "server": { + "name": "io.github.ckreiling/mcp-server-docker", + "description": "MCP server for Docker", + "status": "active", + "repository": { + "url": "https://github.com/ckreiling/mcp-server-docker", + "source": "github", + "id": "899787279" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-docker", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d2aacd5b-0642-4832-8629-58272a922e4b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-docker", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5a9955bc-6c28-4ebd-974e-73226eb3e58f", - "name": "io.github.szeider/mcp-dblp", - "description": "A Model Context Protocol (MCP) server that provides access to the DBLP computer science bibliography database for Large Language Models.", - "repository": { - "url": "https://github.com/szeider/mcp-dblp", - "source": "github", - "id": "940314682" + "server": { + "name": "io.github.szeider/mcp-dblp", + "description": "A Model Context Protocol (MCP) server that provides access to the DBLP computer science bibliography database for Large Language Models.", + "status": "active", + "repository": { + "url": "https://github.com/szeider/mcp-dblp", + "source": "github", + "id": "940314682" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-dblp", + "version": "1.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5a9955bc-6c28-4ebd-974e-73226eb3e58f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:03Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-dblp", - "version": "1.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7902d399-3080-4926-afb8-4f98c3a7d870", - "name": "io.github.omedia/mcp-server-drupal", - "description": "TS based companion MCP server for the Drupal MCP module that works with the STDIO transport.", - "repository": { - "url": "https://github.com/Omedia/mcp-server-drupal", - "source": "github", - "id": "900629184" + "server": { + "name": "io.github.omedia/mcp-server-drupal", + "description": "TS based companion MCP server for the Drupal MCP module that works with the STDIO transport.", + "status": "active", + "repository": { + "url": "https://github.com/Omedia/mcp-server-drupal", + "source": "github", + "id": "900629184" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "Omedia/mcp-server-drupal", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7902d399-3080-4926-afb8-4f98c3a7d870", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:05Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "Omedia/mcp-server-drupal", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2d851046-40f2-4088-95df-d6c0f93c2f0a", - "name": "io.github.kukapay/dune-analytics-mcp", - "description": "A mcp server that bridges Dune Analytics data to AI agents.", - "repository": { - "url": "https://github.com/kukapay/dune-analytics-mcp", - "source": "github", - "id": "949262442" + "server": { + "name": "io.github.kukapay/dune-analytics-mcp", + "description": "A mcp server that bridges Dune Analytics data to AI agents.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/dune-analytics-mcp", + "source": "github", + "id": "949262442" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "dune-analytics-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2d851046-40f2-4088-95df-d6c0f93c2f0a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "dune-analytics-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f97607ba-eb50-4258-b46c-ce9fc6587fa9", - "name": "io.github.tencentedgeone/edgeone-pages-mcp", - "description": "An MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.", - "repository": { - "url": "https://github.com/TencentEdgeOne/edgeone-pages-mcp", - "source": "github", - "id": "954390434" + "server": { + "name": "io.github.tencentedgeone/edgeone-pages-mcp", + "description": "An MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.", + "status": "active", + "repository": { + "url": "https://github.com/TencentEdgeOne/edgeone-pages-mcp", + "source": "github", + "id": "954390434" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "edgeone-pages-mcp", + "version": "0.0.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f97607ba-eb50-4258-b46c-ce9fc6587fa9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "edgeone-pages-mcp", - "version": "0.0.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "995ac56a-5ec7-4411-a86c-4ebfef9c9605", - "name": "io.github.edwin-finance/edwin", - "description": "Empowering AI agents to dominate DeFAI", - "repository": { - "url": "https://github.com/edwin-finance/edwin", - "source": "github", - "id": "918664127" + "server": { + "name": "io.github.edwin-finance/edwin", + "description": "Empowering AI agents to dominate DeFAI", + "status": "active", + "repository": { + "url": "https://github.com/edwin-finance/edwin", + "source": "github", + "id": "918664127" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "edwin-sdk", + "version": "0.8.29" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "995ac56a-5ec7-4411-a86c-4ebfef9c9605", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:11Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "edwin-sdk", - "version": "0.8.29" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1d89482a-a7de-4d3b-a7cb-1b7be49939ec", - "name": "io.github.mamertofabian/elevenlabs-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/mamertofabian/elevenlabs-mcp-server", - "source": "github", - "id": "906473152" + "server": { + "name": "io.github.mamertofabian/elevenlabs-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/mamertofabian/elevenlabs-mcp-server", + "source": "github", + "id": "906473152" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "elevenlabs-mcp-server", + "version": "0.1.1", + "package_arguments": [ + { + "description": "Flag to specify a directory for the server", + "is_required": true, + "format": "string", + "value": "--directory path/to/elevenlabs-mcp-server", + "default": "--directory path/to/elevenlabs-mcp-server", + "type": "named", + "name": "--directory path/to/elevenlabs-mcp-server", + "value_hint": "path/to/elevenlabs-mcp-server" + }, + { + "description": "Positional argument specifying the target server to run", + "is_required": true, + "format": "string", + "value": "elevenlabs-mcp-server", + "default": "elevenlabs-mcp-server", + "type": "positional", + "value_hint": "elevenlabs-mcp-server" + } + ], + "environment_variables": [ + { + "description": "your-api-key", + "name": "ELEVENLABS_API_KEY" + }, + { + "description": "your-voice-id", + "name": "ELEVENLABS_VOICE_ID" + }, + { + "description": "eleven_flash_v2", + "name": "ELEVENLABS_MODEL_ID" + }, + { + "description": "0.5", + "name": "ELEVENLABS_STABILITY" + }, + { + "description": "0.75", + "name": "ELEVENLABS_SIMILARITY_BOOST" + }, + { + "description": "0.1", + "name": "ELEVENLABS_STYLE" + }, + { + "description": "output", + "name": "ELEVENLABS_OUTPUT_DIR" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1d89482a-a7de-4d3b-a7cb-1b7be49939ec", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "elevenlabs-mcp-server", - "version": "0.1.1", - "package_arguments": [ - { - "description": "Flag to specify a directory for the server", - "is_required": true, - "format": "string", - "value": "--directory path/to/elevenlabs-mcp-server", - "default": "--directory path/to/elevenlabs-mcp-server", - "type": "named", - "name": "--directory path/to/elevenlabs-mcp-server", - "value_hint": "path/to/elevenlabs-mcp-server" - }, - { - "description": "Positional argument specifying the target server to run", - "is_required": true, - "format": "string", - "value": "elevenlabs-mcp-server", - "default": "elevenlabs-mcp-server", - "type": "positional", - "value_hint": "elevenlabs-mcp-server" - } - ], - "environment_variables": [ - { - "description": "your-api-key", - "name": "ELEVENLABS_API_KEY" - }, - { - "description": "your-voice-id", - "name": "ELEVENLABS_VOICE_ID" - }, - { - "description": "eleven_flash_v2", - "name": "ELEVENLABS_MODEL_ID" - }, - { - "description": "0.5", - "name": "ELEVENLABS_STABILITY" - }, - { - "description": "0.75", - "name": "ELEVENLABS_SIMILARITY_BOOST" - }, - { - "description": "0.1", - "name": "ELEVENLABS_STYLE" - }, - { - "description": "output", - "name": "ELEVENLABS_OUTPUT_DIR" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c0a64e6c-2ff2-4a2f-afe6-f52119a020a0", - "name": "io.github.shy2593666979/mcp-server-email", - "description": "", - "repository": { - "url": "https://github.com/Shy2593666979/mcp-server-email", - "source": "github", - "id": "953349763" + "server": { + "name": "io.github.shy2593666979/mcp-server-email", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Shy2593666979/mcp-server-email", + "source": "github", + "id": "953349763" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-email", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c0a64e6c-2ff2-4a2f-afe6-f52119a020a0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-email", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "35e1e1a0-30c9-4857-a9e0-5c64f7e29fa9", - "name": "io.github.whataboutyou-ai/eunomia-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/whataboutyou-ai/eunomia-mcp-server", - "source": "github", - "id": "915645627" + "server": { + "name": "io.github.whataboutyou-ai/eunomia-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/whataboutyou-ai/eunomia-mcp-server", + "source": "github", + "id": "915645627" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "eunomia-mcp-server", + "version": "0.0.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "35e1e1a0-30c9-4857-a9e0-5c64f7e29fa9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "eunomia-mcp-server", - "version": "0.0.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e944c7a9-9eb0-495a-8bee-d8da751240e7", - "name": "io.github.mcpdotdirect/evm-mcp-server", - "description": "MCP server that provides LLM with tools for interacting with EVM networks", - "repository": { - "url": "https://github.com/mcpdotdirect/evm-mcp-server", - "source": "github", - "id": "945212492" + "server": { + "name": "io.github.mcpdotdirect/evm-mcp-server", + "description": "MCP server that provides LLM with tools for interacting with EVM networks", + "status": "active", + "repository": { + "url": "https://github.com/mcpdotdirect/evm-mcp-server", + "source": "github", + "id": "945212492" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@mcpdotdirect/evm-mcp-server", + "version": "1.1.3" + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "http://localhost:3001/sse" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e944c7a9-9eb0-495a-8bee-d8da751240e7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:27Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@mcpdotdirect/evm-mcp-server", - "version": "1.1.3" - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "http://localhost:3001/sse" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c6f8403f-30d0-45d2-b7c3-95a6cb61c4b4", - "name": "io.github.mamertofabian/mcp-everything-search", - "description": "", - "repository": { - "url": "https://github.com/mamertofabian/mcp-everything-search", - "source": "github", - "id": "903415597" + "server": { + "name": "io.github.mamertofabian/mcp-everything-search", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/mamertofabian/mcp-everything-search", + "source": "github", + "id": "903415597" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-everything-search", + "version": "0.2.1", + "package_arguments": [ + { + "description": "Sets the directory to operate from.", + "is_required": true, + "format": "string", + "value": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", + "default": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", + "type": "named", + "name": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", + "value_hint": "/path/to/mcp-everything-search/src/mcp_server_everything_search" + }, + { + "description": "Server name to execute (positional argument)", + "is_required": true, + "format": "string", + "value": "mcp-server-everything-search", + "default": "mcp-server-everything-search", + "type": "positional", + "value_hint": "mcp-server-everything-search" + } + ], + "environment_variables": [ + { + "description": "path/to/Everything-SDK/dll/Everything64.dll", + "name": "EVERYTHING_SDK_PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c6f8403f-30d0-45d2-b7c3-95a6cb61c4b4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-everything-search", - "version": "0.2.1", - "package_arguments": [ - { - "description": "Sets the directory to operate from.", - "is_required": true, - "format": "string", - "value": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", - "default": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", - "type": "named", - "name": "--directory /path/to/mcp-everything-search/src/mcp_server_everything_search", - "value_hint": "/path/to/mcp-everything-search/src/mcp_server_everything_search" - }, - { - "description": "Server name to execute (positional argument)", - "is_required": true, - "format": "string", - "value": "mcp-server-everything-search", - "default": "mcp-server-everything-search", - "type": "positional", - "value_hint": "mcp-server-everything-search" - } - ], - "environment_variables": [ - { - "description": "path/to/Everything-SDK/dll/Everything64.dll", - "name": "EVERYTHING_SDK_PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2a5c04e4-0526-492b-aa98-49896e033b74", - "name": "io.github.haris-musa/excel-mcp-server", - "description": "A Model Context Protocol server for Excel file manipulation", - "repository": { - "url": "https://github.com/haris-musa/excel-mcp-server", - "source": "github", - "id": "931365873" + "server": { + "name": "io.github.haris-musa/excel-mcp-server", + "description": "A Model Context Protocol server for Excel file manipulation", + "status": "active", + "repository": { + "url": "https://github.com/haris-musa/excel-mcp-server", + "source": "github", + "id": "931365873" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "excel-mcp-server", + "version": "0.1.1", + "environment_variables": [ + { + "description": "/path/to/excel/files", + "name": "EXCEL_FILES_PATH" + } + ] + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "http://localhost:8000/sse" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2a5c04e4-0526-492b-aa98-49896e033b74", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:33Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "excel-mcp-server", - "version": "0.1.1", - "environment_variables": [ - { - "description": "/path/to/excel/files", - "name": "EXCEL_FILES_PATH" - } - ] - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "http://localhost:8000/sse" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f1da402e-a006-4364-a100-5131eb05b579", - "name": "io.github.rishijatia/fantasy-pl-mcp", - "description": "Fantasy Premier League MCP Server", - "repository": { - "url": "https://github.com/rishijatia/fantasy-pl-mcp", - "source": "github", - "id": "948676369" + "server": { + "name": "io.github.rishijatia/fantasy-pl-mcp", + "description": "Fantasy Premier League MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/rishijatia/fantasy-pl-mcp", + "source": "github", + "id": "948676369" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "fpl-mcp", + "version": "0.1.4" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f1da402e-a006-4364-a100-5131eb05b579", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:35Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "fpl-mcp", - "version": "0.1.4" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3d7c6822-88bd-4569-a099-1e58b9b365b0", - "name": "io.github.fastnai/mcp-fastn", - "description": "", - "repository": { - "url": "https://github.com/fastnai/mcp-fastn", - "source": "github", - "id": "950266465" + "server": { + "name": "io.github.fastnai/mcp-fastn", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/fastnai/mcp-fastn", + "source": "github", + "id": "950266465" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "fastn", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "fastn-server.py", + "default": "fastn-server.py", + "type": "positional", + "value_hint": "fastn-server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3d7c6822-88bd-4569-a099-1e58b9b365b0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "fastn", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "fastn-server.py", - "default": "fastn-server.py", - "type": "positional", - "value_hint": "fastn-server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2382172a-b26a-40fc-adee-f82132b56edc", - "name": "io.github.stefanoamorelli/fred-mcp-server", - "description": "Open-source MCP Server for the Federal Reserve Economic Data", - "repository": { - "url": "https://github.com/stefanoamorelli/fred-mcp-server", - "source": "github", - "id": "981791515" + "server": { + "name": "io.github.stefanoamorelli/fred-mcp-server", + "description": "Open-source MCP Server for the Federal Reserve Economic Data", + "status": "active", + "repository": { + "url": "https://github.com/stefanoamorelli/fred-mcp-server", + "source": "github", + "id": "981791515" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "fred-mcp-server", + "version": "0.2.3", + "environment_variables": [ + { + "description": "\u003cYOUR_API_KEY\u003e", + "name": "FRED_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2382172a-b26a-40fc-adee-f82132b56edc", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "fred-mcp-server", - "version": "0.2.3", - "environment_variables": [ - { - "description": "", - "name": "FRED_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c2f4ab61-b279-4cb9-932d-5f60bcd1534a", - "name": "io.github.zcaceres/fetch-mcp", - "description": "A flexible HTTP fetching Model Context Protocol server.", - "repository": { - "url": "https://github.com/zcaceres/fetch-mcp", - "source": "github", - "id": "905004409" + "server": { + "name": "io.github.zcaceres/fetch-mcp", + "description": "A flexible HTTP fetching Model Context Protocol server.", + "status": "active", + "repository": { + "url": "https://github.com/zcaceres/fetch-mcp", + "source": "github", + "id": "905004409" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "fetch", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c2f4ab61-b279-4cb9-932d-5f60bcd1534a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "fetch", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e61c643c-ec01-483c-a586-20f87ab6280e", - "name": "io.github.glips/figma-context-mcp", - "description": "MCP server to provide Figma layout information to AI coding agents like Cursor", - "repository": { - "url": "https://github.com/GLips/Figma-Context-MCP", - "source": "github", - "id": "931892749" + "server": { + "name": "io.github.glips/figma-context-mcp", + "description": "MCP server to provide Figma layout information to AI coding agents like Cursor", + "status": "active", + "repository": { + "url": "https://github.com/GLips/Figma-Context-MCP", + "source": "github", + "id": "931892749" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "figma-developer-mcp", + "version": "0.2.2", + "package_arguments": [ + { + "description": "Figma API Key flag", + "is_required": true, + "format": "string", + "value": "--figma-api-key=YOUR-KEY", + "default": "--figma-api-key=YOUR-KEY", + "type": "named", + "name": "--figma-api-key=YOUR-KEY", + "value_hint": "YOUR-KEY" + }, + { + "description": "stdio mode", + "is_required": true, + "format": "string", + "value": "--stdio", + "default": "--stdio", + "type": "named", + "name": "--stdio" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e61c643c-ec01-483c-a586-20f87ab6280e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "figma-developer-mcp", - "version": "0.2.2", - "package_arguments": [ - { - "description": "Figma API Key flag", - "is_required": true, - "format": "string", - "value": "--figma-api-key=YOUR-KEY", - "default": "--figma-api-key=YOUR-KEY", - "type": "named", - "name": "--figma-api-key=YOUR-KEY", - "value_hint": "YOUR-KEY" - }, - { - "description": "stdio mode", - "is_required": true, - "format": "string", - "value": "--stdio", - "default": "--stdio", - "type": "named", - "name": "--stdio" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d7a1d303-082e-477d-8ab5-9d65dc0117d9", - "name": "io.github.gannonh/firebase-mcp", - "description": "🔥 Model Context Protocol (MCP) server for Firebase.", - "repository": { - "url": "https://github.com/gannonh/firebase-mcp", - "source": "github", - "id": "945181573" + "server": { + "name": "io.github.gannonh/firebase-mcp", + "description": "🔥 Model Context Protocol (MCP) server for Firebase.", + "status": "active", + "repository": { + "url": "https://github.com/gannonh/firebase-mcp", + "source": "github", + "id": "945181573" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gannonh/firebase-mcp", + "version": "1.4.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d7a1d303-082e-477d-8ab5-9d65dc0117d9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gannonh/firebase-mcp", - "version": "1.4.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3947e186-beb0-4372-8f74-045047dacebd", - "name": "io.github.vrknetha/mcp-server-firecrawl", - "description": "Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients.", - "repository": { - "url": "https://github.com/mendableai/firecrawl-mcp-server", - "source": "github", - "id": "899407931" + "server": { + "name": "io.github.vrknetha/mcp-server-firecrawl", + "description": "Official Firecrawl MCP Server - Adds powerful web scraping to Cursor, Claude and any other LLM clients.", + "status": "active", + "repository": { + "url": "https://github.com/mendableai/firecrawl-mcp-server", + "source": "github", + "id": "899407931" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "firecrawl-mcp", + "version": "1.9.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3947e186-beb0-4372-8f74-045047dacebd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:52Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "firecrawl-mcp", - "version": "1.9.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "50b7ab52-c3d0-40bc-b342-38fa93da54ff", - "name": "io.github.sunsetcoder/flightradar24-mcp-server", - "description": "Model Context Protocol server for Flight Tracking", - "repository": { - "url": "https://github.com/sunsetcoder/flightradar24-mcp-server", - "source": "github", - "id": "903070998" + "server": { + "name": "io.github.sunsetcoder/flightradar24-mcp-server", + "description": "Model Context Protocol server for Flight Tracking", + "status": "active", + "repository": { + "url": "https://github.com/sunsetcoder/flightradar24-mcp-server", + "source": "github", + "id": "903070998" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "flightradar24-mcp-server", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "FR24_API_KEY" + }, + { + "description": "https://fr24api.flightradar24.com", + "name": "FR24_API_URL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "50b7ab52-c3d0-40bc-b342-38fa93da54ff", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "flightradar24-mcp-server", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "FR24_API_KEY" - }, - { - "description": "https://fr24api.flightradar24.com", - "name": "FR24_API_URL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "573c235f-93d7-45a3-9f23-b1166a660c97", - "name": "io.github.kukapay/freqtrade-mcp", - "description": "An MCP server that integrates with the Freqtrade cryptocurrency trading bot.", - "repository": { - "url": "https://github.com/kukapay/freqtrade-mcp", - "source": "github", - "id": "954056822" + "server": { + "name": "io.github.kukapay/freqtrade-mcp", + "description": "An MCP server that integrates with the Freqtrade cryptocurrency trading bot.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/freqtrade-mcp", + "source": "github", + "id": "954056822" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "freqtrade-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "573c235f-93d7-45a3-9f23-b1166a660c97", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "freqtrade-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e4927319-b643-498e-935f-51bad4e30381", - "name": "io.github.mfydev/ghost-mcp", - "description": "A Model Context Protocol (MCP) server for interacting with Ghost CMS through LLM interfaces like Claude. Allow you to control your Ghost blog by simply asking Claude etc.", - "repository": { - "url": "https://github.com/MFYDev/ghost-mcp", - "source": "github", - "id": "930747221" + "server": { + "name": "io.github.mfydev/ghost-mcp", + "description": "A Model Context Protocol (MCP) server for interacting with Ghost CMS through LLM interfaces like Claude. Allow you to control your Ghost blog by simply asking Claude etc.", + "status": "active", + "repository": { + "url": "https://github.com/MFYDev/ghost-mcp", + "source": "github", + "id": "930747221" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@fanyangmeng/ghost-mcp", + "version": "0.1.0", + "environment_variables": [ + { + "description": "https://yourblog.com", + "name": "GHOST_API_URL" + }, + { + "description": "your_admin_api_key", + "name": "GHOST_ADMIN_API_KEY" + }, + { + "description": "v5.0", + "name": "GHOST_API_VERSION" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e4927319-b643-498e-935f-51bad4e30381", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:06:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@fanyangmeng/ghost-mcp", - "version": "0.1.0", - "environment_variables": [ - { - "description": "https://yourblog.com", - "name": "GHOST_API_URL" - }, - { - "description": "your_admin_api_key", - "name": "GHOST_ADMIN_API_KEY" - }, - { - "description": "v5.0", - "name": "GHOST_API_VERSION" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fa6d267b-a797-42b7-9510-5abc3c518f3e", - "name": "io.github.ko1ynnky/github-actions-mcp-server", - "description": "GitHub Actions Model Context Protocol Server", - "repository": { - "url": "https://github.com/ko1ynnky/github-actions-mcp-server", - "source": "github", - "id": "951937740" + "server": { + "name": "io.github.ko1ynnky/github-actions-mcp-server", + "description": "GitHub Actions Model Context Protocol Server", + "status": "active", + "repository": { + "url": "https://github.com/ko1ynnky/github-actions-mcp-server", + "source": "github", + "id": "951937740" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "github-actions-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "\u003cpath-to-mcp-server\u003e/dist/index.js", + "is_required": true, + "format": "string", + "value": "\u003cpath-to-mcp-server\u003e/dist/index.js", + "default": "\u003cpath-to-mcp-server\u003e/dist/index.js", + "type": "positional", + "value_hint": "\u003cpath-to-mcp-server\u003e/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "GITHUB_PERSONAL_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fa6d267b-a797-42b7-9510-5abc3c518f3e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "github-actions-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "/dist/index.js", - "is_required": true, - "format": "string", - "value": "/dist/index.js", - "default": "/dist/index.js", - "type": "positional", - "value_hint": "/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "", - "name": "GITHUB_PERSONAL_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cc190d52-686a-4286-812d-c4542161203d", - "name": "io.github.ddukbg/github-enterprise-mcp", - "description": "github-enterprise-mcp", - "repository": { - "url": "https://github.com/containerelic/github-enterprise-mcp", - "source": "github", - "id": "953844812" + "server": { + "name": "io.github.ddukbg/github-enterprise-mcp", + "description": "github-enterprise-mcp", + "status": "active", + "repository": { + "url": "https://github.com/containerelic/github-enterprise-mcp", + "source": "github", + "id": "953844812" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@ddukbg/github-enterprise-mcp", + "version": "1.3.0", + "environment_variables": [ + { + "description": "https://github.your-company.com/api/v3", + "name": "GITHUB_ENTERPRISE_URL" + }, + { + "description": "your_github_token", + "name": "GITHUB_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cc190d52-686a-4286-812d-c4542161203d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@ddukbg/github-enterprise-mcp", - "version": "1.3.0", - "environment_variables": [ - { - "description": "https://github.your-company.com/api/v3", - "name": "GITHUB_ENTERPRISE_URL" - }, - { - "description": "your_github_token", - "name": "GITHUB_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "36ad8cdb-408e-4110-827b-8d6a0a0f94bb", - "name": "io.github.gongrzhe/gmail-mcp-server", - "description": "A Model Context Protocol (MCP) server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.", - "repository": { - "url": "https://github.com/GongRzhe/Gmail-MCP-Server", - "source": "github", - "id": "908415894" + "server": { + "name": "io.github.gongrzhe/gmail-mcp-server", + "description": "A Model Context Protocol (MCP) server for Gmail integration in Claude Desktop with auto authentication support. This server enables AI assistants to manage Gmail through natural language interactions.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Gmail-MCP-Server", + "source": "github", + "id": "908415894" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gongrzhe/server-gmail-autoauth-mcp", + "version": "1.1.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "36ad8cdb-408e-4110-827b-8d6a0a0f94bb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:11Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gongrzhe/server-gmail-autoauth-mcp", - "version": "1.1.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "83932f7e-8c4d-475b-b03b-f30bc31793d3", - "name": "io.github.baryhuang/mcp-headless-gmail", - "description": "A MCP (Model Context Protocol) server that provides get, send Gmails without local credential or token setup.", - "repository": { - "url": "https://github.com/baryhuang/mcp-headless-gmail", - "source": "github", - "id": "951719324" + "server": { + "name": "io.github.baryhuang/mcp-headless-gmail", + "description": "A MCP (Model Context Protocol) server that provides get, send Gmails without local credential or token setup.", + "status": "active", + "repository": { + "url": "https://github.com/baryhuang/mcp-headless-gmail", + "source": "github", + "id": "951719324" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-headless-gmail", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Recipient email address", + "is_required": true, + "format": "string", + "value": "recipient@example.com", + "default": "recipient@example.com", + "type": "named", + "name": "recipient@example.com", + "value_hint": "recipient@example.com" + }, + { + "description": "Email subject", + "is_required": true, + "format": "string", + "value": "Hello from MCP Gmail", + "default": "Hello from MCP Gmail", + "type": "named", + "name": "Hello from MCP Gmail", + "value_hint": "Hello from MCP Gmail" + }, + { + "description": "Plain text email body", + "is_required": true, + "format": "string", + "value": "This is a test email sent via MCP Gmail server", + "default": "This is a test email sent via MCP Gmail server", + "type": "named", + "name": "This is a test email sent via MCP Gmail server", + "value_hint": "This is a test email sent via MCP Gmail server" + }, + { + "description": "HTML email body", + "format": "string", + "value": "\u003cp\u003eThis is a \u003cstrong\u003etest email\u003c/strong\u003e sent via MCP Gmail server\u003c/p\u003e", + "default": "\u003cp\u003eThis is a \u003cstrong\u003etest email\u003c/strong\u003e sent via MCP Gmail server\u003c/p\u003e", + "type": "named", + "name": "\u003cp\u003eThis is a \u003cstrong\u003etest email\u003c/strong\u003e sent via MCP Gmail server\u003c/p\u003e", + "value_hint": "\u003cp\u003eThis is a \u003cstrong\u003etest email\u003c/strong\u003e sent via MCP Gmail server\u003c/p\u003e" + } + ], + "environment_variables": [ + { + "description": "your_access_token", + "name": "google_access_token" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "83932f7e-8c4d-475b-b03b-f30bc31793d3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-headless-gmail", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Recipient email address", - "is_required": true, - "format": "string", - "value": "recipient@example.com", - "default": "recipient@example.com", - "type": "named", - "name": "recipient@example.com", - "value_hint": "recipient@example.com" - }, - { - "description": "Email subject", - "is_required": true, - "format": "string", - "value": "Hello from MCP Gmail", - "default": "Hello from MCP Gmail", - "type": "named", - "name": "Hello from MCP Gmail", - "value_hint": "Hello from MCP Gmail" - }, - { - "description": "Plain text email body", - "is_required": true, - "format": "string", - "value": "This is a test email sent via MCP Gmail server", - "default": "This is a test email sent via MCP Gmail server", - "type": "named", - "name": "This is a test email sent via MCP Gmail server", - "value_hint": "This is a test email sent via MCP Gmail server" - }, - { - "description": "HTML email body", - "format": "string", - "value": "

This is a test email sent via MCP Gmail server

", - "default": "

This is a test email sent via MCP Gmail server

", - "type": "named", - "name": "

This is a test email sent via MCP Gmail server

", - "value_hint": "

This is a test email sent via MCP Gmail server

" - } - ], - "environment_variables": [ - { - "description": "your_access_token", - "name": "google_access_token" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "21242e10-3373-40a3-9119-e4d075b7c27e", - "name": "io.github.hichana/goalstory-mcp", - "description": "", - "repository": { - "url": "https://github.com/hichana/goalstory-mcp", - "source": "github", - "id": "911416763" + "server": { + "name": "io.github.hichana/goalstory-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/hichana/goalstory-mcp", + "source": "github", + "id": "911416763" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "goalstory-mcp", + "version": "0.4.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "21242e10-3373-40a3-9119-e4d075b7c27e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "goalstory-mcp", - "version": "0.4.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6e61849a-2312-4c76-a9d0-0a4b84a7795e", - "name": "io.github.goat-sdk/goat", - "description": "The leading agentic finance toolkit for AI agents", - "repository": { - "url": "https://github.com/goat-sdk/goat", - "source": "github", - "id": "894659403" + "server": { + "name": "io.github.goat-sdk/goat", + "description": "The leading agentic finance toolkit for AI agents", + "status": "active", + "repository": { + "url": "https://github.com/goat-sdk/goat", + "source": "github", + "id": "894659403" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "goat-repo", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6e61849a-2312-4c76-a9d0-0a4b84a7795e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "goat-repo", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8663db3e-ad80-4805-8032-11a3f303b5fc", - "name": "io.github.coding-solo/godot-mcp", - "description": "MCP server for interfacing with Godot game engine. Provides tools for launching the editor, running projects, and capturing debug output.", - "repository": { - "url": "https://github.com/Coding-Solo/godot-mcp", - "source": "github", - "id": "939648665" + "server": { + "name": "io.github.coding-solo/godot-mcp", + "description": "MCP server for interfacing with Godot game engine. Provides tools for launching the editor, running projects, and capturing debug output.", + "status": "active", + "repository": { + "url": "https://github.com/Coding-Solo/godot-mcp", + "source": "github", + "id": "939648665" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "godot-mcp", + "version": "0.1.0", + "environment_variables": [ + { + "description": "true", + "name": "DEBUG" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8663db3e-ad80-4805-8032-11a3f303b5fc", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "godot-mcp", - "version": "0.1.0", - "environment_variables": [ - { - "description": "true", - "name": "DEBUG" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "93c84b33-4392-41b2-85be-764e5f39da74", - "name": "io.github.mark3labs/mcp-filesystem-server", - "description": "Go server implementing Model Context Protocol (MCP) for filesystem operations.", - "repository": { - "url": "https://github.com/mark3labs/mcp-filesystem-server", - "source": "github", - "id": "895547074" + "server": { + "name": "io.github.mark3labs/mcp-filesystem-server", + "description": "Go server implementing Model Context Protocol (MCP) for filesystem operations.", + "status": "active", + "repository": { + "url": "https://github.com/mark3labs/mcp-filesystem-server", + "source": "github", + "id": "895547074" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mark3labs/mcp-filesystem-server", + "version": "", + "package_arguments": [ + { + "description": "Run container image", + "is_required": true, + "format": "string", + "value": "ghcr.io/mark3labs/mcp-filesystem-server:latest", + "default": "ghcr.io/mark3labs/mcp-filesystem-server:latest", + "type": "positional", + "value_hint": "ghcr.io/mark3labs/mcp-filesystem-server:latest" + }, + { + "description": "Allowed directory path", + "is_required": true, + "format": "string", + "value": "/path/to/allowed/directory", + "default": "/path/to/allowed/directory", + "type": "positional", + "value_hint": "/path/to/allowed/directory" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "93c84b33-4392-41b2-85be-764e5f39da74", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mark3labs/mcp-filesystem-server", - "version": "", - "package_arguments": [ - { - "description": "Run container image", - "is_required": true, - "format": "string", - "value": "ghcr.io/mark3labs/mcp-filesystem-server:latest", - "default": "ghcr.io/mark3labs/mcp-filesystem-server:latest", - "type": "positional", - "value_hint": "ghcr.io/mark3labs/mcp-filesystem-server:latest" - }, - { - "description": "Allowed directory path", - "is_required": true, - "format": "string", - "value": "/path/to/allowed/directory", - "default": "/path/to/allowed/directory", - "type": "positional", - "value_hint": "/path/to/allowed/directory" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "91c0fc60-7dc9-4095-a05a-9f816738df67", - "name": "io.github.vectorinstitute/mcp-goodnews", - "description": "A simple MCP application that delivers curated positive and uplifting news stories.", - "repository": { - "url": "https://github.com/VectorInstitute/mcp-goodnews", - "source": "github", - "id": "950810099" + "server": { + "name": "io.github.vectorinstitute/mcp-goodnews", + "description": "A simple MCP application that delivers curated positive and uplifting news stories.", + "status": "active", + "repository": { + "url": "https://github.com/VectorInstitute/mcp-goodnews", + "source": "github", + "id": "950810099" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-goodnews", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Path to the source directory", + "is_required": true, + "format": "string", + "value": "--directory \u003cabsolute-path-to-cloned-repo\u003e/mcp-goodnews/src/mcp_goodnews", + "default": "--directory \u003cabsolute-path-to-cloned-repo\u003e/mcp-goodnews/src/mcp_goodnews", + "type": "named", + "name": "--directory \u003cabsolute-path-to-cloned-repo\u003e/mcp-goodnews/src/mcp_goodnews", + "value_hint": "\u003cabsolute-path-to-cloned-repo\u003e/mcp-goodnews/src/mcp_goodnews" + }, + { + "description": "Python script to start the server", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ], + "environment_variables": [ + { + "description": "\u003cnewsapi-api-key\u003e", + "name": "NEWS_API_KEY" + }, + { + "description": "\u003ccohere-api-key\u003e", + "name": "COHERE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "91c0fc60-7dc9-4095-a05a-9f816738df67", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:29Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-goodnews", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Path to the source directory", - "is_required": true, - "format": "string", - "value": "--directory /mcp-goodnews/src/mcp_goodnews", - "default": "--directory /mcp-goodnews/src/mcp_goodnews", - "type": "named", - "name": "--directory /mcp-goodnews/src/mcp_goodnews", - "value_hint": "/mcp-goodnews/src/mcp_goodnews" - }, - { - "description": "Python script to start the server", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ], - "environment_variables": [ - { - "description": "", - "name": "NEWS_API_KEY" - }, - { - "description": "", - "name": "COHERE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "165ef95f-bfb3-4b08-b523-d17748fdfe31", - "name": "io.github.v-3/google-calendar", - "description": "", - "repository": { - "url": "https://github.com/v-3/google-calendar", - "source": "github", - "id": "906921955" + "server": { + "name": "io.github.v-3/google-calendar", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/v-3/google-calendar", + "source": "github", + "id": "906921955" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "googlecalendar", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "165ef95f-bfb3-4b08-b523-d17748fdfe31", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:31Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "googlecalendar", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6543c44a-7ad6-4f9e-bf7e-9f8f969934bf", - "name": "io.github.nspady/google-calendar-mcp", - "description": "MCP integration for Google Calendar to manage events.", - "repository": { - "url": "https://github.com/nspady/google-calendar-mcp", - "source": "github", - "id": "903584784" + "server": { + "name": "io.github.nspady/google-calendar-mcp", + "description": "MCP integration for Google Calendar to manage events.", + "status": "active", + "repository": { + "url": "https://github.com/nspady/google-calendar-mcp", + "source": "github", + "id": "903584784" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "google-calendar-mcp", + "version": "1.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6543c44a-7ad6-4f9e-bf7e-9f8f969934bf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:33Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "google-calendar-mcp", - "version": "1.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d5076249-cb9d-4c5e-ae2e-544779ec1a04", - "name": "io.github.adenot/mcp-google-search", - "description": "", - "repository": { - "url": "https://github.com/adenot/mcp-google-search", - "source": "github", - "id": "925498825" + "server": { + "name": "io.github.adenot/mcp-google-search", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/adenot/mcp-google-search", + "source": "github", + "id": "925498825" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@adenot/mcp-google-search", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d5076249-cb9d-4c5e-ae2e-544779ec1a04", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@adenot/mcp-google-search", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "69ae0fdb-713d-4f8e-bf8e-d214e79fa295", - "name": "io.github.xing5/mcp-google-sheets", - "description": "This MCP server integrates with your Google Drive and Google Sheets, to enable creating and modifying spreadsheets.", - "repository": { - "url": "https://github.com/xing5/mcp-google-sheets", - "source": "github", - "id": "952831973" + "server": { + "name": "io.github.xing5/mcp-google-sheets", + "description": "This MCP server integrates with your Google Drive and Google Sheets, to enable creating and modifying spreadsheets.", + "status": "active", + "repository": { + "url": "https://github.com/xing5/mcp-google-sheets", + "source": "github", + "id": "952831973" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-google-sheets", + "version": "", + "package_arguments": [ + { + "description": "Positional argument for script to run", + "is_required": true, + "format": "string", + "value": "mcp-google-sheets", + "default": "mcp-google-sheets", + "type": "positional", + "value_hint": "mcp-google-sheets" + } + ], + "environment_variables": [ + { + "description": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json", + "name": "SERVICE_ACCOUNT_PATH" + }, + { + "description": "your_shared_folder_id_here", + "name": "DRIVE_FOLDER_ID" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "69ae0fdb-713d-4f8e-bf8e-d214e79fa295", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-google-sheets", - "version": "", - "package_arguments": [ - { - "description": "Positional argument for script to run", - "is_required": true, - "format": "string", - "value": "mcp-google-sheets", - "default": "mcp-google-sheets", - "type": "positional", - "value_hint": "mcp-google-sheets" - } - ], - "environment_variables": [ - { - "description": "/full/path/to/cloned/mcp-google-sheets/service-account-key.json", - "name": "SERVICE_ACCOUNT_PATH" - }, - { - "description": "your_shared_folder_id_here", - "name": "DRIVE_FOLDER_ID" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b1051584-3b09-49af-a97f-a92b47861ed1", - "name": "io.github.rohans2/mcp-google-sheets", - "description": "", - "repository": { - "url": "https://github.com/rohans2/mcp-google-sheets", - "source": "github", - "id": "975908174" + "server": { + "name": "io.github.rohans2/mcp-google-sheets", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/rohans2/mcp-google-sheets", + "source": "github", + "id": "975908174" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "backend", + "version": "", + "package_arguments": [ + { + "description": "Budget Q2", + "is_required": true, + "format": "string", + "value": "Budget Q2", + "default": "Budget Q2", + "type": "positional", + "value_hint": "Budget Q2" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b1051584-3b09-49af-a97f-a92b47861ed1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "backend", - "version": "", - "package_arguments": [ - { - "description": "Budget Q2", - "is_required": true, - "format": "string", - "value": "Budget Q2", - "default": "Budget Q2", - "type": "positional", - "value_hint": "Budget Q2" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "07ccf835-680a-42b4-bf0b-db28367519ee", - "name": "io.github.ubie-oss/mcp-vertexai-search", - "description": "A MCP server for Vertex AI Search", - "repository": { - "url": "https://github.com/ubie-oss/mcp-vertexai-search", - "source": "github", - "id": "934580342" + "server": { + "name": "io.github.ubie-oss/mcp-vertexai-search", + "description": "A MCP server for Vertex AI Search", + "status": "active", + "repository": { + "url": "https://github.com/ubie-oss/mcp-vertexai-search", + "source": "github", + "id": "934580342" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-vertexai-search", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "07ccf835-680a-42b4-bf0b-db28367519ee", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-vertexai-search", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7461c9c2-108f-46c1-8f35-6206ec509267", - "name": "io.github.hannesj/mcp-graphql-schema", - "description": "GraphQL Schema Model Context Protocol Server", - "repository": { - "url": "https://github.com/hannesj/mcp-graphql-schema", - "source": "github", - "id": "947826694" + "server": { + "name": "io.github.hannesj/mcp-graphql-schema", + "description": "GraphQL Schema Model Context Protocol Server", + "status": "active", + "repository": { + "url": "https://github.com/hannesj/mcp-graphql-schema", + "source": "github", + "id": "947826694" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-graphql-schema", + "version": "0.0.1", + "package_arguments": [ + { + "description": "/ABSOLUTE/PATH/TO/schema.graphqls", + "is_required": true, + "format": "string", + "value": "/ABSOLUTE/PATH/TO/schema.graphqls", + "default": "/ABSOLUTE/PATH/TO/schema.graphqls", + "type": "positional", + "value_hint": "/ABSOLUTE/PATH/TO/schema.graphqls" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7461c9c2-108f-46c1-8f35-6206ec509267", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-graphql-schema", - "version": "0.0.1", - "package_arguments": [ - { - "description": "/ABSOLUTE/PATH/TO/schema.graphqls", - "is_required": true, - "format": "string", - "value": "/ABSOLUTE/PATH/TO/schema.graphqls", - "default": "/ABSOLUTE/PATH/TO/schema.graphqls", - "type": "positional", - "value_hint": "/ABSOLUTE/PATH/TO/schema.graphqls" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0f4331b9-9229-49c4-b41c-5c254b610daa", - "name": "io.github.horizondatawave/hdw-mcp-server", - "description": "A Model Context Protocol (MCP) server that provides comprehensive access to LinkedIn data and functionalities using the HorizonDataWave API, enabling not only data retrieval but also robust management of user accounts.", - "repository": { - "url": "https://github.com/horizondatawave/hdw-mcp-server", - "source": "github", - "id": "947522686" + "server": { + "name": "io.github.horizondatawave/hdw-mcp-server", + "description": "A Model Context Protocol (MCP) server that provides comprehensive access to LinkedIn data and functionalities using the HorizonDataWave API, enabling not only data retrieval but also robust management of user accounts.", + "status": "active", + "repository": { + "url": "https://github.com/horizondatawave/hdw-mcp-server", + "source": "github", + "id": "947522686" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@horizondatawave/mcp", + "version": "0.1.3", + "environment_variables": [ + { + "description": "YOUR_HD_W_ACCESS_TOKEN", + "name": "HDW_ACCESS_TOKEN" + }, + { + "description": "YOUR_HD_W_ACCOUNT_ID", + "name": "HDW_ACCOUNT_ID" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0f4331b9-9229-49c4-b41c-5c254b610daa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@horizondatawave/mcp", - "version": "0.1.3", - "environment_variables": [ - { - "description": "YOUR_HD_W_ACCESS_TOKEN", - "name": "HDW_ACCESS_TOKEN" - }, - { - "description": "YOUR_HD_W_ACCOUNT_ID", - "name": "HDW_ACCOUNT_ID" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "97174daf-db12-40ac-bab2-1c4255ce1741", - "name": "io.github.heurist-network/heurist-mesh-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/heurist-network/heurist-mesh-mcp-server", - "source": "github", - "id": "948277357" + "server": { + "name": "io.github.heurist-network/heurist-mesh-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/heurist-network/heurist-mesh-mcp-server", + "source": "github", + "id": "948277357" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mesh-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "97174daf-db12-40ac-bab2-1c4255ce1741", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mesh-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "27c761f6-dc25-4c35-9912-2dc2bbdeaadd", - "name": "io.github.heurist-network/heurist-agent-framework", - "description": "A flexible multi-interface AI agent framework for building agents with reasoning, tool use, memory, deep research, blockchain interaction, MCP, and agents-as-a-service.", - "repository": { - "url": "https://github.com/heurist-network/heurist-agent-framework", - "source": "github", - "id": "897068154" + "server": { + "name": "io.github.heurist-network/heurist-agent-framework", + "description": "A flexible multi-interface AI agent framework for building agents with reasoning, tool use, memory, deep research, blockchain interaction, MCP, and agents-as-a-service.", + "status": "active", + "repository": { + "url": "https://github.com/heurist-network/heurist-agent-framework", + "source": "github", + "id": "897068154" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "heurist-agent-framework", + "version": "0.1.0", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "27c761f6-dc25-4c35-9912-2dc2bbdeaadd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "heurist-agent-framework", - "version": "0.1.0", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fffcda50-ddc1-4357-a9bf-b7022f86c582", - "name": "io.github.syucream/holaspirit-mcp-server", - "description": "A MCP server that accesses to Holaspirit", - "repository": { - "url": "https://github.com/syucream/holaspirit-mcp-server", - "source": "github", - "id": "915876793" + "server": { + "name": "io.github.syucream/holaspirit-mcp-server", + "description": "A MCP server that accesses to Holaspirit", + "status": "active", + "repository": { + "url": "https://github.com/syucream/holaspirit-mcp-server", + "source": "github", + "id": "915876793" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "holaspirit-mcp-server", + "version": "0.2.0", + "environment_variables": [ + { + "description": "\u003cyour token\u003e", + "name": "HOLASPIRIT_API_TOKEN" + }, + { + "description": "\u003cyour org id\u003e", + "name": "HOLASPIRIT_ORGANIZATION_ID" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fffcda50-ddc1-4357-a9bf-b7022f86c582", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "holaspirit-mcp-server", - "version": "0.2.0", - "environment_variables": [ - { - "description": "", - "name": "HOLASPIRIT_API_TOKEN" - }, - { - "description": "", - "name": "HOLASPIRIT_ORGANIZATION_ID" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b87405fe-1aae-4a7a-a4d7-cd0b5f267ad8", - "name": "io.github.tevonsb/homeassistant-mcp", - "description": "A MCP server for Home Assistant", - "repository": { - "url": "https://github.com/tevonsb/homeassistant-mcp", - "source": "github", - "id": "902220777" + "server": { + "name": "io.github.tevonsb/homeassistant-mcp", + "description": "A MCP server for Home Assistant", + "status": "active", + "repository": { + "url": "https://github.com/tevonsb/homeassistant-mcp", + "source": "github", + "id": "902220777" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "homeassistant-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b87405fe-1aae-4a7a-a4d7-cd0b5f267ad8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:07:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "homeassistant-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "67c71178-8632-4d67-abad-c28f6e58c87f", - "name": "io.github.voska/hass-mcp", - "description": "Home Assistant MCP Server", - "repository": { - "url": "https://github.com/voska/hass-mcp", - "source": "github", - "id": "949564493" + "server": { + "name": "io.github.voska/hass-mcp", + "description": "Home Assistant MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/voska/hass-mcp", + "source": "github", + "id": "949564493" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "hass-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "-e HA_URL", + "is_required": true, + "format": "string", + "value": "-e HA_URL", + "default": "-e HA_URL", + "type": "named", + "name": "-e HA_URL", + "value_hint": "HA_URL" + }, + { + "description": "-e HA_TOKEN", + "is_required": true, + "format": "string", + "value": "-e HA_TOKEN", + "default": "-e HA_TOKEN", + "type": "named", + "name": "-e HA_TOKEN", + "value_hint": "HA_TOKEN" + }, + { + "description": "voska/hass-mcp", + "is_required": true, + "format": "string", + "value": "voska/hass-mcp", + "default": "voska/hass-mcp", + "type": "positional", + "value_hint": "voska/hass-mcp" + } + ], + "environment_variables": [ + { + "description": "http://homeassistant.local:8123", + "name": "HA_URL" + }, + { + "description": "YOUR_LONG_LIVED_TOKEN", + "name": "HA_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "67c71178-8632-4d67-abad-c28f6e58c87f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "hass-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "-e HA_URL", - "is_required": true, - "format": "string", - "value": "-e HA_URL", - "default": "-e HA_URL", - "type": "named", - "name": "-e HA_URL", - "value_hint": "HA_URL" - }, - { - "description": "-e HA_TOKEN", - "is_required": true, - "format": "string", - "value": "-e HA_TOKEN", - "default": "-e HA_TOKEN", - "type": "named", - "name": "-e HA_TOKEN", - "value_hint": "HA_TOKEN" - }, - { - "description": "voska/hass-mcp", - "is_required": true, - "format": "string", - "value": "voska/hass-mcp", - "default": "voska/hass-mcp", - "type": "positional", - "value_hint": "voska/hass-mcp" - } - ], - "environment_variables": [ - { - "description": "http://homeassistant.local:8123", - "name": "HA_URL" - }, - { - "description": "YOUR_LONG_LIVED_TOKEN", - "name": "HA_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "aef75131-e237-4b91-a2b8-c0f416d3618f", - "name": "io.github.buryhuang/mcp-hubspot", - "description": "A Model Context Protocol (MCP) server that enables AI assistants to interact with HubSpot CRM data, providing built-in vector storage and caching mechanisms help overcome HubSpot API limitations while improving response times.", - "repository": { - "url": "https://github.com/peakmojo/mcp-hubspot", - "source": "github", - "id": "908899631" + "server": { + "name": "io.github.buryhuang/mcp-hubspot", + "description": "A Model Context Protocol (MCP) server that enables AI assistants to interact with HubSpot CRM data, providing built-in vector storage and caching mechanisms help overcome HubSpot API limitations while improving response times.", + "status": "active", + "repository": { + "url": "https://github.com/peakmojo/mcp-hubspot", + "source": "github", + "id": "908899631" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-hubspot", + "version": "0.2.0", + "package_arguments": [ + { + "description": "Attach stdin even if not attached", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "Remove container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Set HUBSPOT_ACCESS_TOKEN environment variable in the container", + "is_required": true, + "format": "string", + "value": "-e HUBSPOT_ACCESS_TOKEN=your_token", + "default": "-e HUBSPOT_ACCESS_TOKEN=your_token", + "type": "named", + "name": "-e HUBSPOT_ACCESS_TOKEN=your_token", + "value_hint": "HUBSPOT_ACCESS_TOKEN=your_token" + }, + { + "description": "Optional persistent storage for state files", + "format": "string", + "value": "-v /path/to/storage:/storage", + "default": "-v /path/to/storage:/storage", + "type": "named", + "name": "-v /path/to/storage:/storage", + "value_hint": "/path/to/storage:/storage" + }, + { + "description": "Docker image to run", + "is_required": true, + "format": "string", + "value": "buryhuang/mcp-hubspot:latest", + "default": "buryhuang/mcp-hubspot:latest", + "type": "positional", + "value_hint": "buryhuang/mcp-hubspot:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "aef75131-e237-4b91-a2b8-c0f416d3618f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-hubspot", - "version": "0.2.0", - "package_arguments": [ - { - "description": "Attach stdin even if not attached", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "Remove container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Set HUBSPOT_ACCESS_TOKEN environment variable in the container", - "is_required": true, - "format": "string", - "value": "-e HUBSPOT_ACCESS_TOKEN=your_token", - "default": "-e HUBSPOT_ACCESS_TOKEN=your_token", - "type": "named", - "name": "-e HUBSPOT_ACCESS_TOKEN=your_token", - "value_hint": "HUBSPOT_ACCESS_TOKEN=your_token" - }, - { - "description": "Optional persistent storage for state files", - "format": "string", - "value": "-v /path/to/storage:/storage", - "default": "-v /path/to/storage:/storage", - "type": "named", - "name": "-v /path/to/storage:/storage", - "value_hint": "/path/to/storage:/storage" - }, - { - "description": "Docker image to run", - "is_required": true, - "format": "string", - "value": "buryhuang/mcp-hubspot:latest", - "default": "buryhuang/mcp-hubspot:latest", - "type": "positional", - "value_hint": "buryhuang/mcp-hubspot:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "532d7690-7a65-470f-81da-2ba3042bee05", - "name": "io.github.evalstate/mcp-hfspace", - "description": "MCP Server to Use HuggingFace spaces, easy configuration and Claude Desktop mode. ", - "repository": { - "url": "https://github.com/evalstate/mcp-hfspace", - "source": "github", - "id": "898049335" + "server": { + "name": "io.github.evalstate/mcp-hfspace", + "description": "MCP Server to Use HuggingFace spaces, easy configuration and Claude Desktop mode. ", + "status": "active", + "repository": { + "url": "https://github.com/evalstate/mcp-hfspace", + "source": "github", + "id": "898049335" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@llmindset/mcp-hfspace", + "version": "0.5.4", + "package_arguments": [ + { + "description": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", + "is_required": true, + "format": "string", + "value": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", + "default": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", + "type": "named", + "name": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", + "value_hint": "~/mcp-files/ or x:/temp/mcp-files/" + }, + { + "description": "--HF_TOKEN=HF_{optional token}", + "is_required": true, + "format": "string", + "value": "--HF_TOKEN=HF_{optional token}", + "default": "--HF_TOKEN=HF_{optional token}", + "type": "named", + "name": "--HF_TOKEN=HF_{optional token}", + "value_hint": "HF_{optional token}" + }, + { + "description": "Qwen/Qwen2-72B-Instruct", + "is_required": true, + "format": "string", + "value": "Qwen/Qwen2-72B-Instruct", + "default": "Qwen/Qwen2-72B-Instruct", + "type": "positional", + "value_hint": "Qwen/Qwen2-72B-Instruct" + }, + { + "description": "black-forest-labs/FLUX.1-schnell", + "is_required": true, + "format": "string", + "value": "black-forest-labs/FLUX.1-schnell", + "default": "black-forest-labs/FLUX.1-schnell", + "type": "positional", + "value_hint": "black-forest-labs/FLUX.1-schnell" + }, + { + "description": "space/example/specific-endpint", + "is_required": true, + "format": "string", + "value": "space/example/specific-endpint", + "default": "space/example/specific-endpint", + "type": "positional", + "value_hint": "space/example/specific-endpint" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "532d7690-7a65-470f-81da-2ba3042bee05", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@llmindset/mcp-hfspace", - "version": "0.5.4", - "package_arguments": [ - { - "description": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", - "is_required": true, - "format": "string", - "value": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", - "default": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", - "type": "named", - "name": "--work-dir=~/mcp-files/ or x:/temp/mcp-files/", - "value_hint": "~/mcp-files/ or x:/temp/mcp-files/" - }, - { - "description": "--HF_TOKEN=HF_{optional token}", - "is_required": true, - "format": "string", - "value": "--HF_TOKEN=HF_{optional token}", - "default": "--HF_TOKEN=HF_{optional token}", - "type": "named", - "name": "--HF_TOKEN=HF_{optional token}", - "value_hint": "HF_{optional token}" - }, - { - "description": "Qwen/Qwen2-72B-Instruct", - "is_required": true, - "format": "string", - "value": "Qwen/Qwen2-72B-Instruct", - "default": "Qwen/Qwen2-72B-Instruct", - "type": "positional", - "value_hint": "Qwen/Qwen2-72B-Instruct" - }, - { - "description": "black-forest-labs/FLUX.1-schnell", - "is_required": true, - "format": "string", - "value": "black-forest-labs/FLUX.1-schnell", - "default": "black-forest-labs/FLUX.1-schnell", - "type": "positional", - "value_hint": "black-forest-labs/FLUX.1-schnell" - }, - { - "description": "space/example/specific-endpint", - "is_required": true, - "format": "string", - "value": "space/example/specific-endpint", - "default": "space/example/specific-endpint", - "type": "positional", - "value_hint": "space/example/specific-endpint" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0d57edf7-3fbb-42b4-aa9e-b255e7d6f8fa", - "name": "io.github.mektigboy/server-hyperliquid", - "description": "MCP Hyperliquid (https://app.hyperliquid.xyz) server", - "repository": { - "url": "https://github.com/mektigboy/server-hyperliquid", - "source": "github", - "id": "943734921" + "server": { + "name": "io.github.mektigboy/server-hyperliquid", + "description": "MCP Hyperliquid (https://app.hyperliquid.xyz) server", + "status": "active", + "repository": { + "url": "https://github.com/mektigboy/server-hyperliquid", + "source": "github", + "id": "943734921" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@mektigboy/server-hyperliquid", + "version": "0.0.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0d57edf7-3fbb-42b4-aa9e-b255e7d6f8fa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@mektigboy/server-hyperliquid", - "version": "0.0.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b51467a7-698f-4a33-9598-db5aaf4e07b3", - "name": "io.github.stefanoamorelli/hyprmcp", - "description": "Community MCP server for hyprctl", - "repository": { - "url": "https://github.com/stefanoamorelli/hyprmcp", - "source": "github", - "id": "973785828" + "server": { + "name": "io.github.stefanoamorelli/hyprmcp", + "description": "Community MCP server for hyprctl", + "status": "active", + "repository": { + "url": "https://github.com/stefanoamorelli/hyprmcp", + "source": "github", + "id": "973785828" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "stefanoamorelli/hyprmcp", + "version": "", + "package_arguments": [ + { + "description": "--with mcp[cli]", + "is_required": true, + "format": "string", + "value": "--with mcp[cli]", + "default": "--with mcp[cli]", + "type": "named", + "name": "--with mcp[cli]", + "value_hint": "mcp[cli]" + }, + { + "description": "--with subprocess", + "is_required": true, + "format": "string", + "value": "--with subprocess", + "default": "--with subprocess", + "type": "named", + "name": "--with subprocess", + "value_hint": "subprocess" + }, + { + "description": "mcp", + "is_required": true, + "format": "string", + "value": "mcp", + "default": "mcp", + "type": "positional", + "value_hint": "mcp" + }, + { + "description": "\u003cglobal path of the repo\u003e/hyprmcp/hyprmcp/server.py", + "is_required": true, + "format": "string", + "value": "\u003cglobal path of the repo\u003e/hyprmcp/hyprmcp/server.py", + "default": "\u003cglobal path of the repo\u003e/hyprmcp/hyprmcp/server.py", + "type": "positional", + "value_hint": "\u003cglobal path of the repo\u003e/hyprmcp/hyprmcp/server.py" + } + ], + "environment_variables": [ + { + "description": "\u003cglobal path of the repo\u003e/hyprmcp", + "name": "PYTHONPATH" + }, + { + "description": "\u003cyour-hyprland-instance-signature\u003e", + "name": "HYPRLAND_INSTANCE_SIGNATURE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b51467a7-698f-4a33-9598-db5aaf4e07b3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "stefanoamorelli/hyprmcp", - "version": "", - "package_arguments": [ - { - "description": "--with mcp[cli]", - "is_required": true, - "format": "string", - "value": "--with mcp[cli]", - "default": "--with mcp[cli]", - "type": "named", - "name": "--with mcp[cli]", - "value_hint": "mcp[cli]" - }, - { - "description": "--with subprocess", - "is_required": true, - "format": "string", - "value": "--with subprocess", - "default": "--with subprocess", - "type": "named", - "name": "--with subprocess", - "value_hint": "subprocess" - }, - { - "description": "mcp", - "is_required": true, - "format": "string", - "value": "mcp", - "default": "mcp", - "type": "positional", - "value_hint": "mcp" - }, - { - "description": "/hyprmcp/hyprmcp/server.py", - "is_required": true, - "format": "string", - "value": "/hyprmcp/hyprmcp/server.py", - "default": "/hyprmcp/hyprmcp/server.py", - "type": "positional", - "value_hint": "/hyprmcp/hyprmcp/server.py" - } - ], - "environment_variables": [ - { - "description": "/hyprmcp", - "name": "PYTHONPATH" - }, - { - "description": "", - "name": "HYPRLAND_INSTANCE_SIGNATURE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6a9b532e-61df-4d4d-a898-25d66aa60315", - "name": "io.github.iflytek/ifly-workflow-mcp-server", - "description": "This a simple implementation of an MCP server using iFlytek. It enables calling iFlytek workflows through MCP tools.", - "repository": { - "url": "https://github.com/iflytek/ifly-workflow-mcp-server", - "source": "github", - "id": "953998052" + "server": { + "name": "io.github.iflytek/ifly-workflow-mcp-server", + "description": "This a simple implementation of an MCP server using iFlytek. It enables calling iFlytek workflows through MCP tools.", + "status": "active", + "repository": { + "url": "https://github.com/iflytek/ifly-workflow-mcp-server", + "source": "github", + "id": "953998052" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "ifly-workflow-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", + "is_required": true, + "format": "string", + "value": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", + "default": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", + "type": "named", + "name": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", + "value_hint": "git+https://github.com/iflytek/ifly-workflow-mcp-server" + }, + { + "description": "ifly_workflow_mcp_server", + "is_required": true, + "format": "string", + "value": "ifly_workflow_mcp_server", + "default": "ifly_workflow_mcp_server", + "type": "positional", + "value_hint": "ifly_workflow_mcp_server" + } + ], + "environment_variables": [ + { + "description": "/Users/hygao1024/Projects/config.yaml", + "name": "CONFIG_PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6a9b532e-61df-4d4d-a898-25d66aa60315", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "ifly-workflow-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", - "is_required": true, - "format": "string", - "value": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", - "default": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", - "type": "named", - "name": "--from git+https://github.com/iflytek/ifly-workflow-mcp-server", - "value_hint": "git+https://github.com/iflytek/ifly-workflow-mcp-server" - }, - { - "description": "ifly_workflow_mcp_server", - "is_required": true, - "format": "string", - "value": "ifly_workflow_mcp_server", - "default": "ifly_workflow_mcp_server", - "type": "positional", - "value_hint": "ifly_workflow_mcp_server" - } - ], - "environment_variables": [ - { - "description": "/Users/hygao1024/Projects/config.yaml", - "name": "CONFIG_PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5bf6d045-dc83-4b51-858f-eb9c3403087f", - "name": "io.github.gongrzhe/image-generation-mcp-server", - "description": "This MCP server provides image generation capabilities using the Replicate Flux model.", - "repository": { - "url": "https://github.com/GongRzhe/Image-Generation-MCP-Server", - "source": "github", - "id": "937552153" + "server": { + "name": "io.github.gongrzhe/image-generation-mcp-server", + "description": "This MCP server provides image generation capabilities using the Replicate Flux model.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Image-Generation-MCP-Server", + "source": "github", + "id": "937552153" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gongrzhe/image-gen-server", + "version": "1.0.1", + "environment_variables": [ + { + "description": "your-replicate-api-token", + "name": "REPLICATE_API_TOKEN" + }, + { + "description": "alternative-model-name", + "name": "MODEL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5bf6d045-dc83-4b51-858f-eb9c3403087f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gongrzhe/image-gen-server", - "version": "1.0.1", - "environment_variables": [ - { - "description": "your-replicate-api-token", - "name": "REPLICATE_API_TOKEN" - }, - { - "description": "alternative-model-name", - "name": "MODEL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d78df157-559d-4e87-af1f-0dcbfe703a23", - "name": "io.github.idoru/influxdb-mcp-server", - "description": "An MCP Server for querying InfluxDB", - "repository": { - "url": "https://github.com/idoru/influxdb-mcp-server", - "source": "github", - "id": "946415795" + "server": { + "name": "io.github.idoru/influxdb-mcp-server", + "description": "An MCP Server for querying InfluxDB", + "status": "active", + "repository": { + "url": "https://github.com/idoru/influxdb-mcp-server", + "source": "github", + "id": "946415795" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "influxdb-mcp-server", + "version": "0.1.1", + "environment_variables": [ + { + "description": "your_token", + "name": "INFLUXDB_TOKEN" + }, + { + "description": "http://localhost:8086", + "name": "INFLUXDB_URL" + }, + { + "description": "your_org", + "name": "INFLUXDB_ORG" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d78df157-559d-4e87-af1f-0dcbfe703a23", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "influxdb-mcp-server", - "version": "0.1.1", - "environment_variables": [ - { - "description": "your_token", - "name": "INFLUXDB_TOKEN" - }, - { - "description": "http://localhost:8086", - "name": "INFLUXDB_URL" - }, - { - "description": "your_org", - "name": "INFLUXDB_ORG" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "601ee7e9-e0db-470e-80e5-f1509cddf6d7", - "name": "io.github.sergehuber/inoyu-mcp-unomi-server", - "description": "An implementation of Anthropic's Model Context Protocol for the Apache Unomi CDP", - "repository": { - "url": "https://github.com/sergehuber/inoyu-mcp-unomi-server", - "source": "github", - "id": "896936323" + "server": { + "name": "io.github.sergehuber/inoyu-mcp-unomi-server", + "description": "An implementation of Anthropic's Model Context Protocol for the Apache Unomi CDP", + "status": "active", + "repository": { + "url": "https://github.com/sergehuber/inoyu-mcp-unomi-server", + "source": "github", + "id": "896936323" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@inoyu/mcp-unomi-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "601ee7e9-e0db-470e-80e5-f1509cddf6d7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:26Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@inoyu/mcp-unomi-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1967f4e6-f229-4d5f-a648-9bdc67d39da8", - "name": "io.github.raoulbia-ai/mcp-server-for-intercom", - "description": "", - "repository": { - "url": "https://github.com/raoulbia-ai/mcp-server-for-intercom", - "source": "github", - "id": "945565923" + "server": { + "name": "io.github.raoulbia-ai/mcp-server-for-intercom", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/raoulbia-ai/mcp-server-for-intercom", + "source": "github", + "id": "945565923" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-for-intercom", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your_intercom_api_token", + "name": "INTERCOM_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1967f4e6-f229-4d5f-a648-9bdc67d39da8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-for-intercom", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your_intercom_api_token", - "name": "INTERCOM_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b9fa6e10-c6f4-424d-b289-469d49decaaf", - "name": "io.github.inditextech/mcp-server-simulator-ios-idb", - "description": "A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators through natural language commands.", - "repository": { - "url": "https://github.com/InditexTech/mcp-server-simulator-ios-idb", - "source": "github", - "id": "950568971" + "server": { + "name": "io.github.inditextech/mcp-server-simulator-ios-idb", + "description": "A Model Context Protocol (MCP) server that enables LLMs to interact with iOS simulators through natural language commands.", + "status": "active", + "repository": { + "url": "https://github.com/InditexTech/mcp-server-simulator-ios-idb", + "source": "github", + "id": "950568971" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-simulator-ios-idb", + "version": "1.0.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b9fa6e10-c6f4-424d-b289-469d49decaaf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-simulator-ios-idb", - "version": "1.0.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dcac9b0e-b18c-4570-947c-7a6d351b02df", - "name": "io.github.ferrislucas/iterm-mcp", - "description": "A Model Context Protocol server that executes commands in the current iTerm session - useful for REPL and CLI assistance", - "repository": { - "url": "https://github.com/ferrislucas/iterm-mcp", - "source": "github", - "id": "914173426" + "server": { + "name": "io.github.ferrislucas/iterm-mcp", + "description": "A Model Context Protocol server that executes commands in the current iTerm session - useful for REPL and CLI assistance", + "status": "active", + "repository": { + "url": "https://github.com/ferrislucas/iterm-mcp", + "source": "github", + "id": "914173426" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "iterm-mcp", + "version": "1.2.5" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dcac9b0e-b18c-4570-947c-7a6d351b02df", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "iterm-mcp", - "version": "1.2.5" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "add3f73d-394b-4b99-b255-8d9d89db84c2", - "name": "io.github.rishabkoul/iterm-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/rishabkoul/iTerm-MCP-Server", - "source": "github", - "id": "953500133" + "server": { + "name": "io.github.rishabkoul/iterm-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/rishabkoul/iTerm-MCP-Server", + "source": "github", + "id": "953500133" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "iterm_mcp_server", + "version": "1.0.4" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "add3f73d-394b-4b99-b255-8d9d89db84c2", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "iterm_mcp_server", - "version": "1.0.4" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d0f30dc9-bc11-43f8-9b61-034e2bec78d5", - "name": "io.github.qainsights/jmeter-mcp-server", - "description": "✨ JMeter Meets AI Workflows: Introducing the JMeter MCP Server! 🤯 ", - "repository": { - "url": "https://github.com/QAInsights/jmeter-mcp-server", - "source": "github", - "id": "956608147" + "server": { + "name": "io.github.qainsights/jmeter-mcp-server", + "description": "✨ JMeter Meets AI Workflows: Introducing the JMeter MCP Server! 🤯 ", + "status": "active", + "repository": { + "url": "https://github.com/QAInsights/jmeter-mcp-server", + "source": "github", + "id": "956608147" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "jmeter-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "jmeter_server.py", + "default": "jmeter_server.py", + "type": "positional", + "value_hint": "jmeter_server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d0f30dc9-bc11-43f8-9b61-034e2bec78d5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "jmeter-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "jmeter_server.py", - "default": "jmeter_server.py", - "type": "positional", - "value_hint": "jmeter_server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7e73a81a-e914-4cf7-aff2-482d0047e8dd", - "name": "io.github.gongrzhe/json-mcp-server", - "description": "JSON handling and processing mcp server", - "repository": { - "url": "https://github.com/GongRzhe/JSON-MCP-Server", - "source": "github", - "id": "907849216" + "server": { + "name": "io.github.gongrzhe/json-mcp-server", + "description": "JSON handling and processing mcp server", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/JSON-MCP-Server", + "source": "github", + "id": "907849216" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gongrzhe/server-json-mcp", + "version": "1.0.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7e73a81a-e914-4cf7-aff2-482d0047e8dd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gongrzhe/server-json-mcp", - "version": "1.0.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "243a8c0e-4bb7-4932-9d7c-8e8229306295", - "name": "io.github.kukapay/jupiter-mcp", - "description": "An MCP server for executing token swaps on the Solana blockchain using Jupiter's new Ultra API.", - "repository": { - "url": "https://github.com/kukapay/jupiter-mcp", - "source": "github", - "id": "952976727" + "server": { + "name": "io.github.kukapay/jupiter-mcp", + "description": "An MCP server for executing token swaps on the Solana blockchain using Jupiter's new Ultra API.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/jupiter-mcp", + "source": "github", + "id": "952976727" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "jupiter-mcp", + "version": "1.0.1", + "package_arguments": [ + { + "description": "Jupiter MCP server entry file", + "is_required": true, + "format": "string", + "value": "path/to/jupiter-mcp/server/index.js", + "default": "path/to/jupiter-mcp/server/index.js", + "type": "positional", + "value_hint": "path/to/jupiter-mcp/server/index.js" + } + ], + "environment_variables": [ + { + "description": "solana rpc url you can access", + "name": "SOLANA_RPC_URL" + }, + { + "description": "your private key", + "name": "PRIVATE_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "243a8c0e-4bb7-4932-9d7c-8e8229306295", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "jupiter-mcp", - "version": "1.0.1", - "package_arguments": [ - { - "description": "Jupiter MCP server entry file", - "is_required": true, - "format": "string", - "value": "path/to/jupiter-mcp/server/index.js", - "default": "path/to/jupiter-mcp/server/index.js", - "type": "positional", - "value_hint": "path/to/jupiter-mcp/server/index.js" - } - ], - "environment_variables": [ - { - "description": "solana rpc url you can access", - "name": "SOLANA_RPC_URL" - }, - { - "description": "your private key", - "name": "PRIVATE_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e80eb5ed-497b-4bcf-8cc3-f7f2c5eed889", - "name": "io.github.lamaalrajih/kicad-mcp", - "description": "Model Context Protocol server for KiCad on Mac, Windows, and Linux", - "repository": { - "url": "https://github.com/lamaalrajih/kicad-mcp", - "source": "github", - "id": "951687178" + "server": { + "name": "io.github.lamaalrajih/kicad-mcp", + "description": "Model Context Protocol server for KiCad on Mac, Windows, and Linux", + "status": "active", + "repository": { + "url": "https://github.com/lamaalrajih/kicad-mcp", + "source": "github", + "id": "951687178" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "lamaalrajih/kicad-mcp", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e80eb5ed-497b-4bcf-8cc3-f7f2c5eed889", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "lamaalrajih/kicad-mcp", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ac8e4d2b-da97-4a40-934b-1c516b4250fe", - "name": "io.github.christophenglisch/keycloak-model-context-protocol", - "description": "MCP server implementation for Keycloak user management. Enables AI-powered administration of Keycloak users and realms through the Model Context Protocol (MCP). Seamlessly integrates with Claude Desktop and other MCP clients for automated user operations.", - "repository": { - "url": "https://github.com/ChristophEnglisch/keycloak-model-context-protocol", - "source": "github", - "id": "912825504" + "server": { + "name": "io.github.christophenglisch/keycloak-model-context-protocol", + "description": "MCP server implementation for Keycloak user management. Enables AI-powered administration of Keycloak users and realms through the Model Context Protocol (MCP). Seamlessly integrates with Claude Desktop and other MCP clients for automated user operations.", + "status": "active", + "repository": { + "url": "https://github.com/ChristophEnglisch/keycloak-model-context-protocol", + "source": "github", + "id": "912825504" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "keycloak-model-context-protocol", + "version": "0.0.2", + "package_arguments": [ + { + "description": "Second positional argument to the command", + "is_required": true, + "format": "string", + "value": "path/to/dist/index.js", + "default": "path/to/dist/index.js", + "type": "positional", + "value_hint": "path/to/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "http://localhost:8080", + "name": "KEYCLOAK_URL" + }, + { + "description": "admin", + "name": "KEYCLOAK_ADMIN" + }, + { + "description": "admin", + "name": "KEYCLOAK_ADMIN_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ac8e4d2b-da97-4a40-934b-1c516b4250fe", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "keycloak-model-context-protocol", - "version": "0.0.2", - "package_arguments": [ - { - "description": "Second positional argument to the command", - "is_required": true, - "format": "string", - "value": "path/to/dist/index.js", - "default": "path/to/dist/index.js", - "type": "positional", - "value_hint": "path/to/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "http://localhost:8080", - "name": "KEYCLOAK_URL" - }, - { - "description": "admin", - "name": "KEYCLOAK_ADMIN" - }, - { - "description": "admin", - "name": "KEYCLOAK_ADMIN_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "984ee65a-dec0-4a75-b21b-2efbcd9600bd", - "name": "io.github.kiwamizamurai/mcp-kibela-server", - "description": "MCP server implementation for Kibela API integration", - "repository": { - "url": "https://github.com/kiwamizamurai/mcp-kibela-server", - "source": "github", - "id": "925867194" + "server": { + "name": "io.github.kiwamizamurai/mcp-kibela-server", + "description": "MCP server implementation for Kibela API integration", + "status": "active", + "repository": { + "url": "https://github.com/kiwamizamurai/mcp-kibela-server", + "source": "github", + "id": "925867194" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@kiwamizamurai/mcp-kibela-server", + "version": "1.1.0", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "-e KIBELA_TEAM", + "is_required": true, + "format": "string", + "value": "-e KIBELA_TEAM", + "default": "-e KIBELA_TEAM", + "type": "named", + "name": "-e KIBELA_TEAM", + "value_hint": "KIBELA_TEAM" + }, + { + "description": "-e KIBELA_TOKEN", + "is_required": true, + "format": "string", + "value": "-e KIBELA_TOKEN", + "default": "-e KIBELA_TOKEN", + "type": "named", + "name": "-e KIBELA_TOKEN", + "value_hint": "KIBELA_TOKEN" + }, + { + "description": "mcp-kibela-server", + "is_required": true, + "format": "string", + "value": "mcp-kibela-server", + "default": "mcp-kibela-server", + "type": "positional" + } + ], + "environment_variables": [ + { + "description": "YOUR_TEAM_NAME", + "name": "KIBELA_TEAM" + }, + { + "description": "YOUR_TOKEN", + "name": "KIBELA_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "984ee65a-dec0-4a75-b21b-2efbcd9600bd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@kiwamizamurai/mcp-kibela-server", - "version": "1.1.0", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "-e KIBELA_TEAM", - "is_required": true, - "format": "string", - "value": "-e KIBELA_TEAM", - "default": "-e KIBELA_TEAM", - "type": "named", - "name": "-e KIBELA_TEAM", - "value_hint": "KIBELA_TEAM" - }, - { - "description": "-e KIBELA_TOKEN", - "is_required": true, - "format": "string", - "value": "-e KIBELA_TOKEN", - "default": "-e KIBELA_TOKEN", - "type": "named", - "name": "-e KIBELA_TOKEN", - "value_hint": "KIBELA_TOKEN" - }, - { - "description": "mcp-kibela-server", - "is_required": true, - "format": "string", - "value": "mcp-kibela-server", - "default": "mcp-kibela-server", - "type": "positional" - } - ], - "environment_variables": [ - { - "description": "YOUR_TEAM_NAME", - "name": "KIBELA_TEAM" - }, - { - "description": "YOUR_TOKEN", - "name": "KIBELA_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "86a12728-3ab9-4a69-a447-bcb67957a5f7", - "name": "io.github.kong/mcp-konnect", - "description": "A Model Context Protocol (MCP) server for interacting with Kong Konnect APIs, allowing AI assistants to query and analyze Kong Gateway configurations, traffic, and analytics.", - "repository": { - "url": "https://github.com/Kong/mcp-konnect", - "source": "github", - "id": "944084760" + "server": { + "name": "io.github.kong/mcp-konnect", + "description": "A Model Context Protocol (MCP) server for interacting with Kong Konnect APIs, allowing AI assistants to query and analyze Kong Gateway configurations, traffic, and analytics.", + "status": "active", + "repository": { + "url": "https://github.com/Kong/mcp-konnect", + "source": "github", + "id": "944084760" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "kong-konnect-mcp", + "version": "1.0.0", + "environment_variables": [ + { + "description": "kpat_api_key_here", + "name": "KONNECT_ACCESS_TOKEN" + }, + { + "description": "us", + "name": "KONNECT_REGION" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "86a12728-3ab9-4a69-a447-bcb67957a5f7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:08:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "kong-konnect-mcp", - "version": "1.0.0", - "environment_variables": [ - { - "description": "kpat_api_key_here", - "name": "KONNECT_ACCESS_TOKEN" - }, - { - "description": "us", - "name": "KONNECT_REGION" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6a4d324e-7d12-495c-b72c-fe5803363af1", - "name": "io.github.flux159/mcp-server-kubernetes", - "description": "MCP Server for kubernetes management commands", - "repository": { - "url": "https://github.com/Flux159/mcp-server-kubernetes", - "source": "github", - "id": "900130551" + "server": { + "name": "io.github.flux159/mcp-server-kubernetes", + "description": "MCP Server for kubernetes management commands", + "status": "active", + "repository": { + "url": "https://github.com/Flux159/mcp-server-kubernetes", + "source": "github", + "id": "900130551" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-kubernetes", + "version": "1.6.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6a4d324e-7d12-495c-b72c-fe5803363af1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-kubernetes", - "version": "1.6.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3c265bda-03e4-4e46-bceb-437a1b02f431", - "name": "io.github.gongrzhe/langflow-doc-qa-server", - "description": "A Model Context Protocol server for document Q&A powered by Langflow . It demonstrates core MCP concepts by providing a simple interface to query documents through a Langflow backend.", - "repository": { - "url": "https://github.com/GongRzhe/Langflow-DOC-QA-SERVER", - "source": "github", - "id": "937522079" + "server": { + "name": "io.github.gongrzhe/langflow-doc-qa-server", + "description": "A Model Context Protocol server for document Q\u0026A powered by Langflow . It demonstrates core MCP concepts by providing a simple interface to query documents through a Langflow backend.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Langflow-DOC-QA-SERVER", + "source": "github", + "id": "937522079" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "doc-qa-server", + "version": "0.1.0", + "environment_variables": [ + { + "description": "http://127.0.0.1:7860/api/v1/run/480ec7b3-29d2-4caa-b03b-e74118f35fac", + "name": "API_ENDPOINT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3c265bda-03e4-4e46-bceb-437a1b02f431", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "doc-qa-server", - "version": "0.1.0", - "environment_variables": [ - { - "description": "http://127.0.0.1:7860/api/v1/run/480ec7b3-29d2-4caa-b03b-e74118f35fac", - "name": "API_ENDPOINT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "39843dbb-856d-46d9-92c4-74b5041c4444", - "name": "io.github.kone-net/mcp_server_lark", - "description": "A Model Context Protocol server for Lark(Feishu) sheet, message, doc and etc.", - "repository": { - "url": "https://github.com/kone-net/mcp_server_lark", - "source": "github", - "id": "955286262" + "server": { + "name": "io.github.kone-net/mcp_server_lark", + "description": "A Model Context Protocol server for Lark(Feishu) sheet, message, doc and etc.", + "status": "active", + "repository": { + "url": "https://github.com/kone-net/mcp_server_lark", + "source": "github", + "id": "955286262" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-lark", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "39843dbb-856d-46d9-92c4-74b5041c4444", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-lark", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "17c2c7f2-20f2-424f-8466-b164ed19ddef", - "name": "io.github.syucream/lightdash-mcp-server", - "description": "A MCP(Model Context Protocol) server that accesses to Lightdash", - "repository": { - "url": "https://github.com/syucream/lightdash-mcp-server", - "source": "github", - "id": "910751536" + "server": { + "name": "io.github.syucream/lightdash-mcp-server", + "description": "A MCP(Model Context Protocol) server that accesses to Lightdash", + "status": "active", + "repository": { + "url": "https://github.com/syucream/lightdash-mcp-server", + "source": "github", + "id": "910751536" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "lightdash-mcp-server", + "version": "0.0.11", + "environment_variables": [ + { + "description": "\u003cyour PAT\u003e", + "name": "LIGHTDASH_API_KEY" + }, + { + "description": "https://\u003cyour base url\u003e", + "name": "LIGHTDASH_API_URL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "17c2c7f2-20f2-424f-8466-b164ed19ddef", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "lightdash-mcp-server", - "version": "0.0.11", - "environment_variables": [ - { - "description": "", - "name": "LIGHTDASH_API_KEY" - }, - { - "description": "https://", - "name": "LIGHTDASH_API_URL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "32f876df-1f34-40d7-aed8-0431b32d5091", - "name": "io.github.tritlo/lsp-mcp", - "description": "An MCP server that lets you interact with LSP servers", - "repository": { - "url": "https://github.com/Tritlo/lsp-mcp", - "source": "github", - "id": "952869992" + "server": { + "name": "io.github.tritlo/lsp-mcp", + "description": "An MCP server that lets you interact with LSP servers", + "status": "active", + "repository": { + "url": "https://github.com/Tritlo/lsp-mcp", + "source": "github", + "id": "952869992" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "lsp-mcp-server", + "version": "0.2.0", + "package_arguments": [ + { + "description": "debug", + "is_required": true, + "format": "string", + "value": "debug", + "default": "debug", + "type": "named", + "name": "debug", + "value_hint": "debug" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "32f876df-1f34-40d7-aed8-0431b32d5091", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "lsp-mcp-server", - "version": "0.2.0", - "package_arguments": [ - { - "description": "debug", - "is_required": true, - "format": "string", - "value": "debug", - "default": "debug", - "type": "named", - "name": "debug", - "value_hint": "debug" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a4a1013a-5789-4020-9a16-eda6c453aba7", - "name": "io.github.tacticlaunch/mcp-linear", - "description": "MCP server that enables AI assistants to interact with Linear project management system through natural language, allowing users to retrieve, create, and update issues, projects, and teams.", - "repository": { - "url": "https://github.com/tacticlaunch/mcp-linear", - "source": "github", - "id": "953530564" + "server": { + "name": "io.github.tacticlaunch/mcp-linear", + "description": "MCP server that enables AI assistants to interact with Linear project management system through natural language, allowing users to retrieve, create, and update issues, projects, and teams.", + "status": "active", + "repository": { + "url": "https://github.com/tacticlaunch/mcp-linear", + "source": "github", + "id": "953530564" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@tacticlaunch/mcp-linear", + "version": "1.0.9", + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "LINEAR_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a4a1013a-5789-4020-9a16-eda6c453aba7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@tacticlaunch/mcp-linear", - "version": "1.0.9", - "environment_variables": [ - { - "description": "", - "name": "LINEAR_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a0e6ce8a-15eb-4776-b9de-a4bb3c7e4730", - "name": "io.github.jerhadf/linear-mcp-server", - "description": "A server that integrates Linear's project management system with the Model Context Protocol (MCP) to allow LLMs to interact with Linear.", - "repository": { - "url": "https://github.com/jerhadf/linear-mcp-server", - "source": "github", - "id": "898106797" + "server": { + "name": "io.github.jerhadf/linear-mcp-server", + "description": "A server that integrates Linear's project management system with the Model Context Protocol (MCP) to allow LLMs to interact with Linear.", + "status": "active", + "repository": { + "url": "https://github.com/jerhadf/linear-mcp-server", + "source": "github", + "id": "898106797" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "linear-mcp-server", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your_linear_api_key_here", + "name": "LINEAR_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a0e6ce8a-15eb-4776-b9de-a4bb3c7e4730", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "linear-mcp-server", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your_linear_api_key_here", - "name": "LINEAR_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6cfb4c39-82bb-4b43-94a5-1f50ebd10c71", - "name": "io.github.run-llama/mcp-server-llamacloud", - "description": "A MCP server connecting to managed indexes on LlamaCloud", - "repository": { - "url": "https://github.com/run-llama/mcp-server-llamacloud", - "source": "github", - "id": "898328533" + "server": { + "name": "io.github.run-llama/mcp-server-llamacloud", + "description": "A MCP server connecting to managed indexes on LlamaCloud", + "status": "active", + "repository": { + "url": "https://github.com/run-llama/mcp-server-llamacloud", + "source": "github", + "id": "898328533" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@llamaindex/mcp-server-llamacloud", + "version": "0.1.2", + "package_arguments": [ + { + "description": "Index to be used (first occurrence)", + "is_required": true, + "format": "string", + "value": "--index 10k-SEC-Tesla", + "default": "--index 10k-SEC-Tesla", + "type": "named", + "name": "--index 10k-SEC-Tesla", + "value_hint": "10k-SEC-Tesla" + }, + { + "description": "Description for index (first occurrence)", + "is_required": true, + "format": "string", + "value": "--description 10k SEC documents from 2023 for Tesla", + "default": "--description 10k SEC documents from 2023 for Tesla", + "type": "named", + "name": "--description 10k SEC documents from 2023 for Tesla", + "value_hint": "10k SEC documents from 2023 for Tesla" + }, + { + "description": "Index to be used (second occurrence)", + "is_required": true, + "format": "string", + "value": "--index 10k-SEC-Apple", + "default": "--index 10k-SEC-Apple", + "type": "named", + "name": "--index 10k-SEC-Apple", + "value_hint": "10k-SEC-Apple" + }, + { + "description": "Description for index (second occurrence)", + "is_required": true, + "format": "string", + "value": "--description 10k SEC documents from 2023 for Apple", + "default": "--description 10k SEC documents from 2023 for Apple", + "type": "named", + "name": "--description 10k SEC documents from 2023 for Apple", + "value_hint": "10k SEC documents from 2023 for Apple" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_PROJECT_NAME\u003e", + "name": "LLAMA_CLOUD_PROJECT_NAME" + }, + { + "description": "\u003cYOUR_API_KEY\u003e", + "name": "LLAMA_CLOUD_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6cfb4c39-82bb-4b43-94a5-1f50ebd10c71", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@llamaindex/mcp-server-llamacloud", - "version": "0.1.2", - "package_arguments": [ - { - "description": "Index to be used (first occurrence)", - "is_required": true, - "format": "string", - "value": "--index 10k-SEC-Tesla", - "default": "--index 10k-SEC-Tesla", - "type": "named", - "name": "--index 10k-SEC-Tesla", - "value_hint": "10k-SEC-Tesla" - }, - { - "description": "Description for index (first occurrence)", - "is_required": true, - "format": "string", - "value": "--description 10k SEC documents from 2023 for Tesla", - "default": "--description 10k SEC documents from 2023 for Tesla", - "type": "named", - "name": "--description 10k SEC documents from 2023 for Tesla", - "value_hint": "10k SEC documents from 2023 for Tesla" - }, - { - "description": "Index to be used (second occurrence)", - "is_required": true, - "format": "string", - "value": "--index 10k-SEC-Apple", - "default": "--index 10k-SEC-Apple", - "type": "named", - "name": "--index 10k-SEC-Apple", - "value_hint": "10k-SEC-Apple" - }, - { - "description": "Description for index (second occurrence)", - "is_required": true, - "format": "string", - "value": "--description 10k SEC documents from 2023 for Apple", - "default": "--description 10k SEC documents from 2023 for Apple", - "type": "named", - "name": "--description 10k SEC documents from 2023 for Apple", - "value_hint": "10k SEC documents from 2023 for Apple" - } - ], - "environment_variables": [ - { - "description": "", - "name": "LLAMA_CLOUD_PROJECT_NAME" - }, - { - "description": "", - "name": "LLAMA_CLOUD_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b9f04c6e-0d22-4f17-af83-ccde8b03e4e8", - "name": "io.github.cyberchitta/llm-context.py", - "description": "Share code with LLMs via Model Context Protocol or clipboard. Rule-based customization enables easy switching between different tasks (like code review and documentation). Includes smart code outlining.", - "repository": { - "url": "https://github.com/cyberchitta/llm-context.py", - "source": "github", - "id": "789457378" + "server": { + "name": "io.github.cyberchitta/llm-context.py", + "description": "Share code with LLMs via Model Context Protocol or clipboard. Rule-based customization enables easy switching between different tasks (like code review and documentation). Includes smart code outlining.", + "status": "active", + "repository": { + "url": "https://github.com/cyberchitta/llm-context.py", + "source": "github", + "id": "789457378" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "llm-context", + "version": "0.3.2", + "package_arguments": [ + { + "description": "Named argument --from with value llm-context", + "is_required": true, + "format": "string", + "value": "--from llm-context", + "default": "--from llm-context", + "type": "named", + "name": "--from llm-context", + "value_hint": "llm-context" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b9f04c6e-0d22-4f17-af83-ccde8b03e4e8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "llm-context", - "version": "0.3.2", - "package_arguments": [ - { - "description": "Named argument --from with value llm-context", - "is_required": true, - "format": "string", - "value": "--from llm-context", - "default": "--from llm-context", - "type": "named", - "name": "--from llm-context", - "value_hint": "llm-context" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e7e51609-0d23-4d96-8063-d136bd993c93", - "name": "io.github.carterlasalle/mac_messages_mcp", - "description": "An MCP server that securely interfaces with your iMessage database via the Model Context Protocol (MCP), allowing LLMs to query and analyze iMessage conversations. It includes robust phone number validation, attachment processing, contact management, group chat handling, and full support for sending and receiving messages.", - "repository": { - "url": "https://github.com/carterlasalle/mac_messages_mcp", - "source": "github", - "id": "947677712" + "server": { + "name": "io.github.carterlasalle/mac_messages_mcp", + "description": "An MCP server that securely interfaces with your iMessage database via the Model Context Protocol (MCP), allowing LLMs to query and analyze iMessage conversations. It includes robust phone number validation, attachment processing, contact management, group chat handling, and full support for sending and receiving messages.", + "status": "active", + "repository": { + "url": "https://github.com/carterlasalle/mac_messages_mcp", + "source": "github", + "id": "947677712" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mac-messages-mcp", + "version": "0.6.6" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e7e51609-0d23-4d96-8063-d136bd993c93", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mac-messages-mcp", - "version": "0.6.6" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8197c60c-08c6-4d90-9d63-e64bf48ab6e4", - "name": "io.github.abel9851/mcp-server-mariadb", - "description": "An mcp server that provides read-only access to MariaDB.", - "repository": { - "url": "https://github.com/abel9851/mcp-server-mariadb", - "source": "github", - "id": "934896960" + "server": { + "name": "io.github.abel9851/mcp-server-mariadb", + "description": "An mcp server that provides read-only access to MariaDB.", + "status": "active", + "repository": { + "url": "https://github.com/abel9851/mcp-server-mariadb", + "source": "github", + "id": "934896960" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-mariadb", + "version": "0.1.2", + "package_arguments": [ + { + "description": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", + "is_required": true, + "format": "string", + "value": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", + "default": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", + "type": "named", + "name": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", + "value_hint": "/YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb" + }, + { + "description": "server.py", + "is_required": true, + "format": "string", + "value": "server.py", + "default": "server.py", + "type": "positional", + "value_hint": "server.py" + } + ], + "environment_variables": [ + { + "description": "127.0.0.1", + "name": "MARIADB_HOST" + }, + { + "description": "USER", + "name": "MARIADB_USER" + }, + { + "description": "PASSWORD", + "name": "MARIADB_PASSWORD" + }, + { + "description": "DATABASE", + "name": "MARIADB_DATABASE" + }, + { + "description": "3306", + "name": "MARIADB_PORT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8197c60c-08c6-4d90-9d63-e64bf48ab6e4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-mariadb", - "version": "0.1.2", - "package_arguments": [ - { - "description": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", - "is_required": true, - "format": "string", - "value": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", - "default": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", - "type": "named", - "name": "--directory /YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb", - "value_hint": "/YOUR/SOURCE/PATH/mcp-server-mariadb/src/mcp_server_mariadb" - }, - { - "description": "server.py", - "is_required": true, - "format": "string", - "value": "server.py", - "default": "server.py", - "type": "positional", - "value_hint": "server.py" - } - ], - "environment_variables": [ - { - "description": "127.0.0.1", - "name": "MARIADB_HOST" - }, - { - "description": "USER", - "name": "MARIADB_USER" - }, - { - "description": "PASSWORD", - "name": "MARIADB_PASSWORD" - }, - { - "description": "DATABASE", - "name": "MARIADB_DATABASE" - }, - { - "description": "3306", - "name": "MARIADB_PORT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e4578522-e426-44f4-818c-68784f2a3038", - "name": "io.github.liuyoshio/mcp-compass", - "description": "MCP Discovery & Recommendation Service - Find the right MCP server for your needs", - "repository": { - "url": "https://github.com/liuyoshio/mcp-compass", - "source": "github", - "id": "908868990" + "server": { + "name": "io.github.liuyoshio/mcp-compass", + "description": "MCP Discovery \u0026 Recommendation Service - Find the right MCP server for your needs", + "status": "active", + "repository": { + "url": "https://github.com/liuyoshio/mcp-compass", + "source": "github", + "id": "908868990" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@liuyoshio/mcp-compass", + "version": "1.0.7" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e4578522-e426-44f4-818c-68784f2a3038", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@liuyoshio/mcp-compass", - "version": "1.0.7" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "84bda3c9-65ce-45f2-898f-6e370718b43d", - "name": "io.github.tesla0225/mcp-create", - "description": "", - "repository": { - "url": "https://github.com/tesla0225/mcp-create", - "source": "github", - "id": "945265954" + "server": { + "name": "io.github.tesla0225/mcp-create", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/tesla0225/mcp-create", + "source": "github", + "id": "945265954" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-create", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "84bda3c9-65ce-45f2-898f-6e370718b43d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:45Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-create", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9f5885d3-fe18-483d-b7b2-f507b2f37ccb", - "name": "io.github.anaisbetts/mcp-installer", - "description": "An MCP server that installs other MCP servers for you", - "repository": { - "url": "https://github.com/anaisbetts/mcp-installer", - "source": "github", - "id": "894640711" + "server": { + "name": "io.github.anaisbetts/mcp-installer", + "description": "An MCP server that installs other MCP servers for you", + "status": "active", + "repository": { + "url": "https://github.com/anaisbetts/mcp-installer", + "source": "github", + "id": "894640711" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@anaisbetts/mcp-installer", + "version": "0.5.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9f5885d3-fe18-483d-b7b2-f507b2f37ccb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@anaisbetts/mcp-installer", - "version": "0.5.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a59a162f-d811-4344-bf53-606a74bb50c6", - "name": "io.github.strowk/mcp-k8s-go", - "description": "MCP server connecting to Kubernetes", - "repository": { - "url": "https://github.com/strowk/mcp-k8s-go", - "source": "github", - "id": "896738164" + "server": { + "name": "io.github.strowk/mcp-k8s-go", + "description": "MCP server connecting to Kubernetes", + "status": "active", + "repository": { + "url": "https://github.com/strowk/mcp-k8s-go", + "source": "github", + "id": "896738164" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "strowk/mcp-k8s-go", + "version": "", + "package_arguments": [ + { + "description": "Mounts ~/.kube/config into container", + "is_required": true, + "format": "string", + "value": "-v ~/.kube/config:/home/nonroot/.kube/config", + "default": "-v ~/.kube/config:/home/nonroot/.kube/config", + "type": "named", + "name": "-v ~/.kube/config:/home/nonroot/.kube/config", + "value_hint": "~/.kube/config:/home/nonroot/.kube/config" + }, + { + "description": "Removes container after exit", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Docker image to run", + "is_required": true, + "format": "string", + "value": "mcpk8s/server:latest", + "default": "mcpk8s/server:latest", + "type": "positional", + "value_hint": "mcpk8s/server:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a59a162f-d811-4344-bf53-606a74bb50c6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "strowk/mcp-k8s-go", - "version": "", - "package_arguments": [ - { - "description": "Mounts ~/.kube/config into container", - "is_required": true, - "format": "string", - "value": "-v ~/.kube/config:/home/nonroot/.kube/config", - "default": "-v ~/.kube/config:/home/nonroot/.kube/config", - "type": "named", - "name": "-v ~/.kube/config:/home/nonroot/.kube/config", - "value_hint": "~/.kube/config:/home/nonroot/.kube/config" - }, - { - "description": "Removes container after exit", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Docker image to run", - "is_required": true, - "format": "string", - "value": "mcpk8s/server:latest", - "default": "mcpk8s/server:latest", - "type": "positional", - "value_hint": "mcpk8s/server:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "93be69a3-6dbf-4e3c-aa47-a4d5a15f0588", - "name": "io.github.nkapila6/mcp-local-rag", - "description": "\"primitive\" RAG-like web search model context protocol (MCP) server that runs locally. ✨ no APIs ✨", - "repository": { - "url": "https://github.com/nkapila6/mcp-local-rag", - "source": "github", - "id": "947802631" + "server": { + "name": "io.github.nkapila6/mcp-local-rag", + "description": "\"primitive\" RAG-like web search model context protocol (MCP) server that runs locally. ✨ no APIs ✨", + "status": "active", + "repository": { + "url": "https://github.com/nkapila6/mcp-local-rag", + "source": "github", + "id": "947802631" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-local-rag", + "version": "0.1.0", + "package_arguments": [ + { + "description": "A named argument for directory.", + "is_required": true, + "format": "string", + "value": "--directory \u003cpath where this folder is located\u003e/mcp-local-rag/", + "default": "--directory \u003cpath where this folder is located\u003e/mcp-local-rag/", + "type": "named", + "name": "--directory \u003cpath where this folder is located\u003e/mcp-local-rag/", + "value_hint": "\u003cpath where this folder is located\u003e/mcp-local-rag/" + }, + { + "description": "A positional argument for the Python script.", + "is_required": true, + "format": "string", + "value": "src/mcp_local_rag/main.py", + "default": "src/mcp_local_rag/main.py", + "type": "positional", + "value_hint": "src/mcp_local_rag/main.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "93be69a3-6dbf-4e3c-aa47-a4d5a15f0588", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-local-rag", - "version": "0.1.0", - "package_arguments": [ - { - "description": "A named argument for directory.", - "is_required": true, - "format": "string", - "value": "--directory /mcp-local-rag/", - "default": "--directory /mcp-local-rag/", - "type": "named", - "name": "--directory /mcp-local-rag/", - "value_hint": "/mcp-local-rag/" - }, - { - "description": "A positional argument for the Python script.", - "is_required": true, - "format": "string", - "value": "src/mcp_local_rag/main.py", - "default": "src/mcp_local_rag/main.py", - "type": "positional", - "value_hint": "src/mcp_local_rag/main.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5b01e888-7245-46a6-8747-d6f9ca374c43", - "name": "io.github.sparfenyuk/mcp-proxy", - "description": "A bridge between Streamable HTTP and stdio MCP transports", - "repository": { - "url": "https://github.com/sparfenyuk/mcp-proxy", - "source": "github", - "id": "908734690" + "server": { + "name": "io.github.sparfenyuk/mcp-proxy", + "description": "A bridge between Streamable HTTP and stdio MCP transports", + "status": "active", + "repository": { + "url": "https://github.com/sparfenyuk/mcp-proxy", + "source": "github", + "id": "908734690" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-proxy", + "version": "0.6.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5b01e888-7245-46a6-8747-d6f9ca374c43", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:56Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-proxy", - "version": "0.6.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9ad8f293-3ea1-4f0d-8c9f-a24945851bb6", - "name": "io.github.tbxark/mcp-proxy", - "description": "An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.", - "repository": { - "url": "https://github.com/TBXark/mcp-proxy", - "source": "github", - "id": "955698123" + "server": { + "name": "io.github.tbxark/mcp-proxy", + "description": "An MCP proxy server that aggregates and serves multiple MCP resource servers through a single HTTP server.", + "status": "active", + "repository": { + "url": "https://github.com/TBXark/mcp-proxy", + "source": "github", + "id": "955698123" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "TBXark/mcp-proxy", + "version": "", + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "GITHUB_PERSONAL_ACCESS_TOKEN" + } + ] + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "https://mcp.amap.com/sse?key=\u003cYOUR_TOKEN\u003e" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9ad8f293-3ea1-4f0d-8c9f-a24945851bb6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:09:58Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "TBXark/mcp-proxy", - "version": "", - "environment_variables": [ - { - "description": "", - "name": "GITHUB_PERSONAL_ACCESS_TOKEN" - } - ] - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "https://mcp.amap.com/sse?key=" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3ec2249d-2ed3-45d2-8b52-185abfa918ac", - "name": "io.github.lciesielski/mcp-salesforce-example", - "description": "", - "repository": { - "url": "https://github.com/lciesielski/mcp-salesforce-example", - "source": "github", - "id": "957204688" + "server": { + "name": "io.github.lciesielski/mcp-salesforce-example", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/lciesielski/mcp-salesforce-example", + "source": "github", + "id": "957204688" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-salesforce", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3ec2249d-2ed3-45d2-8b52-185abfa918ac", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:00Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-salesforce", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4f189cdd-04a5-47f6-b87b-7d38cc82e625", - "name": "io.github.mem0ai/mem0-mcp", - "description": "", - "repository": { - "url": "https://github.com/mem0ai/mem0-mcp", - "source": "github", - "id": "934683195" + "server": { + "name": "io.github.mem0ai/mem0-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/mem0ai/mem0-mcp", + "source": "github", + "id": "934683195" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mem0-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4f189cdd-04a5-47f6-b87b-7d38cc82e625", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mem0-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "819f0338-1101-475c-9915-65a8727a8dc5", - "name": "io.github.unibaseio/membase-mcp", - "description": "A lightweight, decentralized memory server for AI agents to store and retrieve conversations via the Unibase memory layer.", - "repository": { - "url": "https://github.com/unibaseio/membase-mcp", - "source": "github", - "id": "957747274" + "server": { + "name": "io.github.unibaseio/membase-mcp", + "description": "A lightweight, decentralized memory server for AI agents to store and retrieve conversations via the Unibase memory layer.", + "status": "active", + "repository": { + "url": "https://github.com/unibaseio/membase-mcp", + "source": "github", + "id": "957747274" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "membase-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Specifies the directory to use", + "is_required": true, + "format": "string", + "value": "--directory path/to/membase-mcp", + "default": "--directory path/to/membase-mcp", + "type": "named", + "name": "--directory path/to/membase-mcp", + "value_hint": "path/to/membase-mcp" + }, + { + "description": "Path to the membase MCP server script", + "is_required": true, + "format": "string", + "value": "src/membase_mcp/server.py", + "default": "src/membase_mcp/server.py", + "type": "positional", + "value_hint": "src/membase_mcp/server.py" + } + ], + "environment_variables": [ + { + "description": "your account, 0x...", + "name": "MEMBASE_ACCOUNT" + }, + { + "description": "your conversation id, should be unique", + "name": "MEMBASE_CONVERSATION_ID" + }, + { + "description": "your sub account, any string", + "name": "MEMBASE_ID" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "819f0338-1101-475c-9915-65a8727a8dc5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "membase-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Specifies the directory to use", - "is_required": true, - "format": "string", - "value": "--directory path/to/membase-mcp", - "default": "--directory path/to/membase-mcp", - "type": "named", - "name": "--directory path/to/membase-mcp", - "value_hint": "path/to/membase-mcp" - }, - { - "description": "Path to the membase MCP server script", - "is_required": true, - "format": "string", - "value": "src/membase_mcp/server.py", - "default": "src/membase_mcp/server.py", - "type": "positional", - "value_hint": "src/membase_mcp/server.py" - } - ], - "environment_variables": [ - { - "description": "your account, 0x...", - "name": "MEMBASE_ACCOUNT" - }, - { - "description": "your conversation id, should be unique", - "name": "MEMBASE_CONVERSATION_ID" - }, - { - "description": "your sub account, any string", - "name": "MEMBASE_ID" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b3dbb84c-3e48-4cbc-a581-bb9ebe133cb4", - "name": "io.github.ariadng/metatrader-mcp-server", - "description": "Model Context Protocol (MCP) to enable AI LLMs to trade using MetaTrader platform", - "repository": { - "url": "https://github.com/ariadng/metatrader-mcp-server", - "source": "github", - "id": "963828488" + "server": { + "name": "io.github.ariadng/metatrader-mcp-server", + "description": "Model Context Protocol (MCP) to enable AI LLMs to trade using MetaTrader platform", + "status": "active", + "repository": { + "url": "https://github.com/ariadng/metatrader-mcp-server", + "source": "github", + "id": "963828488" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "metatrader-mcp-server", + "version": "0.2.8", + "package_arguments": [ + { + "description": "\u003cYOUR_MT5_LOGIN\u003e", + "is_required": true, + "format": "string", + "value": "--login \u003cYOUR_MT5_LOGIN\u003e", + "default": "--login \u003cYOUR_MT5_LOGIN\u003e", + "type": "named", + "name": "--login \u003cYOUR_MT5_LOGIN\u003e", + "value_hint": "\u003cYOUR_MT5_LOGIN\u003e" + }, + { + "description": "\u003cYOUR_MT5_PASSWORD\u003e", + "is_required": true, + "format": "string", + "value": "--password \u003cYOUR_MT5_PASSWORD\u003e", + "default": "--password \u003cYOUR_MT5_PASSWORD\u003e", + "type": "named", + "name": "--password \u003cYOUR_MT5_PASSWORD\u003e", + "value_hint": "\u003cYOUR_MT5_PASSWORD\u003e" + }, + { + "description": "\u003cYOUR_MT5_SERVER\u003e", + "is_required": true, + "format": "string", + "value": "--server \u003cYOUR_MT5_SERVER\u003e", + "default": "--server \u003cYOUR_MT5_SERVER\u003e", + "type": "named", + "name": "--server \u003cYOUR_MT5_SERVER\u003e", + "value_hint": "\u003cYOUR_MT5_SERVER\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b3dbb84c-3e48-4cbc-a581-bb9ebe133cb4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "metatrader-mcp-server", - "version": "0.2.8", - "package_arguments": [ - { - "description": "", - "is_required": true, - "format": "string", - "value": "--login ", - "default": "--login ", - "type": "named", - "name": "--login ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--password ", - "default": "--password ", - "type": "named", - "name": "--password ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--server ", - "default": "--server ", - "type": "named", - "name": "--server ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "091ef217-8e6d-4e06-8cb9-bc5ffe5467b1", - "name": "io.github.metricool/mcp-metricool", - "description": "This is a Multi-Agent Collaboration Protocol (MCP) server for interacting with the Metricool API. It allows AI agents to access and analyze social media metrics and campaign data from your Metricool account.", - "repository": { - "url": "https://github.com/metricool/mcp-metricool", - "source": "github", - "id": "967888435" + "server": { + "name": "io.github.metricool/mcp-metricool", + "description": "This is a Multi-Agent Collaboration Protocol (MCP) server for interacting with the Metricool API. It allows AI agents to access and analyze social media metrics and campaign data from your Metricool account.", + "status": "active", + "repository": { + "url": "https://github.com/metricool/mcp-metricool", + "source": "github", + "id": "967888435" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-metricool", + "version": "1.1.0", + "environment_variables": [ + { + "description": "\u003cMETRICOOL_USER_TOKEN\u003e", + "name": "METRICOOL_USER_TOKEN" + }, + { + "description": "\u003cMETRICOOL_USER_ID\u003e", + "name": "METRICOOL_USER_ID" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "091ef217-8e6d-4e06-8cb9-bc5ffe5467b1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:11Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-metricool", - "version": "1.1.0", - "environment_variables": [ - { - "description": "", - "name": "METRICOOL_USER_TOKEN" - }, - { - "description": "", - "name": "METRICOOL_USER_ID" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "53290776-f4aa-488d-a10f-135a17645b02", - "name": "io.github.jexinsam/mssql_mcp_server", - "description": "A Model Context Protocol (MCP) server facilitating secure interactions with MSSQL databases.", - "repository": { - "url": "https://github.com/JexinSam/mssql_mcp_server", - "source": "github", - "id": "924542723" + "server": { + "name": "io.github.jexinsam/mssql_mcp_server", + "description": "A Model Context Protocol (MCP) server facilitating secure interactions with MSSQL databases.", + "status": "active", + "repository": { + "url": "https://github.com/JexinSam/mssql_mcp_server", + "source": "github", + "id": "924542723" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mssql_mcp_server", + "version": "0.1.2", + "package_arguments": [ + { + "description": "Directory path for the MCP server", + "is_required": true, + "format": "string", + "value": "--directory path/to/mssql_mcp_server", + "default": "--directory path/to/mssql_mcp_server", + "type": "named", + "name": "--directory path/to/mssql_mcp_server", + "value_hint": "path/to/mssql_mcp_server" + }, + { + "description": "MCP server module name to run", + "is_required": true, + "format": "string", + "value": "mssql_mcp_server", + "default": "mssql_mcp_server", + "type": "positional", + "value_hint": "mssql_mcp_server" + } + ], + "environment_variables": [ + { + "description": "mssql_driver", + "name": "MSSQL_DRIVER" + }, + { + "description": "localhost", + "name": "MSSQL_HOST" + }, + { + "description": "your_username", + "name": "MSSQL_USER" + }, + { + "description": "your_password", + "name": "MSSQL_PASSWORD" + }, + { + "description": "your_database", + "name": "MSSQL_DATABASE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "53290776-f4aa-488d-a10f-135a17645b02", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:15Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mssql_mcp_server", - "version": "0.1.2", - "package_arguments": [ - { - "description": "Directory path for the MCP server", - "is_required": true, - "format": "string", - "value": "--directory path/to/mssql_mcp_server", - "default": "--directory path/to/mssql_mcp_server", - "type": "named", - "name": "--directory path/to/mssql_mcp_server", - "value_hint": "path/to/mssql_mcp_server" - }, - { - "description": "MCP server module name to run", - "is_required": true, - "format": "string", - "value": "mssql_mcp_server", - "default": "mssql_mcp_server", - "type": "positional", - "value_hint": "mssql_mcp_server" - } - ], - "environment_variables": [ - { - "description": "mssql_driver", - "name": "MSSQL_DRIVER" - }, - { - "description": "localhost", - "name": "MSSQL_HOST" - }, - { - "description": "your_username", - "name": "MSSQL_USER" - }, - { - "description": "your_password", - "name": "MSSQL_PASSWORD" - }, - { - "description": "your_database", - "name": "MSSQL_DATABASE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4365781f-28ff-4865-aa7d-909678f6dbb4", - "name": "io.github.zcaceres/mcp-markdownify-server", - "description": "A Model Context Protocol server for converting almost anything to Markdown", - "repository": { - "url": "https://github.com/zcaceres/markdownify-mcp", - "source": "github", - "id": "905450127" + "server": { + "name": "io.github.zcaceres/mcp-markdownify-server", + "description": "A Model Context Protocol server for converting almost anything to Markdown", + "status": "active", + "repository": { + "url": "https://github.com/zcaceres/markdownify-mcp", + "source": "github", + "id": "905450127" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "ocr", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4365781f-28ff-4865-aa7d-909678f6dbb4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:21Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "ocr", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "71120aef-743c-47ee-bb7d-3b215c7f22a7", - "name": "io.github.inditextech/mcp-teams-server", - "description": "An MCP (Model Context Protocol) server implementation for Microsoft Teams integration, providing capabilities to read messages, create messages, reply to messages, mention members.", - "repository": { - "url": "https://github.com/InditexTech/mcp-teams-server", - "source": "github", - "id": "950628723" + "server": { + "name": "io.github.inditextech/mcp-teams-server", + "description": "An MCP (Model Context Protocol) server implementation for Microsoft Teams integration, providing capabilities to read messages, create messages, reply to messages, mention members.", + "status": "active", + "repository": { + "url": "https://github.com/InditexTech/mcp-teams-server", + "source": "github", + "id": "950628723" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-teams-server", + "version": "1.0.4", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "71120aef-743c-47ee-bb7d-3b215c7f22a7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:23Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-teams-server", - "version": "1.0.4", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5ebda83c-f2b3-4b14-ba72-13d940fa940a", - "name": "io.github.jeff-nasseri/mikrotik-mcp", - "description": "MCP server for Mikrotik", - "repository": { - "url": "https://github.com/jeff-nasseri/mikrotik-mcp", - "source": "github", - "id": "982172059" + "server": { + "name": "io.github.jeff-nasseri/mikrotik-mcp", + "description": "MCP server for Mikrotik", + "status": "active", + "repository": { + "url": "https://github.com/jeff-nasseri/mikrotik-mcp", + "source": "github", + "id": "982172059" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-mikrotik", + "version": "0.1.6", + "package_arguments": [ + { + "description": "Host to connect to", + "is_required": true, + "format": "string", + "value": "--host \u003cHOST\u003e", + "default": "--host \u003cHOST\u003e", + "type": "named", + "name": "--host \u003cHOST\u003e", + "value_hint": "\u003cHOST\u003e" + }, + { + "description": "Username for authentication", + "is_required": true, + "format": "string", + "value": "--username \u003cUSERNAME\u003e", + "default": "--username \u003cUSERNAME\u003e", + "type": "named", + "name": "--username \u003cUSERNAME\u003e", + "value_hint": "\u003cUSERNAME\u003e" + }, + { + "description": "Password for authentication", + "is_required": true, + "format": "string", + "value": "--password \u003cPASSWORD\u003e", + "default": "--password \u003cPASSWORD\u003e", + "type": "named", + "name": "--password \u003cPASSWORD\u003e", + "value_hint": "\u003cPASSWORD\u003e" + }, + { + "description": "Port to connect to", + "is_required": true, + "format": "string", + "value": "--port 22", + "default": "--port 22", + "type": "named", + "name": "--port 22", + "value_hint": "22" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5ebda83c-f2b3-4b14-ba72-13d940fa940a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-mikrotik", - "version": "0.1.6", - "package_arguments": [ - { - "description": "Host to connect to", - "is_required": true, - "format": "string", - "value": "--host ", - "default": "--host ", - "type": "named", - "name": "--host ", - "value_hint": "" - }, - { - "description": "Username for authentication", - "is_required": true, - "format": "string", - "value": "--username ", - "default": "--username ", - "type": "named", - "name": "--username ", - "value_hint": "" - }, - { - "description": "Password for authentication", - "is_required": true, - "format": "string", - "value": "--password ", - "default": "--password ", - "type": "named", - "name": "--password ", - "value_hint": "" - }, - { - "description": "Port to connect to", - "is_required": true, - "format": "string", - "value": "--port 22", - "default": "--port 22", - "type": "named", - "name": "--port 22", - "value_hint": "22" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7f9416dd-34cf-4f0d-bcfb-c87cbee3abf6", - "name": "io.github.yuchenssr/mindmap-mcp-server", - "description": "mindmap, mcp server, artifact", - "repository": { - "url": "https://github.com/YuChenSSR/mindmap-mcp-server", - "source": "github", - "id": "951261036" + "server": { + "name": "io.github.yuchenssr/mindmap-mcp-server", + "description": "mindmap, mcp server, artifact", + "status": "active", + "repository": { + "url": "https://github.com/YuChenSSR/mindmap-mcp-server", + "source": "github", + "id": "951261036" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mindmap-mcp-server", + "version": "0.1.1", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "-v /path/to/output/folder:/output", + "is_required": true, + "format": "string", + "value": "-v /path/to/output/folder:/output", + "default": "-v /path/to/output/folder:/output", + "type": "named", + "name": "-v /path/to/output/folder:/output", + "value_hint": "/path/to/output/folder:/output" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7f9416dd-34cf-4f0d-bcfb-c87cbee3abf6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:31Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mindmap-mcp-server", - "version": "0.1.1", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "-v /path/to/output/folder:/output", - "is_required": true, - "format": "string", - "value": "-v /path/to/output/folder:/output", - "default": "-v /path/to/output/folder:/output", - "type": "named", - "name": "-v /path/to/output/folder:/output", - "value_hint": "/path/to/output/folder:/output" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6fefc93f-3f03-47b0-9f42-21d5a5841490", - "name": "io.github.mobile-next/mobile-mcp", - "description": "Model Context Protocol Server for Mobile Automation and Scraping (iOS, Android, Emulators, Simulators and Physical Devices)", - "repository": { - "url": "https://github.com/mobile-next/mobile-mcp", - "source": "github", - "id": "956657893" + "server": { + "name": "io.github.mobile-next/mobile-mcp", + "description": "Model Context Protocol Server for Mobile Automation and Scraping (iOS, Android, Emulators, Simulators and Physical Devices)", + "status": "active", + "repository": { + "url": "https://github.com/mobile-next/mobile-mcp", + "source": "github", + "id": "956657893" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@mobilenext/mobile-mcp", + "version": "0.0.17" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6fefc93f-3f03-47b0-9f42-21d5a5841490", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@mobilenext/mobile-mcp", - "version": "0.0.17" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b61a2d2e-db6c-47b4-9437-7edc8525d063", - "name": "io.github.kiliczsh/mcp-mongo-server", - "description": "A Model Context Protocol Server for MongoDB", - "repository": { - "url": "https://github.com/kiliczsh/mcp-mongo-server", - "source": "github", - "id": "898654014" + "server": { + "name": "io.github.kiliczsh/mcp-mongo-server", + "description": "A Model Context Protocol Server for MongoDB", + "status": "active", + "repository": { + "url": "https://github.com/kiliczsh/mcp-mongo-server", + "source": "github", + "id": "898654014" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-mongo-server", + "version": "1.3.0", + "package_arguments": [ + { + "description": "MongoDB connection string", + "is_required": true, + "format": "string", + "value": "mongodb://muhammed:kilic@localhost:27017/database", + "default": "mongodb://muhammed:kilic@localhost:27017/database", + "type": "positional", + "value_hint": "mongodb://muhammed:kilic@localhost:27017/database" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b61a2d2e-db6c-47b4-9437-7edc8525d063", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-mongo-server", - "version": "1.3.0", - "package_arguments": [ - { - "description": "MongoDB connection string", - "is_required": true, - "format": "string", - "value": "mongodb://muhammed:kilic@localhost:27017/database", - "default": "mongodb://muhammed:kilic@localhost:27017/database", - "type": "positional", - "value_hint": "mongodb://muhammed:kilic@localhost:27017/database" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b4970e5b-1259-4ff9-a40a-c570f27d0930", - "name": "io.github.furey/mongodb-lens", - "description": "🍃🔎 MongoDB Lens: Full Featured MCP Server for MongoDB Databases", - "repository": { - "url": "https://github.com/furey/mongodb-lens", - "source": "github", - "id": "945309383" + "server": { + "name": "io.github.furey/mongodb-lens", + "description": "🍃🔎 MongoDB Lens: Full Featured MCP Server for MongoDB Databases", + "status": "active", + "repository": { + "url": "https://github.com/furey/mongodb-lens", + "source": "github", + "id": "945309383" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mongodb-lens", + "version": "9.1.4" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b4970e5b-1259-4ff9-a40a-c570f27d0930", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mongodb-lens", - "version": "9.1.4" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ac665c5c-e1de-4686-9012-5ac101186a31", - "name": "io.github.sakce/mcp-server-monday", - "description": "MCP Server to interact with Monday.com boards and items", - "repository": { - "url": "https://github.com/sakce/mcp-server-monday", - "source": "github", - "id": "936547010" + "server": { + "name": "io.github.sakce/mcp-server-monday", + "description": "MCP Server to interact with Monday.com boards and items", + "status": "active", + "repository": { + "url": "https://github.com/sakce/mcp-server-monday", + "source": "github", + "id": "936547010" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-monday", + "version": "0.2.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ac665c5c-e1de-4686-9012-5ac101186a31", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-monday", - "version": "0.2.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "55ba52cd-8e0a-4bcb-9a96-1658f2d713e0", - "name": "io.github.yanmxa/multicluster-mcp-server", - "description": "The gateway for GenAI systems to interact with multiple Kubernetes clusters through the MCP", - "repository": { - "url": "https://github.com/yanmxa/multicluster-mcp-server", - "source": "github", - "id": "940456029" + "server": { + "name": "io.github.yanmxa/multicluster-mcp-server", + "description": "The gateway for GenAI systems to interact with multiple Kubernetes clusters through the MCP", + "status": "active", + "repository": { + "url": "https://github.com/yanmxa/multicluster-mcp-server", + "source": "github", + "id": "940456029" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "multicluster-mcp-server", + "version": "0.1.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "55ba52cd-8e0a-4bcb-9a96-1658f2d713e0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "multicluster-mcp-server", - "version": "0.1.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "abcce212-b3e1-4741-a8b3-86c95c276fb1", - "name": "io.github.yuchenssr/multi-ai-advisor-mcp", - "description": "council of models for decision", - "repository": { - "url": "https://github.com/YuChenSSR/multi-ai-advisor-mcp", - "source": "github", - "id": "954021177" + "server": { + "name": "io.github.yuchenssr/multi-ai-advisor-mcp", + "description": "council of models for decision", + "status": "active", + "repository": { + "url": "https://github.com/YuChenSSR/multi-ai-advisor-mcp", + "source": "github", + "id": "954021177" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "multi-model-advisor", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "abcce212-b3e1-4741-a8b3-86c95c276fb1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "multi-model-advisor", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "22fbb4c3-d5fd-4191-af7a-c78686cc6123", - "name": "io.github.benborla/mcp-server-mysql", - "description": "A Model Context Protocol server that provides read-only access to MySQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.", - "repository": { - "url": "https://github.com/benborla/mcp-server-mysql", - "source": "github", - "id": "900806525" + "server": { + "name": "io.github.benborla/mcp-server-mysql", + "description": "A Model Context Protocol server that provides read-only access to MySQL databases. This server enables LLMs to inspect database schemas and execute read-only queries.", + "status": "active", + "repository": { + "url": "https://github.com/benborla/mcp-server-mysql", + "source": "github", + "id": "900806525" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@benborla29/mcp-server-mysql", + "version": "2.0.0", + "package_arguments": [ + { + "description": "Path to the MCP server MySQL entry point.", + "is_required": true, + "format": "string", + "value": "/full/path/to/mcp-server-mysql/dist/index.js", + "default": "/full/path/to/mcp-server-mysql/dist/index.js", + "type": "positional", + "value_hint": "/full/path/to/mcp-server-mysql/dist/index.js" + } + ], + "environment_variables": [ + { + "description": "127.0.0.1", + "name": "MYSQL_HOST" + }, + { + "description": "3306", + "name": "MYSQL_PORT" + }, + { + "description": "root", + "name": "MYSQL_USER" + }, + { + "description": "your_password", + "name": "MYSQL_PASS" + }, + { + "description": "your_database", + "name": "MYSQL_DB" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "22fbb4c3-d5fd-4191-af7a-c78686cc6123", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@benborla29/mcp-server-mysql", - "version": "2.0.0", - "package_arguments": [ - { - "description": "Path to the MCP server MySQL entry point.", - "is_required": true, - "format": "string", - "value": "/full/path/to/mcp-server-mysql/dist/index.js", - "default": "/full/path/to/mcp-server-mysql/dist/index.js", - "type": "positional", - "value_hint": "/full/path/to/mcp-server-mysql/dist/index.js" - } - ], - "environment_variables": [ - { - "description": "127.0.0.1", - "name": "MYSQL_HOST" - }, - { - "description": "3306", - "name": "MYSQL_PORT" - }, - { - "description": "root", - "name": "MYSQL_USER" - }, - { - "description": "your_password", - "name": "MYSQL_PASS" - }, - { - "description": "your_database", - "name": "MYSQL_DB" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "56577627-939e-4f31-8c96-654586538eb5", - "name": "io.github.designcomputer/mysql_mcp_server", - "description": "A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases", - "repository": { - "url": "https://github.com/designcomputer/mysql_mcp_server", - "source": "github", - "id": "898128804" + "server": { + "name": "io.github.designcomputer/mysql_mcp_server", + "description": "A Model Context Protocol (MCP) server that enables secure interaction with MySQL databases", + "status": "active", + "repository": { + "url": "https://github.com/designcomputer/mysql_mcp_server", + "source": "github", + "id": "898128804" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mysql_mcp_server", + "version": "0.2.2", + "package_arguments": [ + { + "description": "Specify the origin of the package", + "is_required": true, + "format": "string", + "value": "--from mysql-mcp-server", + "default": "--from mysql-mcp-server", + "type": "named", + "name": "--from mysql-mcp-server", + "value_hint": "mysql-mcp-server" + }, + { + "description": "Name of the MCP server executable", + "is_required": true, + "format": "string", + "value": "mysql_mcp_server", + "default": "mysql_mcp_server", + "type": "positional", + "value_hint": "mysql_mcp_server" + } + ], + "environment_variables": [ + { + "description": "localhost", + "name": "MYSQL_HOST" + }, + { + "description": "3306", + "name": "MYSQL_PORT" + }, + { + "description": "your_username", + "name": "MYSQL_USER" + }, + { + "description": "your_password", + "name": "MYSQL_PASSWORD" + }, + { + "description": "your_database", + "name": "MYSQL_DATABASE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "56577627-939e-4f31-8c96-654586538eb5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mysql_mcp_server", - "version": "0.2.2", - "package_arguments": [ - { - "description": "Specify the origin of the package", - "is_required": true, - "format": "string", - "value": "--from mysql-mcp-server", - "default": "--from mysql-mcp-server", - "type": "named", - "name": "--from mysql-mcp-server", - "value_hint": "mysql-mcp-server" - }, - { - "description": "Name of the MCP server executable", - "is_required": true, - "format": "string", - "value": "mysql_mcp_server", - "default": "mysql_mcp_server", - "type": "positional", - "value_hint": "mysql_mcp_server" - } - ], - "environment_variables": [ - { - "description": "localhost", - "name": "MYSQL_HOST" - }, - { - "description": "3306", - "name": "MYSQL_PORT" - }, - { - "description": "your_username", - "name": "MYSQL_USER" - }, - { - "description": "your_password", - "name": "MYSQL_PASSWORD" - }, - { - "description": "your_database", - "name": "MYSQL_DATABASE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "309e2634-8163-47c9-951e-1cfec85e701b", - "name": "io.github.leonardsellem/n8n-mcp-server", - "description": "MCP server that provides tools and resources for interacting with n8n API", - "repository": { - "url": "https://github.com/leonardsellem/n8n-mcp-server", - "source": "github", - "id": "947387660" + "server": { + "name": "io.github.leonardsellem/n8n-mcp-server", + "description": "MCP server that provides tools and resources for interacting with n8n API", + "status": "active", + "repository": { + "url": "https://github.com/leonardsellem/n8n-mcp-server", + "source": "github", + "id": "947387660" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "n8n-mcp-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Positional argument providing absolute path to the built index.js file", + "is_required": true, + "format": "string", + "value": "/path/to/your/cloned/n8n-mcp-server/build/index.js", + "default": "/path/to/your/cloned/n8n-mcp-server/build/index.js", + "type": "positional", + "value_hint": "/path/to/your/cloned/n8n-mcp-server/build/index.js" + } + ], + "environment_variables": [ + { + "description": "http://your-n8n-instance:5678/api/v1", + "name": "N8N_API_URL" + }, + { + "description": "YOUR_N8N_API_KEY", + "name": "N8N_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "309e2634-8163-47c9-951e-1cfec85e701b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:10:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "n8n-mcp-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Positional argument providing absolute path to the built index.js file", - "is_required": true, - "format": "string", - "value": "/path/to/your/cloned/n8n-mcp-server/build/index.js", - "default": "/path/to/your/cloned/n8n-mcp-server/build/index.js", - "type": "positional", - "value_hint": "/path/to/your/cloned/n8n-mcp-server/build/index.js" - } - ], - "environment_variables": [ - { - "description": "http://your-n8n-instance:5678/api/v1", - "name": "N8N_API_URL" - }, - { - "description": "YOUR_N8N_API_KEY", - "name": "N8N_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6a44b030-46c7-4390-adf2-2a75652dee27", - "name": "io.github.programcomputer/nasa-mcp-server", - "description": "A Model Context Protocol (MCP) server for NASA APIs, providing a standardized interface for AI models to interact with NASA's vast array of data sources.", - "repository": { - "url": "https://github.com/ProgramComputer/NASA-MCP-server", - "source": "github", - "id": "943596518" + "server": { + "name": "io.github.programcomputer/nasa-mcp-server", + "description": "A Model Context Protocol (MCP) server for NASA APIs, providing a standardized interface for AI models to interact with NASA's vast array of data sources.", + "status": "active", + "repository": { + "url": "https://github.com/ProgramComputer/NASA-MCP-server", + "source": "github", + "id": "943596518" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@programcomputer/nasa-mcp-server", + "version": "1.0.12", + "package_arguments": [ + { + "description": "Comma-separated list", + "is_required": true, + "format": "string", + "value": "T2M,PRECTOTCORR,WS10M", + "default": "T2M,PRECTOTCORR,WS10M", + "type": "named", + "name": "T2M,PRECTOTCORR,WS10M", + "value_hint": "T2M,PRECTOTCORR,WS10M" + }, + { + "description": "Community identifier", + "is_required": true, + "format": "string", + "value": "re", + "default": "re", + "type": "named", + "name": "re", + "value_hint": "re" + }, + { + "description": "Latitude", + "is_required": true, + "format": "string", + "value": "40.7128", + "default": "40.7128", + "type": "named", + "name": "40.7128", + "value_hint": "40.7128" + }, + { + "description": "Longitude", + "is_required": true, + "format": "string", + "value": "-74.0060", + "default": "-74.0060", + "type": "named", + "name": "-74.0060", + "value_hint": "-74.0060" + }, + { + "description": "Start date (YYYYMMDD)", + "is_required": true, + "format": "string", + "value": "20220101", + "default": "20220101", + "type": "named", + "name": "20220101", + "value_hint": "20220101" + }, + { + "description": "End date (YYYYMMDD)", + "is_required": true, + "format": "string", + "value": "20220107", + "default": "20220107", + "type": "named", + "name": "20220107", + "value_hint": "20220107" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6a44b030-46c7-4390-adf2-2a75652dee27", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@programcomputer/nasa-mcp-server", - "version": "1.0.12", - "package_arguments": [ - { - "description": "Comma-separated list", - "is_required": true, - "format": "string", - "value": "T2M,PRECTOTCORR,WS10M", - "default": "T2M,PRECTOTCORR,WS10M", - "type": "named", - "name": "T2M,PRECTOTCORR,WS10M", - "value_hint": "T2M,PRECTOTCORR,WS10M" - }, - { - "description": "Community identifier", - "is_required": true, - "format": "string", - "value": "re", - "default": "re", - "type": "named", - "name": "re", - "value_hint": "re" - }, - { - "description": "Latitude", - "is_required": true, - "format": "string", - "value": "40.7128", - "default": "40.7128", - "type": "named", - "name": "40.7128", - "value_hint": "40.7128" - }, - { - "description": "Longitude", - "is_required": true, - "format": "string", - "value": "-74.0060", - "default": "-74.0060", - "type": "named", - "name": "-74.0060", - "value_hint": "-74.0060" - }, - { - "description": "Start date (YYYYMMDD)", - "is_required": true, - "format": "string", - "value": "20220101", - "default": "20220101", - "type": "named", - "name": "20220101", - "value_hint": "20220101" - }, - { - "description": "End date (YYYYMMDD)", - "is_required": true, - "format": "string", - "value": "20220107", - "default": "20220107", - "type": "named", - "name": "20220107", - "value_hint": "20220107" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9326c18e-b2fb-4012-a170-cdd5753f0b1e", - "name": "io.github.stefanoamorelli/nasdaq-data-link-mcp", - "description": "A Nasdaq Data Link MCP (Model Context Protocol) Server", - "repository": { - "url": "https://github.com/stefanoamorelli/nasdaq-data-link-mcp", - "source": "github", - "id": "957599131" + "server": { + "name": "io.github.stefanoamorelli/nasdaq-data-link-mcp", + "description": "A Nasdaq Data Link MCP (Model Context Protocol) Server", + "status": "active", + "repository": { + "url": "https://github.com/stefanoamorelli/nasdaq-data-link-mcp", + "source": "github", + "id": "957599131" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "nasdaq-data-link-mcp-os", + "version": "0.1.3", + "package_arguments": [ + { + "description": "investment_company_type argument", + "is_required": true, + "format": "string", + "value": "investment_company_type N-1A", + "default": "investment_company_type N-1A", + "type": "named", + "name": "investment_company_type N-1A", + "value_hint": "N-1A" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9326c18e-b2fb-4012-a170-cdd5753f0b1e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:03Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "nasdaq-data-link-mcp-os", - "version": "0.1.3", - "package_arguments": [ - { - "description": "investment_company_type argument", - "is_required": true, - "format": "string", - "value": "investment_company_type N-1A", - "default": "investment_company_type N-1A", - "type": "named", - "name": "investment_company_type N-1A", - "value_hint": "N-1A" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "010904ec-6e39-4bdc-878a-75a6e79d0500", - "name": "io.github.kyrietangsheng/mcp-server-nationalparks", - "description": "", - "repository": { - "url": "https://github.com/KyrieTangSheng/mcp-server-nationalparks", - "source": "github", - "id": "951713109" + "server": { + "name": "io.github.kyrietangsheng/mcp-server-nationalparks", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/KyrieTangSheng/mcp-server-nationalparks", + "source": "github", + "id": "951713109" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-server-nationalparks", + "version": "1.0.0", + "environment_variables": [ + { + "description": "YOUR_NPS_API_KEY", + "name": "NPS_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "010904ec-6e39-4bdc-878a-75a6e79d0500", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:05Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-server-nationalparks", - "version": "1.0.0", - "environment_variables": [ - { - "description": "YOUR_NPS_API_KEY", - "name": "NPS_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f10c234b-cf64-4dc2-9e38-5f57e53aeecb", - "name": "io.github.pfldy2850/py-mcp-naver", - "description": "python MCP NAVER", - "repository": { - "url": "https://github.com/pfldy2850/py-mcp-naver", - "source": "github", - "id": "951863489" + "server": { + "name": "io.github.pfldy2850/py-mcp-naver", + "description": "python MCP NAVER", + "status": "active", + "repository": { + "url": "https://github.com/pfldy2850/py-mcp-naver", + "source": "github", + "id": "951863489" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-naver", + "version": "0.1.5" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f10c234b-cf64-4dc2-9e38-5f57e53aeecb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-naver", - "version": "0.1.5" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9c7c309a-fb3c-4099-b461-0ca725c9083b", - "name": "io.github.taidgh-robinson/nba-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/Taidgh-Robinson/nba-mcp-server", - "source": "github", - "id": "971505657" + "server": { + "name": "io.github.taidgh-robinson/nba-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Taidgh-Robinson/nba-mcp-server", + "source": "github", + "id": "971505657" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-nba", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9c7c309a-fb3c-4099-b461-0ca725c9083b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-nba", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "afcff9a2-a4ed-457f-80fb-8bdd1948771a", - "name": "io.github.r-huijts/ns-mcp-server", - "description": "A Model Context Protocol (MCP) server that provides access to NS (Dutch Railways) travel information through Claude AI. This server enables Claude to fetch real-time train travel information and disruptions using the official Dutch NS API.", - "repository": { - "url": "https://github.com/r-huijts/ns-mcp-server", - "source": "github", - "id": "898429869" + "server": { + "name": "io.github.r-huijts/ns-mcp-server", + "description": "A Model Context Protocol (MCP) server that provides access to NS (Dutch Railways) travel information through Claude AI. This server enables Claude to fetch real-time train travel information and disruptions using the official Dutch NS API.", + "status": "active", + "repository": { + "url": "https://github.com/r-huijts/ns-mcp-server", + "source": "github", + "id": "898429869" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "ns-mcp-server", + "version": "0.1.6", + "package_arguments": [ + { + "description": "/path/to/ns-server/build/index.js", + "is_required": true, + "format": "string", + "value": "/path/to/ns-server/build/index.js", + "default": "/path/to/ns-server/build/index.js", + "type": "positional", + "value_hint": "/path/to/ns-server/build/index.js" + } + ], + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "NS_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "afcff9a2-a4ed-457f-80fb-8bdd1948771a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "ns-mcp-server", - "version": "0.1.6", - "package_arguments": [ - { - "description": "/path/to/ns-server/build/index.js", - "is_required": true, - "format": "string", - "value": "/path/to/ns-server/build/index.js", - "default": "/path/to/ns-server/build/index.js", - "type": "positional", - "value_hint": "/path/to/ns-server/build/index.js" - } - ], - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "NS_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b4c38c39-7381-49fa-b7b4-75e2604ed93d", - "name": "io.github.da-okazaki/mcp-neo4j-server", - "description": "mcp-neo4j-server", - "repository": { - "url": "https://github.com/da-okazaki/mcp-neo4j-server", - "source": "github", - "id": "912380178" + "server": { + "name": "io.github.da-okazaki/mcp-neo4j-server", + "description": "mcp-neo4j-server", + "status": "active", + "repository": { + "url": "https://github.com/da-okazaki/mcp-neo4j-server", + "source": "github", + "id": "912380178" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@alanse/mcp-neo4j-server", + "version": "0.1.1", + "environment_variables": [ + { + "description": "bolt://localhost:7687", + "name": "NEO4J_URI" + }, + { + "description": "neo4j", + "name": "NEO4J_USERNAME" + }, + { + "description": "your-password", + "name": "NEO4J_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b4c38c39-7381-49fa-b7b4-75e2604ed93d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@alanse/mcp-neo4j-server", - "version": "0.1.1", - "environment_variables": [ - { - "description": "bolt://localhost:7687", - "name": "NEO4J_URI" - }, - { - "description": "neo4j", - "name": "NEO4J_USERNAME" - }, - { - "description": "your-password", - "name": "NEO4J_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d9d7e246-d3f4-4214-aa79-fe1981c73c2e", - "name": "io.github.bigcodegen/mcp-neovim-server", - "description": "Control Neovim using Model Context Protocol (MCP) and the official neovim/node-client JavaScript library", - "repository": { - "url": "https://github.com/bigcodegen/mcp-neovim-server", - "source": "github", - "id": "907120691" + "server": { + "name": "io.github.bigcodegen/mcp-neovim-server", + "description": "Control Neovim using Model Context Protocol (MCP) and the official neovim/node-client JavaScript library", + "status": "active", + "repository": { + "url": "https://github.com/bigcodegen/mcp-neovim-server", + "source": "github", + "id": "907120691" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-neovim-server", + "version": "0.4.2", + "environment_variables": [ + { + "description": "true", + "name": "ALLOW_SHELL_COMMANDS" + }, + { + "description": "/tmp/nvim", + "name": "NVIM_SOCKET_PATH" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d9d7e246-d3f4-4214-aa79-fe1981c73c2e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-neovim-server", - "version": "0.4.2", - "environment_variables": [ - { - "description": "true", - "name": "ALLOW_SHELL_COMMANDS" - }, - { - "description": "/tmp/nvim", - "name": "NVIM_SOCKET_PATH" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6ebc1c16-ea8d-44eb-958c-74f3f0531058", - "name": "io.github.kocierik/mcp-nomad", - "description": " A nomad MCP Server (modelcontextprotocol) ", - "repository": { - "url": "https://github.com/kocierik/mcp-nomad", - "source": "github", - "id": "969499680" + "server": { + "name": "io.github.kocierik/mcp-nomad", + "description": " A nomad MCP Server (modelcontextprotocol) ", + "status": "active", + "repository": { + "url": "https://github.com/kocierik/mcp-nomad", + "source": "github", + "id": "969499680" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "kocierik/mcp-nomad", + "version": "", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "-e NOMAD_ADDR=http://172.17.0.1:4646", + "is_required": true, + "format": "string", + "value": "-e NOMAD_ADDR=http://172.17.0.1:4646", + "default": "-e NOMAD_ADDR=http://172.17.0.1:4646", + "type": "named", + "name": "-e NOMAD_ADDR=http://172.17.0.1:4646", + "value_hint": "NOMAD_ADDR=http://172.17.0.1:4646" + }, + { + "description": "-e NOMAD_TOKEN=secret-token-acl-optional", + "is_required": true, + "format": "string", + "value": "-e NOMAD_TOKEN=secret-token-acl-optional", + "default": "-e NOMAD_TOKEN=secret-token-acl-optional", + "type": "named", + "name": "-e NOMAD_TOKEN=secret-token-acl-optional", + "value_hint": "NOMAD_TOKEN=secret-token-acl-optional" + }, + { + "description": "kocierik/mcpnomad-server:latest", + "is_required": true, + "format": "string", + "value": "kocierik/mcpnomad-server:latest", + "default": "kocierik/mcpnomad-server:latest", + "type": "positional", + "value_hint": "kocierik/mcpnomad-server:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6ebc1c16-ea8d-44eb-958c-74f3f0531058", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "kocierik/mcp-nomad", - "version": "", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "-e NOMAD_ADDR=http://172.17.0.1:4646", - "is_required": true, - "format": "string", - "value": "-e NOMAD_ADDR=http://172.17.0.1:4646", - "default": "-e NOMAD_ADDR=http://172.17.0.1:4646", - "type": "named", - "name": "-e NOMAD_ADDR=http://172.17.0.1:4646", - "value_hint": "NOMAD_ADDR=http://172.17.0.1:4646" - }, - { - "description": "-e NOMAD_TOKEN=secret-token-acl-optional", - "is_required": true, - "format": "string", - "value": "-e NOMAD_TOKEN=secret-token-acl-optional", - "default": "-e NOMAD_TOKEN=secret-token-acl-optional", - "type": "named", - "name": "-e NOMAD_TOKEN=secret-token-acl-optional", - "value_hint": "NOMAD_TOKEN=secret-token-acl-optional" - }, - { - "description": "kocierik/mcpnomad-server:latest", - "is_required": true, - "format": "string", - "value": "kocierik/mcpnomad-server:latest", - "default": "kocierik/mcpnomad-server:latest", - "type": "positional", - "value_hint": "kocierik/mcpnomad-server:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e9a5215c-6485-462f-b086-6e97f0466b30", - "name": "io.github.suekou/mcp-notion-server", - "description": "", - "repository": { - "url": "https://github.com/suekou/mcp-notion-server", - "source": "github", - "id": "896417211" + "server": { + "name": "io.github.suekou/mcp-notion-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/suekou/mcp-notion-server", + "source": "github", + "id": "896417211" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@suekou/mcp-notion-server", + "version": "1.2.4", + "package_arguments": [ + { + "description": "your-built-file-path", + "is_required": true, + "format": "string", + "value": "your-built-file-path", + "default": "your-built-file-path", + "type": "positional", + "value_hint": "your-built-file-path" + } + ], + "environment_variables": [ + { + "description": "your-integration-token", + "name": "NOTION_API_TOKEN" + }, + { + "description": "true", + "name": "NOTION_MARKDOWN_CONVERSION" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e9a5215c-6485-462f-b086-6e97f0466b30", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@suekou/mcp-notion-server", - "version": "1.2.4", - "package_arguments": [ - { - "description": "your-built-file-path", - "is_required": true, - "format": "string", - "value": "your-built-file-path", - "default": "your-built-file-path", - "type": "positional", - "value_hint": "your-built-file-path" - } - ], - "environment_variables": [ - { - "description": "your-integration-token", - "name": "NOTION_API_TOKEN" - }, - { - "description": "true", - "name": "NOTION_MARKDOWN_CONVERSION" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1455eb68-3cf0-4cc3-a8ee-fd729a00acd3", - "name": "io.github.v-3/notion-server", - "description": "", - "repository": { - "url": "https://github.com/v-3/notion-server", - "source": "github", - "id": "904087475" + "server": { + "name": "io.github.v-3/notion-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/v-3/notion-server", + "source": "github", + "id": "904087475" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "notionmcp", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your_notion_api_key_here", + "name": "NOTION_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1455eb68-3cf0-4cc3-a8ee-fd729a00acd3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "notionmcp", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your_notion_api_key_here", - "name": "NOTION_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dd3f5299-5869-43ec-89a8-77e25e6a157e", - "name": "io.github.teddyzxcv/ntfy-mcp", - "description": "", - "repository": { - "url": "https://github.com/teddyzxcv/ntfy-mcp", - "source": "github", - "id": "950853704" + "server": { + "name": "io.github.teddyzxcv/ntfy-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/teddyzxcv/ntfy-mcp", + "source": "github", + "id": "950853704" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "ntfy-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Path to the main entry point for ntfy-mcp", + "is_required": true, + "format": "string", + "value": "/path/to/ntfy-mcp/build/index.js", + "default": "/path/to/ntfy-mcp/build/index.js", + "type": "positional", + "value_hint": "/path/to/ntfy-mcp/build/index.js" + } + ], + "environment_variables": [ + { + "description": "\u003cyour topic name\u003e", + "name": "NTFY_TOPIC" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dd3f5299-5869-43ec-89a8-77e25e6a157e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:27Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "ntfy-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Path to the main entry point for ntfy-mcp", - "is_required": true, - "format": "string", - "value": "/path/to/ntfy-mcp/build/index.js", - "default": "/path/to/ntfy-mcp/build/index.js", - "type": "positional", - "value_hint": "/path/to/ntfy-mcp/build/index.js" - } - ], - "environment_variables": [ - { - "description": "", - "name": "NTFY_TOPIC" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ba368d1c-d64d-4ecd-9bde-72304d69c4d1", - "name": "io.github.gitmotion/ntfy-me-mcp", - "description": "An ntfy MCP server for sending/fetching ntfy notifications to any/self-hosted ntfy.sh server from AI Agents 📤 (supports secure token auth & more - use with npx or docker!)", - "repository": { - "url": "https://github.com/gitmotion/ntfy-me-mcp", - "source": "github", - "id": "964136538" + "server": { + "name": "io.github.gitmotion/ntfy-me-mcp", + "description": "An ntfy MCP server for sending/fetching ntfy notifications to any/self-hosted ntfy.sh server from AI Agents 📤 (supports secure token auth \u0026 more - use with npx or docker!)", + "status": "active", + "repository": { + "url": "https://github.com/gitmotion/ntfy-me-mcp", + "source": "github", + "id": "964136538" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "ntfy-me-mcp", + "version": "1.3.3", + "environment_variables": [ + { + "description": "your-topic-name", + "name": "NTFY_TOPIC" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ba368d1c-d64d-4ecd-9bde-72304d69c4d1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:29Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "ntfy-me-mcp", - "version": "1.3.3", - "environment_variables": [ - { - "description": "your-topic-name", - "name": "NTFY_TOPIC" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ab58cca1-94ad-42d8-be13-980556ac552b", - "name": "io.github.calclavia/mcp-obsidian", - "description": "A connector for Claude Desktop to read and search an Obsidian vault.", - "repository": { - "url": "https://github.com/smithery-ai/mcp-obsidian", - "source": "github", - "id": "895882011" + "server": { + "name": "io.github.calclavia/mcp-obsidian", + "description": "A connector for Claude Desktop to read and search an Obsidian vault.", + "status": "active", + "repository": { + "url": "https://github.com/smithery-ai/mcp-obsidian", + "source": "github", + "id": "895882011" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-obsidian", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Path to Obsidian vault", + "is_required": true, + "format": "string", + "value": "${input:vaultPath}", + "default": "${input:vaultPath}", + "type": "positional", + "value_hint": "${input:vaultPath}" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ab58cca1-94ad-42d8-be13-980556ac552b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:33Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-obsidian", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Path to Obsidian vault", - "is_required": true, - "format": "string", - "value": "${input:vaultPath}", - "default": "${input:vaultPath}", - "type": "positional", - "value_hint": "${input:vaultPath}" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "752ef535-2865-4d95-bcc5-647a7be83f74", - "name": "io.github.stevenstavrakis/obsidian-mcp", - "description": "A simple MCP server for Obsidian", - "repository": { - "url": "https://github.com/StevenStavrakis/obsidian-mcp", - "source": "github", - "id": "906827503" + "server": { + "name": "io.github.stevenstavrakis/obsidian-mcp", + "description": "A simple MCP server for Obsidian", + "status": "active", + "repository": { + "url": "https://github.com/StevenStavrakis/obsidian-mcp", + "source": "github", + "id": "906827503" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "obsidian-mcp", + "version": "1.0.6", + "package_arguments": [ + { + "description": "/path/to/your/vault", + "is_required": true, + "format": "string", + "value": "/path/to/your/vault", + "default": "/path/to/your/vault", + "type": "positional", + "value_hint": "/path/to/your/vault" + }, + { + "description": "/path/to/your/vault2", + "is_required": true, + "format": "string", + "value": "/path/to/your/vault2", + "default": "/path/to/your/vault2", + "type": "positional", + "value_hint": "/path/to/your/vault2" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "752ef535-2865-4d95-bcc5-647a7be83f74", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:35Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "obsidian-mcp", - "version": "1.0.6", - "package_arguments": [ - { - "description": "/path/to/your/vault", - "is_required": true, - "format": "string", - "value": "/path/to/your/vault", - "default": "/path/to/your/vault", - "type": "positional", - "value_hint": "/path/to/your/vault" - }, - { - "description": "/path/to/your/vault2", - "is_required": true, - "format": "string", - "value": "/path/to/your/vault2", - "default": "/path/to/your/vault2", - "type": "positional", - "value_hint": "/path/to/your/vault2" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b71bb3e0-0871-4ca6-9336-3c731607d3ad", - "name": "io.github.yuanooo/oceanbase_mcp_server", - "description": "A Model Context Protocol (MCP) server that enables secure interaction with OceanBase databases. This server allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.", - "repository": { - "url": "https://github.com/yuanoOo/oceanbase_mcp_server", - "source": "github", - "id": "943079798" + "server": { + "name": "io.github.yuanooo/oceanbase_mcp_server", + "description": "A Model Context Protocol (MCP) server that enables secure interaction with OceanBase databases. This server allows AI assistants to list tables, read data, and execute SQL queries through a controlled interface, making database exploration and analysis safer and more structured.", + "status": "active", + "repository": { + "url": "https://github.com/yuanoOo/oceanbase_mcp_server", + "source": "github", + "id": "943079798" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "oceanbase_mcp_server", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "oceanbase_mcp_server", + "default": "oceanbase_mcp_server", + "type": "positional", + "value_hint": "oceanbase_mcp_server" + } + ], + "environment_variables": [ + { + "description": "localhost", + "name": "OB_HOST" + }, + { + "description": "2881", + "name": "OB_PORT" + }, + { + "description": "your_username", + "name": "OB_USER" + }, + { + "description": "your_password", + "name": "OB_PASSWORD" + }, + { + "description": "your_database", + "name": "OB_DATABASE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b71bb3e0-0871-4ca6-9336-3c731607d3ad", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:39Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "oceanbase_mcp_server", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "oceanbase_mcp_server", - "default": "oceanbase_mcp_server", - "type": "positional", - "value_hint": "oceanbase_mcp_server" - } - ], - "environment_variables": [ - { - "description": "localhost", - "name": "OB_HOST" - }, - { - "description": "2881", - "name": "OB_PORT" - }, - { - "description": "your_username", - "name": "OB_USER" - }, - { - "description": "your_password", - "name": "OB_PASSWORD" - }, - { - "description": "your_database", - "name": "OB_DATABASE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d3194c4f-b73a-40b2-9170-0e6e8ee713c0", - "name": "io.github.gongrzhe/office-powerpoint-mcp-server", - "description": "A MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing, and manipulating PowerPoint presentations through the MCP protocol.", - "repository": { - "url": "https://github.com/GongRzhe/Office-PowerPoint-MCP-Server", - "source": "github", - "id": "954558050" + "server": { + "name": "io.github.gongrzhe/office-powerpoint-mcp-server", + "description": "A MCP (Model Context Protocol) server for PowerPoint manipulation using python-pptx. This server provides tools for creating, editing, and manipulating PowerPoint presentations through the MCP protocol.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Office-PowerPoint-MCP-Server", + "source": "github", + "id": "954558050" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "office-powerpoint-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Named argument --from with value office-powerpoint-mcp-server", + "is_required": true, + "format": "string", + "value": "--from office-powerpoint-mcp-server", + "default": "--from office-powerpoint-mcp-server", + "type": "named", + "name": "--from office-powerpoint-mcp-server", + "value_hint": "office-powerpoint-mcp-server" + }, + { + "description": "Positional argument ppt_mcp_server", + "is_required": true, + "format": "string", + "value": "ppt_mcp_server", + "default": "ppt_mcp_server", + "type": "positional", + "value_hint": "ppt_mcp_server" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d3194c4f-b73a-40b2-9170-0e6e8ee713c0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "office-powerpoint-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Named argument --from with value office-powerpoint-mcp-server", - "is_required": true, - "format": "string", - "value": "--from office-powerpoint-mcp-server", - "default": "--from office-powerpoint-mcp-server", - "type": "named", - "name": "--from office-powerpoint-mcp-server", - "value_hint": "office-powerpoint-mcp-server" - }, - { - "description": "Positional argument ppt_mcp_server", - "is_required": true, - "format": "string", - "value": "ppt_mcp_server", - "default": "ppt_mcp_server", - "type": "positional", - "value_hint": "ppt_mcp_server" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4d3dba83-9775-4b5a-9de7-f18f7263460c", - "name": "io.github.gongrzhe/office-word-mcp-server", - "description": "A Model Context Protocol (MCP) server for creating, reading, and manipulating Microsoft Word documents. This server enables AI assistants to work with Word documents through a standardized interface, providing rich document editing capabilities.", - "repository": { - "url": "https://github.com/GongRzhe/Office-Word-MCP-Server", - "source": "github", - "id": "954434732" + "server": { + "name": "io.github.gongrzhe/office-word-mcp-server", + "description": "A Model Context Protocol (MCP) server for creating, reading, and manipulating Microsoft Word documents. This server enables AI assistants to work with Word documents through a standardized interface, providing rich document editing capabilities.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Office-Word-MCP-Server", + "source": "github", + "id": "954434732" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "office-word-mcp-server", + "version": "1.1.3", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "word_mcp_server", + "default": "word_mcp_server", + "type": "positional", + "value_hint": "word_mcp_server" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4d3dba83-9775-4b5a-9de7-f18f7263460c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "office-word-mcp-server", - "version": "1.1.3", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "word_mcp_server", - "default": "word_mcp_server", - "type": "positional", - "value_hint": "word_mcp_server" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "618671cb-8783-47c7-a81c-164f5f9e2cc1", - "name": "io.github.kapilduraphe/okta-mcp-server", - "description": "Okta MCP Server", - "repository": { - "url": "https://github.com/kapilduraphe/okta-mcp-server", - "source": "github", - "id": "932923739" + "server": { + "name": "io.github.kapilduraphe/okta-mcp-server", + "description": "Okta MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/kapilduraphe/okta-mcp-server", + "source": "github", + "id": "932923739" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "okta-mcp-server", + "version": "1.0.0", + "environment_variables": [ + { + "description": "https://your-domain.okta.com", + "name": "OKTA_ORG_URL" + }, + { + "description": "your-api-token", + "name": "OKTA_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "618671cb-8783-47c7-a81c-164f5f9e2cc1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "okta-mcp-server", - "version": "1.0.0", - "environment_variables": [ - { - "description": "https://your-domain.okta.com", - "name": "OKTA_ORG_URL" - }, - { - "description": "your-api-token", - "name": "OKTA_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "531956a8-df6a-4edd-bb72-36c284c1d7c8", - "name": "io.github.conechoai/openai-websearch-mcp", - "description": "openai websearch tool as mcp server", - "repository": { - "url": "https://github.com/ConechoAI/openai-websearch-mcp", - "source": "github", - "id": "947082641" + "server": { + "name": "io.github.conechoai/openai-websearch-mcp", + "description": "openai websearch tool as mcp server", + "status": "active", + "repository": { + "url": "https://github.com/ConechoAI/openai-websearch-mcp", + "source": "github", + "id": "947082641" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "openai-websearch-mcp", + "version": "0.4.0", + "package_arguments": [ + { + "description": "Run Python module openai_websearch_mcp", + "is_required": true, + "format": "string", + "value": "-m openai_websearch_mcp", + "default": "-m openai_websearch_mcp", + "type": "named", + "name": "-m openai_websearch_mcp", + "value_hint": "openai_websearch_mcp" + } + ], + "environment_variables": [ + { + "description": "your-api-key-here", + "name": "OPENAI_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "531956a8-df6a-4edd-bb72-36c284c1d7c8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "openai-websearch-mcp", - "version": "0.4.0", - "package_arguments": [ - { - "description": "Run Python module openai_websearch_mcp", - "is_required": true, - "format": "string", - "value": "-m openai_websearch_mcp", - "default": "-m openai_websearch_mcp", - "type": "named", - "name": "-m openai_websearch_mcp", - "value_hint": "openai_websearch_mcp" - } - ], - "environment_variables": [ - { - "description": "your-api-key-here", - "name": "OPENAI_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "47685d63-d574-4311-b823-c0ddc29d8514", - "name": "io.github.snaggle-ai/openapi-mcp-server", - "description": "Allow AI to wade through complex OpenAPIs using Simple Language", - "repository": { - "url": "https://github.com/janwilmake/openapi-mcp-server", - "source": "github", - "id": "900049352" + "server": { + "name": "io.github.snaggle-ai/openapi-mcp-server", + "description": "Allow AI to wade through complex OpenAPIs using Simple Language", + "status": "active", + "repository": { + "url": "https://github.com/janwilmake/openapi-mcp-server", + "source": "github", + "id": "900049352" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "openapi-mcp-server", + "version": "2.0.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "47685d63-d574-4311-b823-c0ddc29d8514", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "openapi-mcp-server", - "version": "2.0.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c52271b3-e48e-4896-b5a2-2ff93189b339", - "name": "io.github.baryhuang/mcp-server-any-openapi", - "description": "A MCP server that enables Claude to discover and call any API endpoint through semantic search. Intelligently chunks OpenAPI specifications to handle large API documentation, with built-in request execution capabilities. Perfect for integrating private APIs with Claude Desktop.", - "repository": { - "url": "https://github.com/baryhuang/mcp-server-any-openapi", - "source": "github", - "id": "929659341" + "server": { + "name": "io.github.baryhuang/mcp-server-any-openapi", + "description": "A MCP server that enables Claude to discover and call any API endpoint through semantic search. Intelligently chunks OpenAPI specifications to handle large API documentation, with built-in request execution capabilities. Perfect for integrating private APIs with Claude Desktop.", + "status": "active", + "repository": { + "url": "https://github.com/baryhuang/mcp-server-any-openapi", + "source": "github", + "id": "929659341" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-any-openapi", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Run in interactive mode", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "Automatically remove the container when it exits", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Set environment variable OPENAPI_JSON_DOCS_URL", + "is_required": true, + "format": "string", + "value": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", + "default": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", + "type": "named", + "name": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", + "value_hint": "OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json" + }, + { + "description": "Set environment variable MCP_API_PREFIX", + "is_required": true, + "format": "string", + "value": "-e MCP_API_PREFIX=finance", + "default": "-e MCP_API_PREFIX=finance", + "type": "named", + "name": "-e MCP_API_PREFIX=finance", + "value_hint": "MCP_API_PREFIX=finance" + }, + { + "description": "Set environment variable GLOBAL_TOOL_PROMPT", + "is_required": true, + "format": "string", + "value": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", + "default": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", + "type": "named", + "name": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", + "value_hint": "GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com ." + }, + { + "description": "Docker image name and tag", + "is_required": true, + "format": "string", + "value": "buryhuang/mcp-server-any-openapi:latest", + "default": "buryhuang/mcp-server-any-openapi:latest", + "type": "positional", + "value_hint": "buryhuang/mcp-server-any-openapi:latest" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c52271b3-e48e-4896-b5a2-2ff93189b339", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:11:58Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-any-openapi", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Run in interactive mode", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "Automatically remove the container when it exits", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Set environment variable OPENAPI_JSON_DOCS_URL", - "is_required": true, - "format": "string", - "value": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", - "default": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", - "type": "named", - "name": "-e OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json", - "value_hint": "OPENAPI_JSON_DOCS_URL=https://api.example.com/openapi.json" - }, - { - "description": "Set environment variable MCP_API_PREFIX", - "is_required": true, - "format": "string", - "value": "-e MCP_API_PREFIX=finance", - "default": "-e MCP_API_PREFIX=finance", - "type": "named", - "name": "-e MCP_API_PREFIX=finance", - "value_hint": "MCP_API_PREFIX=finance" - }, - { - "description": "Set environment variable GLOBAL_TOOL_PROMPT", - "is_required": true, - "format": "string", - "value": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", - "default": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", - "type": "named", - "name": "-e GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com .", - "value_hint": "GLOBAL_TOOL_PROMPT='Access to insights apis for ACME Financial Services abc.com ." - }, - { - "description": "Docker image name and tag", - "is_required": true, - "format": "string", - "value": "buryhuang/mcp-server-any-openapi:latest", - "default": "buryhuang/mcp-server-any-openapi:latest", - "type": "positional", - "value_hint": "buryhuang/mcp-server-any-openapi:latest" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7d68a487-bc40-4783-a2eb-1c9107fc26a4", - "name": "io.github.hannesj/mcp-openapi-schema", - "description": "OpenAPI Schema Model Context Protocol Server", - "repository": { - "url": "https://github.com/hannesj/mcp-openapi-schema", - "source": "github", - "id": "947937745" + "server": { + "name": "io.github.hannesj/mcp-openapi-schema", + "description": "OpenAPI Schema Model Context Protocol Server", + "status": "active", + "repository": { + "url": "https://github.com/hannesj/mcp-openapi-schema", + "source": "github", + "id": "947937745" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-openapi-schema", + "version": "0.0.1", + "package_arguments": [ + { + "description": "The OpenAPI specification file to be used", + "is_required": true, + "format": "string", + "value": "/ABSOLUTE/PATH/TO/openapi.yaml", + "default": "/ABSOLUTE/PATH/TO/openapi.yaml", + "type": "positional", + "value_hint": "/ABSOLUTE/PATH/TO/openapi.yaml" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7d68a487-bc40-4783-a2eb-1c9107fc26a4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:00Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-openapi-schema", - "version": "0.0.1", - "package_arguments": [ - { - "description": "The OpenAPI specification file to be used", - "is_required": true, - "format": "string", - "value": "/ABSOLUTE/PATH/TO/openapi.yaml", - "default": "/ABSOLUTE/PATH/TO/openapi.yaml", - "type": "positional", - "value_hint": "/ABSOLUTE/PATH/TO/openapi.yaml" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c01d9a66-7a37-4f66-870d-38829c0047ea", - "name": "io.github.spathodea-network/opencti-mcp", - "description": "", - "repository": { - "url": "https://github.com/Spathodea-Network/opencti-mcp", - "source": "github", - "id": "909539706" + "server": { + "name": "io.github.spathodea-network/opencti-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Spathodea-Network/opencti-mcp", + "source": "github", + "id": "909539706" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "opencti-server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Positional argument for package execution", + "is_required": true, + "format": "string", + "value": "path/to/opencti-server/build/index.js", + "default": "path/to/opencti-server/build/index.js", + "type": "positional", + "value_hint": "path/to/opencti-server/build/index.js" + } + ], + "environment_variables": [ + { + "description": "${OPENCTI_URL}", + "name": "OPENCTI_URL" + }, + { + "description": "${OPENCTI_TOKEN}", + "name": "OPENCTI_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c01d9a66-7a37-4f66-870d-38829c0047ea", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "opencti-server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Positional argument for package execution", - "is_required": true, - "format": "string", - "value": "path/to/opencti-server/build/index.js", - "default": "path/to/opencti-server/build/index.js", - "type": "positional", - "value_hint": "path/to/opencti-server/build/index.js" - } - ], - "environment_variables": [ - { - "description": "${OPENCTI_URL}", - "name": "OPENCTI_URL" - }, - { - "description": "${OPENCTI_TOKEN}", - "name": "OPENCTI_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a81b1d9e-c1a5-4848-a3f5-350ea2872ae3", - "name": "io.github.asusevski/opendota-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/asusevski/opendota-mcp-server", - "source": "github", - "id": "941719334" + "server": { + "name": "io.github.asusevski/opendota-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/asusevski/opendota-mcp-server", + "source": "github", + "id": "941719334" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "opendota-mcp-server", + "version": "0.1.1", + "package_arguments": [ + { + "description": "bash", + "is_required": true, + "format": "string", + "value": "bash", + "default": "bash", + "type": "positional", + "value_hint": "bash" + }, + { + "description": "-c", + "is_required": true, + "format": "string", + "value": "-c", + "default": "-c", + "type": "named", + "name": "-c", + "value_hint": "-c" + }, + { + "description": "cd ~/opendota-mcp-server \u0026\u0026 source .venv/bin/activate \u0026\u0026 python src/opendota_server/server.py", + "is_required": true, + "format": "string", + "value": "cd ~/opendota-mcp-server \u0026\u0026 source .venv/bin/activate \u0026\u0026 python src/opendota_server/server.py", + "default": "cd ~/opendota-mcp-server \u0026\u0026 source .venv/bin/activate \u0026\u0026 python src/opendota_server/server.py", + "type": "positional", + "value_hint": "cd ~/opendota-mcp-server \u0026\u0026 source .venv/bin/activate \u0026\u0026 python src/opendota_server/server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a81b1d9e-c1a5-4848-a3f5-350ea2872ae3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "opendota-mcp-server", - "version": "0.1.1", - "package_arguments": [ - { - "description": "bash", - "is_required": true, - "format": "string", - "value": "bash", - "default": "bash", - "type": "positional", - "value_hint": "bash" - }, - { - "description": "-c", - "is_required": true, - "format": "string", - "value": "-c", - "default": "-c", - "type": "named", - "name": "-c", - "value_hint": "-c" - }, - { - "description": "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py", - "is_required": true, - "format": "string", - "value": "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py", - "default": "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py", - "type": "positional", - "value_hint": "cd ~/opendota-mcp-server && source .venv/bin/activate && python src/opendota_server/server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9c804dd3-4283-4a5b-a34e-6f1c7065b671", - "name": "io.github.shanejonas/openrpc-mpc-server", - "description": "A Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.", - "repository": { - "url": "https://github.com/shanejonas/openrpc-mpc-server", - "source": "github", - "id": "897678596" + "server": { + "name": "io.github.shanejonas/openrpc-mpc-server", + "description": "A Model Context Protocol (MCP) server that provides JSON-RPC functionality through OpenRPC.", + "status": "active", + "repository": { + "url": "https://github.com/shanejonas/openrpc-mpc-server", + "source": "github", + "id": "897678596" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "openrpc-mcp-server", + "version": "0.1.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9c804dd3-4283-4a5b-a34e-6f1c7065b671", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "openrpc-mcp-server", - "version": "0.1.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0d8b287c-6023-4809-a5ba-963c5612efa2", - "name": "io.github.open-strategy-partners/osp_marketing_tools", - "description": "A Model Context Protocol (MCP) server that empowers LLMs to use some of Open Srategy Partners' core writing and product marketing techniques.", - "repository": { - "url": "https://github.com/open-strategy-partners/osp_marketing_tools", - "source": "github", - "id": "917730483" + "server": { + "name": "io.github.open-strategy-partners/osp_marketing_tools", + "description": "A Model Context Protocol (MCP) server that empowers LLMs to use some of Open Srategy Partners' core writing and product marketing techniques.", + "status": "active", + "repository": { + "url": "https://github.com/open-strategy-partners/osp_marketing_tools", + "source": "github", + "id": "917730483" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "osp-marketing-tools", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Specifies the source repository", + "is_required": true, + "format": "string", + "value": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", + "default": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", + "type": "named", + "name": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", + "value_hint": "git+https://github.com/open-strategy-partners/osp_marketing_tools@main" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0d8b287c-6023-4809-a5ba-963c5612efa2", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "osp-marketing-tools", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Specifies the source repository", - "is_required": true, - "format": "string", - "value": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", - "default": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", - "type": "named", - "name": "--from git+https://github.com/open-strategy-partners/osp_marketing_tools@main", - "value_hint": "git+https://github.com/open-strategy-partners/osp_marketing_tools@main" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d6801d4f-2f27-4e67-8b70-10754b48ff0d", - "name": "io.github.vortiago/mcp-outline", - "description": "A Model Context Protocol (MCP) server enabling AI assistants to interact with Outline documentation services.", - "repository": { - "url": "https://github.com/Vortiago/mcp-outline", - "source": "github", - "id": "953087223" + "server": { + "name": "io.github.vortiago/mcp-outline", + "description": "A Model Context Protocol (MCP) server enabling AI assistants to interact with Outline documentation services.", + "status": "active", + "repository": { + "url": "https://github.com/Vortiago/mcp-outline", + "source": "github", + "id": "953087223" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-outline", + "version": "0.2.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d6801d4f-2f27-4e67-8b70-10754b48ff0d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-outline", - "version": "0.2.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "925a5d1d-ab12-44bd-9297-a20bdde6ec68", - "name": "io.github.kukapay/pancakeswap-poolspy-mcp", - "description": "An MCP server that tracks newly created liquidity pools on Pancake Swap", - "repository": { - "url": "https://github.com/kukapay/pancakeswap-poolspy-mcp", - "source": "github", - "id": "949792903" + "server": { + "name": "io.github.kukapay/pancakeswap-poolspy-mcp", + "description": "An MCP server that tracks newly created liquidity pools on Pancake Swap", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/pancakeswap-poolspy-mcp", + "source": "github", + "id": "949792903" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "pancakeswap-poolspy-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Specify directory to run from", + "is_required": true, + "format": "string", + "value": "--directory path/to/pancakeswap-poolspy-mcp", + "default": "--directory path/to/pancakeswap-poolspy-mcp", + "type": "named", + "name": "--directory path/to/pancakeswap-poolspy-mcp", + "value_hint": "path/to/pancakeswap-poolspy-mcp" + }, + { + "description": "Python script to execute", + "is_required": true, + "format": "string", + "value": "main.py", + "default": "main.py", + "type": "positional", + "value_hint": "main.py" + } + ], + "environment_variables": [ + { + "description": "your api key from The Graph", + "name": "THEGRAPH_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "925a5d1d-ab12-44bd-9297-a20bdde6ec68", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "pancakeswap-poolspy-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Specify directory to run from", - "is_required": true, - "format": "string", - "value": "--directory path/to/pancakeswap-poolspy-mcp", - "default": "--directory path/to/pancakeswap-poolspy-mcp", - "type": "named", - "name": "--directory path/to/pancakeswap-poolspy-mcp", - "value_hint": "path/to/pancakeswap-poolspy-mcp" - }, - { - "description": "Python script to execute", - "is_required": true, - "format": "string", - "value": "main.py", - "default": "main.py", - "type": "positional", - "value_hint": "main.py" - } - ], - "environment_variables": [ - { - "description": "your api key from The Graph", - "name": "THEGRAPH_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a0f6fd01-5eb2-4aca-b4a6-c67eb6e0c5da", - "name": "io.github.vivekvells/mcp-pandoc", - "description": "MCP server for document format conversion using pandoc.", - "repository": { - "url": "https://github.com/vivekVells/mcp-pandoc", - "source": "github", - "id": "900427746" + "server": { + "name": "io.github.vivekvells/mcp-pandoc", + "description": "MCP server for document format conversion using pandoc.", + "status": "active", + "repository": { + "url": "https://github.com/vivekVells/mcp-pandoc", + "source": "github", + "id": "900427746" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-pandoc", + "version": "0.3.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a0f6fd01-5eb2-4aca-b4a6-c67eb6e0c5da", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:21Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-pandoc", - "version": "0.3.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "038a3024-c319-4a07-bd7f-9cf699cfebf1", - "name": "io.github.sv/mcp-paradex-py", - "description": "Connect AI agents to the Paradex trading platform. Retrieve market data, manage accounts, and execute trades seamlessly. Enhance your trading experience with automated tools and real-time insights.", - "repository": { - "url": "https://github.com/sv/mcp-paradex-py", - "source": "github", - "id": "944258239" + "server": { + "name": "io.github.sv/mcp-paradex-py", + "description": "Connect AI agents to the Paradex trading platform. Retrieve market data, manage accounts, and execute trades seamlessly. Enhance your trading experience with automated tools and real-time insights.", + "status": "active", + "repository": { + "url": "https://github.com/sv/mcp-paradex-py", + "source": "github", + "id": "944258239" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-paradex", + "version": "0.1.0", + "package_arguments": [ + { + "description": "--from mcpdoc", + "is_required": true, + "format": "string", + "value": "--from mcpdoc", + "default": "--from mcpdoc", + "type": "named", + "name": "--from mcpdoc", + "value_hint": "mcpdoc" + }, + { + "description": "mcpdoc", + "is_required": true, + "format": "string", + "value": "mcpdoc", + "default": "mcpdoc", + "type": "positional", + "value_hint": "mcpdoc" + }, + { + "description": "--urls Paradex:https://docs.paradex.trade/llms.txt", + "is_required": true, + "format": "string", + "value": "--urls Paradex:https://docs.paradex.trade/llms.txt", + "default": "--urls Paradex:https://docs.paradex.trade/llms.txt", + "type": "named", + "name": "--urls Paradex:https://docs.paradex.trade/llms.txt", + "value_hint": "Paradex:https://docs.paradex.trade/llms.txt" + }, + { + "description": "--transport stdio", + "is_required": true, + "format": "string", + "value": "--transport stdio", + "default": "--transport stdio", + "type": "named", + "name": "--transport stdio", + "value_hint": "stdio" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "038a3024-c319-4a07-bd7f-9cf699cfebf1", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-paradex", - "version": "0.1.0", - "package_arguments": [ - { - "description": "--from mcpdoc", - "is_required": true, - "format": "string", - "value": "--from mcpdoc", - "default": "--from mcpdoc", - "type": "named", - "name": "--from mcpdoc", - "value_hint": "mcpdoc" - }, - { - "description": "mcpdoc", - "is_required": true, - "format": "string", - "value": "mcpdoc", - "default": "mcpdoc", - "type": "positional", - "value_hint": "mcpdoc" - }, - { - "description": "--urls Paradex:https://docs.paradex.trade/llms.txt", - "is_required": true, - "format": "string", - "value": "--urls Paradex:https://docs.paradex.trade/llms.txt", - "default": "--urls Paradex:https://docs.paradex.trade/llms.txt", - "type": "named", - "name": "--urls Paradex:https://docs.paradex.trade/llms.txt", - "value_hint": "Paradex:https://docs.paradex.trade/llms.txt" - }, - { - "description": "--transport stdio", - "is_required": true, - "format": "string", - "value": "--transport stdio", - "default": "--transport stdio", - "type": "named", - "name": "--transport stdio", - "value_hint": "stdio" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dd586d17-4a7e-4658-92df-8cf6b58bff4d", - "name": "io.github.hungryrobot1/mcp-pif", - "description": "A MCP implementation of the personal intelligence framework (PIF)", - "repository": { - "url": "https://github.com/hungryrobot1/MCP-PIF", - "source": "github", - "id": "923899029" + "server": { + "name": "io.github.hungryrobot1/mcp-pif", + "description": "A MCP implementation of the personal intelligence framework (PIF)", + "status": "active", + "repository": { + "url": "https://github.com/hungryrobot1/MCP-PIF", + "source": "github", + "id": "923899029" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-pif", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dd586d17-4a7e-4658-92df-8cf6b58bff4d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:29Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-pif", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "23b81af0-3e03-47b8-a310-c9b07bebd547", - "name": "io.github.sirmews/mcp-pinecone", - "description": "Model Context Protocol server to allow for reading and writing from Pinecone. Rudimentary RAG", - "repository": { - "url": "https://github.com/sirmews/mcp-pinecone", - "source": "github", - "id": "900184645" + "server": { + "name": "io.github.sirmews/mcp-pinecone", + "description": "Model Context Protocol server to allow for reading and writing from Pinecone. Rudimentary RAG", + "status": "active", + "repository": { + "url": "https://github.com/sirmews/mcp-pinecone", + "source": "github", + "id": "900184645" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-pinecone", + "version": "0.1.8", + "package_arguments": [ + { + "description": "Index name for the Pinecone database.", + "is_required": true, + "format": "string", + "value": "--index-name {your-index-name}", + "default": "--index-name {your-index-name}", + "type": "named", + "name": "--index-name {your-index-name}", + "value_hint": "{your-index-name}" + }, + { + "description": "API key for authenticating with Pinecone.", + "is_required": true, + "format": "string", + "value": "--api-key {your-secret-api-key}", + "default": "--api-key {your-secret-api-key}", + "type": "named", + "name": "--api-key {your-secret-api-key}", + "value_hint": "{your-secret-api-key}" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "23b81af0-3e03-47b8-a310-c9b07bebd547", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-pinecone", - "version": "0.1.8", - "package_arguments": [ - { - "description": "Index name for the Pinecone database.", - "is_required": true, - "format": "string", - "value": "--index-name {your-index-name}", - "default": "--index-name {your-index-name}", - "type": "named", - "name": "--index-name {your-index-name}", - "value_hint": "{your-index-name}" - }, - { - "description": "API key for authenticating with Pinecone.", - "is_required": true, - "format": "string", - "value": "--api-key {your-secret-api-key}", - "default": "--api-key {your-secret-api-key}", - "type": "named", - "name": "--api-key {your-secret-api-key}", - "value_hint": "{your-secret-api-key}" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cfe44c73-8b61-48c9-9d7f-b28e98d23b5b", - "name": "io.github.felores/placid-mcp-server", - "description": "Generate image and video creatives using Placid.app templates in MCP compatible hosts", - "repository": { - "url": "https://github.com/felores/placid-mcp-server", - "source": "github", - "id": "915853970" + "server": { + "name": "io.github.felores/placid-mcp-server", + "description": "Generate image and video creatives using Placid.app templates in MCP compatible hosts", + "status": "active", + "repository": { + "url": "https://github.com/felores/placid-mcp-server", + "source": "github", + "id": "915853970" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@felores/placid-mcp-server", + "version": "1.7.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cfe44c73-8b61-48c9-9d7f-b28e98d23b5b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@felores/placid-mcp-server", - "version": "1.7.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "dd8073c5-c7c4-42c1-a0d7-cad8089de750", - "name": "io.github.kelvin6365/plane-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/kelvin6365/plane-mcp-server", - "source": "github", - "id": "953147035" + "server": { + "name": "io.github.kelvin6365/plane-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/kelvin6365/plane-mcp-server", + "source": "github", + "id": "953147035" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "plane-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "dd8073c5-c7c4-42c1-a0d7-cad8089de750", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "plane-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "328e3069-005e-4179-add1-c13b18db4102", - "name": "io.github.executeautomation/mcp-playwright", - "description": "Playwright Model Context Protocol Server - Tool to automate Browsers and APIs in Claude Desktop, Cline, Cursor IDE and More 🔌", - "repository": { - "url": "https://github.com/executeautomation/mcp-playwright", - "source": "github", - "id": "898077246" + "server": { + "name": "io.github.executeautomation/mcp-playwright", + "description": "Playwright Model Context Protocol Server - Tool to automate Browsers and APIs in Claude Desktop, Cline, Cursor IDE and More 🔌", + "status": "active", + "repository": { + "url": "https://github.com/executeautomation/mcp-playwright", + "source": "github", + "id": "898077246" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@executeautomation/playwright-mcp-server", + "version": "1.0.5" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "328e3069-005e-4179-add1-c13b18db4102", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@executeautomation/playwright-mcp-server", - "version": "1.0.5" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "503a5c73-c147-4b2c-90d3-292378268706", - "name": "io.github.shannonlal/mcp-postman", - "description": "MCP Server for running Postman Collections with Newman", - "repository": { - "url": "https://github.com/shannonlal/mcp-postman", - "source": "github", - "id": "910565083" + "server": { + "name": "io.github.shannonlal/mcp-postman", + "description": "MCP Server for running Postman Collections with Newman", + "status": "active", + "repository": { + "url": "https://github.com/shannonlal/mcp-postman", + "source": "github", + "id": "910565083" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-postman", + "version": "1.0.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "503a5c73-c147-4b2c-90d3-292378268706", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-postman", - "version": "1.0.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "94872987-6992-4fec-ab4b-9ef5311b3108", - "name": "io.github.allen-munsch/mcp-prefect", - "description": "https://pypi.org/project/mcp-prefect/0.1.0/", - "repository": { - "url": "https://github.com/allen-munsch/mcp-prefect", - "source": "github", - "id": "956317848" + "server": { + "name": "io.github.allen-munsch/mcp-prefect", + "description": "https://pypi.org/project/mcp-prefect/0.1.0/", + "status": "active", + "repository": { + "url": "https://github.com/allen-munsch/mcp-prefect", + "source": "github", + "id": "956317848" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-prefect", + "version": "0.1.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "94872987-6992-4fec-ab4b-9ef5311b3108", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-prefect", - "version": "0.1.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "00613acb-73e2-4f93-8b96-296df17316c8", - "name": "io.github.kenjihikmatullah/productboard-mcp", - "description": "Integrate the Productboard API into agentic workflows via MCP", - "repository": { - "url": "https://github.com/kenjihikmatullah/productboard-mcp", - "source": "github", - "id": "939104710" + "server": { + "name": "io.github.kenjihikmatullah/productboard-mcp", + "description": "Integrate the Productboard API into agentic workflows via MCP", + "status": "active", + "repository": { + "url": "https://github.com/kenjihikmatullah/productboard-mcp", + "source": "github", + "id": "939104710" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "productboard-mcp", + "version": "1.0.1", + "environment_variables": [ + { + "description": "\u003cYOUR_TOKEN\u003e", + "name": "PRODUCTBOARD_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "00613acb-73e2-4f93-8b96-296df17316c8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:44Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "productboard-mcp", - "version": "1.0.1", - "environment_variables": [ - { - "description": "", - "name": "PRODUCTBOARD_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cf42caa8-50d1-489d-aa3c-3e8432efe9e2", - "name": "io.github.pab1it0/prometheus-mcp-server", - "description": "A Model Context Protocol (MCP) server that enables AI assistants to query and analyze Prometheus metrics through standardized interfaces.", - "repository": { - "url": "https://github.com/pab1it0/prometheus-mcp-server", - "source": "github", - "id": "951416232" + "server": { + "name": "io.github.pab1it0/prometheus-mcp-server", + "description": "A Model Context Protocol (MCP) server that enables AI assistants to query and analyze Prometheus metrics through standardized interfaces.", + "status": "active", + "repository": { + "url": "https://github.com/pab1it0/prometheus-mcp-server", + "source": "github", + "id": "951416232" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "prometheus_mcp_server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Automatically remove the container when it exits.", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Keep STDIN open even if not attached.", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "Set environment variable PROMETHEUS_URL inside the container.", + "is_required": true, + "format": "string", + "value": "-e PROMETHEUS_URL", + "default": "-e PROMETHEUS_URL", + "type": "named", + "name": "-e PROMETHEUS_URL", + "value_hint": "PROMETHEUS_URL" + }, + { + "description": "Set environment variable PROMETHEUS_USERNAME inside the container.", + "is_required": true, + "format": "string", + "value": "-e PROMETHEUS_USERNAME", + "default": "-e PROMETHEUS_USERNAME", + "type": "named", + "name": "-e PROMETHEUS_USERNAME", + "value_hint": "PROMETHEUS_USERNAME" + }, + { + "description": "Set environment variable PROMETHEUS_PASSWORD inside the container.", + "is_required": true, + "format": "string", + "value": "-e PROMETHEUS_PASSWORD", + "default": "-e PROMETHEUS_PASSWORD", + "type": "named", + "name": "-e PROMETHEUS_PASSWORD", + "value_hint": "PROMETHEUS_PASSWORD" + } + ], + "environment_variables": [ + { + "description": "http://your-prometheus-server:9090", + "name": "PROMETHEUS_URL" + }, + { + "description": "your_username", + "name": "PROMETHEUS_USERNAME" + }, + { + "description": "your_password", + "name": "PROMETHEUS_PASSWORD" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cf42caa8-50d1-489d-aa3c-3e8432efe9e2", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "prometheus_mcp_server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Automatically remove the container when it exits.", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Keep STDIN open even if not attached.", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "Set environment variable PROMETHEUS_URL inside the container.", - "is_required": true, - "format": "string", - "value": "-e PROMETHEUS_URL", - "default": "-e PROMETHEUS_URL", - "type": "named", - "name": "-e PROMETHEUS_URL", - "value_hint": "PROMETHEUS_URL" - }, - { - "description": "Set environment variable PROMETHEUS_USERNAME inside the container.", - "is_required": true, - "format": "string", - "value": "-e PROMETHEUS_USERNAME", - "default": "-e PROMETHEUS_USERNAME", - "type": "named", - "name": "-e PROMETHEUS_USERNAME", - "value_hint": "PROMETHEUS_USERNAME" - }, - { - "description": "Set environment variable PROMETHEUS_PASSWORD inside the container.", - "is_required": true, - "format": "string", - "value": "-e PROMETHEUS_PASSWORD", - "default": "-e PROMETHEUS_PASSWORD", - "type": "named", - "name": "-e PROMETHEUS_PASSWORD", - "value_hint": "PROMETHEUS_PASSWORD" - } - ], - "environment_variables": [ - { - "description": "http://your-prometheus-server:9090", - "name": "PROMETHEUS_URL" - }, - { - "description": "your_username", - "name": "PROMETHEUS_USERNAME" - }, - { - "description": "your_password", - "name": "PROMETHEUS_PASSWORD" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "68966508-9094-4eb5-9588-ff7456d6c1ce", - "name": "io.github.sssjiang/pubchem_mcp_server", - "description": "", - "repository": { - "url": "https://github.com/sssjiang/pubchem_mcp_server", - "source": "github", - "id": "955038120" + "server": { + "name": "io.github.sssjiang/pubchem_mcp_server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/sssjiang/pubchem_mcp_server", + "source": "github", + "id": "955038120" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "pubchem_mcp_server", + "version": "0.1.5" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "68966508-9094-4eb5-9588-ff7456d6c1ce", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:51Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "pubchem_mcp_server", - "version": "0.1.5" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4f9043b6-e17a-494e-89d4-52c3f39999ac", - "name": "io.github.dogukanakkaya/pulumi-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/dogukanakkaya/pulumi-mcp-server", - "source": "github", - "id": "951615631" + "server": { + "name": "io.github.dogukanakkaya/pulumi-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/dogukanakkaya/pulumi-mcp-server", + "source": "github", + "id": "951615631" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "pulumi-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "-i", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "--rm", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "--name pulumi-mcp-server", + "is_required": true, + "format": "string", + "value": "--name pulumi-mcp-server", + "default": "--name pulumi-mcp-server", + "type": "named", + "name": "--name pulumi-mcp-server", + "value_hint": "pulumi-mcp-server" + }, + { + "description": "-e PULUMI_ACCESS_TOKEN", + "is_required": true, + "format": "string", + "value": "-e PULUMI_ACCESS_TOKEN", + "default": "-e PULUMI_ACCESS_TOKEN", + "type": "named", + "name": "-e PULUMI_ACCESS_TOKEN", + "value_hint": "PULUMI_ACCESS_TOKEN" + }, + { + "description": "dogukanakkaya/pulumi-mcp-server", + "is_required": true, + "format": "string", + "value": "dogukanakkaya/pulumi-mcp-server", + "default": "dogukanakkaya/pulumi-mcp-server", + "type": "positional", + "value_hint": "dogukanakkaya/pulumi-mcp-server" + } + ], + "environment_variables": [ + { + "description": "${YOUR_TOKEN}", + "name": "PULUMI_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4f9043b6-e17a-494e-89d4-52c3f39999ac", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "pulumi-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "-i", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "--rm", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "--name pulumi-mcp-server", - "is_required": true, - "format": "string", - "value": "--name pulumi-mcp-server", - "default": "--name pulumi-mcp-server", - "type": "named", - "name": "--name pulumi-mcp-server", - "value_hint": "pulumi-mcp-server" - }, - { - "description": "-e PULUMI_ACCESS_TOKEN", - "is_required": true, - "format": "string", - "value": "-e PULUMI_ACCESS_TOKEN", - "default": "-e PULUMI_ACCESS_TOKEN", - "type": "named", - "name": "-e PULUMI_ACCESS_TOKEN", - "value_hint": "PULUMI_ACCESS_TOKEN" - }, - { - "description": "dogukanakkaya/pulumi-mcp-server", - "is_required": true, - "format": "string", - "value": "dogukanakkaya/pulumi-mcp-server", - "default": "dogukanakkaya/pulumi-mcp-server", - "type": "positional", - "value_hint": "dogukanakkaya/pulumi-mcp-server" - } - ], - "environment_variables": [ - { - "description": "${YOUR_TOKEN}", - "name": "PULUMI_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7997496a-c366-4949-9ca7-6741bcfdf2a0", - "name": "io.github.djannot/puppeteer-vision-mcp", - "description": "", - "repository": { - "url": "https://github.com/djannot/puppeteer-vision-mcp", - "source": "github", - "id": "982891249" + "server": { + "name": "io.github.djannot/puppeteer-vision-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/djannot/puppeteer-vision-mcp", + "source": "github", + "id": "982891249" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "puppeteer-vision-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7997496a-c366-4949-9ca7-6741bcfdf2a0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "puppeteer-vision-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "61ffe82e-5288-4af8-a45f-9a0907c941de", - "name": "io.github.ashiknesin/pushover-mcp", - "description": "A MCP implementation for sending notifications via Pushover", - "repository": { - "url": "https://github.com/AshikNesin/pushover-mcp", - "source": "github", - "id": "943326406" + "server": { + "name": "io.github.ashiknesin/pushover-mcp", + "description": "A MCP implementation for sending notifications via Pushover", + "status": "active", + "repository": { + "url": "https://github.com/AshikNesin/pushover-mcp", + "source": "github", + "id": "943326406" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "pushover-mcp", + "version": "1.0.0", + "package_arguments": [ + { + "description": "start", + "is_required": true, + "format": "string", + "value": "start", + "default": "start", + "type": "positional", + "value_hint": "start" + }, + { + "description": "--token YOUR_TOKEN", + "is_required": true, + "format": "string", + "value": "--token YOUR_TOKEN", + "default": "--token YOUR_TOKEN", + "type": "named", + "name": "--token YOUR_TOKEN", + "value_hint": "YOUR_TOKEN" + }, + { + "description": "--user YOUR_USER", + "is_required": true, + "format": "string", + "value": "--user YOUR_USER", + "default": "--user YOUR_USER", + "type": "named", + "name": "--user YOUR_USER", + "value_hint": "YOUR_USER" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "61ffe82e-5288-4af8-a45f-9a0907c941de", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:12:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "pushover-mcp", - "version": "1.0.0", - "package_arguments": [ - { - "description": "start", - "is_required": true, - "format": "string", - "value": "start", - "default": "start", - "type": "positional", - "value_hint": "start" - }, - { - "description": "--token YOUR_TOKEN", - "is_required": true, - "format": "string", - "value": "--token YOUR_TOKEN", - "default": "--token YOUR_TOKEN", - "type": "named", - "name": "--token YOUR_TOKEN", - "value_hint": "YOUR_TOKEN" - }, - { - "description": "--user YOUR_USER", - "is_required": true, - "format": "string", - "value": "--user YOUR_USER", - "default": "--user YOUR_USER", - "type": "named", - "name": "--user YOUR_USER", - "value_hint": "YOUR_USER" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2e9aa092-56fc-4adb-93ba-e9c9d9919440", - "name": "io.github.jjsantos01/qgis_mcp", - "description": "Model Context Protocol (MCP) that allows LLMs to use QGIS Desktop", - "repository": { - "url": "https://github.com/jjsantos01/qgis_mcp", - "source": "github", - "id": "947538862" + "server": { + "name": "io.github.jjsantos01/qgis_mcp", + "description": "Model Context Protocol (MCP) that allows LLMs to use QGIS Desktop", + "status": "active", + "repository": { + "url": "https://github.com/jjsantos01/qgis_mcp", + "source": "github", + "id": "947538862" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "qgis-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Specifies the directory to run the command from", + "is_required": true, + "format": "string", + "value": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", + "default": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", + "type": "named", + "name": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", + "value_hint": "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp" + }, + { + "description": "The Python script to execute", + "is_required": true, + "format": "string", + "value": "qgis_mcp_server.py", + "default": "qgis_mcp_server.py", + "type": "positional", + "value_hint": "qgis_mcp_server.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2e9aa092-56fc-4adb-93ba-e9c9d9919440", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:03Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "qgis-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Specifies the directory to run the command from", - "is_required": true, - "format": "string", - "value": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", - "default": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", - "type": "named", - "name": "--directory /ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp", - "value_hint": "/ABSOLUTE/PATH/TO/PARENT/REPO/FOLDER/qgis_mcp/src/qgis_mcp" - }, - { - "description": "The Python script to execute", - "is_required": true, - "format": "string", - "value": "qgis_mcp_server.py", - "default": "qgis_mcp_server.py", - "type": "positional", - "value_hint": "qgis_mcp_server.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "904d15ba-e312-4dec-88b6-f52c1077bc96", - "name": "io.github.gongrzhe/quickchart-mcp-server", - "description": "A Model Context Protocol server for generating charts using QuickChart.io . It allows you to create various types of charts through MCP tools.", - "repository": { - "url": "https://github.com/GongRzhe/Quickchart-MCP-Server", - "source": "github", - "id": "937569492" + "server": { + "name": "io.github.gongrzhe/quickchart-mcp-server", + "description": "A Model Context Protocol server for generating charts using QuickChart.io . It allows you to create various types of charts through MCP tools.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/Quickchart-MCP-Server", + "source": "github", + "id": "937569492" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gongrzhe/quickchart-mcp-server", + "version": "1.0.6" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "904d15ba-e312-4dec-88b6-f52c1077bc96", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gongrzhe/quickchart-mcp-server", - "version": "1.0.6" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "92c66a82-172a-45e6-92a4-ee6a053e95e6", - "name": "io.github.66julienmartin/mcp-server-qwen_max", - "description": "MCP server for Qwen Max model", - "repository": { - "url": "https://github.com/66julienmartin/MCP-server-Qwen_Max", - "source": "github", - "id": "927217229" + "server": { + "name": "io.github.66julienmartin/mcp-server-qwen_max", + "description": "MCP server for Qwen Max model", + "status": "active", + "repository": { + "url": "https://github.com/66julienmartin/MCP-server-Qwen_Max", + "source": "github", + "id": "927217229" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "qwen_max", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your-api-key-here", + "name": "DASHSCOPE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "92c66a82-172a-45e6-92a4-ee6a053e95e6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:07Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "qwen_max", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your-api-key-here", - "name": "DASHSCOPE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "edf43b88-36a4-4f07-9d46-cab08bd418aa", - "name": "io.github.kenliao94/mcp-server-rabbitmq", - "description": "MCP server for interacting with RabbitMQ", - "repository": { - "url": "https://github.com/kenliao94/mcp-server-rabbitmq", - "source": "github", - "id": "910977229" + "server": { + "name": "io.github.kenliao94/mcp-server-rabbitmq", + "description": "MCP server for interacting with RabbitMQ", + "status": "active", + "repository": { + "url": "https://github.com/kenliao94/mcp-server-rabbitmq", + "source": "github", + "id": "910977229" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-rabbitmq", + "version": "2.0.0", + "package_arguments": [ + { + "description": "Specify directory to run the package from", + "is_required": true, + "format": "string", + "value": "--directory /path/to/repo/mcp-server-rabbitmq", + "default": "--directory /path/to/repo/mcp-server-rabbitmq", + "type": "named", + "name": "--directory /path/to/repo/mcp-server-rabbitmq", + "value_hint": "/path/to/repo/mcp-server-rabbitmq" + }, + { + "description": "Package or script name to execute", + "is_required": true, + "format": "string", + "value": "mcp-server-rabbitmq", + "default": "mcp-server-rabbitmq", + "type": "positional", + "value_hint": "mcp-server-rabbitmq" + }, + { + "description": "RabbitMQ host name", + "is_required": true, + "format": "string", + "value": "--rabbitmq-host \u003chostname ex. test.rabbit.com, localhost\u003e", + "default": "--rabbitmq-host \u003chostname ex. test.rabbit.com, localhost\u003e", + "type": "named", + "name": "--rabbitmq-host \u003chostname ex. test.rabbit.com, localhost\u003e", + "value_hint": "\u003chostname ex. test.rabbit.com, localhost\u003e" + }, + { + "description": "RabbitMQ port number", + "is_required": true, + "format": "string", + "value": "--port \u003cport number ex. 5672\u003e", + "default": "--port \u003cport number ex. 5672\u003e", + "type": "named", + "name": "--port \u003cport number ex. 5672\u003e", + "value_hint": "\u003cport number ex. 5672\u003e" + }, + { + "description": "RabbitMQ username", + "is_required": true, + "format": "string", + "value": "--username \u003crabbitmq username\u003e", + "default": "--username \u003crabbitmq username\u003e", + "type": "named", + "name": "--username \u003crabbitmq username\u003e", + "value_hint": "\u003crabbitmq username\u003e" + }, + { + "description": "RabbitMQ password", + "is_required": true, + "format": "string", + "value": "--password \u003crabbitmq password\u003e", + "default": "--password \u003crabbitmq password\u003e", + "type": "named", + "name": "--password \u003crabbitmq password\u003e", + "value_hint": "\u003crabbitmq password\u003e" + }, + { + "description": "Whether to use TLS (amqps protocol)", + "is_required": true, + "format": "string", + "value": "--use-tls \u003ctrue if uses amqps, false otherwise\u003e", + "default": "--use-tls \u003ctrue if uses amqps, false otherwise\u003e", + "type": "named", + "name": "--use-tls \u003ctrue if uses amqps, false otherwise\u003e", + "value_hint": "\u003ctrue if uses amqps, false otherwise\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "edf43b88-36a4-4f07-9d46-cab08bd418aa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-rabbitmq", - "version": "2.0.0", - "package_arguments": [ - { - "description": "Specify directory to run the package from", - "is_required": true, - "format": "string", - "value": "--directory /path/to/repo/mcp-server-rabbitmq", - "default": "--directory /path/to/repo/mcp-server-rabbitmq", - "type": "named", - "name": "--directory /path/to/repo/mcp-server-rabbitmq", - "value_hint": "/path/to/repo/mcp-server-rabbitmq" - }, - { - "description": "Package or script name to execute", - "is_required": true, - "format": "string", - "value": "mcp-server-rabbitmq", - "default": "mcp-server-rabbitmq", - "type": "positional", - "value_hint": "mcp-server-rabbitmq" - }, - { - "description": "RabbitMQ host name", - "is_required": true, - "format": "string", - "value": "--rabbitmq-host ", - "default": "--rabbitmq-host ", - "type": "named", - "name": "--rabbitmq-host ", - "value_hint": "" - }, - { - "description": "RabbitMQ port number", - "is_required": true, - "format": "string", - "value": "--port ", - "default": "--port ", - "type": "named", - "name": "--port ", - "value_hint": "" - }, - { - "description": "RabbitMQ username", - "is_required": true, - "format": "string", - "value": "--username ", - "default": "--username ", - "type": "named", - "name": "--username ", - "value_hint": "" - }, - { - "description": "RabbitMQ password", - "is_required": true, - "format": "string", - "value": "--password ", - "default": "--password ", - "type": "named", - "name": "--password ", - "value_hint": "" - }, - { - "description": "Whether to use TLS (amqps protocol)", - "is_required": true, - "format": "string", - "value": "--use-tls ", - "default": "--use-tls ", - "type": "named", - "name": "--use-tls ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "abcd869f-0159-408c-8965-9dbcc8c2d001", - "name": "io.github.apify/mcp-server-rag-web-browser", - "description": "A MCP Server for the RAG Web Browser Actor", - "repository": { - "url": "https://github.com/apify/mcp-server-rag-web-browser", - "source": "github", - "id": "899577906" + "server": { + "name": "io.github.apify/mcp-server-rag-web-browser", + "description": "A MCP Server for the RAG Web Browser Actor", + "status": "active", + "repository": { + "url": "https://github.com/apify/mcp-server-rag-web-browser", + "source": "github", + "id": "899577906" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@apify/mcp-server-rag-web-browser", + "version": "0.1.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "abcd869f-0159-408c-8965-9dbcc8c2d001", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@apify/mcp-server-rag-web-browser", - "version": "0.1.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ddfb0c36-c116-4333-a62e-c9447d699b6e", - "name": "io.github.hiromitsusasaki/raindrop-io-mcp-server", - "description": "An integration that allows LLMs to interact with Raindrop.io bookmarks using the Model Context Protocol (MCP).", - "repository": { - "url": "https://github.com/hiromitsusasaki/raindrop-io-mcp-server", - "source": "github", - "id": "914932138" + "server": { + "name": "io.github.hiromitsusasaki/raindrop-io-mcp-server", + "description": "An integration that allows LLMs to interact with Raindrop.io bookmarks using the Model Context Protocol (MCP).", + "status": "active", + "repository": { + "url": "https://github.com/hiromitsusasaki/raindrop-io-mcp-server", + "source": "github", + "id": "914932138" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "raindrop-io-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "PATH_TO_BUILD/index.js", + "is_required": true, + "format": "string", + "value": "PATH_TO_BUILD/index.js", + "default": "PATH_TO_BUILD/index.js", + "type": "positional", + "value_hint": "PATH_TO_BUILD/index.js" + } + ], + "environment_variables": [ + { + "description": "your_access_token_here", + "name": "RAINDROP_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ddfb0c36-c116-4333-a62e-c9447d699b6e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "raindrop-io-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "PATH_TO_BUILD/index.js", - "is_required": true, - "format": "string", - "value": "PATH_TO_BUILD/index.js", - "default": "PATH_TO_BUILD/index.js", - "type": "positional", - "value_hint": "PATH_TO_BUILD/index.js" - } - ], - "environment_variables": [ - { - "description": "your_access_token_here", - "name": "RAINDROP_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c214300b-5fcc-48fb-ad3a-bb2d14b0403d", - "name": "io.github.dschuler36/reaper-mcp-server", - "description": "An MCP Server for interacting with Reaper projects.", - "repository": { - "url": "https://github.com/dschuler36/reaper-mcp-server", - "source": "github", - "id": "917958763" + "server": { + "name": "io.github.dschuler36/reaper-mcp-server", + "description": "An MCP Server for interacting with Reaper projects.", + "status": "active", + "repository": { + "url": "https://github.com/dschuler36/reaper-mcp-server", + "source": "github", + "id": "917958763" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "reaper-mcp-server", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c214300b-5fcc-48fb-ad3a-bb2d14b0403d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:19Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "reaper-mcp-server", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "01129bff-3d65-4e3d-8e82-6f2f269f818c", - "name": "io.github.gongrzhe/redis-mcp-server", - "description": "A Redis MCP server (pushed to https://github.com/modelcontextprotocol/servers/tree/main/src/redis) implementation for interacting with Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.", - "repository": { - "url": "https://github.com/GongRzhe/REDIS-MCP-Server", - "source": "github", - "id": "907849235" + "server": { + "name": "io.github.gongrzhe/redis-mcp-server", + "description": "A Redis MCP server (pushed to https://github.com/modelcontextprotocol/servers/tree/main/src/redis) implementation for interacting with Redis databases. This server enables LLMs to interact with Redis key-value stores through a set of standardized tools.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/REDIS-MCP-Server", + "source": "github", + "id": "907849235" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@gongrzhe/server-redis-mcp", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Docker image to run", + "is_required": true, + "format": "string", + "value": "mcp/redis", + "default": "mcp/redis", + "type": "positional", + "value_hint": "mcp/redis" + }, + { + "description": "Redis server connection string", + "is_required": true, + "format": "string", + "value": "redis://host.docker.internal:6379", + "default": "redis://host.docker.internal:6379", + "type": "positional", + "value_hint": "host.docker.internal:6379" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "01129bff-3d65-4e3d-8e82-6f2f269f818c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:21Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@gongrzhe/server-redis-mcp", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Docker image to run", - "is_required": true, - "format": "string", - "value": "mcp/redis", - "default": "mcp/redis", - "type": "positional", - "value_hint": "mcp/redis" - }, - { - "description": "Redis server connection string", - "is_required": true, - "format": "string", - "value": "redis://host.docker.internal:6379", - "default": "redis://host.docker.internal:6379", - "type": "positional", - "value_hint": "host.docker.internal:6379" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8f234bf9-d65f-4406-bed6-f8217adee4c9", - "name": "io.github.prajwalnayak7/mcp-server-redis", - "description": "MCP server to interact with Redis Server, AWS Memory DB, etc for caching or other use-cases where in-memory and key-value based storage is appropriate", - "repository": { - "url": "https://github.com/prajwalnayak7/mcp-server-redis", - "source": "github", - "id": "925879641" + "server": { + "name": "io.github.prajwalnayak7/mcp-server-redis", + "description": "MCP server to interact with Redis Server, AWS Memory DB, etc for caching or other use-cases where in-memory and key-value based storage is appropriate", + "status": "active", + "repository": { + "url": "https://github.com/prajwalnayak7/mcp-server-redis", + "source": "github", + "id": "925879641" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-redis", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8f234bf9-d65f-4406-bed6-f8217adee4c9", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:24Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-redis", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "b5ee338d-655b-4067-9e17-f1bfc442a1eb", - "name": "io.github.skydeckai/mcp-server-rememberizer", - "description": "An MCP Server to enable global access to Rememberizer", - "repository": { - "url": "https://github.com/skydeckai/mcp-server-rememberizer", - "source": "github", - "id": "901090359" + "server": { + "name": "io.github.skydeckai/mcp-server-rememberizer", + "description": "An MCP Server to enable global access to Rememberizer", + "status": "active", + "repository": { + "url": "https://github.com/skydeckai/mcp-server-rememberizer", + "source": "github", + "id": "901090359" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-server-rememberizer", + "version": "0.1.5", + "environment_variables": [ + { + "description": "your_rememberizer_api_token", + "name": "REMEMBERIZER_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "b5ee338d-655b-4067-9e17-f1bfc442a1eb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:26Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-server-rememberizer", - "version": "0.1.5", - "environment_variables": [ - { - "description": "your_rememberizer_api_token", - "name": "REMEMBERIZER_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ab0a0d85-7031-4eb0-bd01-5db69fb8c667", - "name": "io.github.deepfates/mcp-replicate", - "description": "Model Context Protocol server for Replicate's API", - "repository": { - "url": "https://github.com/deepfates/mcp-replicate", - "source": "github", - "id": "913589706" + "server": { + "name": "io.github.deepfates/mcp-replicate", + "description": "Model Context Protocol server for Replicate's API", + "status": "active", + "repository": { + "url": "https://github.com/deepfates/mcp-replicate", + "source": "github", + "id": "913589706" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-replicate", + "version": "0.1.1", + "environment_variables": [ + { + "description": "your_token_here", + "name": "REPLICATE_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ab0a0d85-7031-4eb0-bd01-5db69fb8c667", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:28Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-replicate", - "version": "0.1.1", - "environment_variables": [ - { - "description": "your_token_here", - "name": "REPLICATE_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0c43f128-7589-4ce6-9382-5399ba24bebd", - "name": "io.github.xxxbrian/mcp-rquest", - "description": "A MCP server providing realistic browser-like HTTP request capabilities with accurate TLS/JA3/JA4 fingerprints for bypassing anti-bot measures. It also supports converting PDF and HTML documents to Markdown for easier processing by LLMs.", - "repository": { - "url": "https://github.com/xxxbrian/mcp-rquest", - "source": "github", - "id": "950863558" + "server": { + "name": "io.github.xxxbrian/mcp-rquest", + "description": "A MCP server providing realistic browser-like HTTP request capabilities with accurate TLS/JA3/JA4 fingerprints for bypassing anti-bot measures. It also supports converting PDF and HTML documents to Markdown for easier processing by LLMs.", + "status": "active", + "repository": { + "url": "https://github.com/xxxbrian/mcp-rquest", + "source": "github", + "id": "950863558" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-rquest", + "version": "0.1.13" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0c43f128-7589-4ce6-9382-5399ba24bebd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-rquest", - "version": "0.1.13" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6a64a548-c36c-400f-b43c-4d977aa1e482", - "name": "io.github.r-huijts/rijksmuseum-mcp", - "description": "Rijksmuseum MCP integration for artwork exploration and analysis", - "repository": { - "url": "https://github.com/r-huijts/rijksmuseum-mcp", - "source": "github", - "id": "907496920" + "server": { + "name": "io.github.r-huijts/rijksmuseum-mcp", + "description": "Rijksmuseum MCP integration for artwork exploration and analysis", + "status": "active", + "repository": { + "url": "https://github.com/r-huijts/rijksmuseum-mcp", + "source": "github", + "id": "907496920" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-server-rijksmuseum", + "version": "1.0.4", + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "RIJKSMUSEUM_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6a64a548-c36c-400f-b43c-4d977aa1e482", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-server-rijksmuseum", - "version": "1.0.4", - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "RIJKSMUSEUM_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "87e2c1e7-4fdb-436f-b52c-af683f63fb1b", - "name": "io.github.jifrozen0110/mcp-riot", - "description": "League of Legends MCP Server", - "repository": { - "url": "https://github.com/jifrozen0110/mcp-riot", - "source": "github", - "id": "967790464" + "server": { + "name": "io.github.jifrozen0110/mcp-riot", + "description": "League of Legends MCP Server", + "status": "active", + "repository": { + "url": "https://github.com/jifrozen0110/mcp-riot", + "source": "github", + "id": "967790464" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "riot", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "87e2c1e7-4fdb-436f-b52c-af683f63fb1b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:34Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "riot", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0e45cb5a-5b45-47f3-8b5e-12bdf88d176a", - "name": "io.github.smn2gnt/mcp-salesforce", - "description": "MCP Salesforce connector", - "repository": { - "url": "https://github.com/smn2gnt/MCP-Salesforce", - "source": "github", - "id": "904538810" + "server": { + "name": "io.github.smn2gnt/mcp-salesforce", + "description": "MCP Salesforce connector", + "status": "active", + "repository": { + "url": "https://github.com/smn2gnt/MCP-Salesforce", + "source": "github", + "id": "904538810" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-salesforce-connector", + "version": "0.1.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0e45cb5a-5b45-47f3-8b5e-12bdf88d176a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-salesforce-connector", - "version": "0.1.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f43b2576-74d3-4b79-b9d0-0c5816835369", - "name": "io.github.adityak74/mcp-scholarly", - "description": "A MCP server to search for accurate academic articles.", - "repository": { - "url": "https://github.com/adityak74/mcp-scholarly", - "source": "github", - "id": "910698593" + "server": { + "name": "io.github.adityak74/mcp-scholarly", + "description": "A MCP server to search for accurate academic articles.", + "status": "active", + "repository": { + "url": "https://github.com/adityak74/mcp-scholarly", + "source": "github", + "id": "910698593" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-scholarly", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f43b2576-74d3-4b79-b9d0-0c5816835369", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:43Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-scholarly", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "874336ad-3dfa-467f-8356-3de7d8b2b93d", - "name": "io.github.cyberchitta/scrapling-fetch-mcp", - "description": "Helps AI assistants access text content from bot-protected websites. MCP server that fetches HTML/markdown from sites with anti-automation measures using Scrapling.", - "repository": { - "url": "https://github.com/cyberchitta/scrapling-fetch-mcp", - "source": "github", - "id": "947737843" + "server": { + "name": "io.github.cyberchitta/scrapling-fetch-mcp", + "description": "Helps AI assistants access text content from bot-protected websites. MCP server that fetches HTML/markdown from sites with anti-automation measures using Scrapling.", + "status": "active", + "repository": { + "url": "https://github.com/cyberchitta/scrapling-fetch-mcp", + "source": "github", + "id": "947737843" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "scrapling-fetch-mcp", + "version": "0.1.6" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "874336ad-3dfa-467f-8356-3de7d8b2b93d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:45Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "scrapling-fetch-mcp", - "version": "0.1.6" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "02cdb980-1dcd-4345-a8d1-d3f3f522d04b", - "name": "io.github.ihor-sokoliuk/mcp-searxng", - "description": "MCP Server for SearXNG", - "repository": { - "url": "https://github.com/ihor-sokoliuk/mcp-searxng", - "source": "github", - "id": "907172461" + "server": { + "name": "io.github.ihor-sokoliuk/mcp-searxng", + "description": "MCP Server for SearXNG", + "status": "active", + "repository": { + "url": "https://github.com/ihor-sokoliuk/mcp-searxng", + "source": "github", + "id": "907172461" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-searxng", + "version": "0.4.6", + "package_arguments": [ + { + "description": "Run an image", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "Remove container after run", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Set environment variable in container", + "is_required": true, + "format": "string", + "value": "-e SEARXNG_URL", + "default": "-e SEARXNG_URL", + "type": "named", + "name": "-e SEARXNG_URL", + "value_hint": "SEARXNG_URL" + } + ], + "environment_variables": [ + { + "description": "YOUR_SEARXNG_INSTANCE_URL", + "name": "SEARXNG_URL" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "02cdb980-1dcd-4345-a8d1-d3f3f522d04b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-searxng", - "version": "0.4.6", - "package_arguments": [ - { - "description": "Run an image", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "Remove container after run", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Set environment variable in container", - "is_required": true, - "format": "string", - "value": "-e SEARXNG_URL", - "default": "-e SEARXNG_URL", - "type": "named", - "name": "-e SEARXNG_URL", - "value_hint": "SEARXNG_URL" - } - ], - "environment_variables": [ - { - "description": "YOUR_SEARXNG_INSTANCE_URL", - "name": "SEARXNG_URL" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8d526532-7125-4b3c-b180-901914ead390", - "name": "io.github.stefanoamorelli/sec-edgar-mcp", - "description": "A Model Context Protocol (MCP) Server for SEC EDGAR", - "repository": { - "url": "https://github.com/stefanoamorelli/sec-edgar-mcp", - "source": "github", - "id": "958733763" + "server": { + "name": "io.github.stefanoamorelli/sec-edgar-mcp", + "description": "A Model Context Protocol (MCP) Server for SEC EDGAR", + "status": "active", + "repository": { + "url": "https://github.com/stefanoamorelli/sec-edgar-mcp", + "source": "github", + "id": "958733763" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "sec-edgar-mcp", + "version": "0.1.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8d526532-7125-4b3c-b180-901914ead390", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "sec-edgar-mcp", - "version": "0.1.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3f9a95e0-3a22-4ff8-8c92-60d89d847f5c", - "name": "io.github.osomai/servicenow-mcp", - "description": "MCP Server for ServiceNow", - "repository": { - "url": "https://github.com/osomai/servicenow-mcp", - "source": "github", - "id": "941149907" + "server": { + "name": "io.github.osomai/servicenow-mcp", + "description": "MCP Server for ServiceNow", + "status": "active", + "repository": { + "url": "https://github.com/osomai/servicenow-mcp", + "source": "github", + "id": "941149907" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "servicenow-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Python module execution flag and module name", + "is_required": true, + "format": "string", + "value": "-m servicenow_mcp.cli", + "default": "-m servicenow_mcp.cli", + "type": "positional", + "value_hint": "servicenow_mcp.cli" + } + ], + "environment_variables": [ + { + "description": "https://your-instance.service-now.com", + "name": "SERVICENOW_INSTANCE_URL" + }, + { + "description": "your-username", + "name": "SERVICENOW_USERNAME" + }, + { + "description": "your-password", + "name": "SERVICENOW_PASSWORD" + }, + { + "description": "basic", + "name": "SERVICENOW_AUTH_TYPE" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3f9a95e0-3a22-4ff8-8c92-60d89d847f5c", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:53Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "servicenow-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Python module execution flag and module name", - "is_required": true, - "format": "string", - "value": "-m servicenow_mcp.cli", - "default": "-m servicenow_mcp.cli", - "type": "positional", - "value_hint": "servicenow_mcp.cli" - } - ], - "environment_variables": [ - { - "description": "https://your-instance.service-now.com", - "name": "SERVICENOW_INSTANCE_URL" - }, - { - "description": "your-username", - "name": "SERVICENOW_USERNAME" - }, - { - "description": "your-password", - "name": "SERVICENOW_PASSWORD" - }, - { - "description": "basic", - "name": "SERVICENOW_AUTH_TYPE" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fcde90d4-5b99-4262-8101-7a507bf05915", - "name": "io.github.geli2001/shopify-mcp", - "description": "MCP server for Shopify api, usable on mcp clients such as Anthropic's Claude and Cursor IDE", - "repository": { - "url": "https://github.com/GeLi2001/shopify-mcp", - "source": "github", - "id": "958329576" + "server": { + "name": "io.github.geli2001/shopify-mcp", + "description": "MCP server for Shopify api, usable on mcp clients such as Anthropic's Claude and Cursor IDE", + "status": "active", + "repository": { + "url": "https://github.com/GeLi2001/shopify-mcp", + "source": "github", + "id": "958329576" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "shopify-mcp", + "version": "1.0.5", + "package_arguments": [ + { + "description": "--accessToken \u003cYOUR_ACCESS_TOKEN\u003e", + "is_required": true, + "format": "string", + "value": "--accessToken \u003cYOUR_ACCESS_TOKEN\u003e", + "default": "--accessToken \u003cYOUR_ACCESS_TOKEN\u003e", + "type": "named", + "name": "--accessToken \u003cYOUR_ACCESS_TOKEN\u003e", + "value_hint": "\u003cYOUR_ACCESS_TOKEN\u003e" + }, + { + "description": "--domain \u003cYOUR_SHOP\u003e.myshopify.com", + "is_required": true, + "format": "string", + "value": "--domain \u003cYOUR_SHOP\u003e.myshopify.com", + "default": "--domain \u003cYOUR_SHOP\u003e.myshopify.com", + "type": "named", + "name": "--domain \u003cYOUR_SHOP\u003e.myshopify.com", + "value_hint": "\u003cYOUR_SHOP\u003e.myshopify.com" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fcde90d4-5b99-4262-8101-7a507bf05915", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:55Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "shopify-mcp", - "version": "1.0.5", - "package_arguments": [ - { - "description": "--accessToken ", - "is_required": true, - "format": "string", - "value": "--accessToken ", - "default": "--accessToken ", - "type": "named", - "name": "--accessToken ", - "value_hint": "" - }, - { - "description": "--domain .myshopify.com", - "is_required": true, - "format": "string", - "value": "--domain .myshopify.com", - "default": "--domain .myshopify.com", - "type": "named", - "name": "--domain .myshopify.com", - "value_hint": ".myshopify.com" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "fbef362d-ba4b-4708-8579-332d2a57582d", - "name": "io.github.dvcrn/mcp-server-siri-shortcuts", - "description": "MCP for calling Siri Shorcuts from LLMs", - "repository": { - "url": "https://github.com/dvcrn/mcp-server-siri-shortcuts", - "source": "github", - "id": "938652536" + "server": { + "name": "io.github.dvcrn/mcp-server-siri-shortcuts", + "description": "MCP for calling Siri Shorcuts from LLMs", + "status": "active", + "repository": { + "url": "https://github.com/dvcrn/mcp-server-siri-shortcuts", + "source": "github", + "id": "938652536" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-server-siri-shortcuts", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "fbef362d-ba4b-4708-8579-332d2a57582d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:13:57Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-server-siri-shortcuts", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "61942e80-99c9-4856-90c8-5a11ac76ade5", - "name": "io.github.isaacwasserman/mcp-snowflake-server", - "description": "", - "repository": { - "url": "https://github.com/isaacwasserman/mcp-snowflake-server", - "source": "github", - "id": "903050511" + "server": { + "name": "io.github.isaacwasserman/mcp-snowflake-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/isaacwasserman/mcp-snowflake-server", + "source": "github", + "id": "903050511" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp_snowflake_server", + "version": "0.4.0", + "package_arguments": [ + { + "description": "--python=3.12", + "is_required": true, + "format": "string", + "value": "--python=3.12", + "default": "--python=3.12", + "type": "named", + "name": "--python=3.12", + "value_hint": "3.12" + }, + { + "description": "--directory /absolute/path/to/mcp_snowflake_server", + "is_required": true, + "format": "string", + "value": "--directory /absolute/path/to/mcp_snowflake_server", + "default": "--directory /absolute/path/to/mcp_snowflake_server", + "type": "named", + "name": "--directory /absolute/path/to/mcp_snowflake_server", + "value_hint": "/absolute/path/to/mcp_snowflake_server" + }, + { + "description": "mcp_snowflake_server", + "is_required": true, + "format": "string", + "value": "mcp_snowflake_server", + "default": "mcp_snowflake_server", + "type": "positional", + "value_hint": "mcp_snowflake_server" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "61942e80-99c9-4856-90c8-5a11ac76ade5", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp_snowflake_server", - "version": "0.4.0", - "package_arguments": [ - { - "description": "--python=3.12", - "is_required": true, - "format": "string", - "value": "--python=3.12", - "default": "--python=3.12", - "type": "named", - "name": "--python=3.12", - "value_hint": "3.12" - }, - { - "description": "--directory /absolute/path/to/mcp_snowflake_server", - "is_required": true, - "format": "string", - "value": "--directory /absolute/path/to/mcp_snowflake_server", - "default": "--directory /absolute/path/to/mcp_snowflake_server", - "type": "named", - "name": "--directory /absolute/path/to/mcp_snowflake_server", - "value_hint": "/absolute/path/to/mcp_snowflake_server" - }, - { - "description": "mcp_snowflake_server", - "is_required": true, - "format": "string", - "value": "mcp_snowflake_server", - "default": "mcp_snowflake_server", - "type": "positional", - "value_hint": "mcp_snowflake_server" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "523175e8-6767-4387-af85-a46f256a6390", - "name": "io.github.szeider/mcp-solver", - "description": "Model Context Protocol (MCP) server for constraint optimization and solving\"", - "repository": { - "url": "https://github.com/szeider/mcp-solver", - "source": "github", - "id": "903561149" + "server": { + "name": "io.github.szeider/mcp-solver", + "description": "Model Context Protocol (MCP) server for constraint optimization and solving\"", + "status": "active", + "repository": { + "url": "https://github.com/szeider/mcp-solver", + "source": "github", + "id": "903561149" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-solver", + "version": "3.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "523175e8-6767-4387-af85-a46f256a6390", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-solver", - "version": "3.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "387ef1e6-0e4c-43ea-9416-bf3b399a3c76", - "name": "io.github.yeonupark/mcp-soccer-data", - "description": "An MCP server that provides real-time football data based on the SoccerDataAPI.", - "repository": { - "url": "https://github.com/yeonupark/mcp-soccer-data", - "source": "github", - "id": "966702385" + "server": { + "name": "io.github.yeonupark/mcp-soccer-data", + "description": "An MCP server that provides real-time football data based on the SoccerDataAPI.", + "status": "active", + "repository": { + "url": "https://github.com/yeonupark/mcp-soccer-data", + "source": "github", + "id": "966702385" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-soccer-data", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "387ef1e6-0e4c-43ea-9416-bf3b399a3c76", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-soccer-data", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f25f6cdb-0623-4a04-bac2-f1b26331b432", - "name": "io.github.sendaifun/solana-agent-kit", - "description": "connect any ai agents to solana protocols", - "repository": { - "url": "https://github.com/sendaifun/solana-agent-kit", - "source": "github", - "id": "889798967" + "server": { + "name": "io.github.sendaifun/solana-agent-kit", + "description": "connect any ai agents to solana protocols", + "status": "active", + "repository": { + "url": "https://github.com/sendaifun/solana-agent-kit", + "source": "github", + "id": "889798967" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "solana-agent-kit", + "version": "2.0.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f25f6cdb-0623-4a04-bac2-f1b26331b432", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "solana-agent-kit", - "version": "2.0.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "20c38c50-831e-478a-9f52-064d3ad8a6ce", - "name": "io.github.varunneal/spotify-mcp", - "description": "MCP to connect your LLM with Spotify.", - "repository": { - "url": "https://github.com/varunneal/spotify-mcp", - "source": "github", - "id": "896675928" + "server": { + "name": "io.github.varunneal/spotify-mcp", + "description": "MCP to connect your LLM with Spotify.", + "status": "active", + "repository": { + "url": "https://github.com/varunneal/spotify-mcp", + "source": "github", + "id": "896675928" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "spotify-mcp", + "version": "0.2.0", + "package_arguments": [ + { + "description": "Set the working directory", + "is_required": true, + "format": "string", + "value": "--directory /path/to/spotify_mcp", + "default": "--directory /path/to/spotify_mcp", + "type": "named", + "name": "--directory /path/to/spotify_mcp", + "value_hint": "/path/to/spotify_mcp" + }, + { + "description": "Program to run", + "is_required": true, + "format": "string", + "value": "spotify-mcp", + "default": "spotify-mcp", + "type": "positional", + "value_hint": "spotify-mcp" + } + ], + "environment_variables": [ + { + "description": "YOUR_CLIENT_ID", + "name": "SPOTIFY_CLIENT_ID" + }, + { + "description": "YOUR_CLIENT_SECRET", + "name": "SPOTIFY_CLIENT_SECRET" + }, + { + "description": "http://127.0.0.1:8080/callback", + "name": "SPOTIFY_REDIRECT_URI" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "20c38c50-831e-478a-9f52-064d3ad8a6ce", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:13Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "spotify-mcp", - "version": "0.2.0", - "package_arguments": [ - { - "description": "Set the working directory", - "is_required": true, - "format": "string", - "value": "--directory /path/to/spotify_mcp", - "default": "--directory /path/to/spotify_mcp", - "type": "named", - "name": "--directory /path/to/spotify_mcp", - "value_hint": "/path/to/spotify_mcp" - }, - { - "description": "Program to run", - "is_required": true, - "format": "string", - "value": "spotify-mcp", - "default": "spotify-mcp", - "type": "positional", - "value_hint": "spotify-mcp" - } - ], - "environment_variables": [ - { - "description": "YOUR_CLIENT_ID", - "name": "SPOTIFY_CLIENT_ID" - }, - { - "description": "YOUR_CLIENT_SECRET", - "name": "SPOTIFY_CLIENT_SECRET" - }, - { - "description": "http://127.0.0.1:8080/callback", - "name": "SPOTIFY_REDIRECT_URI" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "09a2ecf8-1774-490e-8542-2b25a6445a58", - "name": "io.github.r-huijts/strava-mcp", - "description": "A Model Context Protocol (MCP) server that connects to Strava API, providing tools to access Strava data through LLMs", - "repository": { - "url": "https://github.com/r-huijts/strava-mcp", - "source": "github", - "id": "961429605" + "server": { + "name": "io.github.r-huijts/strava-mcp", + "description": "A Model Context Protocol (MCP) server that connects to Strava API, providing tools to access Strava data through LLMs", + "status": "active", + "repository": { + "url": "https://github.com/r-huijts/strava-mcp", + "source": "github", + "id": "961429605" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "strava-mcp-server", + "version": "1.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "09a2ecf8-1774-490e-8542-2b25a6445a58", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "strava-mcp-server", - "version": "1.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e532ff07-269a-47fb-98ad-6315d7081ccb", - "name": "io.github.atharvagupta2003/mcp-stripe", - "description": "", - "repository": { - "url": "https://github.com/atharvagupta2003/mcp-stripe", - "source": "github", - "id": "928410809" + "server": { + "name": "io.github.atharvagupta2003/mcp-stripe", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/atharvagupta2003/mcp-stripe", + "source": "github", + "id": "928410809" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-stripe", + "version": "0.1.0", + "package_arguments": [ + { + "description": "charge_id argument", + "is_required": true, + "format": "string", + "value": "charge_id ch_abc123", + "default": "charge_id ch_abc123", + "type": "named", + "name": "charge_id ch_abc123", + "value_hint": "ch_abc123" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e532ff07-269a-47fb-98ad-6315d7081ccb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-stripe", - "version": "0.1.0", - "package_arguments": [ - { - "description": "charge_id argument", - "is_required": true, - "format": "string", - "value": "charge_id ch_abc123", - "default": "charge_id ch_abc123", - "type": "named", - "name": "charge_id ch_abc123", - "value_hint": "ch_abc123" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0b245c5f-ba2b-4e8d-b9db-26681b0fa2e3", - "name": "io.github.wilsonchenghy/shadertoy-mcp", - "description": "", - "repository": { - "url": "https://github.com/wilsonchenghy/ShaderToy-MCP", - "source": "github", - "id": "958998300" + "server": { + "name": "io.github.wilsonchenghy/shadertoy-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/wilsonchenghy/ShaderToy-MCP", + "source": "github", + "id": "958998300" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "wilsonchenghy/ShaderToy-MCP", + "version": "", + "package_arguments": [ + { + "description": "Use with optional extra dependencies", + "is_required": true, + "format": "string", + "value": "--with mcp[cli]", + "default": "--with mcp[cli]", + "type": "named", + "name": "--with mcp[cli]", + "value_hint": "mcp[cli]" + }, + { + "description": "Specify mcp command", + "is_required": true, + "format": "string", + "value": "mcp", + "default": "mcp", + "type": "positional", + "value_hint": "mcp" + }, + { + "description": "Path to the ShaderToy-MCP server script", + "is_required": true, + "format": "string", + "value": "\u003cpath_to_project\u003e/ShaderToy-MCP/src/ShaderToy-MCP/server.py", + "default": "\u003cpath_to_project\u003e/ShaderToy-MCP/src/ShaderToy-MCP/server.py", + "type": "positional", + "value_hint": "\u003cpath_to_project\u003e/ShaderToy-MCP/src/ShaderToy-MCP/server.py" + } + ], + "environment_variables": [ + { + "description": "your_actual_api_key", + "name": "SHADERTOY_APP_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0b245c5f-ba2b-4e8d-b9db-26681b0fa2e3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:23Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "wilsonchenghy/ShaderToy-MCP", - "version": "", - "package_arguments": [ - { - "description": "Use with optional extra dependencies", - "is_required": true, - "format": "string", - "value": "--with mcp[cli]", - "default": "--with mcp[cli]", - "type": "named", - "name": "--with mcp[cli]", - "value_hint": "mcp[cli]" - }, - { - "description": "Specify mcp command", - "is_required": true, - "format": "string", - "value": "mcp", - "default": "mcp", - "type": "positional", - "value_hint": "mcp" - }, - { - "description": "Path to the ShaderToy-MCP server script", - "is_required": true, - "format": "string", - "value": "/ShaderToy-MCP/src/ShaderToy-MCP/server.py", - "default": "/ShaderToy-MCP/src/ShaderToy-MCP/server.py", - "type": "positional", - "value_hint": "/ShaderToy-MCP/src/ShaderToy-MCP/server.py" - } - ], - "environment_variables": [ - { - "description": "your_actual_api_key", - "name": "SHADERTOY_APP_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9826cb7a-bc6f-41d9-b9b7-f76f781c1eca", - "name": "io.github.sonnylazuardi/cursor-talk-to-figma-mcp", - "description": "Cursor Talk To Figma MCP", - "repository": { - "url": "https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp", - "source": "github", - "id": "949523404" + "server": { + "name": "io.github.sonnylazuardi/cursor-talk-to-figma-mcp", + "description": "Cursor Talk To Figma MCP", + "status": "active", + "repository": { + "url": "https://github.com/sonnylazuardi/cursor-talk-to-figma-mcp", + "source": "github", + "id": "949523404" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "cursor-talk-to-figma-mcp", + "version": "0.2.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9826cb7a-bc6f-41d9-b9b7-f76f781c1eca", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "cursor-talk-to-figma-mcp", - "version": "0.2.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ff2b0e88-9426-4aa1-bfb1-165cc810344f", - "name": "io.github.laksh-star/mcp-server-tmdb", - "description": "MCP Server with TMDB", - "repository": { - "url": "https://github.com/Laksh-star/mcp-server-tmdb", - "source": "github", - "id": "901420381" + "server": { + "name": "io.github.laksh-star/mcp-server-tmdb", + "description": "MCP Server with TMDB", + "status": "active", + "repository": { + "url": "https://github.com/Laksh-star/mcp-server-tmdb", + "source": "github", + "id": "901420381" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-tmdb", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "TMDB_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ff2b0e88-9426-4aa1-bfb1-165cc810344f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:27Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-tmdb", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "TMDB_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bdeb1cca-49ce-476a-87a2-f27c30b086bd", - "name": "io.github.ramxx/mcp-tavily", - "description": "An MCP server for Tavily's search API", - "repository": { - "url": "https://github.com/RamXX/mcp-tavily", - "source": "github", - "id": "896967375" + "server": { + "name": "io.github.ramxx/mcp-tavily", + "description": "An MCP server for Tavily's search API", + "status": "active", + "repository": { + "url": "https://github.com/RamXX/mcp-tavily", + "source": "github", + "id": "896967375" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp_tavily", + "version": "0.1.8", + "package_arguments": [ + { + "description": "Python module execution: -m mcp_server_tavily", + "is_required": true, + "format": "string", + "value": "-m mcp_server_tavily", + "default": "-m mcp_server_tavily", + "type": "named", + "name": "-m mcp_server_tavily", + "value_hint": "mcp_server_tavily" + } + ], + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "TAVILY_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bdeb1cca-49ce-476a-87a2-f27c30b086bd", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp_tavily", - "version": "0.1.8", - "package_arguments": [ - { - "description": "Python module execution: -m mcp_server_tavily", - "is_required": true, - "format": "string", - "value": "-m mcp_server_tavily", - "default": "-m mcp_server_tavily", - "type": "named", - "name": "-m mcp_server_tavily", - "value_hint": "mcp_server_tavily" - } - ], - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "TAVILY_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cb9e2dc2-e335-4271-8e8d-5aff43cd389b", - "name": "io.github.arturborycki/mcp-teradata", - "description": "MCP Server for Teradata database", - "repository": { - "url": "https://github.com/arturborycki/mcp-teradata", - "source": "github", - "id": "970353793" + "server": { + "name": "io.github.arturborycki/mcp-teradata", + "description": "MCP Server for Teradata database", + "status": "active", + "repository": { + "url": "https://github.com/arturborycki/mcp-teradata", + "source": "github", + "id": "970353793" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "teradata-mcp", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cb9e2dc2-e335-4271-8e8d-5aff43cd389b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "teradata-mcp", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6275eefc-3f97-4a30-85ca-9678de62bdcf", - "name": "io.github.gongrzhe/terminal-controller-mcp", - "description": "A Model Context Protocol (MCP) server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface.", - "repository": { - "url": "https://github.com/GongRzhe/terminal-controller-mcp", - "source": "github", - "id": "938867662" + "server": { + "name": "io.github.gongrzhe/terminal-controller-mcp", + "description": "A Model Context Protocol (MCP) server that enables secure terminal command execution, directory navigation, and file system operations through a standardized interface.", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/terminal-controller-mcp", + "source": "github", + "id": "938867662" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "terminal-controller", + "version": "0.1.8", + "package_arguments": [ + { + "description": "Positional module argument to run the module terminal_controller with python", + "is_required": true, + "format": "string", + "value": "-m terminal_controller", + "default": "-m terminal_controller", + "type": "named", + "name": "-m terminal_controller", + "value_hint": "terminal_controller" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6275eefc-3f97-4a30-85ca-9678de62bdcf", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "terminal-controller", - "version": "0.1.8", - "package_arguments": [ - { - "description": "Positional module argument to run the module terminal_controller with python", - "is_required": true, - "format": "string", - "value": "-m terminal_controller", - "default": "-m terminal_controller", - "type": "named", - "name": "-m terminal_controller", - "value_hint": "terminal_controller" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1aa1e801-80d9-4ea1-80c2-e7d037ce98e3", - "name": "io.github.geli2001/tft-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/GeLi2001/tft-mcp-server", - "source": "github", - "id": "957763921" + "server": { + "name": "io.github.geli2001/tft-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/GeLi2001/tft-mcp-server", + "source": "github", + "id": "957763921" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "mcp-server-tft", + "version": "0.1.3", + "package_arguments": [ + { + "description": "\u003cYOUR_RIOT_API_KEY\u003e", + "is_required": true, + "format": "string", + "value": "--apiKey \u003cYOUR_RIOT_API_KEY\u003e", + "default": "--apiKey \u003cYOUR_RIOT_API_KEY\u003e", + "type": "named", + "name": "--apiKey \u003cYOUR_RIOT_API_KEY\u003e", + "value_hint": "\u003cYOUR_RIOT_API_KEY\u003e" + }, + { + "description": "\u003cYOUR_GAME_NAME\u003e", + "is_required": true, + "format": "string", + "value": "--gameName \u003cYOUR_GAME_NAME\u003e", + "default": "--gameName \u003cYOUR_GAME_NAME\u003e", + "type": "named", + "name": "--gameName \u003cYOUR_GAME_NAME\u003e", + "value_hint": "\u003cYOUR_GAME_NAME\u003e" + }, + { + "description": "\u003cYOUR_TAG_LINE\u003e", + "is_required": true, + "format": "string", + "value": "--tagLine \u003cYOUR_TAG_LINE\u003e", + "default": "--tagLine \u003cYOUR_TAG_LINE\u003e", + "type": "named", + "name": "--tagLine \u003cYOUR_TAG_LINE\u003e", + "value_hint": "\u003cYOUR_TAG_LINE\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1aa1e801-80d9-4ea1-80c2-e7d037ce98e3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:41Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "mcp-server-tft", - "version": "0.1.3", - "package_arguments": [ - { - "description": "", - "is_required": true, - "format": "string", - "value": "--apiKey ", - "default": "--apiKey ", - "type": "named", - "name": "--apiKey ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--gameName ", - "default": "--gameName ", - "type": "named", - "name": "--gameName ", - "value_hint": "" - }, - { - "description": "", - "is_required": true, - "format": "string", - "value": "--tagLine ", - "default": "--tagLine ", - "type": "named", - "name": "--tagLine ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ea41dc54-96fd-41db-90ec-92a1a45e7151", - "name": "io.github.kukapay/thegraph-mcp", - "description": "An MCP server that powers AI agents with indexed blockchain data from The Graph.", - "repository": { - "url": "https://github.com/kukapay/thegraph-mcp", - "source": "github", - "id": "952738950" + "server": { + "name": "io.github.kukapay/thegraph-mcp", + "description": "An MCP server that powers AI agents with indexed blockchain data from The Graph.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/thegraph-mcp", + "source": "github", + "id": "952738950" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "thegraph-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Specifies the directory to run the application from", + "is_required": true, + "format": "string", + "value": "--directory path/to/thegraph-mcp", + "default": "--directory path/to/thegraph-mcp", + "type": "named", + "name": "--directory path/to/thegraph-mcp", + "value_hint": "path/to/thegraph-mcp" + }, + { + "description": "Main python file to execute", + "is_required": true, + "format": "string", + "value": "main.py", + "default": "main.py", + "type": "positional", + "value_hint": "main.py" + } + ], + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "THEGRAPH_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ea41dc54-96fd-41db-90ec-92a1a45e7151", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "thegraph-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Specifies the directory to run the application from", - "is_required": true, - "format": "string", - "value": "--directory path/to/thegraph-mcp", - "default": "--directory path/to/thegraph-mcp", - "type": "named", - "name": "--directory path/to/thegraph-mcp", - "value_hint": "path/to/thegraph-mcp" - }, - { - "description": "Main python file to execute", - "is_required": true, - "format": "string", - "value": "main.py", - "default": "main.py", - "type": "positional", - "value_hint": "main.py" - } - ], - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "THEGRAPH_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7f7268e0-670a-4630-83da-acc1090264c3", - "name": "io.github.delorenj/mcp-server-ticketmaster", - "description": "A Ticketmaster MCP server that provides query capabilites from the Discovery API", - "repository": { - "url": "https://github.com/delorenj/mcp-server-ticketmaster", - "source": "github", - "id": "918433694" + "server": { + "name": "io.github.delorenj/mcp-server-ticketmaster", + "description": "A Ticketmaster MCP server that provides query capabilites from the Discovery API", + "status": "active", + "repository": { + "url": "https://github.com/delorenj/mcp-server-ticketmaster", + "source": "github", + "id": "918433694" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@delorenj/mcp-server-ticketmaster", + "version": "0.2.5", + "environment_variables": [ + { + "description": "your-api-key-here", + "name": "TICKETMASTER_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7f7268e0-670a-4630-83da-acc1090264c3", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:48Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@delorenj/mcp-server-ticketmaster", - "version": "0.2.5", - "environment_variables": [ - { - "description": "your-api-key-here", - "name": "TICKETMASTER_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5c1709d9-3f57-4dbd-a727-5ce383a59c32", - "name": "io.github.alexarevalo9/ticktick-mcp-server", - "description": "A Model Context Protocol (MCP) server designed to integrate with the TickTick task management platform, enabling intelligent context-aware task operations and automation.", - "repository": { - "url": "https://github.com/alexarevalo9/ticktick-mcp-server", - "source": "github", - "id": "957668156" + "server": { + "name": "io.github.alexarevalo9/ticktick-mcp-server", + "description": "A Model Context Protocol (MCP) server designed to integrate with the TickTick task management platform, enabling intelligent context-aware task operations and automation.", + "status": "active", + "repository": { + "url": "https://github.com/alexarevalo9/ticktick-mcp-server", + "source": "github", + "id": "957668156" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "@alexarevalo.ai/mcp-server-ticktick", + "version": "1.1.9", + "package_arguments": [ + { + "description": "Run container in interactive mode", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i", + "value_hint": "-i" + }, + { + "description": "Automatically remove the container when it exits", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm", + "value_hint": "--rm" + }, + { + "description": "Set the TICKTICK_CLIENT_ID environment variable in the container", + "is_required": true, + "format": "string", + "value": "-e TICKTICK_CLIENT_ID", + "default": "-e TICKTICK_CLIENT_ID", + "type": "named", + "name": "-e TICKTICK_CLIENT_ID", + "value_hint": "TICKTICK_CLIENT_ID" + }, + { + "description": "Set the TICKTICK_CLIENT_SECRET environment variable in the container", + "is_required": true, + "format": "string", + "value": "-e TICKTICK_CLIENT_SECRET", + "default": "-e TICKTICK_CLIENT_SECRET", + "type": "named", + "name": "-e TICKTICK_CLIENT_SECRET", + "value_hint": "TICKTICK_CLIENT_SECRET" + }, + { + "description": "Set the TICKTICK_ACCESS_TOKEN environment variable in the container", + "is_required": true, + "format": "string", + "value": "-e TICKTICK_ACCESS_TOKEN", + "default": "-e TICKTICK_ACCESS_TOKEN", + "type": "named", + "name": "-e TICKTICK_ACCESS_TOKEN", + "value_hint": "TICKTICK_ACCESS_TOKEN" + }, + { + "description": "Docker image name", + "is_required": true, + "format": "string", + "value": "mcp/ticktick", + "default": "mcp/ticktick", + "type": "positional", + "value_hint": "mcp/ticktick" + } + ], + "environment_variables": [ + { + "description": "\u003cYOUR_CLIENT_ID\u003e", + "name": "TICKTICK_CLIENT_ID" + }, + { + "description": "\u003cYOUR_CLIENT_SECRET\u003e", + "name": "TICKTICK_CLIENT_SECRET" + }, + { + "description": "\u003cYOUR_ACCESS_TOKEN\u003e", + "name": "TICKTICK_ACCESS_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5c1709d9-3f57-4dbd-a727-5ce383a59c32", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:54Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "@alexarevalo.ai/mcp-server-ticktick", - "version": "1.1.9", - "package_arguments": [ - { - "description": "Run container in interactive mode", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i", - "value_hint": "-i" - }, - { - "description": "Automatically remove the container when it exits", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm", - "value_hint": "--rm" - }, - { - "description": "Set the TICKTICK_CLIENT_ID environment variable in the container", - "is_required": true, - "format": "string", - "value": "-e TICKTICK_CLIENT_ID", - "default": "-e TICKTICK_CLIENT_ID", - "type": "named", - "name": "-e TICKTICK_CLIENT_ID", - "value_hint": "TICKTICK_CLIENT_ID" - }, - { - "description": "Set the TICKTICK_CLIENT_SECRET environment variable in the container", - "is_required": true, - "format": "string", - "value": "-e TICKTICK_CLIENT_SECRET", - "default": "-e TICKTICK_CLIENT_SECRET", - "type": "named", - "name": "-e TICKTICK_CLIENT_SECRET", - "value_hint": "TICKTICK_CLIENT_SECRET" - }, - { - "description": "Set the TICKTICK_ACCESS_TOKEN environment variable in the container", - "is_required": true, - "format": "string", - "value": "-e TICKTICK_ACCESS_TOKEN", - "default": "-e TICKTICK_ACCESS_TOKEN", - "type": "named", - "name": "-e TICKTICK_ACCESS_TOKEN", - "value_hint": "TICKTICK_ACCESS_TOKEN" - }, - { - "description": "Docker image name", - "is_required": true, - "format": "string", - "value": "mcp/ticktick", - "default": "mcp/ticktick", - "type": "positional", - "value_hint": "mcp/ticktick" - } - ], - "environment_variables": [ - { - "description": "", - "name": "TICKTICK_CLIENT_ID" - }, - { - "description": "", - "name": "TICKTICK_CLIENT_SECRET" - }, - { - "description": "", - "name": "TICKTICK_ACCESS_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f79220af-20c6-4d21-b4f6-13f176b7f1d8", - "name": "io.github.abhiz123/todoist-mcp-server", - "description": "MCP server for Todoist integration enabling natural language task management with Claude", - "repository": { - "url": "https://github.com/abhiz123/todoist-mcp-server", - "source": "github", - "id": "898075293" + "server": { + "name": "io.github.abhiz123/todoist-mcp-server", + "description": "MCP server for Todoist integration enabling natural language task management with Claude", + "status": "active", + "repository": { + "url": "https://github.com/abhiz123/todoist-mcp-server", + "source": "github", + "id": "898075293" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@abhiz123/todoist-mcp-server", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your_api_token_here", + "name": "TODOIST_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f79220af-20c6-4d21-b4f6-13f176b7f1d8", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:56Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@abhiz123/todoist-mcp-server", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your_api_token_here", - "name": "TODOIST_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "10bb9deb-9384-4e4d-935e-9d830015a43e", - "name": "io.github.kukapay/token-minter-mcp", - "description": "An MCP server providing tools for AI agents to mint ERC-20 tokens across multiple blockchains.", - "repository": { - "url": "https://github.com/kukapay/token-minter-mcp", - "source": "github", - "id": "951336068" + "server": { + "name": "io.github.kukapay/token-minter-mcp", + "description": "An MCP server providing tools for AI agents to mint ERC-20 tokens across multiple blockchains.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/token-minter-mcp", + "source": "github", + "id": "951336068" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "token-minter-mcp", + "version": "1.0.1", + "package_arguments": [ + { + "description": "Path to the server entry point", + "is_required": true, + "format": "string", + "value": "path/to/token-minter-mcp/server/index.js", + "default": "path/to/token-minter-mcp/server/index.js", + "type": "positional", + "value_hint": "path/to/token-minter-mcp/server/index.js" + } + ], + "environment_variables": [ + { + "description": "your infura key", + "name": "INFURA_KEY" + }, + { + "description": "your private key", + "name": "PRIVATE_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "10bb9deb-9384-4e4d-935e-9d830015a43e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:14:59Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "token-minter-mcp", - "version": "1.0.1", - "package_arguments": [ - { - "description": "Path to the server entry point", - "is_required": true, - "format": "string", - "value": "path/to/token-minter-mcp/server/index.js", - "default": "path/to/token-minter-mcp/server/index.js", - "type": "positional", - "value_hint": "path/to/token-minter-mcp/server/index.js" - } - ], - "environment_variables": [ - { - "description": "your infura key", - "name": "INFURA_KEY" - }, - { - "description": "your private key", - "name": "PRIVATE_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4bd856fc-761e-43e3-9236-7b996b6b7ec7", - "name": "io.github.kukapay/token-revoke-mcp", - "description": "An MCP server for checking and revoking ERC-20 token allowances across multiple blockchains.", - "repository": { - "url": "https://github.com/kukapay/token-revoke-mcp", - "source": "github", - "id": "956577908" + "server": { + "name": "io.github.kukapay/token-revoke-mcp", + "description": "An MCP server for checking and revoking ERC-20 token allowances across multiple blockchains.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/token-revoke-mcp", + "source": "github", + "id": "956577908" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "token-revoke-mcp", + "version": "1.0.0", + "environment_variables": [ + { + "description": "your moralis api key", + "name": "MORALIS_API_KEY" + }, + { + "description": "your wallet private key", + "name": "PRIVATE_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4bd856fc-761e-43e3-9236-7b996b6b7ec7", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:01Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "token-revoke-mcp", - "version": "1.0.0", - "environment_variables": [ - { - "description": "your moralis api key", - "name": "MORALIS_API_KEY" - }, - { - "description": "your wallet private key", - "name": "PRIVATE_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a038d159-c51e-49ef-aa02-c794e8a5cb94", - "name": "io.github.suhail-ak-s/mcp-typesense-server", - "description": "", - "repository": { - "url": "https://github.com/suhail-ak-s/mcp-typesense-server", - "source": "github", - "id": "940089654" + "server": { + "name": "io.github.suhail-ak-s/mcp-typesense-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/suhail-ak-s/mcp-typesense-server", + "source": "github", + "id": "940089654" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "typesense-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "The Typesense server host", + "is_required": true, + "format": "string", + "value": "--host your-typesense-host", + "default": "--host your-typesense-host", + "type": "named", + "name": "--host your-typesense-host", + "value_hint": "your-typesense-host" + }, + { + "description": "The Typesense server port", + "is_required": true, + "format": "string", + "value": "--port 8108", + "default": "--port 8108", + "type": "named", + "name": "--port 8108", + "value_hint": "8108" + }, + { + "description": "The Typesense server protocol", + "is_required": true, + "format": "string", + "value": "--protocol http", + "default": "--protocol http", + "type": "named", + "name": "--protocol http", + "value_hint": "http" + }, + { + "description": "The Typesense API key", + "is_required": true, + "format": "string", + "value": "--api-key your-api-key", + "default": "--api-key your-api-key", + "type": "named", + "name": "--api-key your-api-key", + "value_hint": "your-api-key" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a038d159-c51e-49ef-aa02-c794e8a5cb94", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "typesense-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "The Typesense server host", - "is_required": true, - "format": "string", - "value": "--host your-typesense-host", - "default": "--host your-typesense-host", - "type": "named", - "name": "--host your-typesense-host", - "value_hint": "your-typesense-host" - }, - { - "description": "The Typesense server port", - "is_required": true, - "format": "string", - "value": "--port 8108", - "default": "--port 8108", - "type": "named", - "name": "--port 8108", - "value_hint": "8108" - }, - { - "description": "The Typesense server protocol", - "is_required": true, - "format": "string", - "value": "--protocol http", - "default": "--protocol http", - "type": "named", - "name": "--protocol http", - "value_hint": "http" - }, - { - "description": "The Typesense API key", - "is_required": true, - "format": "string", - "value": "--api-key your-api-key", - "default": "--api-key your-api-key", - "type": "named", - "name": "--api-key your-api-key", - "value_hint": "your-api-key" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "7d8aa739-c9c6-4afd-991b-cf425be475db", - "name": "io.github.gongrzhe/travel-planner-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/GongRzhe/TRAVEL-PLANNER-MCP-Server", - "source": "github", - "id": "907849260" + "server": { + "name": "io.github.gongrzhe/travel-planner-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/GongRzhe/TRAVEL-PLANNER-MCP-Server", + "source": "github", + "id": "907849260" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@gongrzhe/server-travelplanner-mcp", + "version": "0.1.2", + "environment_variables": [ + { + "description": "your_google_maps_api_key", + "name": "GOOGLE_MAPS_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "7d8aa739-c9c6-4afd-991b-cf425be475db", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@gongrzhe/server-travelplanner-mcp", - "version": "0.1.2", - "environment_variables": [ - { - "description": "your_google_maps_api_key", - "name": "GOOGLE_MAPS_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1ff3b09d-5c19-4254-849f-34244dc6ee88", - "name": "io.github.kukapay/uniswap-poolspy-mcp", - "description": "An MCP server that tracks newly created liquidity pools on Uniswap across nine blockchain networks.", - "repository": { - "url": "https://github.com/kukapay/uniswap-poolspy-mcp", - "source": "github", - "id": "950939450" + "server": { + "name": "io.github.kukapay/uniswap-poolspy-mcp", + "description": "An MCP server that tracks newly created liquidity pools on Uniswap across nine blockchain networks.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/uniswap-poolspy-mcp", + "source": "github", + "id": "950939450" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "uniswap-poolspy-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "run main.py", + "default": "run main.py", + "type": "positional", + "value_hint": "main.py" + } + ], + "environment_variables": [ + { + "description": "your api key from The Graph", + "name": "THEGRAPH_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1ff3b09d-5c19-4254-849f-34244dc6ee88", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:09Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "uniswap-poolspy-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "run main.py", - "default": "run main.py", - "type": "positional", - "value_hint": "main.py" - } - ], - "environment_variables": [ - { - "description": "your api key from The Graph", - "name": "THEGRAPH_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "1dd6d7a5-ba98-4fce-b4a4-d0541df84569", - "name": "io.github.kukapay/uniswap-trader-mcp", - "description": "An MCP server for AI agents to automate token swaps on Uniswap DEX across multiple blockchains.", - "repository": { - "url": "https://github.com/kukapay/uniswap-trader-mcp", - "source": "github", - "id": "952312114" + "server": { + "name": "io.github.kukapay/uniswap-trader-mcp", + "description": "An MCP server for AI agents to automate token swaps on Uniswap DEX across multiple blockchains.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/uniswap-trader-mcp", + "source": "github", + "id": "952312114" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "uniswap-trader-mcp", + "version": "1.0.1", + "package_arguments": [ + { + "description": "Path to main entry file", + "is_required": true, + "format": "string", + "value": "path/to/uniswap-trader-mcp/server/index.js", + "default": "path/to/uniswap-trader-mcp/server/index.js", + "type": "positional", + "value_hint": "path/to/uniswap-trader-mcp/server/index.js" + } + ], + "environment_variables": [ + { + "description": "your infura key", + "name": "INFURA_KEY" + }, + { + "description": "your private key", + "name": "WALLET_PRIVATE_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "1dd6d7a5-ba98-4fce-b4a4-d0541df84569", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "uniswap-trader-mcp", - "version": "1.0.1", - "package_arguments": [ - { - "description": "Path to main entry file", - "is_required": true, - "format": "string", - "value": "path/to/uniswap-trader-mcp/server/index.js", - "default": "path/to/uniswap-trader-mcp/server/index.js", - "type": "positional", - "value_hint": "path/to/uniswap-trader-mcp/server/index.js" - } - ], - "environment_variables": [ - { - "description": "your infura key", - "name": "INFURA_KEY" - }, - { - "description": "your private key", - "name": "WALLET_PRIVATE_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "51d74701-2a57-476f-a5ed-75a93be58f42", - "name": "io.github.ognis1205/mcp-server-unitycatalog", - "description": "Unity Catalog AI Model Context Protocol Server", - "repository": { - "url": "https://github.com/ognis1205/mcp-server-unitycatalog", - "source": "github", - "id": "926414362" + "server": { + "name": "io.github.ognis1205/mcp-server-unitycatalog", + "description": "Unity Catalog AI Model Context Protocol Server", + "status": "active", + "repository": { + "url": "https://github.com/ognis1205/mcp-server-unitycatalog", + "source": "github", + "id": "926414362" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-unitycatalog", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Remove container after run", + "is_required": true, + "format": "string", + "value": "--rm", + "default": "--rm", + "type": "named", + "name": "--rm" + }, + { + "description": "Keep STDIN open even if not attached", + "is_required": true, + "format": "string", + "value": "-i", + "default": "-i", + "type": "named", + "name": "-i" + }, + { + "description": "Specify Unity Catalog server URL", + "is_required": true, + "format": "string", + "value": "--uc_server \u003cyour unity catalog url\u003e", + "default": "--uc_server \u003cyour unity catalog url\u003e", + "type": "named", + "name": "--uc_server \u003cyour unity catalog url\u003e", + "value_hint": "\u003cyour unity catalog url\u003e" + }, + { + "description": "Specify Unity Catalog name", + "is_required": true, + "format": "string", + "value": "--uc_catalog \u003cyour catalog name\u003e", + "default": "--uc_catalog \u003cyour catalog name\u003e", + "type": "named", + "name": "--uc_catalog \u003cyour catalog name\u003e", + "value_hint": "\u003cyour catalog name\u003e" + }, + { + "description": "Specify Unity Catalog schema name", + "is_required": true, + "format": "string", + "value": "--uc_schema \u003cyour schema name\u003e", + "default": "--uc_schema \u003cyour schema name\u003e", + "type": "named", + "name": "--uc_schema \u003cyour schema name\u003e", + "value_hint": "\u003cyour schema name\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "51d74701-2a57-476f-a5ed-75a93be58f42", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:16Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-unitycatalog", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Remove container after run", - "is_required": true, - "format": "string", - "value": "--rm", - "default": "--rm", - "type": "named", - "name": "--rm" - }, - { - "description": "Keep STDIN open even if not attached", - "is_required": true, - "format": "string", - "value": "-i", - "default": "-i", - "type": "named", - "name": "-i" - }, - { - "description": "Specify Unity Catalog server URL", - "is_required": true, - "format": "string", - "value": "--uc_server ", - "default": "--uc_server ", - "type": "named", - "name": "--uc_server ", - "value_hint": "" - }, - { - "description": "Specify Unity Catalog name", - "is_required": true, - "format": "string", - "value": "--uc_catalog ", - "default": "--uc_catalog ", - "type": "named", - "name": "--uc_catalog ", - "value_hint": "" - }, - { - "description": "Specify Unity Catalog schema name", - "is_required": true, - "format": "string", - "value": "--uc_schema ", - "default": "--uc_schema ", - "type": "named", - "name": "--uc_schema ", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3cccaee3-1b35-4a97-bc23-d1a8603aa366", - "name": "io.github.codergamester/mcp-unity", - "description": "MCP Server to integrate Unity Editor game engine with different AI Model clients (e.g. Claude Desktop, Windsurf, Cursor)", - "repository": { - "url": "https://github.com/CoderGamester/mcp-unity", - "source": "github", - "id": "948148972" + "server": { + "name": "io.github.codergamester/mcp-unity", + "description": "MCP Server to integrate Unity Editor game engine with different AI Model clients (e.g. Claude Desktop, Windsurf, Cursor)", + "status": "active", + "repository": { + "url": "https://github.com/CoderGamester/mcp-unity", + "source": "github", + "id": "948148972" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "com.gamelovers.mcp-unity", + "version": "1.0.2" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3cccaee3-1b35-4a97-bc23-d1a8603aa366", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "com.gamelovers.mcp-unity", - "version": "1.0.2" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "162d7f33-0f96-47d7-980b-361fb0ddc381", - "name": "io.github.quazaai/unitymcpintegration", - "description": "Enable AI Agents to Control Unity", - "repository": { - "url": "https://github.com/quazaai/UnityMCPIntegration", - "source": "github", - "id": "950083186" + "server": { + "name": "io.github.quazaai/unitymcpintegration", + "description": "Enable AI Agents to Control Unity", + "status": "active", + "repository": { + "url": "https://github.com/quazaai/UnityMCPIntegration", + "source": "github", + "id": "950083186" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "com.quaza.unitymcp", + "version": "0.0.1", + "environment_variables": [ + { + "description": "5010", + "name": "MCP_WEBSOCKET_PORT" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "162d7f33-0f96-47d7-980b-361fb0ddc381", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "com.quaza.unitymcp", - "version": "0.0.1", - "environment_variables": [ - { - "description": "5010", - "name": "MCP_WEBSOCKET_PORT" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "aa301cee-889b-4606-b66b-fd9dc1e77817", - "name": "io.github.isaacwasserman/mcp-vegalite-server", - "description": "", - "repository": { - "url": "https://github.com/isaacwasserman/mcp-vegalite-server", - "source": "github", - "id": "902526658" + "server": { + "name": "io.github.isaacwasserman/mcp-vegalite-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/isaacwasserman/mcp-vegalite-server", + "source": "github", + "id": "902526658" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-vegalite", + "version": "0.0.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "aa301cee-889b-4606-b66b-fd9dc1e77817", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-vegalite", - "version": "0.0.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "6b136dc5-ffcf-41b0-bf5f-e5dff5d47981", - "name": "io.github.burningion/video-editing-mcp", - "description": "MCP Interface for Video Jungle", - "repository": { - "url": "https://github.com/burningion/video-editing-mcp", - "source": "github", - "id": "898031405" + "server": { + "name": "io.github.burningion/video-editing-mcp", + "description": "MCP Interface for Video Jungle", + "status": "active", + "repository": { + "url": "https://github.com/burningion/video-editing-mcp", + "source": "github", + "id": "898031405" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "video-editor-mcp", + "version": "0.1.25", + "package_arguments": [ + { + "description": "Directory to use", + "is_required": true, + "format": "string", + "value": "--directory /Users/\u003cPATH_TO\u003e/video-jungle-mcp", + "default": "--directory /Users/\u003cPATH_TO\u003e/video-jungle-mcp", + "type": "named", + "name": "--directory /Users/\u003cPATH_TO\u003e/video-jungle-mcp", + "value_hint": "/Users/\u003cPATH_TO\u003e/video-jungle-mcp" + }, + { + "description": "Script or module name", + "is_required": true, + "format": "string", + "value": "video-editor-mcp", + "default": "video-editor-mcp", + "type": "positional", + "value_hint": "video-editor-mcp" + }, + { + "description": "API Key input", + "is_required": true, + "format": "string", + "value": "\u003cYOURAPIKEY\u003e", + "default": "\u003cYOURAPIKEY\u003e", + "type": "positional", + "value_hint": "\u003cYOURAPIKEY\u003e" + } + ], + "environment_variables": [ + { + "description": "1", + "name": "LOAD_PHOTOS_DB" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "6b136dc5-ffcf-41b0-bf5f-e5dff5d47981", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:26Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "video-editor-mcp", - "version": "0.1.25", - "package_arguments": [ - { - "description": "Directory to use", - "is_required": true, - "format": "string", - "value": "--directory /Users//video-jungle-mcp", - "default": "--directory /Users//video-jungle-mcp", - "type": "named", - "name": "--directory /Users//video-jungle-mcp", - "value_hint": "/Users//video-jungle-mcp" - }, - { - "description": "Script or module name", - "is_required": true, - "format": "string", - "value": "video-editor-mcp", - "default": "video-editor-mcp", - "type": "positional", - "value_hint": "video-editor-mcp" - }, - { - "description": "API Key input", - "is_required": true, - "format": "string", - "value": "", - "default": "", - "type": "positional", - "value_hint": "" - } - ], - "environment_variables": [ - { - "description": "1", - "name": "LOAD_PHOTOS_DB" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cbc3c68c-82c8-4a9f-86b9-78e3893df494", - "name": "io.github.13rac1/videocapture-mcp", - "description": "Model Context Protocol (MCP) server to capture images from an OpenCV-compatible webcam or video source", - "repository": { - "url": "https://github.com/13rac1/videocapture-mcp", - "source": "github", - "id": "956274853" + "server": { + "name": "io.github.13rac1/videocapture-mcp", + "description": "Model Context Protocol (MCP) server to capture images from an OpenCV-compatible webcam or video source", + "status": "active", + "repository": { + "url": "https://github.com/13rac1/videocapture-mcp", + "source": "github", + "id": "956274853" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "videocapture-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Use extra requirements with package", + "is_required": true, + "format": "string", + "value": "--with mcp[cli]", + "default": "--with mcp[cli]", + "type": "named", + "name": "--with mcp[cli]", + "value_hint": "mcp[cli]" + }, + { + "description": "Use extra requirements with package", + "is_required": true, + "format": "string", + "value": "--with numpy", + "default": "--with numpy", + "type": "named", + "name": "--with numpy", + "value_hint": "numpy" + }, + { + "description": "Use extra requirements with package", + "is_required": true, + "format": "string", + "value": "--with opencv-python", + "default": "--with opencv-python", + "type": "named", + "name": "--with opencv-python", + "value_hint": "opencv-python" + }, + { + "description": "MCP run command", + "is_required": true, + "format": "string", + "value": "mcp", + "default": "mcp", + "type": "positional", + "value_hint": "mcp" + }, + { + "description": "Path to script", + "is_required": true, + "format": "string", + "value": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py", + "default": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py", + "type": "positional", + "value_hint": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cbc3c68c-82c8-4a9f-86b9-78e3893df494", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:30Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "videocapture-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Use extra requirements with package", - "is_required": true, - "format": "string", - "value": "--with mcp[cli]", - "default": "--with mcp[cli]", - "type": "named", - "name": "--with mcp[cli]", - "value_hint": "mcp[cli]" - }, - { - "description": "Use extra requirements with package", - "is_required": true, - "format": "string", - "value": "--with numpy", - "default": "--with numpy", - "type": "named", - "name": "--with numpy", - "value_hint": "numpy" - }, - { - "description": "Use extra requirements with package", - "is_required": true, - "format": "string", - "value": "--with opencv-python", - "default": "--with opencv-python", - "type": "named", - "name": "--with opencv-python", - "value_hint": "opencv-python" - }, - { - "description": "MCP run command", - "is_required": true, - "format": "string", - "value": "mcp", - "default": "mcp", - "type": "positional", - "value_hint": "mcp" - }, - { - "description": "Path to script", - "is_required": true, - "format": "string", - "value": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py", - "default": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py", - "type": "positional", - "value_hint": "C:\\ABSOLUTE_PATH\\videocapture-mcp\\videocapture_mcp.py" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "8b5bb45d-a025-4e7b-a185-dbb5e349af32", - "name": "io.github.mfukushim/map-traveler-mcp", - "description": "Virtual traveler library for MCP", - "repository": { - "url": "https://github.com/mfukushim/map-traveler-mcp", - "source": "github", - "id": "911417007" + "server": { + "name": "io.github.mfukushim/map-traveler-mcp", + "description": "Virtual traveler library for MCP", + "status": "active", + "repository": { + "url": "https://github.com/mfukushim/map-traveler-mcp", + "source": "github", + "id": "911417007" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@mfukushim/map-traveler-mcp", + "version": "0.0.77", + "environment_variables": [ + { + "description": "http://192.168.1.100:8188", + "name": "comfy_url" + }, + { + "description": "C:\\Documents\\t2itest.json", + "name": "comfy_workflow_t2i" + }, + { + "description": "C:\\Documents\\i2itest.json", + "name": "comfy_workflow_i2i" + }, + { + "description": "ckpt_name='animagineXL40_v40.safetensors',denoise=0.65", + "name": "comfy_params" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "8b5bb45d-a025-4e7b-a185-dbb5e349af32", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:32Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@mfukushim/map-traveler-mcp", - "version": "0.0.77", - "environment_variables": [ - { - "description": "http://192.168.1.100:8188", - "name": "comfy_url" - }, - { - "description": "C:\\Documents\\t2itest.json", - "name": "comfy_workflow_t2i" - }, - { - "description": "C:\\Documents\\i2itest.json", - "name": "comfy_workflow_i2i" - }, - { - "description": "ckpt_name='animagineXL40_v40.safetensors',denoise=0.65", - "name": "comfy_params" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5f14d558-f478-43b5-8dde-20c9997f196a", - "name": "io.github.dinghuazhou/sample-mcp-server-tos", - "description": "", - "repository": { - "url": "https://github.com/dinghuazhou/sample-mcp-server-tos", - "source": "github", - "id": "947289080" + "server": { + "name": "io.github.dinghuazhou/sample-mcp-server-tos", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/dinghuazhou/sample-mcp-server-tos", + "source": "github", + "id": "947289080" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-server-tos", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Git repository URL with subdirectory parameter", + "is_required": true, + "format": "string", + "value": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos", + "default": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos", + "type": "positional", + "value_hint": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos" + }, + { + "description": "Server entry point", + "is_required": true, + "format": "string", + "value": "mcp-server-tos", + "default": "mcp-server-tos", + "type": "positional", + "value_hint": "mcp-server-tos" + } + ], + "environment_variables": [ + { + "description": "your ak", + "name": "VOLC_ACCESSKEY" + }, + { + "description": "your sk", + "name": "VOLC_SECRETKEY" + }, + { + "description": "tos region", + "name": "REGION" + }, + { + "description": "tos endpoint", + "name": "TOS_ENDPOINT" + }, + { + "description": "your security token", + "name": "SECURITY_TOKEN" + }, + { + "description": "your specific bucket", + "name": "TOS_BUCKET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5f14d558-f478-43b5-8dde-20c9997f196a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-server-tos", - "version": "0.1.0", - "package_arguments": [ - { - "description": "Git repository URL with subdirectory parameter", - "is_required": true, - "format": "string", - "value": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos", - "default": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos", - "type": "positional", - "value_hint": "git+https://github.com/volcengine/ai-app-lab#subdirectory=mcp/server/mcp_server_tos" - }, - { - "description": "Server entry point", - "is_required": true, - "format": "string", - "value": "mcp-server-tos", - "default": "mcp-server-tos", - "type": "positional", - "value_hint": "mcp-server-tos" - } - ], - "environment_variables": [ - { - "description": "your ak", - "name": "VOLC_ACCESSKEY" - }, - { - "description": "your sk", - "name": "VOLC_SECRETKEY" - }, - { - "description": "tos region", - "name": "REGION" - }, - { - "description": "tos endpoint", - "name": "TOS_ENDPOINT" - }, - { - "description": "your security token", - "name": "SECURITY_TOKEN" - }, - { - "description": "your specific bucket", - "name": "TOS_BUCKET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "f3285cc9-1d33-472f-aa28-0b9d7723f877", - "name": "io.github.wanaku-ai/wanaku", - "description": "Wanaku MCP Router", - "repository": { - "url": "https://github.com/wanaku-ai/wanaku", - "source": "github", - "id": "925674818" + "server": { + "name": "io.github.wanaku-ai/wanaku", + "description": "Wanaku MCP Router", + "status": "active", + "repository": { + "url": "https://github.com/wanaku-ai/wanaku", + "source": "github", + "id": "925674818" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "wanaku-ai/wanaku", + "version": "", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "f3285cc9-1d33-472f-aa28-0b9d7723f877", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:38Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "wanaku-ai/wanaku", - "version": "", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c7876b07-1fe3-4006-a104-93ef9f9e1669", - "name": "io.github.kapilduraphe/webflow-mcp-server", - "description": "Webflow MCP server", - "repository": { - "url": "https://github.com/kapilduraphe/webflow-mcp-server", - "source": "github", - "id": "935070409" + "server": { + "name": "io.github.kapilduraphe/webflow-mcp-server", + "description": "Webflow MCP server", + "status": "active", + "repository": { + "url": "https://github.com/kapilduraphe/webflow-mcp-server", + "source": "github", + "id": "935070409" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "webflow-mcp-server", + "version": "1.0.0", + "package_arguments": [ + { + "description": "Path to the entry point script", + "is_required": true, + "format": "string", + "value": "/ABSOLUTE/PATH/TO/YOUR/build/index.js", + "default": "/ABSOLUTE/PATH/TO/YOUR/build/index.js", + "type": "positional", + "value_hint": "/ABSOLUTE/PATH/TO/YOUR/build/index.js" + } + ], + "environment_variables": [ + { + "description": "your-api-token", + "name": "WEBFLOW_API_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c7876b07-1fe3-4006-a104-93ef9f9e1669", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:40Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "webflow-mcp-server", - "version": "1.0.0", - "package_arguments": [ - { - "description": "Path to the entry point script", - "is_required": true, - "format": "string", - "value": "/ABSOLUTE/PATH/TO/YOUR/build/index.js", - "default": "/ABSOLUTE/PATH/TO/YOUR/build/index.js", - "type": "positional", - "value_hint": "/ABSOLUTE/PATH/TO/YOUR/build/index.js" - } - ], - "environment_variables": [ - { - "description": "your-api-token", - "name": "WEBFLOW_API_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "e69c8abd-6964-48b1-a7cb-89c926932c47", - "name": "io.github.kukapay/whale-tracker-mcp", - "description": "A mcp server for tracking cryptocurrency whale transactions.", - "repository": { - "url": "https://github.com/kukapay/whale-tracker-mcp", - "source": "github", - "id": "948027955" + "server": { + "name": "io.github.kukapay/whale-tracker-mcp", + "description": "A mcp server for tracking cryptocurrency whale transactions.", + "status": "active", + "repository": { + "url": "https://github.com/kukapay/whale-tracker-mcp", + "source": "github", + "id": "948027955" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "whale-tracker-mcp", + "version": "0.1.0", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "e69c8abd-6964-48b1-a7cb-89c926932c47", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:42Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "whale-tracker-mcp", - "version": "0.1.0", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "5f5a497c-673d-4988-b86b-c3bcaaf1a317", - "name": "io.github.bharathvaj-ganesan/whois-mcp", - "description": "MCP Server for whois lookups.", - "repository": { - "url": "https://github.com/bharathvaj-ganesan/whois-mcp", - "source": "github", - "id": "943452732" + "server": { + "name": "io.github.bharathvaj-ganesan/whois-mcp", + "description": "MCP Server for whois lookups.", + "status": "active", + "repository": { + "url": "https://github.com/bharathvaj-ganesan/whois-mcp", + "source": "github", + "id": "943452732" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@bharathvaj/whois-mcp", + "version": "1.0.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "5f5a497c-673d-4988-b86b-c3bcaaf1a317", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:47Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@bharathvaj/whois-mcp", - "version": "1.0.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "02b79b89-cce8-4401-aa1f-255b01587266", - "name": "io.github.zzaebok/mcp-wikidata", - "description": "A server implementation for Wikidata API using the Model Context Protocol (MCP).", - "repository": { - "url": "https://github.com/zzaebok/mcp-wikidata", - "source": "github", - "id": "959274715" + "server": { + "name": "io.github.zzaebok/mcp-wikidata", + "description": "A server implementation for Wikidata API using the Model Context Protocol (MCP).", + "status": "active", + "repository": { + "url": "https://github.com/zzaebok/mcp-wikidata", + "source": "github", + "id": "959274715" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp-wikidata", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "02b79b89-cce8-4401-aa1f-255b01587266", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:49Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp-wikidata", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a8a08cbd-074f-49ba-8f98-3ef8583cc93b", - "name": "io.github.simonb97/win-cli-mcp-server", - "description": "Model Context Protocol server for secure command-line interactions on Windows systems", - "repository": { - "url": "https://github.com/SimonB97/win-cli-mcp-server", - "source": "github", - "id": "898475770" + "server": { + "name": "io.github.simonb97/win-cli-mcp-server", + "description": "Model Context Protocol server for secure command-line interactions on Windows systems", + "status": "active", + "repository": { + "url": "https://github.com/SimonB97/win-cli-mcp-server", + "source": "github", + "id": "898475770" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@simonb97/server-win-cli", + "version": "0.2.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a8a08cbd-074f-49ba-8f98-3ef8583cc93b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:52Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@simonb97/server-win-cli", - "version": "0.2.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "4e6fc5a4-eecb-46e4-a3ce-4310cbb8c3f4", - "name": "io.github.anshumax/world_bank_mcp_server", - "description": "An implementation of the Model Context Protocol for the World Bank open data API", - "repository": { - "url": "https://github.com/anshumax/world_bank_mcp_server", - "source": "github", - "id": "911984754" + "server": { + "name": "io.github.anshumax/world_bank_mcp_server", + "description": "An implementation of the Model Context Protocol for the World Bank open data API", + "status": "active", + "repository": { + "url": "https://github.com/anshumax/world_bank_mcp_server", + "source": "github", + "id": "911984754" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "world_bank_mcp_server", + "version": "0.1.0", + "package_arguments": [ + { + "description": "The directory to use", + "is_required": true, + "format": "string", + "value": "--directory path/to/world_bank_mcp_server", + "default": "--directory path/to/world_bank_mcp_server", + "type": "named", + "name": "--directory path/to/world_bank_mcp_server", + "value_hint": "path/to/world_bank_mcp_server" + }, + { + "description": "The server script/module to execute", + "is_required": true, + "format": "string", + "value": "world_bank_mcp_server", + "default": "world_bank_mcp_server", + "type": "positional", + "value_hint": "world_bank_mcp_server" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "4e6fc5a4-eecb-46e4-a3ce-4310cbb8c3f4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:56Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "world_bank_mcp_server", - "version": "0.1.0", - "package_arguments": [ - { - "description": "The directory to use", - "is_required": true, - "format": "string", - "value": "--directory path/to/world_bank_mcp_server", - "default": "--directory path/to/world_bank_mcp_server", - "type": "named", - "name": "--directory path/to/world_bank_mcp_server", - "value_hint": "path/to/world_bank_mcp_server" - }, - { - "description": "The server script/module to execute", - "is_required": true, - "format": "string", - "value": "world_bank_mcp_server", - "default": "world_bank_mcp_server", - "type": "positional", - "value_hint": "world_bank_mcp_server" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "ccb9aa0c-bbf5-46e6-a5f0-a5b4c11d519a", - "name": "io.github.enescinr/twitter-mcp", - "description": "A Model Context Protocol server allows to interact with Twitter, enabling posting tweets and searching Twitter.", - "repository": { - "url": "https://github.com/EnesCinr/twitter-mcp", - "source": "github", - "id": "901627660" + "server": { + "name": "io.github.enescinr/twitter-mcp", + "description": "A Model Context Protocol server allows to interact with Twitter, enabling posting tweets and searching Twitter.", + "status": "active", + "repository": { + "url": "https://github.com/EnesCinr/twitter-mcp", + "source": "github", + "id": "901627660" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@enescinar/twitter-mcp", + "version": "0.1.0", + "environment_variables": [ + { + "description": "your_api_key_here", + "name": "API_KEY" + }, + { + "description": "your_api_secret_key_here", + "name": "API_SECRET_KEY" + }, + { + "description": "your_access_token_here", + "name": "ACCESS_TOKEN" + }, + { + "description": "your_access_token_secret_here", + "name": "ACCESS_TOKEN_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "ccb9aa0c-bbf5-46e6-a5f0-a5b4c11d519a", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:15:58Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@enescinar/twitter-mcp", - "version": "0.1.0", - "environment_variables": [ - { - "description": "your_api_key_here", - "name": "API_KEY" - }, - { - "description": "your_api_secret_key_here", - "name": "API_SECRET_KEY" - }, - { - "description": "your_access_token_here", - "name": "ACCESS_TOKEN" - }, - { - "description": "your_access_token_secret_here", - "name": "ACCESS_TOKEN_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a24e506b-b16b-412d-b806-fcf7e39b4549", - "name": "io.github.vidhupv/x-mcp", - "description": "", - "repository": { - "url": "https://github.com/vidhupv/x-mcp", - "source": "github", - "id": "898698501" + "server": { + "name": "io.github.vidhupv/x-mcp", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/vidhupv/x-mcp", + "source": "github", + "id": "898698501" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "x-mcp", + "version": "0.1.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "x-mcp", + "default": "x-mcp", + "type": "positional", + "value_hint": "x-mcp" + } + ], + "environment_variables": [ + { + "description": "your_api_key", + "name": "TWITTER_API_KEY" + }, + { + "description": "your_api_secret", + "name": "TWITTER_API_SECRET" + }, + { + "description": "your_access_token", + "name": "TWITTER_ACCESS_TOKEN" + }, + { + "description": "your_access_token_secret", + "name": "TWITTER_ACCESS_TOKEN_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a24e506b-b16b-412d-b806-fcf7e39b4549", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "x-mcp", - "version": "0.1.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "x-mcp", - "default": "x-mcp", - "type": "positional", - "value_hint": "x-mcp" - } - ], - "environment_variables": [ - { - "description": "your_api_key", - "name": "TWITTER_API_KEY" - }, - { - "description": "your_api_secret", - "name": "TWITTER_API_SECRET" - }, - { - "description": "your_access_token", - "name": "TWITTER_ACCESS_TOKEN" - }, - { - "description": "your_access_token_secret", - "name": "TWITTER_ACCESS_TOKEN_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bce1c06f-6325-418a-91e2-0ff2f6cf8ffc", - "name": "io.github.shenghaiwang/xcodebuild", - "description": "MCP tool for building Xcode iOS workspace/project and feeding back error to LLMs.", - "repository": { - "url": "https://github.com/ShenghaiWang/xcodebuild", - "source": "github", - "id": "941391898" + "server": { + "name": "io.github.shenghaiwang/xcodebuild", + "description": "MCP tool for building Xcode iOS workspace/project and feeding back error to LLMs.", + "status": "active", + "repository": { + "url": "https://github.com/ShenghaiWang/xcodebuild", + "source": "github", + "id": "941391898" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcpxcodebuild", + "version": "0.10.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bce1c06f-6325-418a-91e2-0ff2f6cf8ffc", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcpxcodebuild", - "version": "0.10.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "aeca0d6b-ed78-4634-a29a-6d08f71de2b6", - "name": "io.github.john-zhang-dev/xero-mcp", - "description": "A Model Context Protocol server allows Clients to interact with Xero", - "repository": { - "url": "https://github.com/john-zhang-dev/xero-mcp", - "source": "github", - "id": "950380608" + "server": { + "name": "io.github.john-zhang-dev/xero-mcp", + "description": "A Model Context Protocol server allows Clients to interact with Xero", + "status": "active", + "repository": { + "url": "https://github.com/john-zhang-dev/xero-mcp", + "source": "github", + "id": "950380608" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "xero-mcp", + "version": "1.3.0", + "environment_variables": [ + { + "description": "YOUR_CLIENT_ID", + "name": "XERO_CLIENT_ID" + }, + { + "description": "YOUR_CLIENT_SECRET", + "name": "XERO_CLIENT_SECRET" + }, + { + "description": "http://localhost:5000/callback", + "name": "XERO_REDIRECT_URI" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "aeca0d6b-ed78-4634-a29a-6d08f71de2b6", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "xero-mcp", - "version": "1.3.0", - "environment_variables": [ - { - "description": "YOUR_CLIENT_ID", - "name": "XERO_CLIENT_ID" - }, - { - "description": "YOUR_CLIENT_SECRET", - "name": "XERO_CLIENT_SECRET" - }, - { - "description": "http://localhost:5000/callback", - "name": "XERO_REDIRECT_URI" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "a33de229-5e89-468d-aa2a-570b0f6e3dfa", - "name": "io.github.xgenerationlab/xiyan_mcp_server", - "description": "A Model Context Protocol (MCP) server that enables natural language queries to databases", - "repository": { - "url": "https://github.com/XGenerationLab/xiyan_mcp_server", - "source": "github", - "id": "947753431" + "server": { + "name": "io.github.xgenerationlab/xiyan_mcp_server", + "description": "A Model Context Protocol (MCP) server that enables natural language queries to databases", + "status": "active", + "repository": { + "url": "https://github.com/XGenerationLab/xiyan_mcp_server", + "source": "github", + "id": "947753431" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "xiyan_mcp_server", + "version": "0.1.5" + } + ], + "remotes": [ + { + "transport_type": "", + "url": "http://localhost:8000/sse" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "a33de229-5e89-468d-aa2a-570b0f6e3dfa", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:08Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "xiyan_mcp_server", - "version": "0.1.5" - } - ], - "remotes": [ - { - "transport_type": "", - "url": "http://localhost:8000/sse" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "cd63d589-6f0e-4d2d-8c9c-b6857f48cc62", - "name": "io.github.apeyroux/mcp-xmind", - "description": "", - "repository": { - "url": "https://github.com/apeyroux/mcp-xmind", - "source": "github", - "id": "902421970" + "server": { + "name": "io.github.apeyroux/mcp-xmind", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/apeyroux/mcp-xmind", + "source": "github", + "id": "902421970" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@41px/mcp-xmind", + "version": "1.1.1", + "package_arguments": [ + { + "description": "/Users/alex/XMind", + "is_required": true, + "format": "string", + "value": "/Users/alex/XMind", + "default": "/Users/alex/XMind", + "type": "positional", + "value_hint": "/Users/alex/XMind" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "cd63d589-6f0e-4d2d-8c9c-b6857f48cc62", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:10Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@41px/mcp-xmind", - "version": "1.1.1", - "package_arguments": [ - { - "description": "/Users/alex/XMind", - "is_required": true, - "format": "string", - "value": "/Users/alex/XMind", - "default": "/Users/alex/XMind", - "type": "positional", - "value_hint": "/Users/alex/XMind" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c859bceb-143a-43dc-84e6-8ad8f707fcb0", - "name": "io.github.chuckbryan/ynabmcpserver", - "description": "", - "repository": { - "url": "https://github.com/ChuckBryan/ynabmcpserver", - "source": "github", - "id": "982820266" + "server": { + "name": "io.github.chuckbryan/ynabmcpserver", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/ChuckBryan/ynabmcpserver", + "source": "github", + "id": "982820266" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "ynabmcpserver", + "version": "0.0.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c859bceb-143a-43dc-84e6-8ad8f707fcb0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:12Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "ynabmcpserver", - "version": "0.0.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "0278fd92-a009-4a47-a6df-5f77db37e6ab", - "name": "io.github.zubeidhendricks/youtube-mcp-server", - "description": "MCP Server for YouTube API, enabling video management, Shorts creation, and advanced analytics", - "repository": { - "url": "https://github.com/ZubeidHendricks/youtube-mcp-server", - "source": "github", - "id": "909607678" + "server": { + "name": "io.github.zubeidhendricks/youtube-mcp-server", + "description": "MCP Server for YouTube API, enabling video management, Shorts creation, and advanced analytics", + "status": "active", + "repository": { + "url": "https://github.com/ZubeidHendricks/youtube-mcp-server", + "source": "github", + "id": "909607678" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "zubeid-youtube-mcp-server", + "version": "1.0.0", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "YOUTUBE_API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "0278fd92-a009-4a47-a6df-5f77db37e6ab", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:14Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "zubeid-youtube-mcp-server", - "version": "1.0.0", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "YOUTUBE_API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "be45349a-793d-44d9-b2c6-6d4a30785a18", - "name": "io.github.prathamesh0901/zoom-mcp-server", - "description": "", - "repository": { - "url": "https://github.com/Prathamesh0901/zoom-mcp-server", - "source": "github", - "id": "978843359" + "server": { + "name": "io.github.prathamesh0901/zoom-mcp-server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/Prathamesh0901/zoom-mcp-server", + "source": "github", + "id": "978843359" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@prathamesh0901/zoom-mcp-server", + "version": "1.0.1", + "environment_variables": [ + { + "description": "Your Zoom Account ID", + "name": "ZOOM_ACCOUNT_ID" + }, + { + "description": "Your Zoom Client ID", + "name": "ZOOM_CLIENT_ID" + }, + { + "description": "Your Zoom Client Secret", + "name": "ZOOM_CLIENT_SECRET" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "be45349a-793d-44d9-b2c6-6d4a30785a18", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:17Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@prathamesh0901/zoom-mcp-server", - "version": "1.0.1", - "environment_variables": [ - { - "description": "Your Zoom Account ID", - "name": "ZOOM_ACCOUNT_ID" - }, - { - "description": "Your Zoom Client ID", - "name": "ZOOM_CLIENT_ID" - }, - { - "description": "Your Zoom Client Secret", - "name": "ZOOM_CLIENT_SECRET" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "17829ab3-ae45-4fdd-95dc-4bb82a75752d", - "name": "io.github.isdaniel/mcp_weather_server", - "description": "", - "repository": { - "url": "https://github.com/isdaniel/mcp_weather_server", - "source": "github", - "id": "949740349" + "server": { + "name": "io.github.isdaniel/mcp_weather_server", + "description": "", + "status": "active", + "repository": { + "url": "https://github.com/isdaniel/mcp_weather_server", + "source": "github", + "id": "949740349" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp_weather_server", + "version": "0.2.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "17829ab3-ae45-4fdd-95dc-4bb82a75752d", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:18Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp_weather_server", - "version": "0.2.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c636fa7e-796e-40a3-bdfc-52d7f4b82db4", - "name": "io.github.zcaceres/easy-mcp", - "description": "Absurdly easy Model Context Protocol Servers in Typescript", - "repository": { - "url": "https://github.com/zcaceres/easy-mcp", - "source": "github", - "id": "908705399" + "server": { + "name": "io.github.zcaceres/easy-mcp", + "description": "Absurdly easy Model Context Protocol Servers in Typescript", + "status": "active", + "repository": { + "url": "https://github.com/zcaceres/easy-mcp", + "source": "github", + "id": "908705399" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "easy-mcp", + "version": "1.0.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c636fa7e-796e-40a3-bdfc-52d7f4b82db4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:20Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "easy-mcp", - "version": "1.0.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9297bbe7-81bc-4a7c-97ba-fcaaf8c7a626", - "name": "io.github.tadata-org/fastapi_mcp", - "description": "Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!", - "repository": { - "url": "https://github.com/tadata-org/fastapi_mcp", - "source": "github", - "id": "944976593" + "server": { + "name": "io.github.tadata-org/fastapi_mcp", + "description": "Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth!", + "status": "active", + "repository": { + "url": "https://github.com/tadata-org/fastapi_mcp", + "source": "github", + "id": "944976593" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "fastapi-mcp", + "version": "0.3.3" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9297bbe7-81bc-4a7c-97ba-fcaaf8c7a626", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:22Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "fastapi-mcp", - "version": "0.3.3" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "c978017d-b94a-4d0c-a46e-5395cb94a67e", - "name": "io.github.punkpeye/fastmcp", - "description": "A TypeScript framework for building MCP servers.", - "repository": { - "url": "https://github.com/punkpeye/fastmcp", - "source": "github", - "id": "908799323" + "server": { + "name": "io.github.punkpeye/fastmcp", + "description": "A TypeScript framework for building MCP servers.", + "status": "active", + "repository": { + "url": "https://github.com/punkpeye/fastmcp", + "source": "github", + "id": "908799323" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "fastmcp", + "version": "1.0.0", + "package_arguments": [ + { + "description": "/PATH/TO/YOUR_PROJECT/src/index.ts", + "is_required": true, + "format": "string", + "value": "/PATH/TO/YOUR_PROJECT/src/index.ts", + "default": "/PATH/TO/YOUR_PROJECT/src/index.ts", + "type": "positional", + "value_hint": "/PATH/TO/YOUR_PROJECT/src/index.ts" + } + ], + "environment_variables": [ + { + "description": "value", + "name": "YOUR_ENV_VAR" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "c978017d-b94a-4d0c-a46e-5395cb94a67e", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:25Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "fastmcp", - "version": "1.0.0", - "package_arguments": [ - { - "description": "/PATH/TO/YOUR_PROJECT/src/index.ts", - "is_required": true, - "format": "string", - "value": "/PATH/TO/YOUR_PROJECT/src/index.ts", - "default": "/PATH/TO/YOUR_PROJECT/src/index.ts", - "type": "positional", - "value_hint": "/PATH/TO/YOUR_PROJECT/src/index.ts" - } - ], - "environment_variables": [ - { - "description": "value", - "name": "YOUR_ENV_VAR" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "816a9400-2e2b-4697-8fbb-2a22fd81de74", - "name": "io.github.mcpdotdirect/template-mcp-server", - "description": "Template to quickly set up your own MCP server ", - "repository": { - "url": "https://github.com/mcpdotdirect/template-mcp-server", - "source": "github", - "id": "946258129" + "server": { + "name": "io.github.mcpdotdirect/template-mcp-server", + "description": "Template to quickly set up your own MCP server ", + "status": "active", + "repository": { + "url": "https://github.com/mcpdotdirect/template-mcp-server", + "source": "github", + "id": "946258129" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@mcpdotdirect/create-mcp-server", + "version": "2.0.1", + "package_arguments": [ + { + "description": "start", + "is_required": true, + "format": "string", + "value": "start", + "default": "start", + "type": "positional", + "value_hint": "start" + } + ], + "environment_variables": [ + { + "description": "development", + "name": "NODE_ENV" + } + ] + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "http://localhost:3001/sse" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "816a9400-2e2b-4697-8fbb-2a22fd81de74", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:33Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@mcpdotdirect/create-mcp-server", - "version": "2.0.1", - "package_arguments": [ - { - "description": "start", - "is_required": true, - "format": "string", - "value": "start", - "default": "start", - "type": "positional", - "value_hint": "start" - } - ], - "environment_variables": [ - { - "description": "development", - "name": "NODE_ENV" - } - ] - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "http://localhost:3001/sse" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "bdcb0c25-b41c-4e61-ad25-89e5ddb35dcc", - "name": "io.github.marimo-team/codemirror-mcp", - "description": "CodeMirror extension to hook up a Model Context Provider (MCP)", - "repository": { - "url": "https://github.com/marimo-team/codemirror-mcp", - "source": "github", - "id": "914149601" + "server": { + "name": "io.github.marimo-team/codemirror-mcp", + "description": "CodeMirror extension to hook up a Model Context Provider (MCP)", + "status": "active", + "repository": { + "url": "https://github.com/marimo-team/codemirror-mcp", + "source": "github", + "id": "914149601" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@marimo-team/codemirror-mcp", + "version": "0.1.2", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "bdcb0c25-b41c-4e61-ad25-89e5ddb35dcc", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:36Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@marimo-team/codemirror-mcp", - "version": "0.1.2", - "environment_variables": [ - { - "description": "${input:apiKey}", - "name": "API_KEY" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "2a679bdd-d106-4510-99ea-b4802070d30f", - "name": "io.github.jaw9c/awesome-remote-mcp-servers", - "description": "A curated, opinionated list of high-quality remote Model Context Protocol (MCP) servers. ", - "repository": { - "url": "https://github.com/jaw9c/awesome-remote-mcp-servers", - "source": "github", - "id": "961291556" + "server": { + "name": "io.github.jaw9c/awesome-remote-mcp-servers", + "description": "A curated, opinionated list of high-quality remote Model Context Protocol (MCP) servers. ", + "status": "active", + "repository": { + "url": "https://github.com/jaw9c/awesome-remote-mcp-servers", + "source": "github", + "id": "961291556" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "jaw9c/awesome-remote-mcp-servers", + "version": "", + "package_arguments": [ + { + "description": "\u003cREMOTE_MCP_SERVER_URL\u003e", + "is_required": true, + "format": "string", + "value": "\u003cREMOTE_MCP_SERVER_URL\u003e", + "default": "\u003cREMOTE_MCP_SERVER_URL\u003e", + "type": "positional", + "value_hint": "\u003cREMOTE_MCP_SERVER_URL\u003e" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "2a679bdd-d106-4510-99ea-b4802070d30f", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:46Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "jaw9c/awesome-remote-mcp-servers", - "version": "", - "package_arguments": [ - { - "description": "", - "is_required": true, - "format": "string", - "value": "", - "default": "", - "type": "positional", - "value_hint": "" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "d0568ded-6678-4940-b344-9644e04e6d7b", - "name": "io.github.mcp-router/mcp-router", - "description": "MCP Router enables easily manage your MCP (Model Context Protocol) servers with enhanced security", - "repository": { - "url": "https://github.com/mcp-router/mcp-router", - "source": "github", - "id": "952939763" + "server": { + "name": "io.github.mcp-router/mcp-router", + "description": "MCP Router enables easily manage your MCP (Model Context Protocol) servers with enhanced security", + "status": "active", + "repository": { + "url": "https://github.com/mcp-router/mcp-router", + "source": "github", + "id": "952939763" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "my-docs-site", + "version": "0.0.0", + "package_arguments": [ + { + "is_required": true, + "format": "string", + "value": "connect", + "default": "connect", + "type": "positional", + "value_hint": "connect" + } + ], + "environment_variables": [ + { + "description": "Issued Token", + "name": "MCPR_TOKEN" + } + ] + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "d0568ded-6678-4940-b344-9644e04e6d7b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:50Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "my-docs-site", - "version": "0.0.0", - "package_arguments": [ - { - "is_required": true, - "format": "string", - "value": "connect", - "default": "connect", - "type": "positional", - "value_hint": "connect" - } - ], - "environment_variables": [ - { - "description": "Issued Token", - "name": "MCPR_TOKEN" - } - ] - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "29cf2977-4a42-44f0-8e62-f92ca8391412", - "name": "io.github.wong2/mcp-cli", - "description": "A CLI inspector for the Model Context Protocol", - "repository": { - "url": "https://github.com/wong2/mcp-cli", - "source": "github", - "id": "898806068" + "server": { + "name": "io.github.wong2/mcp-cli", + "description": "A CLI inspector for the Model Context Protocol", + "status": "active", + "repository": { + "url": "https://github.com/wong2/mcp-cli", + "source": "github", + "id": "898806068" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@wong2/mcp-cli", + "version": "1.10.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "29cf2977-4a42-44f0-8e62-f92ca8391412", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:16:56Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "npm", - "name": "@wong2/mcp-cli", - "version": "1.10.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "963aac9c-4999-4ce6-93c9-43d4b2de16bb", - "name": "io.github.pathintegral-institute/mcpm.sh", - "description": "CLI MCP package manager & registry for all platforms and all clients. Search & configure MCP servers. Advanced Router & Profile features.", - "repository": { - "url": "https://github.com/pathintegral-institute/mcpm.sh", - "source": "github", - "id": "952463457" + "server": { + "name": "io.github.pathintegral-institute/mcpm.sh", + "description": "CLI MCP package manager \u0026 registry for all platforms and all clients. Search \u0026 configure MCP servers. Advanced Router \u0026 Profile features.", + "status": "active", + "repository": { + "url": "https://github.com/pathintegral-institute/mcpm.sh", + "source": "github", + "id": "952463457" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcpm", + "version": "" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "963aac9c-4999-4ce6-93c9-43d4b2de16bb", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:17:00Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcpm", - "version": "" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "3288499d-b820-45c9-8abf-60c050c5c741", - "name": "io.github.zueai/mcp-manager", - "description": "simple web ui to manage mcp (model context protocol) servers in the claude app", - "repository": { - "url": "https://github.com/zueai/mcp-manager", - "source": "github", - "id": "900260982" + "server": { + "name": "io.github.zueai/mcp-manager", + "description": "simple web ui to manage mcp (model context protocol) servers in the claude app", + "status": "active", + "repository": { + "url": "https://github.com/zueai/mcp-manager", + "source": "github", + "id": "900260982" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "mcp-manager", + "version": "0.1.9" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "3288499d-b820-45c9-8abf-60c050c5c741", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:17:02Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "pypi", - "name": "mcp-manager", - "version": "0.1.9" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "9f38c975-9a2a-484f-8173-562153f515e4", - "name": "io.github.jeamee/mcphub-desktop", - "description": "Desktop APP for Discover and Install MCP Servers", - "repository": { - "url": "https://github.com/Jeamee/MCPHub-Desktop", - "source": "github", - "id": "898806615" + "server": { + "name": "io.github.jeamee/mcphub-desktop", + "description": "Desktop APP for Discover and Install MCP Servers", + "status": "active", + "repository": { + "url": "https://github.com/Jeamee/MCPHub-Desktop", + "source": "github", + "id": "898806615" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcphub-desktop", + "version": "0.2.1" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "9f38c975-9a2a-484f-8173-562153f515e4", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:17:04Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcphub-desktop", - "version": "0.2.1" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } }, { - "id": "53bef572-b137-447a-bb2f-9fdd37926619", - "name": "io.github.chatmcp/mcp-directory", - "description": "directory for Awesome MCP Servers", - "repository": { - "url": "https://github.com/chatmcp/mcpso", - "source": "github", - "id": "899309258" + "server": { + "name": "io.github.chatmcp/mcp-directory", + "description": "directory for Awesome MCP Servers", + "status": "active", + "repository": { + "url": "https://github.com/chatmcp/mcpso", + "source": "github", + "id": "899309258" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "docker", + "name": "navfast", + "version": "0.1.0" + } + ] }, - "version_detail": { - "version": "0.0.1-seed", + "x-io.modelcontextprotocol.registry": { + "id": "53bef572-b137-447a-bb2f-9fdd37926619", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", "release_date": "2025-05-16T19:17:06Z", - "is_latest": true - }, - "packages": [ - { - "registry_name": "docker", - "name": "navfast", - "version": "0.1.0" - } - ] + "updated_at": "0001-01-01T00:00:00Z" + } } ] \ No newline at end of file diff --git a/docs/server-json/examples.md b/docs/server-json/examples.md index 361c76d..fd1a14d 100644 --- a/docs/server-json/examples.md +++ b/docs/server-json/examples.md @@ -1,34 +1,45 @@ # Server JSON Examples +_These examples show the PublishRequest format used by the `/v0/publish` API endpoint. Each example includes the `server` specification and optional `x-publisher` extensions for build metadata._ + ## Basic Server with NPM Package ```json { - "name": "io.modelcontextprotocol/brave-search", - "description": "MCP server for Brave Search API integration", - "status": "active", - "repository": { - "url": "https://github.com/modelcontextprotocol/servers", - "source": "github" + "server": { + "name": "io.modelcontextprotocol/brave-search", + "description": "MCP server for Brave Search API integration", + "status": "active", + "repository": { + "url": "https://github.com/modelcontextprotocol/servers", + "source": "github" + }, + "version_detail": { + "version": "1.0.2" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@modelcontextprotocol/server-brave-search", + "version": "1.0.2", + "environment_variables": [ + { + "name": "BRAVE_API_KEY", + "description": "Brave Search API Key", + "is_required": true, + "is_secret": true + } + ] + } + ] }, - "version_detail": { - "version": "1.0.2" - }, - "packages": [ - { - "registry_name": "npm", - "name": "@modelcontextprotocol/server-brave-search", - "version": "1.0.2", - "environment_variables": [ - { - "name": "BRAVE_API_KEY", - "description": "Brave Search API Key", - "is_required": true, - "is_secret": true - } - ] + "x-publisher": { + "tool": "npm-publisher", + "version": "1.0.1", + "build_info": { + "timestamp": "2023-12-01T10:30:00Z" } - ] + } } ``` @@ -38,28 +49,38 @@ Suppose your MCP server application requires a `mcp start` CLI arguments to star ```json { - "name": "Knapcode.SampleMcpServer", - "description": "Sample NuGet MCP server for a random number and random weather", - "version_detail": { - "version": "0.4.0-beta" + "server": { + "name": "Knapcode.SampleMcpServer", + "description": "Sample NuGet MCP server for a random number and random weather", + "version_detail": { + "version": "0.4.0-beta" + }, + "packages": [ + { + "registry_name": "nuget", + "name": "Knapcode.SampleMcpServer", + "version": "0.4.0-beta", + "package_arguments": [ + { + "type": "positional", + "value": "mcp" + }, + { + "type": "positional", + "value": "start" + } + ] + } + ] }, - "packages": [ - { - "registry_name": "nuget", - "name": "Knapcode.SampleMcpServer", - "version": "0.4.0-beta", - "package_arguments": [ - { - "type": "positional", - "value": "mcp" - }, - { - "type": "positional", - "value": "start" - } - ] + "x-publisher": { + "tool": "nuget-publisher", + "version": "2.1.0", + "build_info": { + "timestamp": "2023-11-15T14:22:00Z", + "pipeline_id": "nuget-build-456" } - ] + } } ``` @@ -69,82 +90,94 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp ```json { - "name": "io.modelcontextprotocol/filesystem", - "description": "Node.js server implementing Model Context Protocol (MCP) for filesystem operations.", - "status": "active", - "repository": { - "url": "https://github.com/modelcontextprotocol/servers", - "source": "github", - "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9" - }, - "version_detail": { - "version": "1.0.2" - }, - "packages": [ - { - "registry_name": "npm", - "name": "@modelcontextprotocol/server-filesystem", - "version": "1.0.2", - "package_arguments": [ - { - "type": "positional", - "value_hint": "target_dir", - "description": "Path to access", - "default": "/Users/username/Desktop", - "is_required": true, - "is_repeated": true - } - ], - "environment_variables": [ - { - "name": "LOG_LEVEL", - "description": "Logging level (debug, info, warn, error)", - "default": "info" - } - ] + "server": { + "name": "io.modelcontextprotocol/filesystem", + "description": "Node.js server implementing Model Context Protocol (MCP) for filesystem operations.", + "status": "active", + "repository": { + "url": "https://github.com/modelcontextprotocol/servers", + "source": "github", + "id": "b94b5f7e-c7c6-d760-2c78-a5e9b8a5b8c9" }, - { - "registry_name": "docker", - "name": "mcp/filesystem", - "version": "1.0.2", - "runtime_arguments": [ - { - "type": "named", - "description": "Mount a volume into the container", - "name": "--mount", - "value": "type=bind,src={source_path},dst={target_path}", - "is_required": true, - "is_repeated": true, - "variables": { - "source_path": { - "description": "Source path on host", - "format": "filepath", - "is_required": true - }, - "target_path": { - "description": "Path to mount in the container. It should be rooted in `/project` directory.", - "is_required": true, - "default": "/project" + "version_detail": { + "version": "1.0.2" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@modelcontextprotocol/server-filesystem", + "version": "1.0.2", + "package_arguments": [ + { + "type": "positional", + "value_hint": "target_dir", + "description": "Path to access", + "default": "/Users/username/Desktop", + "is_required": true, + "is_repeated": true + } + ], + "environment_variables": [ + { + "name": "LOG_LEVEL", + "description": "Logging level (debug, info, warn, error)", + "default": "info" + } + ] + }, + { + "registry_name": "docker", + "name": "mcp/filesystem", + "version": "1.0.2", + "runtime_arguments": [ + { + "type": "named", + "description": "Mount a volume into the container", + "name": "--mount", + "value": "type=bind,src={source_path},dst={target_path}", + "is_required": true, + "is_repeated": true, + "variables": { + "source_path": { + "description": "Source path on host", + "format": "filepath", + "is_required": true + }, + "target_path": { + "description": "Path to mount in the container. It should be rooted in `/project` directory.", + "is_required": true, + "default": "/project" + } } } - } - ], - "package_arguments": [ - { - "type": "positional", - "value_hint": "target_dir", - "value": "/project" - } - ], - "environment_variables": [ - { - "name": "LOG_LEVEL", - "description": "Logging level (debug, info, warn, error)", - "default": "info" - } - ] + ], + "package_arguments": [ + { + "type": "positional", + "value_hint": "target_dir", + "value": "/project" + } + ], + "environment_variables": [ + { + "name": "LOG_LEVEL", + "description": "Logging level (debug, info, warn, error)", + "default": "info" + } + ] + } + ] + }, + "x-publisher": { + "tool": "ci-publisher", + "version": "3.2.1", + "build_info": { + "commit": "a1b2c3d4e5f6789", + "timestamp": "2023-12-01T10:30:00Z", + "pipeline_id": "filesystem-build-789", + "environment": "production" } - ] + } } ``` @@ -152,22 +185,34 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp ```json { - "name": "Remote Filesystem Server", - "description": "Cloud-hosted MCP filesystem server", - "repository": { - "url": "https://github.com/example/remote-fs", - "source": "github", - "id": "xyz789ab-cdef-0123-4567-890ghijklmno" + "server": { + "name": "Remote Filesystem Server", + "description": "Cloud-hosted MCP filesystem server", + "repository": { + "url": "https://github.com/example/remote-fs", + "source": "github", + "id": "xyz789ab-cdef-0123-4567-890ghijklmno" + }, + "version_detail": { + "version": "2.0.0" + }, + "remotes": [ + { + "transport_type": "sse", + "url": "https://mcp-fs.example.com/sse" + } + ] }, - "version_detail": { - "version": "2.0.0" - }, - "remotes": [ - { - "transport_type": "sse", - "url": "https://mcp-fs.example.com/sse" + "x-publisher": { + "tool": "cloud-deployer", + "version": "2.4.0", + "build_info": { + "commit": "f7e8d9c2b1a0", + "timestamp": "2023-12-05T08:45:00Z", + "deployment_id": "remote-fs-deploy-456", + "region": "us-west-2" } - ] + } } ``` @@ -175,37 +220,49 @@ This will essentially instruct the MCP client to execute `dnx Knapcode.SampleMcp ```json { - "name": "weather-mcp-server", - "description": "Python MCP server for weather data access", - "repository": { - "url": "https://github.com/example/weather-mcp", - "source": "github", - "id": "def456gh-ijkl-7890-mnop-qrstuvwxyz12" + "server": { + "name": "weather-mcp-server", + "description": "Python MCP server for weather data access", + "repository": { + "url": "https://github.com/example/weather-mcp", + "source": "github", + "id": "def456gh-ijkl-7890-mnop-qrstuvwxyz12" + }, + "version_detail": { + "version": "0.5.0" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "weather-mcp-server", + "version": "0.5.0", + "runtime_hint": "uvx", + "environment_variables": [ + { + "name": "WEATHER_API_KEY", + "description": "API key for weather service", + "is_required": true, + "is_secret": true + }, + { + "name": "WEATHER_UNITS", + "description": "Temperature units (celsius, fahrenheit)", + "default": "celsius" + } + ] + } + ] }, - "version_detail": { - "version": "0.5.0" - }, - "packages": [ - { - "registry_name": "pypi", - "name": "weather-mcp-server", - "version": "0.5.0", - "runtime_hint": "uvx", - "environment_variables": [ - { - "name": "WEATHER_API_KEY", - "description": "API key for weather service", - "is_required": true, - "is_secret": true - }, - { - "name": "WEATHER_UNITS", - "description": "Temperature units (celsius, fahrenheit)", - "default": "celsius" - } - ] + "x-publisher": { + "tool": "poetry-publisher", + "version": "1.8.3", + "build_info": { + "python_version": "3.11.5", + "timestamp": "2023-11-28T16:20:00Z", + "build_id": "pypi-weather-123", + "dependencies_hash": "sha256:a9b8c7d6e5f4" } - ] + } } ``` @@ -215,32 +272,45 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6. ```json { - "name": "Knapcode.SampleMcpServer", - "description": "Sample NuGet MCP server for a random number and random weather", - "repository": { - "url": "https://github.com/joelverhagen/Knapcode.SampleMcpServer", - "source": "github", - "id": "example-nuget-id-0000-1111-222222222222" + "server": { + "name": "Knapcode.SampleMcpServer", + "description": "Sample NuGet MCP server for a random number and random weather", + "repository": { + "url": "https://github.com/joelverhagen/Knapcode.SampleMcpServer", + "source": "github", + "id": "example-nuget-id-0000-1111-222222222222" + }, + "version_detail": { + "version": "0.5.0" + }, + "packages": [ + { + "registry_name": "nuget", + "name": "Knapcode.SampleMcpServer", + "version": "0.5.0", + "runtime_hint": "dnx", + "environment_variables": [ + { + "name": "WEATHER_CHOICES", + "description": "Comma separated list of weather descriptions to randomly select.", + "is_required": true, + "is_secret": false + } + ] + } + ] }, - "version_detail": { - "version": "0.5.0" - }, - "packages": [ - { - "registry_name": "nuget", - "name": "Knapcode.SampleMcpServer", - "version": "0.5.0", - "runtime_hint": "dnx", - "environment_variables": [ - { - "name": "WEATHER_CHOICES", - "description": "Comma separated list of weather descriptions to randomly select.", - "is_required": true, - "is_secret": false - } - ] + "x-publisher": { + "tool": "dotnet-publisher", + "version": "8.0.100", + "build_info": { + "dotnet_version": "8.0.0", + "timestamp": "2023-12-10T12:15:00Z", + "configuration": "Release", + "target_framework": "net8.0", + "build_number": "20231210.1" } - ] + } } ``` @@ -248,85 +318,98 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6. ```json { - "name": "mcp-database-manager", - "description": "MCP server for database operations with support for multiple database types", - "repository": { - "url": "https://github.com/example/mcp-database", - "source": "github", - "id": "ghi789jk-lmno-1234-pqrs-tuvwxyz56789" - }, - "version_detail": { - "version": "3.1.0" - }, - "packages": [ - { - "registry_name": "docker", - "name": "mcp/database-manager", - "version": "3.1.0", - "runtime_arguments": [ - { - "type": "named", - "name": "--network", - "value": "host", - "description": "Use host network mode" - }, - { - "type": "named", - "name": "-e", - "value": "DB_TYPE={db_type}", - "description": "Database type to connect to", - "is_repeated": true, - "variables": { - "db_type": { - "description": "Type of database", - "choices": ["postgres", "mysql", "mongodb", "redis"], - "is_required": true + "server": { + "name": "mcp-database-manager", + "description": "MCP server for database operations with support for multiple database types", + "repository": { + "url": "https://github.com/example/mcp-database", + "source": "github", + "id": "ghi789jk-lmno-1234-pqrs-tuvwxyz56789" + }, + "version_detail": { + "version": "3.1.0" + }, + "packages": [ + { + "registry_name": "docker", + "name": "mcp/database-manager", + "version": "3.1.0", + "runtime_arguments": [ + { + "type": "named", + "name": "--network", + "value": "host", + "description": "Use host network mode" + }, + { + "type": "named", + "name": "-e", + "value": "DB_TYPE={db_type}", + "description": "Database type to connect to", + "is_repeated": true, + "variables": { + "db_type": { + "description": "Type of database", + "choices": ["postgres", "mysql", "mongodb", "redis"], + "is_required": true + } } } - } - ], - "package_arguments": [ - { - "type": "named", - "name": "--host", - "description": "Database host", - "default": "localhost", - "is_required": true - }, - { - "type": "named", - "name": "--port", - "description": "Database port", - "format": "number" - }, - { - "type": "positional", - "value_hint": "database_name", - "description": "Name of the database to connect to", - "is_required": true - } - ], - "environment_variables": [ - { - "name": "DB_USERNAME", - "description": "Database username", - "is_required": true - }, - { - "name": "DB_PASSWORD", - "description": "Database password", - "is_required": true, - "is_secret": true - }, - { - "name": "SSL_MODE", - "description": "SSL connection mode", - "default": "prefer", - "choices": ["disable", "prefer", "require"] - } - ] + ], + "package_arguments": [ + { + "type": "named", + "name": "--host", + "description": "Database host", + "default": "localhost", + "is_required": true + }, + { + "type": "named", + "name": "--port", + "description": "Database port", + "format": "number" + }, + { + "type": "positional", + "value_hint": "database_name", + "description": "Name of the database to connect to", + "is_required": true + } + ], + "environment_variables": [ + { + "name": "DB_USERNAME", + "description": "Database username", + "is_required": true + }, + { + "name": "DB_PASSWORD", + "description": "Database password", + "is_required": true, + "is_secret": true + }, + { + "name": "SSL_MODE", + "description": "SSL connection mode", + "default": "prefer", + "choices": ["disable", "prefer", "require"] + } + ] + } + ] + }, + "x-publisher": { + "tool": "docker-buildx", + "version": "0.12.1", + "build_info": { + "docker_version": "24.0.7", + "timestamp": "2023-12-08T14:30:00Z", + "platform": "linux/amd64,linux/arm64", + "registry": "docker.io", + "image_digest": "sha256:1a2b3c4d5e6f7890" } - ] + } } ``` @@ -334,57 +417,73 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6. ```json { - "name": "hybrid-mcp-server", - "description": "MCP server available as both local package and remote service", - "repository": { - "url": "https://github.com/example/hybrid-mcp", - "source": "github", - "id": "klm012no-pqrs-3456-tuvw-xyz789abcdef" - }, - "version_detail": { - "version": "1.5.0" - }, - "packages": [ - { - "registry_name": "npm", - "name": "@example/hybrid-mcp-server", - "version": "1.5.0", - "runtime_hint": "npx", - "package_arguments": [ - { - "type": "named", - "name": "--mode", - "description": "Operation mode", - "default": "local", - "choices": ["local", "cached", "proxy"] - } - ] - } - ], - "remotes": [ - { - "transport_type": "sse", - "url": "https://hybrid-mcp.example.com/sse", - "headers": [ - { - "name": "X-API-Key", - "description": "API key for authentication", - "is_required": true, - "is_secret": true - }, - { - "name": "X-Region", - "description": "Service region", - "default": "us-east-1", - "choices": ["us-east-1", "eu-west-1", "ap-southeast-1"] - } - ] + "server": { + "name": "hybrid-mcp-server", + "description": "MCP server available as both local package and remote service", + "repository": { + "url": "https://github.com/example/hybrid-mcp", + "source": "github", + "id": "klm012no-pqrs-3456-tuvw-xyz789abcdef" }, - { - "transport_type": "streamable", - "url": "https://hybrid-mcp.example.com/stream" + "version_detail": { + "version": "1.5.0" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@example/hybrid-mcp-server", + "version": "1.5.0", + "runtime_hint": "npx", + "package_arguments": [ + { + "type": "named", + "name": "--mode", + "description": "Operation mode", + "default": "local", + "choices": ["local", "cached", "proxy"] + } + ] + } + ], + "remotes": [ + { + "transport_type": "sse", + "url": "https://hybrid-mcp.example.com/sse", + "headers": [ + { + "name": "X-API-Key", + "description": "API key for authentication", + "is_required": true, + "is_secret": true + }, + { + "name": "X-Region", + "description": "Service region", + "default": "us-east-1", + "choices": ["us-east-1", "eu-west-1", "ap-southeast-1"] + } + ] + }, + { + "transport_type": "streamable", + "url": "https://hybrid-mcp.example.com/stream" + } + ] + }, + "x-publisher": { + "tool": "hybrid-deployer", + "version": "1.7.2", + "build_info": { + "timestamp": "2023-12-03T11:00:00Z", + "deployment_strategy": "blue-green", + "npm_version": "10.2.4", + "node_version": "20.10.0", + "service_endpoints": { + "sse": "deployed", + "streamable": "deployed" + } } - ] + } } ``` @@ -392,31 +491,43 @@ The `dnx` tool ships with the .NET 10 SDK, starting with Preview 6. ```json { - "name": "io.legacy/old-weather-server", - "description": "Legacy weather server - DEPRECATED: Use weather-v2 instead for new projects", - "status": "deprecated", - "repository": { - "url": "https://github.com/example/old-weather", - "source": "github", - "id": "legacy-abc123-def456-789012-345678-901234567890" + "server": { + "name": "io.legacy/old-weather-server", + "description": "Legacy weather server - DEPRECATED: Use weather-v2 instead for new projects", + "status": "deprecated", + "repository": { + "url": "https://github.com/example/old-weather", + "source": "github", + "id": "legacy-abc123-def456-789012-345678-901234567890" + }, + "version_detail": { + "version": "0.9.5" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@legacy/old-weather-server", + "version": "0.9.5", + "environment_variables": [ + { + "name": "WEATHER_API_KEY", + "description": "Weather API key", + "is_required": true, + "is_secret": true + } + ] + } + ] }, - "version_detail": { - "version": "0.9.5" - }, - "packages": [ - { - "registry_name": "npm", - "name": "@legacy/old-weather-server", - "version": "0.9.5", - "environment_variables": [ - { - "name": "WEATHER_API_KEY", - "description": "Weather API key", - "is_required": true, - "is_secret": true - } - ] + "x-publisher": { + "tool": "legacy-publisher", + "version": "0.8.1", + "build_info": { + "timestamp": "2023-06-15T09:30:00Z", + "deprecation_notice": "This publisher is deprecated. Use npm-publisher v2.0+ for new projects.", + "maintenance_mode": true, + "final_version": true } - ] + } } ``` \ No newline at end of file diff --git a/docs/server-registry-api/openapi.yaml b/docs/server-registry-api/openapi.yaml index b4fcb24..98d120a 100644 --- a/docs/server-registry-api/openapi.yaml +++ b/docs/server-registry-api/openapi.yaml @@ -58,7 +58,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ServerDetail' + $ref: '#/components/schemas/ServerResponse' '404': description: Server not found content: @@ -69,7 +69,85 @@ paths: error: type: string example: "Server not found" + /publish: + post: + summary: Publish MCP server + description: Publish a new MCP server to the registry or update an existing one + security: + - bearerAuth: [] + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PublishRequest' + examples: + basic_server: + summary: Basic server with NPM package + value: + server: + name: "io.modelcontextprotocol/filesystem" + description: "Node.js server implementing Model Context Protocol (MCP) for filesystem operations." + status: "active" + repository: + url: "https://github.com/modelcontextprotocol/servers" + source: "github" + version_detail: + version: "1.0.2" + packages: + - registry_name: "npm" + name: "@modelcontextprotocol/server-filesystem" + version: "1.0.2" + x-publisher: + tool: "publisher-cli" + version: "1.2.3" + build_info: + commit: "abc123def456" + timestamp: "2023-12-01T10:30:00Z" + responses: + '200': + description: Successfully published server + content: + application/json: + schema: + $ref: '#/components/schemas/ServerResponse' + '401': + description: Unauthorized - Invalid or missing authentication token + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Invalid or expired Registry JWT token" + '403': + description: Forbidden - Insufficient permissions + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "You do not have permission to publish this server" + '500': + description: Internal server error + content: + application/json: + schema: + type: object + properties: + error: + type: string + example: "Failed to publish server" components: + securitySchemes: + bearerAuth: + type: http + scheme: bearer + bearerFormat: JWT + description: Registry JWT token. Convention is that this can be obtained from a `/v0/auth/` endpoint. schemas: Repository: type: object @@ -154,7 +232,7 @@ components: servers: type: array items: - $ref: '#/components/schemas/Server' + $ref: '#/components/schemas/ServerResponse' metadata: type: object properties: @@ -354,3 +432,82 @@ components: type: array items: $ref: '#/components/schemas/Remote' + + ServerResponse: + description: API response format for MCP servers, including registry metadata and publisher extensions + type: object + required: + - server + - x-io.modelcontextprotocol.registry + properties: + server: + $ref: '#/components/schemas/ServerDetail' + description: The core MCP server specification + x-io.modelcontextprotocol.registry: + type: object + description: Registry-specific metadata managed by the MCP registry system + required: + - id + - published_at + - updated_at + - is_latest + properties: + id: + type: string + format: uuid + description: Unique registry identifier for this server entry + example: "550e8400-e29b-41d4-a716-446655440000" + published_at: + type: string + format: date-time + description: Timestamp when the server was first published to the registry + example: "2023-12-01T10:30:00Z" + updated_at: + type: string + format: date-time + description: Timestamp when the server entry was last updated + example: "2023-12-01T11:00:00Z" + is_latest: + type: boolean + description: Whether this is the latest version of the server + example: true + release_date: + type: string + format: date-time + description: Release date of the server version + example: "2023-12-01T10:30:00Z" + additionalProperties: false + x-publisher: + type: object + description: Publisher-specific metadata and build information attached during publishing + additionalProperties: true + example: + tool: "publisher-cli" + version: "1.2.3" + build_info: + commit: "abc123def456" + timestamp: "2023-12-01T10:30:00Z" + pipeline_id: "build-789" + additionalProperties: false + + PublishRequest: + description: Request format for publishing MCP servers to the registry + type: object + required: + - server + properties: + server: + $ref: '#/components/schemas/ServerDetail' + description: The MCP server specification to publish + x-publisher: + type: object + description: Publisher-specific metadata and build information + additionalProperties: true + example: + tool: "publisher-cli" + version: "1.2.3" + build_info: + commit: "abc123def456" + timestamp: "2023-12-01T10:30:00Z" + pipeline_id: "build-789" + additionalProperties: false diff --git a/internal/api/handlers/v0/publish.go b/internal/api/handlers/v0/publish.go index b2e9bfd..78302f2 100644 --- a/internal/api/handlers/v0/publish.go +++ b/internal/api/handlers/v0/publish.go @@ -2,6 +2,7 @@ package v0 import ( "context" + "encoding/json" "net/http" "strings" @@ -15,7 +16,7 @@ import ( // PublishServerInput represents the input for publishing a server type PublishServerInput struct { Authorization string `header:"Authorization" doc:"Registry JWT token (obtained from /v0/auth/token/github)" required:"true"` - Body model.PublishRequest + RawBody []byte `body:"raw"` } // RegisterPublishEndpoint registers the publish endpoint @@ -33,7 +34,7 @@ func RegisterPublishEndpoint(api huma.API, registry service.RegistryService, cfg Security: []map[string][]string{ {"bearer": {}}, }, - }, func(ctx context.Context, input *PublishServerInput) (*Response[model.Server], error) { + }, func(ctx context.Context, input *PublishServerInput) (*Response[model.ServerResponse], error) { // Extract bearer token const bearerPrefix = "Bearer " authHeader := input.Authorization @@ -48,30 +49,34 @@ func RegisterPublishEndpoint(api huma.API, registry service.RegistryService, cfg return nil, huma.Error401Unauthorized("Invalid or expired Registry JWT token", err) } - // Convert PublishRequest body to ServerDetail - serverDetail := input.Body.ServerDetail + // Validate that only allowed extension fields are present + if err := model.ValidatePublishRequestExtensions(input.RawBody); err != nil { + return nil, huma.Error400BadRequest("Invalid request format", err) + } + + // Parse the validated request body + var publishRequest model.PublishRequest + if err := json.Unmarshal(input.RawBody, &publishRequest); err != nil { + return nil, huma.Error400BadRequest("Invalid JSON format", err) + } + + // Get server details from request body + serverDetail := publishRequest.Server // Verify that the token's repository matches the server being published if !jwtManager.HasPermission(serverDetail.Name, auth.PermissionActionPublish, claims.Permissions) { return nil, huma.Error403Forbidden("You do not have permission to publish this server") } - // Publish the server details - err = registry.Publish(&serverDetail) + // Publish the server with extensions + publishedServer, err := registry.Publish(publishRequest) if err != nil { return nil, huma.Error500InternalServerError("Failed to publish server", err) } - // Create response with the published server data - return &Response[model.Server]{ - Body: model.Server{ - ID: serverDetail.ID, - Name: serverDetail.Name, - Description: serverDetail.Description, - Status: serverDetail.Status, - Repository: serverDetail.Repository, - VersionDetail: serverDetail.VersionDetail, - }, + // Return the published server in extension wrapper format + return &Response[model.ServerResponse]{ + Body: *publishedServer, }, nil }) } diff --git a/internal/api/handlers/v0/publish_integration_test.go b/internal/api/handlers/v0/publish_integration_test.go index e3a098d..60ffb97 100644 --- a/internal/api/handlers/v0/publish_integration_test.go +++ b/internal/api/handlers/v0/publish_integration_test.go @@ -54,20 +54,17 @@ func TestPublishIntegration(t *testing.T) { t.Run("successful publish with GitHub auth", func(t *testing.T) { publishReq := model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "io.github.testuser/test-mcp-server", - Description: "A test MCP server for integration testing", - Repository: model.Repository{ - URL: "https://github.com/testuser/test-mcp-server", - Source: "github", - ID: "testuser/test-mcp-server", - }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "io.github.testuser/test-mcp-server", + Description: "A test MCP server for integration testing", + Repository: model.Repository{ + URL: "https://github.com/testuser/test-mcp-server", + Source: "github", + ID: "testuser/test-mcp-server", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, - // Packages field removed as it depends on the actual model.Package structure }, } @@ -94,28 +91,26 @@ func TestPublishIntegration(t *testing.T) { assert.Equal(t, http.StatusOK, rr.Code) - var response model.Server + var response model.ServerResponse err = json.Unmarshal(rr.Body.Bytes(), &response) require.NoError(t, err) - assert.Equal(t, publishReq.Name, response.Name) - assert.Equal(t, publishReq.VersionDetail.Version, response.VersionDetail.Version) + assert.Equal(t, publishReq.Server.Name, response.Server.Name) + assert.Equal(t, publishReq.Server.VersionDetail.Version, response.Server.VersionDetail.Version) }) t.Run("successful publish without auth (no prefix)", func(t *testing.T) { publishReq := model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "test-mcp-server-no-auth", - Description: "A test MCP server without authentication", - Repository: model.Repository{ - URL: "https://example.com/test-mcp-server", - Source: "example", - ID: "test-mcp-server", - }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "test-mcp-server-no-auth", + Description: "A test MCP server without authentication", + Repository: model.Repository{ + URL: "https://example.com/test-mcp-server", + Source: "example", + ID: "test-mcp-server", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, } @@ -142,19 +137,17 @@ func TestPublishIntegration(t *testing.T) { assert.Equal(t, http.StatusOK, rr.Code) - var response model.Server + var response model.ServerResponse err = json.Unmarshal(rr.Body.Bytes(), &response) require.NoError(t, err) - assert.Equal(t, publishReq.Name, response.Name) + assert.Equal(t, publishReq.Server.Name, response.Server.Name) }) t.Run("publish fails with missing authorization header", func(t *testing.T) { publishReq := model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "test-server", - }, + Server: model.ServerDetail{ + Name: "test-server", }, } @@ -174,10 +167,8 @@ func TestPublishIntegration(t *testing.T) { t.Run("publish fails with invalid token", func(t *testing.T) { publishReq := model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "test-server", - }, + Server: model.ServerDetail{ + Name: "test-server", }, } @@ -197,13 +188,11 @@ func TestPublishIntegration(t *testing.T) { t.Run("publish fails when permission denied", func(t *testing.T) { publishReq := model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "io.github.other/test-server", - Description: "A test server", - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "io.github.other/test-server", + Description: "A test server", + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, } diff --git a/internal/api/handlers/v0/publish_test.go b/internal/api/handlers/v0/publish_test.go index a311711..54befd7 100644 --- a/internal/api/handlers/v0/publish_test.go +++ b/internal/api/handlers/v0/publish_test.go @@ -28,22 +28,25 @@ type MockRegistryService struct { mock.Mock } -func (m *MockRegistryService) List(cursor string, limit int) ([]model.Server, string, error) { +func (m *MockRegistryService) List(cursor string, limit int) ([]model.ServerResponse, string, error) { args := m.Called(cursor, limit) - return args.Get(0).([]model.Server), args.String(1), args.Error(2) + return args.Get(0).([]model.ServerResponse), args.String(1), args.Error(2) } -func (m *MockRegistryService) GetByID(id string) (*model.ServerDetail, error) { +func (m *MockRegistryService) GetByID(id string) (*model.ServerResponse, error) { args := m.Called(id) if args.Get(0) == nil { return nil, args.Error(1) } - return args.Get(0).(*model.ServerDetail), args.Error(1) + return args.Get(0).(*model.ServerResponse), args.Error(1) } -func (m *MockRegistryService) Publish(serverDetail *model.ServerDetail) error { - args := m.Called(serverDetail) - return args.Error(0) +func (m *MockRegistryService) Publish(request model.PublishRequest) (*model.ServerResponse, error) { + args := m.Called(request) + if args.Get(0) == nil { + return nil, args.Error(1) + } + return args.Get(0).(*model.ServerResponse), args.Error(1) } // Helper function to generate a valid JWT token for testing @@ -77,21 +80,16 @@ func TestPublishEndpoint(t *testing.T) { { name: "successful publish with GitHub auth", requestBody: model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - ID: "test-id", - Name: "io.github.example/test-server", - Description: "A test server", - Repository: model.Repository{ - URL: "https://github.com/example/test-server", - Source: "github", - ID: "example/test-server", - }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2025-05-25T00:00:00Z", - IsLatest: true, - }, + Server: model.ServerDetail{ + Name: "io.github.example/test-server", + Description: "A test server", + Repository: model.Repository{ + URL: "https://github.com/example/test-server", + Source: "github", + ID: "example/test-server", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, }, @@ -103,28 +101,23 @@ func TestPublishEndpoint(t *testing.T) { }, }, setupMocks: func(registry *MockRegistryService) { - registry.On("Publish", mock.AnythingOfType("*model.ServerDetail")).Return(nil) + registry.On("Publish", mock.AnythingOfType("model.PublishRequest")).Return(&model.ServerResponse{}, nil) }, expectedStatus: http.StatusOK, }, { name: "successful publish with no auth (AuthMethodNone)", requestBody: model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - ID: "test-id-2", - Name: "example/test-server", - Description: "A test server without auth", - Repository: model.Repository{ - URL: "https://example.com/test-server", - Source: "example", - ID: "example/test-server", - }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2025-05-25T00:00:00Z", - IsLatest: true, - }, + Server: model.ServerDetail{ + Name: "example/test-server", + Description: "A test server without auth", + Repository: model.Repository{ + URL: "https://example.com/test-server", + Source: "example", + ID: "example/test-server", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, }, @@ -135,7 +128,7 @@ func TestPublishEndpoint(t *testing.T) { }, }, setupMocks: func(registry *MockRegistryService) { - registry.On("Publish", mock.AnythingOfType("*model.ServerDetail")).Return(nil) + registry.On("Publish", mock.AnythingOfType("model.PublishRequest")).Return(&model.ServerResponse{}, nil) }, expectedStatus: http.StatusOK, }, @@ -158,13 +151,11 @@ func TestPublishEndpoint(t *testing.T) { { name: "invalid token", requestBody: model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "test-server", - Description: "A test server", - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "test-server", + Description: "A test server", + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, }, @@ -176,13 +167,11 @@ func TestPublishEndpoint(t *testing.T) { { name: "permission denied", requestBody: model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "io.github.other/test-server", - Description: "A test server", - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "io.github.other/test-server", + Description: "A test server", + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, }, @@ -199,13 +188,11 @@ func TestPublishEndpoint(t *testing.T) { { name: "registry service error", requestBody: model.PublishRequest{ - ServerDetail: model.ServerDetail{ - Server: model.Server{ - Name: "example/test-server", - Description: "A test server", - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - }, + Server: model.ServerDetail{ + Name: "example/test-server", + Description: "A test server", + VersionDetail: model.VersionDetail{ + Version: "1.0.0", }, }, }, @@ -216,7 +203,7 @@ func TestPublishEndpoint(t *testing.T) { }, }, setupMocks: func(registry *MockRegistryService) { - registry.On("Publish", mock.AnythingOfType("*model.ServerDetail")).Return(errors.New("database error")) + registry.On("Publish", mock.AnythingOfType("model.PublishRequest")).Return(nil, errors.New("database error")) }, expectedStatus: http.StatusInternalServerError, expectedError: "Failed to publish server", diff --git a/internal/api/handlers/v0/servers.go b/internal/api/handlers/v0/servers.go index faa0b2e..cfc731d 100644 --- a/internal/api/handlers/v0/servers.go +++ b/internal/api/handlers/v0/servers.go @@ -25,8 +25,8 @@ type ListServersInput struct { // ListServersBody represents the paginated server list response body type ListServersBody struct { - Servers []model.Server `json:"servers" doc:"List of MCP servers"` - Metadata *Metadata `json:"metadata,omitempty" doc:"Pagination metadata"` + Servers []model.ServerResponse `json:"servers" doc:"List of MCP servers with extensions"` + Metadata *Metadata `json:"metadata,omitempty" doc:"Pagination metadata"` } // ServerDetailInput represents the input for getting server details @@ -85,7 +85,7 @@ func RegisterServersEndpoints(api huma.API, registry service.RegistryService) { Summary: "Get MCP server details", Description: "Get detailed information about a specific MCP server", Tags: []string{"servers"}, - }, func(_ context.Context, input *ServerDetailInput) (*Response[model.ServerDetail], error) { + }, func(_ context.Context, input *ServerDetailInput) (*Response[model.ServerResponse], error) { // Get the server details from the registry service serverDetail, err := registry.GetByID(input.ID) if err != nil { @@ -95,7 +95,7 @@ func RegisterServersEndpoints(api huma.API, registry service.RegistryService) { return nil, huma.Error500InternalServerError("Failed to get server details", err) } - return &Response[model.ServerDetail]{ + return &Response[model.ServerResponse]{ Body: *serverDetail, }, nil }) diff --git a/internal/api/handlers/v0/servers_test.go b/internal/api/handlers/v0/servers_test.go index 1945aa0..6324917 100644 --- a/internal/api/handlers/v0/servers_test.go +++ b/internal/api/handlers/v0/servers_test.go @@ -23,16 +23,55 @@ func TestServersListEndpoint(t *testing.T) { queryParams string setupMocks func(*MockRegistryService) expectedStatus int - expectedServers []model.Server + expectedServers []model.ServerResponse expectedMeta *v0.Metadata expectedError string }{ { name: "successful list with default parameters", setupMocks: func(registry *MockRegistryService) { - servers := []model.Server{ + servers := []model.ServerResponse{ { - ID: "550e8400-e29b-41d4-a716-446655440001", + Server: model.ServerDetail{ + Name: "test-server-1", + Description: "First test server", + Repository: model.Repository{ + URL: "https://github.com/example/test-server-1", + Source: "github", + ID: "example/test-server-1", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", + }, + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440001", + }, + }, + { + Server: model.ServerDetail{ + Name: "test-server-2", + Description: "Second test server", + Repository: model.Repository{ + URL: "https://github.com/example/test-server-2", + Source: "github", + ID: "example/test-server-2", + }, + VersionDetail: model.VersionDetail{ + Version: "2.0.0", + }, + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440002", + }, + }, + } + registry.Mock.On("List", "", 30).Return(servers, "", nil) + }, + expectedStatus: http.StatusOK, + expectedServers: []model.ServerResponse{ + { + Server: model.ServerDetail{ Name: "test-server-1", Description: "First test server", Repository: model.Repository{ @@ -41,13 +80,15 @@ func TestServersListEndpoint(t *testing.T) { ID: "example/test-server-1", }, VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2025-05-25T00:00:00Z", - IsLatest: true, + Version: "1.0.0", }, }, - { - ID: "550e8400-e29b-41d4-a716-446655440002", + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440001", + }, + }, + { + Server: model.ServerDetail{ Name: "test-server-2", Description: "Second test server", Repository: model.Repository{ @@ -56,44 +97,11 @@ func TestServersListEndpoint(t *testing.T) { ID: "example/test-server-2", }, VersionDetail: model.VersionDetail{ - Version: "2.0.0", - ReleaseDate: "2025-05-26T00:00:00Z", - IsLatest: true, + Version: "2.0.0", }, }, - } - registry.Mock.On("List", "", 30).Return(servers, "", nil) - }, - expectedStatus: http.StatusOK, - expectedServers: []model.Server{ - { - ID: "550e8400-e29b-41d4-a716-446655440001", - Name: "test-server-1", - Description: "First test server", - Repository: model.Repository{ - URL: "https://github.com/example/test-server-1", - Source: "github", - ID: "example/test-server-1", - }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2025-05-25T00:00:00Z", - IsLatest: true, - }, - }, - { - ID: "550e8400-e29b-41d4-a716-446655440002", - Name: "test-server-2", - Description: "Second test server", - Repository: model.Repository{ - URL: "https://github.com/example/test-server-2", - Source: "github", - ID: "example/test-server-2", - }, - VersionDetail: model.VersionDetail{ - Version: "2.0.0", - ReleaseDate: "2025-05-26T00:00:00Z", - IsLatest: true, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440002", }, }, }, @@ -102,9 +110,32 @@ func TestServersListEndpoint(t *testing.T) { name: "successful list with cursor and limit", queryParams: "?cursor=550e8400-e29b-41d4-a716-446655440000&limit=10", setupMocks: func(registry *MockRegistryService) { - servers := []model.Server{ + servers := []model.ServerResponse{ { - ID: "550e8400-e29b-41d4-a716-446655440003", + Server: model.ServerDetail{ + Name: "test-server-3", + Description: "Third test server", + Repository: model.Repository{ + URL: "https://github.com/example/test-server-3", + Source: "github", + ID: "example/test-server-3", + }, + VersionDetail: model.VersionDetail{ + Version: "1.5.0", + }, + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440003", + }, + }, + } + nextCursor := uuid.New().String() + registry.Mock.On("List", mock.AnythingOfType("string"), 10).Return(servers, nextCursor, nil) + }, + expectedStatus: http.StatusOK, + expectedServers: []model.ServerResponse{ + { + Server: model.ServerDetail{ Name: "test-server-3", Description: "Third test server", Repository: model.Repository{ @@ -113,30 +144,11 @@ func TestServersListEndpoint(t *testing.T) { ID: "example/test-server-3", }, VersionDetail: model.VersionDetail{ - Version: "1.5.0", - ReleaseDate: "2025-05-27T00:00:00Z", - IsLatest: true, + Version: "1.5.0", }, }, - } - nextCursor := uuid.New().String() - registry.Mock.On("List", mock.AnythingOfType("string"), 10).Return(servers, nextCursor, nil) - }, - expectedStatus: http.StatusOK, - expectedServers: []model.Server{ - { - ID: "550e8400-e29b-41d4-a716-446655440003", - Name: "test-server-3", - Description: "Third test server", - Repository: model.Repository{ - URL: "https://github.com/example/test-server-3", - Source: "github", - ID: "example/test-server-3", - }, - VersionDetail: model.VersionDetail{ - Version: "1.5.0", - ReleaseDate: "2025-05-27T00:00:00Z", - IsLatest: true, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "550e8400-e29b-41d4-a716-446655440003", }, }, }, @@ -183,7 +195,7 @@ func TestServersListEndpoint(t *testing.T) { { name: "registry service error", setupMocks: func(registry *MockRegistryService) { - registry.Mock.On("List", "", 30).Return([]model.Server{}, "", errors.New("database connection error")) + registry.Mock.On("List", "", 30).Return([]model.ServerResponse{}, "", errors.New("database connection error")) }, expectedStatus: http.StatusInternalServerError, expectedError: "Failed to get registry list", @@ -220,8 +232,8 @@ func TestServersListEndpoint(t *testing.T) { // Parse response body var resp struct { - Servers []model.Server `json:"servers"` - Metadata *v0.Metadata `json:"metadata,omitempty"` + Servers []model.ServerResponse `json:"servers"` + Metadata *v0.Metadata `json:"metadata,omitempty"` } err := json.NewDecoder(w.Body).Decode(&resp) assert.NoError(t, err) @@ -255,16 +267,15 @@ func TestServersDetailEndpoint(t *testing.T) { serverID string setupMocks func(*MockRegistryService, string) expectedStatus int - expectedServer *model.ServerDetail + expectedServer *model.ServerResponse expectedError string }{ { name: "successful get server detail", serverID: uuid.New().String(), setupMocks: func(registry *MockRegistryService, serverID string) { - serverDetail := &model.ServerDetail{ - Server: model.Server{ - ID: serverID, + serverDetail := &model.ServerResponse{ + Server: model.ServerDetail{ Name: "test-server-detail", Description: "Test server detail", Repository: model.Repository{ @@ -273,11 +284,12 @@ func TestServersDetailEndpoint(t *testing.T) { ID: "example/test-server-detail", }, VersionDetail: model.VersionDetail{ - Version: "2.0.0", - ReleaseDate: "2025-05-27T12:00:00Z", - IsLatest: true, + Version: "2.0.0", }, }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": serverID, + }, } registry.Mock.On("GetByID", serverID).Return(serverDetail, nil) }, @@ -339,13 +351,12 @@ func TestServersDetailEndpoint(t *testing.T) { assert.Equal(t, "application/json", w.Header().Get("Content-Type")) // Parse response body - var serverDetailResp model.ServerDetail + var serverDetailResp model.ServerResponse err := json.NewDecoder(w.Body).Decode(&serverDetailResp) assert.NoError(t, err) // Check that we got a valid response - assert.NotEmpty(t, serverDetailResp.ID) - assert.NotEmpty(t, serverDetailResp.Name) + assert.NotEmpty(t, serverDetailResp.Server.Name) } else if tc.expectedError != "" { // Check error message for non-200 responses assert.Contains(t, w.Body.String(), tc.expectedError) @@ -364,26 +375,29 @@ func TestServersEndpointsIntegration(t *testing.T) { // Test data serverID := uuid.New().String() - servers := []model.Server{ + servers := []model.ServerResponse{ { - ID: serverID, - Name: "integration-test-server", - Description: "Integration test server", - Repository: model.Repository{ - URL: "https://github.com/example/integration-test", - Source: "github", - ID: "example/integration-test", + Server: model.ServerDetail{ + Name: "integration-test-server", + Description: "Integration test server", + Repository: model.Repository{ + URL: "https://github.com/example/integration-test", + Source: "github", + ID: "example/integration-test", + }, + VersionDetail: model.VersionDetail{ + Version: "1.0.0", + }, }, - VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2025-05-27T00:00:00Z", - IsLatest: true, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": serverID, }, }, } - serverDetail := &model.ServerDetail{ - Server: servers[0], + serverDetail := &model.ServerResponse{ + Server: servers[0].Server, + XIOModelContextProtocolRegistry: servers[0].XIOModelContextProtocolRegistry, } // Setup mocks @@ -424,7 +438,7 @@ func TestServersEndpointsIntegration(t *testing.T) { // Parse response body var listResp struct { - Servers []model.Server `json:"servers"` + Servers []model.ServerResponse `json:"servers"` } err = json.NewDecoder(resp.Body).Decode(&listResp) assert.NoError(t, err) @@ -455,7 +469,7 @@ func TestServersEndpointsIntegration(t *testing.T) { assert.Equal(t, "application/json", resp.Header.Get("Content-Type")) // Parse response body - var serverDetailResp model.ServerDetail + var serverDetailResp model.ServerResponse err = json.NewDecoder(resp.Body).Decode(&serverDetailResp) assert.NoError(t, err) @@ -465,4 +479,4 @@ func TestServersEndpointsIntegration(t *testing.T) { // Verify mock expectations mockRegistry.AssertExpectations(t) -} +} \ No newline at end of file diff --git a/internal/api/handlers/v0/telemetry_test.go b/internal/api/handlers/v0/telemetry_test.go index 6e257fe..dd9062b 100644 --- a/internal/api/handlers/v0/telemetry_test.go +++ b/internal/api/handlers/v0/telemetry_test.go @@ -19,9 +19,8 @@ import ( ) func mockServerEndpoint(registry *MockRegistryService, serverID string) { - serverDetail := &model.ServerDetail{ - Server: model.Server{ - ID: serverID, + serverDetail := &model.ServerResponse{ + Server: model.ServerDetail{ Name: "test-server-detail", Description: "Test server detail", Repository: model.Repository{ @@ -30,11 +29,12 @@ func mockServerEndpoint(registry *MockRegistryService, serverID string) { ID: "example/test-server-detail", }, VersionDetail: model.VersionDetail{ - Version: "2.0.0", - ReleaseDate: "2025-05-27T12:00:00Z", - IsLatest: true, + Version: "2.0.0", }, }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": serverID, + }, } registry.Mock.On("GetByID", serverID).Return(serverDetail, nil) } diff --git a/internal/database/database.go b/internal/database/database.go index 131ce42..1804a57 100644 --- a/internal/database/database.go +++ b/internal/database/database.go @@ -16,14 +16,14 @@ var ( ErrInvalidVersion = errors.New("invalid version: cannot publish older version after newer version") ) -// Database defines the interface for database operations on MCPRegistry entries +// Database defines the interface for database operations with extension wrapper architecture type Database interface { - // List retrieves all MCPRegistry entries with optional filtering - List(ctx context.Context, filter map[string]any, cursor string, limit int) ([]*model.Server, string, error) - // GetByID retrieves a single ServerDetail by it's ID - GetByID(ctx context.Context, id string) (*model.ServerDetail, error) - // Publish adds a new ServerDetail to the database - Publish(ctx context.Context, serverDetail *model.ServerDetail) error + // List retrieves all ServerRecord entries with optional filtering + List(ctx context.Context, filter map[string]any, cursor string, limit int) ([]*model.ServerRecord, string, error) + // GetByID retrieves a single ServerRecord by its ID + GetByID(ctx context.Context, id string) (*model.ServerRecord, error) + // Publish adds a new server to the database with separated server.json and extensions + Publish(ctx context.Context, serverDetail model.ServerDetail, publisherExtensions map[string]interface{}) (*model.ServerRecord, error) // ImportSeed imports initial data from a seed file ImportSeed(ctx context.Context, seedFilePath string) error // Close closes the database connection diff --git a/internal/database/import.go b/internal/database/import.go index 8c39143..3ef33e3 100644 --- a/internal/database/import.go +++ b/internal/database/import.go @@ -5,11 +5,8 @@ import ( "encoding/json" "fmt" "io" - "log" "net/http" - "net/url" "os" - "path/filepath" "strings" "time" @@ -17,255 +14,165 @@ import ( ) // ReadSeedFile reads seed data from various sources: -// 1. Local file paths (*.json files) -// 2. Direct HTTP URLs to seed.json files +// 1. Local file paths (*.json files) - expects extension wrapper format +// 2. Direct HTTP URLs to seed.json files - expects extension wrapper format // 3. Registry root URLs (automatically appends /v0/servers and paginates) -func ReadSeedFile(ctx context.Context, path string) ([]model.ServerDetail, error) { - log.Printf("Reading seed data from %s", path) +// Only the extension wrapper format is supported (array of ServerResponse objects) +func ReadSeedFile(ctx context.Context, path string) ([]*model.ServerRecord, error) { + var data []byte + var err error - // Set default seed file path if not provided - if path == "" { - // Try to find the seed.json in the data directory - path = filepath.Join("data", "seed.json") - if _, err := os.Stat(path); os.IsNotExist(err) { - return nil, fmt.Errorf("seed file not found at %s", path) - } - } - - // Check if path is an HTTP URL if strings.HasPrefix(path, "http://") || strings.HasPrefix(path, "https://") { - // Determine if this is a direct seed file URL or a registry root URL - if strings.HasSuffix(path, ".json") || strings.Contains(path, "seed.json") { - // Direct seed file URL - read directly - fileContent, err := readFromHTTP(ctx, path) - if err != nil { - return nil, fmt.Errorf("failed to read from HTTP URL: %w", err) - } - return parseSeedJSON(fileContent) + // Handle HTTP URLs + if strings.HasSuffix(path, "/v0/servers") || strings.Contains(path, "/v0/servers") { + // This is a registry API endpoint - fetch paginated data + return fetchFromRegistryAPI(ctx, path) } - // Registry root URL - paginate through /v0/servers endpoint - return readFromRegistryWithContext(ctx, path) + // This is a direct file URL + data, err = fetchFromHTTP(ctx, path) + } else { + // Handle local file paths + data, err = os.ReadFile(path) } - // Read from local file - fileContent, err := os.ReadFile(path) + if err != nil { - return nil, fmt.Errorf("failed to read file: %w", err) + return nil, fmt.Errorf("failed to read seed data from %s: %w", path, err) } - return parseSeedJSON(fileContent) + + // Parse extension wrapper format (only supported format) + var serverResponses []model.ServerResponse + if err := json.Unmarshal(data, &serverResponses); err != nil { + return nil, fmt.Errorf("failed to parse seed data as extension wrapper format: %w", err) + } + + if len(serverResponses) == 0 { + return []*model.ServerRecord{}, nil + } + + // Convert ServerResponse to ServerRecord + var records []*model.ServerRecord + for _, response := range serverResponses { + record := convertServerResponseToRecord(response) + records = append(records, record) + } + + return records, nil } -// readFromHTTP reads content from an HTTP URL with timeout -func readFromHTTP(ctx context.Context, url string) ([]byte, error) { - client := &http.Client{ - Timeout: 30 * time.Second, - } - +func fetchFromHTTP(ctx context.Context, url string) ([]byte, error) { req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) if err != nil { - return nil, fmt.Errorf("failed to create request: %w", err) + return nil, fmt.Errorf("failed to create HTTP request: %w", err) } - resp, err := client.Do(req) + resp, err := http.DefaultClient.Do(req) if err != nil { - return nil, fmt.Errorf("failed to fetch URL: %w", err) + return nil, fmt.Errorf("failed to fetch from HTTP: %w", err) } defer resp.Body.Close() if resp.StatusCode != http.StatusOK { - return nil, fmt.Errorf("HTTP request failed with status %d: %s", resp.StatusCode, resp.Status) + return nil, fmt.Errorf("HTTP request failed with status: %d", resp.StatusCode) } - // Read the response body - body, err := io.ReadAll(resp.Body) - if err != nil { - return nil, fmt.Errorf("failed to read response body: %w", err) - } - - return body, nil + return io.ReadAll(resp.Body) } -// parseSeedJSON parses JSON content into ServerDetail objects -func parseSeedJSON(fileContent []byte) ([]model.ServerDetail, error) { - var servers []model.ServerDetail - if err := json.Unmarshal(fileContent, &servers); err != nil { - // Try parsing as a raw JSON array and then convert to our model - var rawData []map[string]any - if jsonErr := json.Unmarshal(fileContent, &rawData); jsonErr != nil { - return nil, fmt.Errorf("failed to parse JSON: %w (original error: %w)", jsonErr, err) - } - } - - log.Printf("Found %d server entries in seed data", len(servers)) - return servers, nil -} - -// PaginatedResponse represents the paginated response from /v0/servers endpoint -// PaginatedResponse represents the structure of a paginated response from /v0/servers endpoint -type PaginatedResponse struct { - Data []model.Server `json:"servers"` - Metadata Metadata `json:"metadata,omitempty"` -} - -// Metadata contains pagination metadata -type Metadata struct { - NextCursor string `json:"next_cursor,omitempty"` - Count int `json:"count,omitempty"` - Total int `json:"total,omitempty"` -} - -// readFromRegistryWithContext reads all servers from a registry by paginating through /v0/servers endpoint -func readFromRegistryWithContext(ctx context.Context, registryURL string) ([]model.ServerDetail, error) { - log.Printf("Reading from registry: %s", registryURL) - - // Ensure the URL doesn't have a trailing slash - registryURL = strings.TrimSuffix(registryURL, "/") - - var allServers []model.ServerDetail +func fetchFromRegistryAPI(ctx context.Context, baseURL string) ([]*model.ServerRecord, error) { + var allRecords []*model.ServerRecord cursor := "" - pageCount := 0 - - client := &http.Client{ - Timeout: 30 * time.Second, - } for { - pageCount++ - - // Add delay between requests as requested (10 seconds by default) - // Can be overridden by SEED_IMPORT_DELAY environment variable for testing - if pageCount > 1 { // Don't delay before the first request - delay := 10 * time.Second - if delayStr := os.Getenv("SEED_IMPORT_DELAY"); delayStr != "" { - if parsedDelay, err := time.ParseDuration(delayStr); err == nil { - delay = parsedDelay - } - } - if delay > 0 { - log.Printf("Waiting %v before fetching page %d...", delay, pageCount) - time.Sleep(delay) - } - } - - log.Printf("Fetching page %d from registry", pageCount) - - // Build the URL for this page - serverURL := registryURL + "/v0/servers" + url := baseURL if cursor != "" { - // Add cursor parameter for pagination - parsed, err := url.Parse(serverURL) - if err != nil { - return nil, fmt.Errorf("failed to parse registry URL: %w", err) + if strings.Contains(url, "?") { + url += "&cursor=" + cursor + } else { + url += "?cursor=" + cursor } - query := parsed.Query() - query.Set("cursor", cursor) - query.Set("limit", "100") // Use maximum limit for efficiency - parsed.RawQuery = query.Encode() - serverURL = parsed.String() - } else { - // First page - use max limit - serverURL += "?limit=100" } - // Fetch the page - req, err := http.NewRequestWithContext(ctx, http.MethodGet, serverURL, nil) + data, err := fetchFromHTTP(ctx, url) if err != nil { - return nil, fmt.Errorf("failed to create request for %s: %w", serverURL, err) - } - resp, err := client.Do(req) - if err != nil { - return nil, fmt.Errorf("failed to fetch servers from %s: %w", serverURL, err) + return nil, fmt.Errorf("failed to fetch page from registry API: %w", err) } - if resp.StatusCode != http.StatusOK { - resp.Body.Close() - return nil, fmt.Errorf("HTTP request to %s failed with status %d: %s", serverURL, resp.StatusCode, resp.Status) + var response struct { + Servers []model.ServerResponse `json:"servers"` + Metadata *struct { + NextCursor string `json:"next_cursor,omitempty"` + } `json:"metadata,omitempty"` } - // Read and parse the response - body, err := io.ReadAll(resp.Body) - resp.Body.Close() - if err != nil { - return nil, fmt.Errorf("failed to read response body from %s: %w", serverURL, err) + if err := json.Unmarshal(data, &response); err != nil { + return nil, fmt.Errorf("failed to parse registry API response: %w", err) } - var pageResponse PaginatedResponse - if err := json.Unmarshal(body, &pageResponse); err != nil { - return nil, fmt.Errorf("failed to parse servers response from %s: %w", serverURL, err) + // Convert and add servers + for _, serverResponse := range response.Servers { + record := convertServerResponseToRecord(serverResponse) + allRecords = append(allRecords, record) } - log.Printf("Retrieved %d servers from page %d", len(pageResponse.Data), pageCount) - - // For each server in this page, get the detailed information - for _, server := range pageResponse.Data { - // Build URL for server detail - detailURL := registryURL + "/v0/servers/" + server.ID - - detailReq, err := http.NewRequestWithContext(ctx, http.MethodGet, detailURL, nil) - if err != nil { - log.Printf("Warning: failed to create request for server %s: %v", server.ID, err) - // Fall back to basic server information - serverDetail := model.ServerDetail{ - Server: server, - } - allServers = append(allServers, serverDetail) - continue - } - - detailResp, err := client.Do(detailReq) - if err != nil { - log.Printf("Warning: failed to fetch details for server %s: %v", server.ID, err) - // Fall back to basic server information - serverDetail := model.ServerDetail{ - Server: server, - } - allServers = append(allServers, serverDetail) - continue - } - - if detailResp.StatusCode != http.StatusOK { - log.Printf("Warning: failed to fetch details for server %s (status %d)", server.ID, detailResp.StatusCode) - detailResp.Body.Close() - // Fall back to basic server information - serverDetail := model.ServerDetail{ - Server: server, - } - allServers = append(allServers, serverDetail) - continue - } - - detailBody, err := io.ReadAll(detailResp.Body) - detailResp.Body.Close() - if err != nil { - log.Printf("Warning: failed to read detail response for server %s: %v", server.ID, err) - // Fall back to basic server information - serverDetail := model.ServerDetail{ - Server: server, - } - allServers = append(allServers, serverDetail) - continue - } - - var serverDetail model.ServerDetail - if err := json.Unmarshal(detailBody, &serverDetail); err != nil { - log.Printf("Warning: failed to parse detail response for server %s: %v", server.ID, err) - // Fall back to basic server information - serverDetail = model.ServerDetail{ - Server: server, - } - } - - allServers = append(allServers, serverDetail) - } - - // Check if there are more pages - if pageResponse.Metadata.NextCursor == "" { - log.Printf("Reached end of pagination after %d pages", pageCount) + // Check if there's a next page + if response.Metadata == nil || response.Metadata.NextCursor == "" { break } - - cursor = pageResponse.Metadata.NextCursor + cursor = response.Metadata.NextCursor } - log.Printf("Successfully retrieved %d servers from registry %s", len(allServers), registryURL) - return allServers, nil + return allRecords, nil } + +func convertServerResponseToRecord(response model.ServerResponse) *model.ServerRecord { + // Extract registry metadata from the extension + registryExt := response.XIOModelContextProtocolRegistry + + // Parse timestamps + publishedAt, _ := time.Parse(time.RFC3339, getStringFromInterface(registryExt, "published_at")) + updatedAt, _ := time.Parse(time.RFC3339, getStringFromInterface(registryExt, "updated_at")) + + registryMetadata := model.RegistryMetadata{ + ID: getStringFromInterface(registryExt, "id"), + IsLatest: getBoolFromInterface(registryExt, "is_latest"), + PublishedAt: publishedAt, + UpdatedAt: updatedAt, + ReleaseDate: getStringFromInterface(registryExt, "release_date"), + } + + // Publisher extensions + publisherExtensions := make(map[string]interface{}) + if response.XPublisher != nil { + if publisherMap, ok := response.XPublisher.(map[string]interface{}); ok { + publisherExtensions = publisherMap + } + } + + return &model.ServerRecord{ + ServerJSON: response.Server, + RegistryMetadata: registryMetadata, + PublisherExtensions: publisherExtensions, + } +} + +func getStringFromInterface(data interface{}, key string) string { + if dataMap, ok := data.(map[string]interface{}); ok { + if value, exists := dataMap[key]; exists { + if strValue, ok := value.(string); ok { + return strValue + } + } + } + return "" +} + +func getBoolFromInterface(data interface{}, key string) bool { + if dataMap, ok := data.(map[string]interface{}); ok { + if value, exists := dataMap[key]; exists { + if boolValue, ok := value.(bool); ok { + return boolValue + } + } + } + return false +} \ No newline at end of file diff --git a/internal/database/import_test.go b/internal/database/import_test.go index cda9eea..67abddd 100644 --- a/internal/database/import_test.go +++ b/internal/database/import_test.go @@ -14,12 +14,11 @@ import ( ) func TestReadSeedFile_LocalFile(t *testing.T) { - // Create a temporary seed file + // Create a temporary seed file in extension wrapper format tempFile := "/tmp/test_seed.json" - seedData := []model.ServerDetail{ + seedData := []model.ServerResponse{ { - Server: model.Server{ - ID: "test-id-1", + Server: model.ServerDetail{ Name: "test-server-1", Description: "Test server 1", Repository: model.Repository{ @@ -28,11 +27,14 @@ func TestReadSeedFile_LocalFile(t *testing.T) { ID: "123", }, VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: "2023-01-01T00:00:00Z", - IsLatest: true, + Version: "1.0.0", }, }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "test-id-1", + "published_at": "2023-01-01T00:00:00Z", + "is_latest": true, + }, }, } @@ -56,18 +58,22 @@ func TestReadSeedFile_LocalFile(t *testing.T) { result, err := database.ReadSeedFile(context.Background(), tempFile) assert.NoError(t, err) assert.Len(t, result, 1) - assert.Equal(t, "test-server-1", result[0].Name) + assert.Equal(t, "test-server-1", result[0].ServerJSON.Name) } func TestReadSeedFile_DirectHTTPURL(t *testing.T) { - // Create a test HTTP server that serves seed JSON directly - seedData := []model.ServerDetail{ + // Create a test HTTP server that serves seed JSON directly in extension wrapper format + seedData := []model.ServerResponse{ { - Server: model.Server{ - ID: "test-id-1", + Server: model.ServerDetail{ Name: "test-server-1", Description: "Test server 1", }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "test-id-1", + "published_at": "2023-01-01T00:00:00Z", + "is_latest": true, + }, }, } @@ -83,35 +89,51 @@ func TestReadSeedFile_DirectHTTPURL(t *testing.T) { result, err := database.ReadSeedFile(context.Background(), server.URL+"/seed.json") assert.NoError(t, err) assert.Len(t, result, 1) - assert.Equal(t, "test-server-1", result[0].Name) + assert.Equal(t, "test-server-1", result[0].ServerJSON.Name) } func TestReadSeedFile_RegistryURL(t *testing.T) { - // Create mock registry servers - server1 := model.Server{ - ID: "server-1", - Name: "Test Server 1", - Description: "First test server", + // Create mock registry responses + server1 := model.ServerResponse{ + Server: model.ServerDetail{ + Name: "Test Server 1", + Description: "First test server", + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "server-1", + "published_at": "2023-01-01T00:00:00Z", + "is_latest": true, + }, } - server2 := model.Server{ - ID: "server-2", - Name: "Test Server 2", - Description: "Second test server", + server2 := model.ServerResponse{ + Server: model.ServerDetail{ + Name: "Test Server 2", + Description: "Second test server", + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "server-2", + "published_at": "2023-01-01T00:00:00Z", + "is_latest": true, + }, } serverDetail1 := model.ServerDetail{ - Server: server1, + Name: "Test Server 1", + Description: "First test server", Packages: []model.Package{ { + RegistryName: "npm", Name: "test-package-1", Version: "1.0.0", }, }, } serverDetail2 := model.ServerDetail{ - Server: server2, + Name: "Test Server 2", + Description: "Second test server", Packages: []model.Package{ { + RegistryName: "npm", Name: "test-package-2", Version: "2.0.0", }, @@ -125,22 +147,32 @@ func TestReadSeedFile_RegistryURL(t *testing.T) { mux.HandleFunc("/v0/servers", func(w http.ResponseWriter, r *http.Request) { cursor := r.URL.Query().Get("cursor") - var response database.PaginatedResponse + type Metadata struct { + NextCursor string `json:"next_cursor,omitempty"` + Count int `json:"count,omitempty"` + } + + type PaginatedResponse struct { + Servers []model.ServerResponse `json:"servers"` + Metadata *Metadata `json:"metadata,omitempty"` + } + + var response PaginatedResponse switch cursor { case "": // First page - response = database.PaginatedResponse{ - Data: []model.Server{server1}, - Metadata: database.Metadata{ + response = PaginatedResponse{ + Servers: []model.ServerResponse{server1}, + Metadata: &Metadata{ NextCursor: "next-cursor-1", Count: 1, }, } case "next-cursor-1": // Second page - response = database.PaginatedResponse{ - Data: []model.Server{server2}, - Metadata: database.Metadata{ + response = PaginatedResponse{ + Servers: []model.ServerResponse{server2}, + Metadata: &Metadata{ Count: 1, // No NextCursor means end of pagination }, @@ -172,17 +204,15 @@ func TestReadSeedFile_RegistryURL(t *testing.T) { defer server.Close() // Test reading from registry root URL (this should trigger pagination) - result, err := database.ReadSeedFile(context.Background(), server.URL) + result, err := database.ReadSeedFile(context.Background(), server.URL+"/v0/servers") assert.NoError(t, err) assert.Len(t, result, 2) // Verify the servers were imported correctly - assert.Equal(t, "Test Server 1", result[0].Name) - assert.Equal(t, "Test Server 2", result[1].Name) + assert.Equal(t, "Test Server 1", result[0].ServerJSON.Name) + assert.Equal(t, "Test Server 2", result[1].ServerJSON.Name) - // Verify packages were included - assert.Len(t, result[0].Packages, 1) - assert.Equal(t, "test-package-1", result[0].Packages[0].Name) - assert.Len(t, result[1].Packages, 1) - assert.Equal(t, "test-package-2", result[1].Packages[0].Name) -} + // Verify metadata was extracted + assert.Equal(t, "server-1", result[0].RegistryMetadata.ID) + assert.Equal(t, "server-2", result[1].RegistryMetadata.ID) +} \ No newline at end of file diff --git a/internal/database/memory.go b/internal/database/memory.go index 2efcb64..7f7d73d 100644 --- a/internal/database/memory.go +++ b/internal/database/memory.go @@ -3,7 +3,6 @@ package database import ( "context" "fmt" - "log" "sort" "strconv" "strings" @@ -16,21 +15,32 @@ import ( // MemoryDB is an in-memory implementation of the Database interface type MemoryDB struct { - entries map[string]*model.ServerDetail + entries map[string]*model.ServerRecord // maps registry metadata ID to ServerRecord mu sync.RWMutex } // NewMemoryDB creates a new instance of the in-memory database -func NewMemoryDB(e map[string]*model.Server) *MemoryDB { - // Convert Server entries to ServerDetail entries - serverDetails := make(map[string]*model.ServerDetail) - for k, v := range e { - serverDetails[k] = &model.ServerDetail{ - Server: *v, +func NewMemoryDB(e map[string]*model.ServerDetail) *MemoryDB { + // Convert ServerDetail entries to ServerRecord entries + serverRecords := make(map[string]*model.ServerRecord) + for registryID, serverDetail := range e { + // Create registry metadata + now := time.Now() + record := &model.ServerRecord{ + ServerJSON: *serverDetail, + RegistryMetadata: model.RegistryMetadata{ + ID: registryID, + PublishedAt: now, + UpdatedAt: now, + IsLatest: true, + ReleaseDate: now.Format(time.RFC3339), + }, + PublisherExtensions: make(map[string]interface{}), } + serverRecords[registryID] = record } return &MemoryDB{ - entries: serverDetails, + entries: serverRecords, } } @@ -82,15 +92,13 @@ func compareSemanticVersions(version1, version2 string) int { return 0 } -// List retrieves all MCPRegistry entries with optional filtering and pagination -// -//gocognit:ignore +// List retrieves ServerRecord entries with optional filtering and pagination func (db *MemoryDB) List( ctx context.Context, filter map[string]any, cursor string, limit int, -) ([]*model.Server, string, error) { +) ([]*model.ServerRecord, string, error) { if ctx.Err() != nil { return nil, "", ctx.Err() } @@ -101,16 +109,18 @@ func (db *MemoryDB) List( db.mu.RLock() defer db.mu.RUnlock() + - // Convert all entries to a slice for pagination - var allEntries []*model.Server + // Convert all entries to a slice for pagination, filter by is_latest + var allEntries []*model.ServerRecord for _, entry := range db.entries { - serverCopy := entry.Server - allEntries = append(allEntries, &serverCopy) + if entry.RegistryMetadata.IsLatest { + allEntries = append(allEntries, entry) + } } // Simple filtering implementation - var filteredEntries []*model.Server + var filteredEntries []*model.ServerRecord for _, entry := range allEntries { include := true @@ -118,22 +128,17 @@ func (db *MemoryDB) List( for key, value := range filter { switch key { case "name": - if entry.Name != value.(string) { - include = false - } - case "repoUrl": - if entry.Repository.URL != value.(string) { - include = false - } - case "serverDetail.id": - if entry.ID != value.(string) { + if entry.ServerJSON.Name != value.(string) { include = false } case "version": - if entry.VersionDetail.Version != value.(string) { + if entry.ServerJSON.VersionDetail.Version != value.(string) { + include = false + } + case "status": + if string(entry.ServerJSON.Status) != value.(string) { include = false } - // Add more filter options as needed } } @@ -142,43 +147,43 @@ func (db *MemoryDB) List( } } - // Find starting point for cursor-based pagination + // Sort filteredEntries by registry metadata ID for consistent pagination + sort.Slice(filteredEntries, func(i, j int) bool { + return filteredEntries[i].RegistryMetadata.ID < filteredEntries[j].RegistryMetadata.ID + }) + + // Find starting point for cursor-based pagination using registry metadata ID startIdx := 0 if cursor != "" { for i, entry := range filteredEntries { - if entry.ID == cursor { + if entry.RegistryMetadata.ID == cursor { startIdx = i + 1 // Start after the cursor break } } } - // Sort filteredEntries by ID for consistent pagination - sort.Slice(filteredEntries, func(i, j int) bool { - return filteredEntries[i].ID < filteredEntries[j].ID - }) - // Apply pagination endIdx := min(startIdx+limit, len(filteredEntries)) - var result []*model.Server + var result []*model.ServerRecord if startIdx < len(filteredEntries) { result = filteredEntries[startIdx:endIdx] } else { - result = []*model.Server{} + result = []*model.ServerRecord{} } - // Determine next cursor + // Determine next cursor using registry metadata ID nextCursor := "" if endIdx < len(filteredEntries) { - nextCursor = filteredEntries[endIdx-1].ID + nextCursor = filteredEntries[endIdx-1].RegistryMetadata.ID } return result, nextCursor, nil } -// GetByID retrieves a single ServerDetail by its ID -func (db *MemoryDB) GetByID(ctx context.Context, id string) (*model.ServerDetail, error) { +// GetByID retrieves a single ServerRecord by its registry metadata ID +func (db *MemoryDB) GetByID(ctx context.Context, id string) (*model.ServerRecord, error) { if ctx.Err() != nil { return nil, ctx.Err() } @@ -186,66 +191,84 @@ func (db *MemoryDB) GetByID(ctx context.Context, id string) (*model.ServerDetail db.mu.RLock() defer db.mu.RUnlock() + // Find entry by registry metadata ID if entry, exists := db.entries[id]; exists { - // Return a copy of the ServerDetail - serverDetailCopy := *entry - return &serverDetailCopy, nil + // Return a copy of the ServerRecord + entryCopy := *entry + return &entryCopy, nil } return nil, ErrNotFound } -// Publish adds a new ServerDetail to the database -func (db *MemoryDB) Publish(ctx context.Context, serverDetail *model.ServerDetail) error { +// Publish adds a new server to the database with separated server.json and extensions +func (db *MemoryDB) Publish(ctx context.Context, serverDetail model.ServerDetail, publisherExtensions map[string]interface{}) (*model.ServerRecord, error) { if ctx.Err() != nil { - return ctx.Err() + return nil, ctx.Err() + } + + // Extract name and version for validation + name := serverDetail.Name + if name == "" { + return nil, fmt.Errorf("name is required in server JSON") + } + + version := serverDetail.VersionDetail.Version + if version == "" { + return nil, fmt.Errorf("version is required in version_detail") } db.mu.Lock() defer db.mu.Unlock() - // check for name - if serverDetail.Name == "" { - return ErrInvalidInput - } - - // check that the name and the version are unique - // Also check version ordering - don't allow publishing older versions after newer ones - var latestVersion string + // Check for existing entry with same name and compare versions + var existingRecord *model.ServerRecord for _, entry := range db.entries { - if entry.Name == serverDetail.Name { - if entry.VersionDetail.Version == serverDetail.VersionDetail.Version { - return ErrAlreadyExists - } - - // Track the latest version for this package name - if latestVersion == "" || compareSemanticVersions(entry.VersionDetail.Version, latestVersion) > 0 { - latestVersion = entry.VersionDetail.Version - } + if entry.RegistryMetadata.IsLatest && entry.ServerJSON.Name == name { + existingRecord = entry + break } } - // If we found existing versions, check if the new version is older than the latest - if latestVersion != "" && compareSemanticVersions(serverDetail.VersionDetail.Version, latestVersion) < 0 { - return ErrInvalidVersion + // Version comparison + if existingRecord != nil { + existingVersion := existingRecord.ServerJSON.VersionDetail.Version + if compareSemanticVersions(version, existingVersion) <= 0 { + return nil, fmt.Errorf("version must be greater than existing version %s", existingVersion) + } } + // Validate repository URL if serverDetail.Repository.URL == "" { - return ErrInvalidInput + return nil, ErrInvalidInput } - // Always generate a new UUID for the ID - serverDetail.ID = uuid.New().String() - serverDetail.VersionDetail.IsLatest = true // Assume the new version is the latest - // Only set ReleaseDate if it's not already provided - if serverDetail.VersionDetail.ReleaseDate == "" { - serverDetail.VersionDetail.ReleaseDate = time.Now().Format(time.RFC3339) + // Create new registry metadata + now := time.Now() + registryMetadata := model.RegistryMetadata{ + ID: uuid.New().String(), + PublishedAt: now, + UpdatedAt: now, + IsLatest: true, + ReleaseDate: now.Format(time.RFC3339), } - // Store a copy of the entire ServerDetail - serverDetailCopy := *serverDetail - db.entries[serverDetail.ID] = &serverDetailCopy - return nil + // Create server record + record := &model.ServerRecord{ + ServerJSON: serverDetail, + RegistryMetadata: registryMetadata, + PublisherExtensions: publisherExtensions, + } + + // Mark existing record as not latest + if existingRecord != nil { + existingRecord.RegistryMetadata.IsLatest = false + } + + // Store the record using registry metadata ID + db.entries[registryMetadata.ID] = record + + return record, nil } // ImportSeed imports initial data from a seed file into memory database @@ -253,39 +276,25 @@ func (db *MemoryDB) ImportSeed(ctx context.Context, seedFilePath string) error { if ctx.Err() != nil { return ctx.Err() } - - // Read the seed file + + // This will need to be updated to work with the new ServerRecord format + // Read seed data using the shared ReadSeedFile function seedData, err := ReadSeedFile(ctx, seedFilePath) if err != nil { return fmt.Errorf("failed to read seed file: %w", err) } - log.Printf("Importing %d servers into memory database", len(seedData)) - + // Lock for concurrent access db.mu.Lock() defer db.mu.Unlock() - for i, server := range seedData { - if server.ID == "" || server.Name == "" { - log.Printf("Skipping server %d: ID or Name is empty", i+1) - continue - } - - // Set default version information if missing - if server.VersionDetail.Version == "" { - server.VersionDetail.Version = "0.0.1-seed" - server.VersionDetail.ReleaseDate = time.Now().Format(time.RFC3339) - server.VersionDetail.IsLatest = true - } - - // Store a copy of the server detail - serverDetailCopy := server - db.entries[server.ID] = &serverDetailCopy - - log.Printf("[%d/%d] Imported server: %s", i+1, len(seedData), server.Name) + // Import each server + for _, record := range seedData { + // Use the registry metadata ID as the map key + db.entries[record.RegistryMetadata.ID] = record } + - log.Println("Memory database import completed successfully") return nil } @@ -302,4 +311,4 @@ func (db *MemoryDB) Connection() *ConnectionInfo { IsConnected: true, // Memory DB is always connected Raw: db.entries, } -} +} \ No newline at end of file diff --git a/internal/database/migrations/002_add_server_extensions.sql b/internal/database/migrations/002_add_server_extensions.sql new file mode 100644 index 0000000..97bb6e3 --- /dev/null +++ b/internal/database/migrations/002_add_server_extensions.sql @@ -0,0 +1,62 @@ +-- Add server_extensions table for registry metadata and publisher extensions +-- This migration implements the extension wrapper architecture + +-- Create server_extensions table for registry/publisher metadata +CREATE TABLE server_extensions ( + id UUID PRIMARY KEY DEFAULT uuid_generate_v4(), + server_id UUID NOT NULL REFERENCES servers(id) ON DELETE CASCADE, + + -- Registry metadata as structured columns + published_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + updated_at TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + is_latest BOOLEAN NOT NULL DEFAULT true, + release_date TIMESTAMP WITH TIME ZONE NOT NULL DEFAULT NOW(), + + -- Publisher extensions as flexible JSONB + publisher_extensions JSONB DEFAULT '{}'::jsonb, + + -- Ensure one extension record per server + UNIQUE(server_id) +); + +-- Indexes for performance +CREATE UNIQUE INDEX idx_server_extensions_server_id ON server_extensions(server_id); +CREATE INDEX idx_server_extensions_latest ON server_extensions(is_latest) WHERE is_latest = true; +CREATE INDEX idx_server_extensions_published_at ON server_extensions(published_at); + +-- GIN index for publisher extensions JSONB field +CREATE INDEX idx_server_extensions_publisher_gin ON server_extensions USING GIN(publisher_extensions); + +-- Migrate existing data from servers table to server_extensions table +INSERT INTO server_extensions (server_id, published_at, updated_at, is_latest, release_date, publisher_extensions) +SELECT + id, + created_at, -- Use created_at as published_at + updated_at, + is_latest, + release_date, + '{}'::jsonb -- Empty publisher extensions +FROM servers; + +-- Remove registry metadata columns from servers table (they now live in server_extensions) +ALTER TABLE servers DROP COLUMN release_date; +ALTER TABLE servers DROP COLUMN is_latest; + +-- Update trigger to also update server_extensions updated_at when servers are updated +CREATE OR REPLACE FUNCTION update_server_extensions_updated_at() +RETURNS TRIGGER AS $$ +BEGIN + -- Update the corresponding server_extensions record + UPDATE server_extensions + SET updated_at = NOW() + WHERE server_id = NEW.id; + + RETURN NEW; +END; +$$ language 'plpgsql'; + +-- Trigger to automatically update server_extensions updated_at when servers change +CREATE TRIGGER update_server_extensions_on_server_update + AFTER UPDATE ON servers + FOR EACH ROW + EXECUTE FUNCTION update_server_extensions_updated_at(); \ No newline at end of file diff --git a/internal/database/postgres.go b/internal/database/postgres.go index 00bc463..2d30ba3 100644 --- a/internal/database/postgres.go +++ b/internal/database/postgres.go @@ -41,13 +41,13 @@ func NewPostgreSQL(ctx context.Context, connectionURI string) (*PostgreSQL, erro }, nil } -// List retrieves MCPRegistry entries with optional filtering and pagination +// List retrieves ServerRecord entries with optional filtering and pagination func (db *PostgreSQL) List( ctx context.Context, filter map[string]any, cursor string, limit int, -) ([]*model.Server, string, error) { +) ([]*model.ServerRecord, string, error) { if limit <= 0 { limit = 10 } @@ -56,8 +56,8 @@ func (db *PostgreSQL) List( return nil, "", ctx.Err() } - // Build WHERE clause - whereClause := "WHERE is_latest = true" + // Build WHERE clause for server_extensions filtering + whereClause := "WHERE se.is_latest = true" args := []any{} argIndex := 1 @@ -65,162 +65,225 @@ func (db *PostgreSQL) List( for k, v := range filter { switch k { case "name": - whereClause += fmt.Sprintf(" AND name = $%d", argIndex) + whereClause += fmt.Sprintf(" AND s.name = $%d", argIndex) args = append(args, v) argIndex++ case "version": - whereClause += fmt.Sprintf(" AND version = $%d", argIndex) + whereClause += fmt.Sprintf(" AND s.version = $%d", argIndex) args = append(args, v) argIndex++ case "status": - whereClause += fmt.Sprintf(" AND status = $%d", argIndex) + whereClause += fmt.Sprintf(" AND s.status = $%d", argIndex) args = append(args, v) argIndex++ } } - // Add cursor pagination + // Add cursor pagination using registry metadata ID if cursor != "" { if _, err := uuid.Parse(cursor); err != nil { return nil, "", fmt.Errorf("invalid cursor format: %w", err) } - whereClause += fmt.Sprintf(" AND id > $%d", argIndex) + whereClause += fmt.Sprintf(" AND se.id > $%d", argIndex) args = append(args, cursor) argIndex++ } - // Build query + // Build JOIN query between servers and server_extensions query := fmt.Sprintf(` - SELECT id, name, description, status, repository, version, release_date, is_latest - FROM servers + SELECT + s.name, s.description, s.status, s.repository, s.version, s.packages, s.remotes, + se.id, se.published_at, se.updated_at, se.is_latest, se.release_date, se.publisher_extensions + FROM servers s + JOIN server_extensions se ON s.id = se.server_id %s - ORDER BY id + ORDER BY se.id LIMIT $%d `, whereClause, argIndex) args = append(args, limit) rows, err := db.conn.Query(ctx, query, args...) if err != nil { - return nil, "", fmt.Errorf("failed to query servers: %w", err) + return nil, "", fmt.Errorf("failed to query servers with extensions: %w", err) } defer rows.Close() - var results []*model.Server + var results []*model.ServerRecord for rows.Next() { - var server model.Server - var repositoryJSON []byte - var releaseDate time.Time + var record model.ServerRecord + var repositoryJSON, packagesJSON, remotesJSON, publisherExtensionsJSON []byte + var publishedAt, updatedAt, releaseDate time.Time err := rows.Scan( - &server.ID, - &server.Name, - &server.Description, - &server.Status, + // Server fields + &record.ServerJSON.Name, + &record.ServerJSON.Description, + &record.ServerJSON.Status, &repositoryJSON, - &server.VersionDetail.Version, + &record.ServerJSON.VersionDetail.Version, + &packagesJSON, + &remotesJSON, + // Registry metadata fields + &record.RegistryMetadata.ID, + &publishedAt, + &updatedAt, + &record.RegistryMetadata.IsLatest, &releaseDate, - &server.VersionDetail.IsLatest, + &publisherExtensionsJSON, ) if err != nil { - return nil, "", fmt.Errorf("failed to scan server row: %w", err) + return nil, "", fmt.Errorf("failed to scan server record row: %w", err) } - // Parse repository JSON - if len(repositoryJSON) > 0 { - if err := json.Unmarshal(repositoryJSON, &server.Repository); err != nil { - return nil, "", fmt.Errorf("failed to unmarshal repository: %w", err) - } + // Parse JSON fields + if err := parseJSONFields(&record, repositoryJSON, packagesJSON, remotesJSON, publisherExtensionsJSON); err != nil { + return nil, "", err } - server.VersionDetail.ReleaseDate = releaseDate.Format(time.RFC3339) - results = append(results, &server) + // Set registry metadata timestamps + record.RegistryMetadata.PublishedAt = publishedAt + record.RegistryMetadata.UpdatedAt = updatedAt + record.RegistryMetadata.ReleaseDate = releaseDate.Format(time.RFC3339) + + results = append(results, &record) } if err := rows.Err(); err != nil { return nil, "", fmt.Errorf("error iterating rows: %w", err) } - // Determine next cursor + // Determine next cursor using registry metadata ID nextCursor := "" if len(results) > 0 && len(results) >= limit { - nextCursor = results[len(results)-1].ID + nextCursor = results[len(results)-1].RegistryMetadata.ID } return results, nextCursor, nil } -// GetByID retrieves a single ServerDetail by its ID -func (db *PostgreSQL) GetByID(ctx context.Context, id string) (*model.ServerDetail, error) { +// parseJSONFields parses JSON fields for a server record +func parseJSONFields(record *model.ServerRecord, repositoryJSON, packagesJSON, remotesJSON, publisherExtensionsJSON []byte) error { + if len(repositoryJSON) > 0 { + if err := json.Unmarshal(repositoryJSON, &record.ServerJSON.Repository); err != nil { + return fmt.Errorf("failed to unmarshal repository: %w", err) + } + } + + if len(packagesJSON) > 0 { + if err := json.Unmarshal(packagesJSON, &record.ServerJSON.Packages); err != nil { + return fmt.Errorf("failed to unmarshal packages: %w", err) + } + } + + if len(remotesJSON) > 0 { + if err := json.Unmarshal(remotesJSON, &record.ServerJSON.Remotes); err != nil { + return fmt.Errorf("failed to unmarshal remotes: %w", err) + } + } + + if len(publisherExtensionsJSON) > 0 { + if err := json.Unmarshal(publisherExtensionsJSON, &record.PublisherExtensions); err != nil { + return fmt.Errorf("failed to unmarshal publisher extensions: %w", err) + } + } else { + record.PublisherExtensions = make(map[string]interface{}) + } + + return nil +} + +// GetByID retrieves a single ServerRecord by its registry metadata ID +func (db *PostgreSQL) GetByID(ctx context.Context, id string) (*model.ServerRecord, error) { if ctx.Err() != nil { return nil, ctx.Err() } query := ` - SELECT id, name, description, status, repository, version, release_date, is_latest, packages, remotes - FROM servers - WHERE id = $1 + SELECT + s.name, s.description, s.status, s.repository, s.version, s.packages, s.remotes, + se.id, se.published_at, se.updated_at, se.is_latest, se.release_date, se.publisher_extensions + FROM servers s + JOIN server_extensions se ON s.id = se.server_id + WHERE se.id = $1 ` - var serverDetail model.ServerDetail - var repositoryJSON, packagesJSON, remotesJSON []byte - var releaseDate time.Time + var record model.ServerRecord + var repositoryJSON, packagesJSON, remotesJSON, publisherExtensionsJSON []byte + var publishedAt, updatedAt, releaseDate time.Time err := db.conn.QueryRow(ctx, query, id).Scan( - &serverDetail.ID, - &serverDetail.Name, - &serverDetail.Description, - &serverDetail.Status, + // Server fields + &record.ServerJSON.Name, + &record.ServerJSON.Description, + &record.ServerJSON.Status, &repositoryJSON, - &serverDetail.VersionDetail.Version, - &releaseDate, - &serverDetail.VersionDetail.IsLatest, + &record.ServerJSON.VersionDetail.Version, &packagesJSON, &remotesJSON, + // Registry metadata fields + &record.RegistryMetadata.ID, + &publishedAt, + &updatedAt, + &record.RegistryMetadata.IsLatest, + &releaseDate, + &publisherExtensionsJSON, ) if err != nil { if errors.Is(err, pgx.ErrNoRows) { return nil, ErrNotFound } - return nil, fmt.Errorf("failed to get server by ID: %w", err) + return nil, fmt.Errorf("failed to get server record by ID: %w", err) } // Parse JSON fields if len(repositoryJSON) > 0 { - if err := json.Unmarshal(repositoryJSON, &serverDetail.Repository); err != nil { + if err := json.Unmarshal(repositoryJSON, &record.ServerJSON.Repository); err != nil { return nil, fmt.Errorf("failed to unmarshal repository: %w", err) } } if len(packagesJSON) > 0 { - if err := json.Unmarshal(packagesJSON, &serverDetail.Packages); err != nil { + if err := json.Unmarshal(packagesJSON, &record.ServerJSON.Packages); err != nil { return nil, fmt.Errorf("failed to unmarshal packages: %w", err) } } if len(remotesJSON) > 0 { - if err := json.Unmarshal(remotesJSON, &serverDetail.Remotes); err != nil { + if err := json.Unmarshal(remotesJSON, &record.ServerJSON.Remotes); err != nil { return nil, fmt.Errorf("failed to unmarshal remotes: %w", err) } } - serverDetail.VersionDetail.ReleaseDate = releaseDate.Format(time.RFC3339) + // Parse publisher extensions + if len(publisherExtensionsJSON) > 0 { + if err := json.Unmarshal(publisherExtensionsJSON, &record.PublisherExtensions); err != nil { + return nil, fmt.Errorf("failed to unmarshal publisher extensions: %w", err) + } + } else { + record.PublisherExtensions = make(map[string]interface{}) + } - return &serverDetail, nil + // Set registry metadata timestamps + record.RegistryMetadata.PublishedAt = publishedAt + record.RegistryMetadata.UpdatedAt = updatedAt + record.RegistryMetadata.ReleaseDate = releaseDate.Format(time.RFC3339) + + return &record, nil } -// Publish adds a new ServerDetail to the database -func (db *PostgreSQL) Publish(ctx context.Context, serverDetail *model.ServerDetail) error { +// Publish adds a new server to the database with separated server.json and extensions +func (db *PostgreSQL) Publish(ctx context.Context, serverDetail model.ServerDetail, publisherExtensions map[string]interface{}) (*model.ServerRecord, error) { if ctx.Err() != nil { - return ctx.Err() + return nil, ctx.Err() } tx, err := db.conn.Begin(ctx) if err != nil { - return fmt.Errorf("failed to begin transaction: %w", err) + return nil, fmt.Errorf("failed to begin transaction: %w", err) } defer func() { - if err := tx.Rollback(ctx); err != nil { + if err := tx.Rollback(ctx); err != nil && !errors.Is(err, pgx.ErrTxClosed) { log.Printf("Failed to rollback transaction: %v", err) } }() @@ -228,26 +291,176 @@ func (db *PostgreSQL) Publish(ctx context.Context, serverDetail *model.ServerDet // Check if there's an existing latest version for this server var existingVersion string checkQuery := ` - SELECT version - FROM servers - WHERE name = $1 AND is_latest = true + SELECT s.version + FROM servers s + JOIN server_extensions se ON s.id = se.server_id + WHERE s.name = $1 AND se.is_latest = true ` err = tx.QueryRow(ctx, checkQuery, serverDetail.Name).Scan(&existingVersion) if err != nil && !errors.Is(err, pgx.ErrNoRows) { - return fmt.Errorf("failed to check existing version: %w", err) + return nil, fmt.Errorf("failed to check existing version: %w", err) } // Validate version ordering if existingVersion != "" && serverDetail.VersionDetail.Version <= existingVersion { - return ErrInvalidVersion + return nil, ErrInvalidVersion } - // Prepare JSON data + // Prepare JSON data for server table repositoryJSON, err := json.Marshal(serverDetail.Repository) if err != nil { - return fmt.Errorf("failed to marshal repository: %w", err) + return nil, fmt.Errorf("failed to marshal repository: %w", err) } + packagesJSON, err := json.Marshal(serverDetail.Packages) + if err != nil { + return nil, fmt.Errorf("failed to marshal packages: %w", err) + } + + remotesJSON, err := json.Marshal(serverDetail.Remotes) + if err != nil { + return nil, fmt.Errorf("failed to marshal remotes: %w", err) + } + + publisherExtensionsJSON, err := json.Marshal(publisherExtensions) + if err != nil { + return nil, fmt.Errorf("failed to marshal publisher extensions: %w", err) + } + + // Generate server ID and create registry metadata + serverID := uuid.New().String() + registryID := uuid.New().String() + now := time.Now() + + // Update existing latest version to not be latest + if existingVersion != "" { + updateQuery := ` + UPDATE server_extensions + SET is_latest = false + WHERE server_id IN ( + SELECT s.id FROM servers s WHERE s.name = $1 AND server_extensions.server_id = s.id + ) + AND is_latest = true + ` + _, err = tx.Exec(ctx, updateQuery, serverDetail.Name) + if err != nil { + return nil, fmt.Errorf("failed to update existing latest version: %w", err) + } + } + + // Insert new server record + insertServerQuery := ` + INSERT INTO servers (id, name, description, status, repository, version, packages, remotes) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8) + ` + _, err = tx.Exec(ctx, insertServerQuery, + serverID, + serverDetail.Name, + serverDetail.Description, + serverDetail.Status, + repositoryJSON, + serverDetail.VersionDetail.Version, + packagesJSON, + remotesJSON, + ) + if err != nil { + return nil, fmt.Errorf("failed to insert server: %w", err) + } + + // Insert server extensions record + insertExtensionsQuery := ` + INSERT INTO server_extensions (id, server_id, published_at, updated_at, is_latest, release_date, publisher_extensions) + VALUES ($1, $2, $3, $4, $5, $6, $7) + ` + _, err = tx.Exec(ctx, insertExtensionsQuery, + registryID, + serverID, + now, + now, + true, // is_latest + now, // release_date + publisherExtensionsJSON, + ) + if err != nil { + return nil, fmt.Errorf("failed to insert server extensions: %w", err) + } + + // Commit transaction + if err := tx.Commit(ctx); err != nil { + return nil, fmt.Errorf("failed to commit transaction: %w", err) + } + + // Create and return the ServerRecord + record := &model.ServerRecord{ + ServerJSON: serverDetail, + RegistryMetadata: model.RegistryMetadata{ + ID: registryID, + PublishedAt: now, + UpdatedAt: now, + IsLatest: true, + ReleaseDate: now.Format(time.RFC3339), + }, + PublisherExtensions: publisherExtensions, + } + + return record, nil +} + +// ImportSeed imports initial data from a seed file into PostgreSQL +func (db *PostgreSQL) ImportSeed(ctx context.Context, seedFilePath string) error { + // Read seed data using the shared ReadSeedFile function + seedData, err := ReadSeedFile(ctx, seedFilePath) + if err != nil { + return fmt.Errorf("failed to read seed file: %w", err) + } + + // Start a transaction for batch import + tx, err := db.conn.Begin(ctx) + if err != nil { + return fmt.Errorf("failed to start transaction: %w", err) + } + defer func() { + if rollbackErr := tx.Rollback(ctx); rollbackErr != nil && !errors.Is(rollbackErr, pgx.ErrTxClosed) { + log.Printf("Failed to rollback transaction: %v", rollbackErr) + } + }() + + // Import each server + for _, record := range seedData { + // Convert record to the format expected by Publish + serverDetail := record.ServerJSON + publisherExtensions := record.PublisherExtensions + + // Use the existing Publish logic but with specific ID from seed data + if err := db.publishWithTransaction(ctx, tx, serverDetail, publisherExtensions, &record.RegistryMetadata); err != nil { + return fmt.Errorf("failed to import server %s: %w", serverDetail.Name, err) + } + } + + // Commit the transaction + if err := tx.Commit(ctx); err != nil { + return fmt.Errorf("failed to commit seed import transaction: %w", err) + } + + return nil +} + +// publishWithTransaction handles publishing within an existing transaction, optionally with predefined metadata +func (db *PostgreSQL) publishWithTransaction(ctx context.Context, tx pgx.Tx, serverDetail model.ServerDetail, publisherExtensions map[string]interface{}, existingMetadata *model.RegistryMetadata) error { + var serverID string + var extensionID string + + if existingMetadata != nil && existingMetadata.ID != "" { + // Use predefined IDs from seed data + serverID = existingMetadata.ID + extensionID = existingMetadata.ID // In seed data, these are the same + } else { + // Generate new UUIDs for normal publishing + serverID = uuid.New().String() + extensionID = uuid.New().String() + } + + // Marshal packages and remotes to JSONB packagesJSON, err := json.Marshal(serverDetail.Packages) if err != nil { return fmt.Errorf("failed to marshal packages: %w", err) @@ -258,143 +471,77 @@ func (db *PostgreSQL) Publish(ctx context.Context, serverDetail *model.ServerDet return fmt.Errorf("failed to marshal remotes: %w", err) } - // Generate ID and set metadata - if serverDetail.ID == "" { - serverDetail.ID = uuid.New().String() - } - serverDetail.VersionDetail.IsLatest = true - if serverDetail.VersionDetail.ReleaseDate == "" { - serverDetail.VersionDetail.ReleaseDate = time.Now().Format(time.RFC3339) - } - - releaseDate, err := time.Parse(time.RFC3339, serverDetail.VersionDetail.ReleaseDate) + repositoryJSON, err := json.Marshal(serverDetail.Repository) if err != nil { - return fmt.Errorf("failed to parse release date: %w", err) + return fmt.Errorf("failed to marshal repository: %w", err) } - // Update existing latest version to not be latest - if existingVersion != "" { - updateQuery := ` - UPDATE servers - SET is_latest = false - WHERE name = $1 AND is_latest = true - ` - _, err = tx.Exec(ctx, updateQuery, serverDetail.Name) - if err != nil { - return fmt.Errorf("failed to update existing latest version: %w", err) - } + publisherExtensionsJSON, err := json.Marshal(publisherExtensions) + if err != nil { + return fmt.Errorf("failed to marshal publisher extensions: %w", err) } - // Insert new server version - insertQuery := ` - INSERT INTO servers (id, name, description, status, repository, version, release_date, is_latest, packages, remotes) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) - ` - _, err = tx.Exec(ctx, insertQuery, - serverDetail.ID, + // Insert or update server record + serverQuery := ` + INSERT INTO servers (id, name, description, status, repository, version, packages, remotes, created_at, updated_at) + VALUES ($1, $2, $3, $4, $5, $6, $7, $8, NOW(), NOW()) + ON CONFLICT (name, version) + DO UPDATE SET + description = EXCLUDED.description, + status = EXCLUDED.status, + repository = EXCLUDED.repository, + packages = EXCLUDED.packages, + remotes = EXCLUDED.remotes, + updated_at = NOW() + RETURNING id` + + var returnedServerID string + err = tx.QueryRow(ctx, serverQuery, + serverID, serverDetail.Name, serverDetail.Description, - serverDetail.Status, + string(serverDetail.Status), repositoryJSON, serverDetail.VersionDetail.Version, - releaseDate, - serverDetail.VersionDetail.IsLatest, packagesJSON, remotesJSON, + ).Scan(&returnedServerID) + if err != nil { + return fmt.Errorf("failed to insert/update server: %w", err) + } + + // Insert or update server extensions + extensionQuery := ` + INSERT INTO server_extensions (id, server_id, published_at, updated_at, is_latest, release_date, publisher_extensions) + VALUES ($1, $2, $3, NOW(), true, $4, $5) + ON CONFLICT (server_id) + DO UPDATE SET + updated_at = NOW(), + is_latest = true, + release_date = EXCLUDED.release_date, + publisher_extensions = EXCLUDED.publisher_extensions` + + var publishedAt, releaseDate string + if existingMetadata != nil { + publishedAt = existingMetadata.PublishedAt.Format(time.RFC3339) + releaseDate = existingMetadata.ReleaseDate + } else { + now := time.Now().Format(time.RFC3339) + publishedAt = now + releaseDate = now + } + + _, err = tx.Exec(ctx, extensionQuery, + extensionID, + returnedServerID, + publishedAt, + releaseDate, + publisherExtensionsJSON, ) - if err != nil { - return fmt.Errorf("failed to insert server: %w", err) + return fmt.Errorf("failed to insert/update server extensions: %w", err) } - return tx.Commit(ctx) -} - -// ImportSeed imports initial data from a seed file into PostgreSQL -func (db *PostgreSQL) ImportSeed(ctx context.Context, seedFilePath string) error { - servers, err := ReadSeedFile(ctx, seedFilePath) - if err != nil { - return fmt.Errorf("failed to read seed file: %w", err) - } - - log.Printf("Importing %d servers into PostgreSQL", len(servers)) - - for i, server := range servers { - if server.ID == "" || server.Name == "" { - log.Printf("Skipping server %d: ID or Name is empty", i+1) - continue - } - - if server.VersionDetail.Version == "" { - server.VersionDetail.Version = "0.0.1-seed" - server.VersionDetail.ReleaseDate = time.Now().Format(time.RFC3339) - server.VersionDetail.IsLatest = true - } - - // Prepare JSON data - repositoryJSON, err := json.Marshal(server.Repository) - if err != nil { - log.Printf("Error marshaling repository for server %s: %v", server.ID, err) - continue - } - - packagesJSON, err := json.Marshal(server.Packages) - if err != nil { - log.Printf("Error marshaling packages for server %s: %v", server.ID, err) - continue - } - - remotesJSON, err := json.Marshal(server.Remotes) - if err != nil { - log.Printf("Error marshaling remotes for server %s: %v", server.ID, err) - continue - } - - releaseDate, err := time.Parse(time.RFC3339, server.VersionDetail.ReleaseDate) - if err != nil { - log.Printf("Error parsing release date for server %s: %v", server.ID, err) - releaseDate = time.Now() - } - - // Use UPSERT (INSERT ... ON CONFLICT DO UPDATE) - upsertQuery := ` - INSERT INTO servers (id, name, description, status, repository, version, release_date, is_latest, packages, remotes) - VALUES ($1, $2, $3, $4, $5, $6, $7, $8, $9, $10) - ON CONFLICT (id) DO UPDATE SET - name = EXCLUDED.name, - description = EXCLUDED.description, - status = EXCLUDED.status, - repository = EXCLUDED.repository, - version = EXCLUDED.version, - release_date = EXCLUDED.release_date, - is_latest = EXCLUDED.is_latest, - packages = EXCLUDED.packages, - remotes = EXCLUDED.remotes, - updated_at = NOW() - ` - - _, err = db.conn.Exec(ctx, upsertQuery, - server.ID, - server.Name, - server.Description, - server.Status, - repositoryJSON, - server.VersionDetail.Version, - releaseDate, - server.VersionDetail.IsLatest, - packagesJSON, - remotesJSON, - ) - - if err != nil { - log.Printf("Error importing server %s: %v", server.ID, err) - continue - } - - log.Printf("[%d/%d] Imported server: %s", i+1, len(servers), server.Name) - } - - log.Println("PostgreSQL database import completed successfully") return nil } diff --git a/internal/model/model.go b/internal/model/model.go index b421d9b..e98e9fb 100644 --- a/internal/model/model.go +++ b/internal/model/model.go @@ -1,5 +1,11 @@ package model +import ( + "encoding/json" + "fmt" + "time" +) + // AuthMethod represents the authentication method used type AuthMethod string @@ -26,10 +32,6 @@ const ( ServerStatusDeprecated ServerStatus = "deprecated" ) -// PublishRequest represents a request to publish a server to the registry -type PublishRequest struct { - ServerDetail `json:",inline"` -} // Repository represents a source code repository as defined in the spec type Repository struct { @@ -38,12 +40,6 @@ type Repository struct { ID string `json:"id,omitempty" bson:"id,omitempty"` } -// ServerList represents the response for listing servers as defined in the spec -type ServerList struct { - Servers []Server `json:"servers" bson:"servers"` - Next string `json:"next,omitempty" bson:"next,omitempty"` - TotalCount int `json:"total_count" bson:"total_count"` -} // create an enum for Format type Format string @@ -107,26 +103,163 @@ type Remote struct { Headers []KeyValueInput `json:"headers,omitempty" bson:"headers,omitempty"` } -// VersionDetail represents the version details of a server +// VersionDetail represents the version details of a server (pure MCP spec, no registry metadata) type VersionDetail struct { - Version string `json:"version" bson:"version"` - ReleaseDate string `json:"release_date,omitempty" bson:"release_date"` - IsLatest bool `json:"is_latest,omitempty" bson:"is_latest"` + Version string `json:"version" bson:"version"` } -// Server represents a basic server information as defined in the spec -type Server struct { - ID string `json:"id,omitempty" bson:"id"` + +// ServerDetail represents complete server information as defined in the MCP spec (pure, no registry metadata) +type ServerDetail struct { Name string `json:"name" bson:"name"` Description string `json:"description" bson:"description"` Status ServerStatus `json:"status,omitempty" bson:"status,omitempty"` Repository Repository `json:"repository,omitempty" bson:"repository"` VersionDetail VersionDetail `json:"version_detail" bson:"version_detail"` + Packages []Package `json:"packages,omitempty" bson:"packages,omitempty"` + Remotes []Remote `json:"remotes,omitempty" bson:"remotes,omitempty"` } -// ServerDetail represents detailed server information as defined in the spec -type ServerDetail struct { - Server `json:",inline" bson:",inline"` - Packages []Package `json:"packages,omitempty" bson:"packages,omitempty"` - Remotes []Remote `json:"remotes,omitempty" bson:"remotes,omitempty"` +// RegistryMetadata represents registry-generated metadata +type RegistryMetadata struct { + ID string `json:"id" bson:"_id"` + PublishedAt time.Time `json:"published_at" bson:"published_at"` + UpdatedAt time.Time `json:"updated_at,omitempty" bson:"updated_at,omitempty"` + IsLatest bool `json:"is_latest" bson:"is_latest"` + ReleaseDate string `json:"release_date" bson:"release_date"` +} + +// ServerRecord represents the complete storage model that separates server.json from registry metadata +type ServerRecord struct { + ServerJSON ServerDetail `json:"server" bson:"server"` // Pure MCP server.json + RegistryMetadata RegistryMetadata `json:"registry_metadata" bson:"registry_metadata"` // Registry-generated data + PublisherExtensions map[string]interface{} `json:"publisher_extensions" bson:"publisher_extensions"` // x-publisher extensions +} + +// ServerResponse represents the API response format with wrapper and extensions +type ServerResponse struct { + Server ServerDetail `json:"server"` + XIOModelContextProtocolRegistry interface{} `json:"x-io.modelcontextprotocol.registry,omitempty"` + XPublisher interface{} `json:"x-publisher,omitempty"` +} + +// ServerListResponse represents the paginated server list response +type ServerListResponse struct { + Servers []ServerResponse `json:"servers"` + Metadata *Metadata `json:"metadata,omitempty"` +} + +// PublishRequest represents the API request format for publishing servers +type PublishRequest struct { + Server ServerDetail `json:"server"` + XPublisher interface{} `json:"x-publisher,omitempty"` +} + +// Metadata represents pagination metadata +type Metadata struct { + NextCursor string `json:"next_cursor,omitempty"` + Count int `json:"count,omitempty"` + Total int `json:"total,omitempty"` +} + +// Helper functions + +// ValidatePublisherExtensions validates that publisher extensions are within size limits +func ValidatePublisherExtensions(req PublishRequest) error { + const maxExtensionSize = 4 * 1024 // 4KB limit + + // Check size limit for x-publisher extension + if req.XPublisher != nil { + extensionsJSON, err := json.Marshal(req.XPublisher) + if err != nil { + return fmt.Errorf("failed to marshal x-publisher extension: %w", err) + } + if len(extensionsJSON) > maxExtensionSize { + return fmt.Errorf("x-publisher extension exceeds 4KB limit (%d bytes)", len(extensionsJSON)) + } + } + + return nil +} + +// ValidatePublishRequestExtensions validates that only allowed extension fields are present +func ValidatePublishRequestExtensions(requestData []byte) error { + // Parse the raw JSON to check for unknown fields + var rawRequest map[string]interface{} + if err := json.Unmarshal(requestData, &rawRequest); err != nil { + return fmt.Errorf("failed to parse request JSON: %w", err) + } + + // Define allowed top-level fields + allowedFields := map[string]bool{ + "server": true, + "x-publisher": true, + } + + // Check for any disallowed fields + var invalidFields []string + for field := range rawRequest { + if !allowedFields[field] { + invalidFields = append(invalidFields, field) + } + } + + if len(invalidFields) > 0 { + return fmt.Errorf("invalid extension fields: %v. Only 'server' and 'x-publisher' fields are allowed", invalidFields) + } + + return nil +} + +// ExtractPublisherExtensions extracts publisher extensions from a PublishRequest +func ExtractPublisherExtensions(req PublishRequest) map[string]interface{} { + publisherExtensions := make(map[string]interface{}) + if req.XPublisher != nil { + // Cast to map and copy fields directly, avoiding double nesting + if publisherMap, ok := req.XPublisher.(map[string]interface{}); ok { + for k, v := range publisherMap { + publisherExtensions[k] = v + } + } + } + return publisherExtensions +} + +// CreateRegistryExtensions generates the x-io.modelcontextprotocol.registry extension from registry metadata +func (rm *RegistryMetadata) CreateRegistryExtensions() map[string]interface{} { + return map[string]interface{}{ + "x-io.modelcontextprotocol.registry": map[string]interface{}{ + "id": rm.ID, + "published_at": rm.PublishedAt, + "updated_at": rm.UpdatedAt, + "is_latest": rm.IsLatest, + "release_date": rm.ReleaseDate, + }, + } +} + +// ParseServerName extracts the server name from a ServerDetail for validation purposes +func ParseServerName(serverDetail ServerDetail) (string, error) { + name := serverDetail.Name + if name == "" { + return "", fmt.Errorf("server name is required and must be a string") + } + return name, nil +} + +// ToServerResponse converts a ServerRecord to API response format +func (sr *ServerRecord) ToServerResponse() ServerResponse { + response := ServerResponse{ + Server: sr.ServerJSON, + } + + // Add registry metadata extension + response.XIOModelContextProtocolRegistry = sr.RegistryMetadata.CreateRegistryExtensions()["x-io.modelcontextprotocol.registry"] + + // Add publisher extensions directly + if len(sr.PublisherExtensions) > 0 { + response.XPublisher = sr.PublisherExtensions + } + + return response } diff --git a/internal/model/model_test.go b/internal/model/model_test.go new file mode 100644 index 0000000..7e28ad1 --- /dev/null +++ b/internal/model/model_test.go @@ -0,0 +1,265 @@ +//nolint:testpackage +package model + +import ( + "encoding/json" + "testing" + "time" + + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + +func TestExtractPublisherExtensions(t *testing.T) { + tests := []struct { + name string + request PublishRequest + expected map[string]interface{} + }{ + { + name: "nil publisher extensions", + request: PublishRequest{ + Server: ServerDetail{Name: "test"}, + }, + expected: map[string]interface{}{}, + }, + { + name: "empty publisher extensions", + request: PublishRequest{ + Server: ServerDetail{Name: "test"}, + XPublisher: map[string]interface{}{}, + }, + expected: map[string]interface{}{}, + }, + { + name: "simple publisher extensions", + request: PublishRequest{ + Server: ServerDetail{Name: "test"}, + XPublisher: map[string]interface{}{ + "build_info": map[string]interface{}{ + "version": "1.2.3", + "commit": "abc123", + }, + "publisher_metadata": "test-publisher", + }, + }, + expected: map[string]interface{}{ + "build_info": map[string]interface{}{ + "version": "1.2.3", + "commit": "abc123", + }, + "publisher_metadata": "test-publisher", + }, + }, + { + name: "nested publisher extensions", + request: PublishRequest{ + Server: ServerDetail{Name: "test"}, + XPublisher: map[string]interface{}{ + "ci": map[string]interface{}{ + "pipeline": map[string]interface{}{ + "id": "12345", + "branch": "main", + }, + "artifacts": []string{"binary", "docs"}, + }, + }, + }, + expected: map[string]interface{}{ + "ci": map[string]interface{}{ + "pipeline": map[string]interface{}{ + "id": "12345", + "branch": "main", + }, + "artifacts": []string{"binary", "docs"}, + }, + }, + }, + { + name: "non-map publisher extensions (should be ignored)", + request: PublishRequest{ + Server: ServerDetail{Name: "test"}, + XPublisher: "invalid-string-data", + }, + expected: map[string]interface{}{}, + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + result := ExtractPublisherExtensions(tt.request) + assert.Equal(t, tt.expected, result) + }) + } +} + +func TestExtractPublisherExtensions_DoesNotDoubleNest(t *testing.T) { + // This test specifically verifies the bug we fixed - no double nesting + request := PublishRequest{ + Server: ServerDetail{Name: "test"}, + XPublisher: map[string]interface{}{ + "tool": "publisher-cli", + "version": "1.0.0", + }, + } + + result := ExtractPublisherExtensions(request) + + // Verify we get the data directly, not wrapped in another "x-publisher" key + assert.Equal(t, "publisher-cli", result["tool"]) + assert.Equal(t, "1.0.0", result["version"]) + + // Verify we don't have double nesting + assert.NotContains(t, result, "x-publisher") +} + +func TestRegistryMetadata_CreateRegistryExtensions(t *testing.T) { + publishedTime := time.Date(2023, 12, 1, 10, 30, 0, 0, time.UTC) + updatedTime := time.Date(2023, 12, 1, 11, 0, 0, 0, time.UTC) + + metadata := RegistryMetadata{ + ID: "test-id-123", + PublishedAt: publishedTime, + UpdatedAt: updatedTime, + IsLatest: true, + ReleaseDate: "2023-12-01T10:30:00Z", + } + + result := metadata.CreateRegistryExtensions() + + expected := map[string]interface{}{ + "x-io.modelcontextprotocol.registry": map[string]interface{}{ + "id": "test-id-123", + "published_at": publishedTime, + "updated_at": updatedTime, + "is_latest": true, + "release_date": "2023-12-01T10:30:00Z", + }, + } + + assert.Equal(t, expected, result) +} + +func TestServerResponse_JSONSerialization(t *testing.T) { + // Test that ServerResponse properly serializes to extension wrapper format + publishedTime := time.Date(2023, 12, 1, 10, 30, 0, 0, time.UTC) + + response := ServerResponse{ + Server: ServerDetail{ + Name: "test-server", + Description: "A test server", + Repository: Repository{ + URL: "https://github.com/test/server", + Source: "github", + ID: "test/server", + }, + VersionDetail: VersionDetail{ + Version: "1.0.0", + }, + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "registry-id-123", + "published_at": publishedTime.Format(time.RFC3339), + "is_latest": true, + }, + XPublisher: map[string]interface{}{ + "build_tool": "ci-pipeline", + "commit": "abc123def", + }, + } + + // Serialize to JSON + jsonData, err := json.Marshal(response) + require.NoError(t, err) + + // Parse back to verify structure + var parsed map[string]interface{} + err = json.Unmarshal(jsonData, &parsed) + require.NoError(t, err) + + // Verify three-layer structure exists + assert.Contains(t, parsed, "server") + assert.Contains(t, parsed, "x-io.modelcontextprotocol.registry") + assert.Contains(t, parsed, "x-publisher") + + // Verify server data + serverData := parsed["server"].(map[string]interface{}) + assert.Equal(t, "test-server", serverData["name"]) + + // Verify registry metadata + registryData := parsed["x-io.modelcontextprotocol.registry"].(map[string]interface{}) + assert.Equal(t, "registry-id-123", registryData["id"]) + + // Verify publisher extensions + publisherData := parsed["x-publisher"].(map[string]interface{}) + assert.Equal(t, "ci-pipeline", publisherData["build_tool"]) + assert.Equal(t, "abc123def", publisherData["commit"]) +} + +func TestPublishRequest_WithPublisherExtensions(t *testing.T) { + // Test that PublishRequest properly deserializes publisher extensions + jsonData := `{ + "server": { + "name": "test-server", + "description": "Test server", + "version_detail": { + "version": "1.0.0" + } + }, + "x-publisher": { + "tool": "publisher-cli", + "metadata": { + "build_date": "2023-12-01", + "commit": "abc123" + } + } + }` + + var request PublishRequest + err := json.Unmarshal([]byte(jsonData), &request) + require.NoError(t, err) + + // Verify server data + assert.Equal(t, "test-server", request.Server.Name) + assert.Equal(t, "Test server", request.Server.Description) + + // Verify publisher extensions + require.NotNil(t, request.XPublisher) + publisherMap := request.XPublisher.(map[string]interface{}) + assert.Equal(t, "publisher-cli", publisherMap["tool"]) + + metadata := publisherMap["metadata"].(map[string]interface{}) + assert.Equal(t, "2023-12-01", metadata["build_date"]) + assert.Equal(t, "abc123", metadata["commit"]) +} + +func TestServerResponse_EmptyExtensions(t *testing.T) { + // Test behavior with empty/nil extensions + response := ServerResponse{ + Server: ServerDetail{ + Name: "minimal-server", + Description: "Minimal test", + }, + XIOModelContextProtocolRegistry: map[string]interface{}{ + "id": "min-id", + }, + XPublisher: nil, + } + + jsonData, err := json.Marshal(response) + require.NoError(t, err) + + var parsed map[string]interface{} + err = json.Unmarshal(jsonData, &parsed) + require.NoError(t, err) + + // Should still have the structure, even with nil publisher extensions + assert.Contains(t, parsed, "server") + assert.Contains(t, parsed, "x-io.modelcontextprotocol.registry") + + // x-publisher should be null/nil in JSON when empty + publisherValue, exists := parsed["x-publisher"] + if exists { + assert.Nil(t, publisherValue) + } +} \ No newline at end of file diff --git a/internal/service/fake_service.go b/internal/service/fake_service.go index 07aa805..de5d890 100644 --- a/internal/service/fake_service.go +++ b/internal/service/fake_service.go @@ -18,10 +18,9 @@ type fakeRegistryService struct { // //nolint:ireturn // Factory function intentionally returns interface for dependency injection func NewFakeRegistryService() RegistryService { - // Sample registry entries with updated model structure - registries := []*model.Server{ + // Sample registry entries with updated model structure using ServerDetail + serverDetails := []*model.ServerDetail{ { - ID: uuid.New().String(), Name: "bluegreen/mcp-server", Description: "A dummy MCP registry for testing", Repository: model.Repository{ @@ -30,13 +29,10 @@ func NewFakeRegistryService() RegistryService { ID: "example/mcp-1", }, VersionDetail: model.VersionDetail{ - Version: "1.0.0", - ReleaseDate: time.Now().Format(time.RFC3339), - IsLatest: true, + Version: "1.0.0", }, }, { - ID: uuid.New().String(), Name: "orangepurple/mcp-server", Description: "Another dummy MCP registry for testing", Repository: model.Repository{ @@ -45,13 +41,10 @@ func NewFakeRegistryService() RegistryService { ID: "example/mcp-2", }, VersionDetail: model.VersionDetail{ - Version: "0.9.0", - ReleaseDate: time.Now().Format(time.RFC3339), - IsLatest: false, + Version: "0.9.0", }, }, { - ID: uuid.New().String(), Name: "greenyellow/mcp-server", Description: "Yet another dummy MCP registry for testing", Repository: model.Repository{ @@ -60,70 +53,92 @@ func NewFakeRegistryService() RegistryService { ID: "example/mcp-3", }, VersionDetail: model.VersionDetail{ - Version: "0.9.5", - ReleaseDate: time.Now().Format(time.RFC3339), - IsLatest: false, + Version: "0.9.5", }, }, } - // Create a new in-memory database - registryMap := make(map[string]*model.Server) - for _, entry := range registries { - registryMap[entry.ID] = entry + // Create a new in-memory database using registry metadata IDs + serverDetailMap := make(map[string]*model.ServerDetail) + for _, entry := range serverDetails { + registryID := uuid.New().String() // Generate registry metadata ID + serverDetailMap[registryID] = entry } - memDB := database.NewMemoryDB(registryMap) + memDB := database.NewMemoryDB(serverDetailMap) return &fakeRegistryService{ db: memDB, } } -// List retrieves MCPRegistry entries with optional filtering and pagination -func (s *fakeRegistryService) List(cursor string, limit int) ([]model.Server, string, error) { +// List retrieves servers with extension wrapper format +func (s *fakeRegistryService) List(cursor string, limit int) ([]model.ServerResponse, string, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - // Use the database's List method with no filters to get all entries - entries, nextCursor, err := s.db.List(ctx, nil, cursor, limit) + // Use the database's List method to get ServerRecord entries + serverRecords, nextCursor, err := s.db.List(ctx, nil, cursor, limit) if err != nil { return nil, "", err } - // Convert from []*model.Server to []model.Server - result := make([]model.Server, len(entries)) - for i, entry := range entries { - result[i] = *entry + + // Convert ServerRecord to ServerResponse format + result := make([]model.ServerResponse, len(serverRecords)) + for i, record := range serverRecords { + result[i] = record.ToServerResponse() } return result, nextCursor, nil } -// GetByID retrieves a specific server detail by its ID -func (s *fakeRegistryService) GetByID(id string) (*model.ServerDetail, error) { +// GetByID retrieves a specific server by its registry metadata ID in extension wrapper format +func (s *fakeRegistryService) GetByID(id string) (*model.ServerResponse, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - // Use the database's GetByID method to retrieve the server detail - serverDetail, err := s.db.GetByID(ctx, id) + // Use the database's GetByID method to retrieve the server record + serverRecord, err := s.db.GetByID(ctx, id) if err != nil { return nil, err } - return serverDetail, nil + // Convert ServerRecord to ServerResponse format + response := serverRecord.ToServerResponse() + return &response, nil } -// Publish adds a new server detail to the in-memory database -func (s *fakeRegistryService) Publish(serverDetail *model.ServerDetail) error { +// Publish publishes a server with separated extensions +func (s *fakeRegistryService) Publish(req model.PublishRequest) (*model.ServerResponse, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - // Use the database's Publish method to add the server detail - return s.db.Publish(ctx, serverDetail) + // Validate the request + if err := model.ValidatePublisherExtensions(req); err != nil { + return nil, err + } + + // Validate server name exists + if _, err := model.ParseServerName(req.Server); err != nil { + return nil, err + } + + // Extract publisher extensions from request + publisherExtensions := model.ExtractPublisherExtensions(req) + + // Publish to database + serverRecord, err := s.db.Publish(ctx, req.Server, publisherExtensions) + if err != nil { + return nil, err + } + + // Convert ServerRecord to ServerResponse format + response := serverRecord.ToServerResponse() + return &response, nil } // Close closes the in-memory database connection func (s *fakeRegistryService) Close() error { return s.db.Close() -} +} \ No newline at end of file diff --git a/internal/service/registry_service.go b/internal/service/registry_service.go index d9798be..4774396 100644 --- a/internal/service/registry_service.go +++ b/internal/service/registry_service.go @@ -22,29 +22,8 @@ func NewRegistryServiceWithDB(db database.Database) RegistryService { } } -// GetAll returns all registry entries -func (s *registryServiceImpl) GetAll() ([]model.Server, error) { - // Create a timeout context for the database operation - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - - // Use the database's List method with no filters to get all entries - entries, _, err := s.db.List(ctx, nil, "", 30) - if err != nil { - return nil, err - } - - // Convert from []*model.Server to []model.Server - result := make([]model.Server, len(entries)) - for i, entry := range entries { - result[i] = *entry - } - - return result, nil -} - -// List returns registry entries with cursor-based pagination -func (s *registryServiceImpl) List(cursor string, limit int) ([]model.Server, string, error) { +// List returns registry entries with cursor-based pagination in extension wrapper format +func (s *registryServiceImpl) List(cursor string, limit int) ([]model.ServerResponse, string, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() @@ -55,49 +34,63 @@ func (s *registryServiceImpl) List(cursor string, limit int) ([]model.Server, st } // Use the database's List method with pagination - entries, nextCursor, err := s.db.List(ctx, nil, cursor, limit) + serverRecords, nextCursor, err := s.db.List(ctx, nil, cursor, limit) if err != nil { return nil, "", err } - // Convert from []*model.Server to []model.Server - result := make([]model.Server, len(entries)) - for i, entry := range entries { - result[i] = *entry + // Convert ServerRecord to ServerResponse format + result := make([]model.ServerResponse, len(serverRecords)) + for i, record := range serverRecords { + result[i] = record.ToServerResponse() } return result, nextCursor, nil } -// GetByID retrieves a specific server detail by its ID -func (s *registryServiceImpl) GetByID(id string) (*model.ServerDetail, error) { +// GetByID retrieves a specific server by its registry metadata ID in extension wrapper format +func (s *registryServiceImpl) GetByID(id string) (*model.ServerResponse, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - // Use the database's GetByID method to retrieve the server detail - serverDetail, err := s.db.GetByID(ctx, id) + // Use the database's GetByID method to retrieve the server record + serverRecord, err := s.db.GetByID(ctx, id) if err != nil { return nil, err } - return serverDetail, nil + // Convert ServerRecord to ServerResponse format + response := serverRecord.ToServerResponse() + return &response, nil } -// Publish adds a new server detail to the registry -func (s *registryServiceImpl) Publish(serverDetail *model.ServerDetail) error { +// Publish publishes a server with separated extensions +func (s *registryServiceImpl) Publish(req model.PublishRequest) (*model.ServerResponse, error) { // Create a timeout context for the database operation ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) defer cancel() - if serverDetail == nil { - return database.ErrInvalidInput + // Validate the request + if err := model.ValidatePublisherExtensions(req); err != nil { + return nil, err } - err := s.db.Publish(ctx, serverDetail) + // Validate server name exists + if _, err := model.ParseServerName(req.Server); err != nil { + return nil, err + } + + // Extract publisher extensions from request + publisherExtensions := model.ExtractPublisherExtensions(req) + + // Publish to database + serverRecord, err := s.db.Publish(ctx, req.Server, publisherExtensions) if err != nil { - return err + return nil, err } - return nil -} + // Convert ServerRecord to ServerResponse format + response := serverRecord.ToServerResponse() + return &response, nil +} \ No newline at end of file diff --git a/internal/service/service.go b/internal/service/service.go index a3e1401..454727b 100644 --- a/internal/service/service.go +++ b/internal/service/service.go @@ -2,9 +2,12 @@ package service import "github.com/modelcontextprotocol/registry/internal/model" -// RegistryService defines the interface for registry operations +// RegistryService defines the interface for registry operations with extension wrapper architecture type RegistryService interface { - List(cursor string, limit int) ([]model.Server, string, error) - GetByID(id string) (*model.ServerDetail, error) - Publish(serverDetail *model.ServerDetail) error + // List retrieves servers with extension wrapper format + List(cursor string, limit int) ([]model.ServerResponse, string, error) + // GetByID retrieves a single server by registry metadata ID with extension wrapper format + GetByID(id string) (*model.ServerResponse, error) + // Publish publishes a server with separated extensions + Publish(req model.PublishRequest) (*model.ServerResponse, error) } diff --git a/tests/integration/main.go b/tests/integration/main.go index f2017d8..826a8fd 100644 --- a/tests/integration/main.go +++ b/tests/integration/main.go @@ -20,7 +20,7 @@ import ( const registryURL = "http://localhost:8080" -var publishedIDRegex = regexp.MustCompile(`"id":\s*"([^"]+)"`) +var publishedIDRegex = regexp.MustCompile(`"x-io\.modelcontextprotocol\.registry":\s*\{[^}]*"id":\s*"([^"]+)"`) func main() { log.SetFlags(0) @@ -96,77 +96,10 @@ func run() error { func publish(examples []example) error { published := 0 for _, example := range examples { - log.Printf("Publishing example starting on line %d", example.line) - - expected := map[string]any{} - if err := json.Unmarshal(example.content, &expected); err != nil { - log.Println(" ⛔ Example isn't valid JSON:", err) + if err := publishExample(example); err != nil { + log.Printf(" ⛔ %v", err) continue } - - // Remove any existing namespace prefix and add anonymous prefix - if !strings.HasPrefix(expected["name"].(string), "io.modelcontextprotocol.anonymous/") { - parts := strings.SplitN(expected["name"].(string), "/", 2) - serverName := parts[len(parts)-1] - expected["name"] = "io.modelcontextprotocol.anonymous/" + serverName - } - example.content, _ = json.Marshal(expected) - - p := filepath.Join("bin", fmt.Sprintf("example-line-%d.json", example.line)) - if err := os.WriteFile(p, example.content, 0600); err != nil { - log.Printf(" ⛔ Failed to write example JSON to %s: %v\n", p, err) - continue - } - defer os.Remove(p) - - ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - cmd := exec.CommandContext(ctx, "./bin/publisher", "publish", "--mcp-file", p, "--registry-url", registryURL, "--auth-method", "none") - cmd.WaitDelay = 100 * time.Millisecond - - out, err := cmd.CombinedOutput() - if errors.Is(err, exec.ErrNotFound) || errors.Is(err, os.ErrNotExist) { - return errors.New(" ⛔ publisher not found; did you run tests/integration/run.sh?") - } - output := strings.TrimSpace("publisher output:\n\t" + strings.ReplaceAll(string(out), "\n", "\n \t")) - if err != nil { - return errors.New(" ⛔ " + output) - } - log.Println(" ✅", output) - - m := publishedIDRegex.FindStringSubmatch(output) - if len(m) != 2 || m[1] == "" { - return errors.New(" ⛔ Didn't find ID in publisher output") - } - id := m[1] - - ctx, cancel = context.WithTimeout(context.Background(), 5*time.Second) - defer cancel() - req, err := http.NewRequestWithContext(ctx, http.MethodGet, registryURL+"/v0/servers/"+id, nil) - if err != nil { - return fmt.Errorf(" ⛔ %w", err) - } - res, err := http.DefaultClient.Do(req) - if err != nil { - return fmt.Errorf(" ⛔ %w", err) - } - content, err := io.ReadAll(res.Body) - if err != nil { - return fmt.Errorf(" ⛔ failed to read registry response: %w", err) - } - defer res.Body.Close() - if res.StatusCode != http.StatusOK { - return fmt.Errorf(" ⛔ registry responded %d: %s", res.StatusCode, string(content)) - } - - actual := map[string]any{} - if err := json.Unmarshal(content, &actual); err != nil { - return fmt.Errorf(" ⛔ failed to unmarshal registry response: %w", err) - } - if err := compare(expected, actual); err != nil { - return fmt.Errorf(` ⛔ example "%s": %w`, expected["name"], err) - } - log.Print(" ✅ registry response matches example\n\n") published++ } @@ -178,6 +111,136 @@ func publish(examples []example) error { return nil } +func publishExample(example example) error { + log.Printf("Publishing example starting on line %d", example.line) + + expected, err := parseExample(example) + if err != nil { + return err + } + + if err := publishToRegistry(expected, example.line); err != nil { + return err + } + + log.Print(" ✅ registry response matches example\n\n") + return nil +} + +func parseExample(example example) (map[string]any, error) { + expected := map[string]any{} + if err := json.Unmarshal(example.content, &expected); err != nil { + return nil, fmt.Errorf("example isn't valid JSON: %w", err) + } + + // Handle both old ServerDetail format and new PublishRequest format + var serverData map[string]any + if server, exists := expected["server"]; exists { + // New PublishRequest format + serverData = server.(map[string]any) + } else { + // Old ServerDetail format (backward compatibility) + serverData = expected + } + + // Remove any existing namespace prefix and add anonymous prefix + if !strings.HasPrefix(serverData["name"].(string), "io.modelcontextprotocol.anonymous/") { + parts := strings.SplitN(serverData["name"].(string), "/", 2) + serverName := parts[len(parts)-1] + serverData["name"] = "io.modelcontextprotocol.anonymous/" + serverName + } + + // Update the expected structure if it's PublishRequest format + if _, exists := expected["server"]; exists { + expected["server"] = serverData + } + + return expected, nil +} + +func publishToRegistry(expected map[string]any, line int) error { + content, _ := json.Marshal(expected) + p := filepath.Join("bin", fmt.Sprintf("example-line-%d.json", line)) + if err := os.WriteFile(p, content, 0600); err != nil { + return fmt.Errorf("failed to write example JSON to %s: %w", p, err) + } + defer os.Remove(p) + + id, err := runPublisher(p) + if err != nil { + return err + } + + return verifyPublishedServer(id, expected) +} + +func runPublisher(filePath string) (string, error) { + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + cmd := exec.CommandContext(ctx, "./bin/publisher", "publish", "--mcp-file", filePath, "--registry-url", registryURL, "--auth-method", "none") + cmd.WaitDelay = 100 * time.Millisecond + + out, err := cmd.CombinedOutput() + if errors.Is(err, exec.ErrNotFound) || errors.Is(err, os.ErrNotExist) { + return "", errors.New("publisher not found; did you run tests/integration/run.sh?") + } + output := strings.TrimSpace("publisher output:\n\t" + strings.ReplaceAll(string(out), "\n", "\n \t")) + if err != nil { + return "", errors.New(output) + } + log.Println(" ✅", output) + + m := publishedIDRegex.FindStringSubmatch(output) + if len(m) != 2 || m[1] == "" { + return "", errors.New("didn't find ID in publisher output") + } + return m[1], nil +} + +func verifyPublishedServer(id string, expected map[string]any) error { + ctx, cancel := context.WithTimeout(context.Background(), 5*time.Second) + defer cancel() + req, err := http.NewRequestWithContext(ctx, http.MethodGet, registryURL+"/v0/servers/"+id, nil) + if err != nil { + return err + } + res, err := http.DefaultClient.Do(req) + if err != nil { + return err + } + content, err := io.ReadAll(res.Body) + if err != nil { + return fmt.Errorf("failed to read registry response: %w", err) + } + defer res.Body.Close() + if res.StatusCode != http.StatusOK { + return fmt.Errorf("registry responded %d: %s", res.StatusCode, string(content)) + } + + actual := map[string]any{} + if err := json.Unmarshal(content, &actual); err != nil { + return fmt.Errorf("failed to unmarshal registry response: %w", err) + } + + // Both API response and expected are now in extension wrapper format + // Compare the server portions of both + actualServer, ok := actual["server"] + if !ok { + return fmt.Errorf("expected server field in registry response") + } + + // Extract expected server portion for comparison + expectedServer := expected + if server, exists := expected["server"]; exists { + expectedServer = server.(map[string]any) + } + + if err := compare(expectedServer, actualServer); err != nil { + return fmt.Errorf(`example "%s": %w`, expectedServer["name"], err) + } + return nil +} + type example struct { content []byte line int diff --git a/tools/migrate-seed/main.go b/tools/migrate-seed/main.go new file mode 100644 index 0000000..79175fe --- /dev/null +++ b/tools/migrate-seed/main.go @@ -0,0 +1,170 @@ +package main + +import ( + "context" + "encoding/json" + "fmt" + "io" + "log" + "net/http" + "os" + "path/filepath" + "strings" + "time" + + "github.com/modelcontextprotocol/registry/internal/model" +) + +// OldServerFormat represents the legacy seed format +type OldServerFormat struct { + ID string `json:"id"` + Name string `json:"name"` + Description string `json:"description"` + Status string `json:"status,omitempty"` + Repository model.Repository `json:"repository"` + VersionDetail OldVersionDetail `json:"version_detail"` + Packages []model.Package `json:"packages,omitempty"` + Remotes []model.Remote `json:"remotes,omitempty"` + Extensions map[string]interface{} `json:"extensions,omitempty"` +} + +// OldVersionDetail represents the legacy version format with registry metadata +type OldVersionDetail struct { + Version string `json:"version"` + ReleaseDate string `json:"release_date,omitempty"` + IsLatest bool `json:"is_latest,omitempty"` +} + +func main() { + if len(os.Args) < 3 { + log.Println("Usage: migrate-seed ") + log.Println(" input-source: file path or HTTP URL") + log.Println(" output-file: path for the migrated seed file") + os.Exit(1) + } + + inputSource := os.Args[1] + outputFile := os.Args[2] + + log.Printf("Migrating seed from %s to %s", inputSource, outputFile) + + // Read source data + var data []byte + var err error + + if strings.HasPrefix(inputSource, "http://") || strings.HasPrefix(inputSource, "https://") { + data, err = fetchFromHTTP(inputSource) + } else { + data, err = os.ReadFile(inputSource) + } + + if err != nil { + log.Fatalf("Failed to read input source: %v", err) + } + + // Parse old format + var oldServers []OldServerFormat + if err := json.Unmarshal(data, &oldServers); err != nil { + log.Fatalf("Failed to parse old format: %v", err) + } + + log.Printf("Found %d servers to migrate", len(oldServers)) + + // Convert to new format + var newServers []model.ServerResponse + for _, old := range oldServers { + converted := convertServer(old) + newServers = append(newServers, converted) + } + + // Write migrated data + migratedData, err := json.MarshalIndent(newServers, "", " ") + if err != nil { + log.Fatalf("Failed to marshal migrated data: %v", err) + } + + // Ensure output directory exists + if err := os.MkdirAll(filepath.Dir(outputFile), 0755); err != nil { + log.Fatalf("Failed to create output directory: %v", err) + } + + if err := os.WriteFile(outputFile, migratedData, 0600); err != nil { + log.Fatalf("Failed to write output file: %v", err) + } + + log.Printf("Successfully migrated %d servers to %s", len(newServers), outputFile) +} + +func fetchFromHTTP(url string) ([]byte, error) { + log.Printf("Fetching data from HTTP: %s", url) + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) + defer cancel() + + req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil) + if err != nil { + return nil, fmt.Errorf("failed to create request: %w", err) + } + + resp, err := http.DefaultClient.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to fetch from HTTP: %w", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("HTTP request failed with status: %d", resp.StatusCode) + } + + return io.ReadAll(resp.Body) +} + +func convertServer(old OldServerFormat) model.ServerResponse { + // Create pure MCP server specification + server := model.ServerDetail{ + Name: old.Name, + Description: old.Description, + Repository: old.Repository, + VersionDetail: model.VersionDetail{ + Version: old.VersionDetail.Version, + }, + Packages: old.Packages, + Remotes: old.Remotes, + } + + // Set status if provided, otherwise default to active + if old.Status != "" { + server.Status = model.ServerStatus(old.Status) + } else { + server.Status = model.ServerStatusActive + } + + // Create registry metadata + registryMetadata := model.RegistryMetadata{ + ID: old.ID, + IsLatest: old.VersionDetail.IsLatest, + ReleaseDate: old.VersionDetail.ReleaseDate, + } + + // Publisher extensions (combine any additional fields) + publisherExtensions := make(map[string]interface{}) + if old.Extensions != nil { + for k, v := range old.Extensions { + publisherExtensions[k] = v + } + } + + // Create the extension wrapper response + response := model.ServerResponse{ + Server: server, + } + + // Add registry metadata extension + response.XIOModelContextProtocolRegistry = registryMetadata.CreateRegistryExtensions()["x-io.modelcontextprotocol.registry"] + + // Add publisher extensions if any + if len(publisherExtensions) > 0 { + response.XPublisher = publisherExtensions + } + + return response +} \ No newline at end of file diff --git a/tools/migrate-seed/main_test.go b/tools/migrate-seed/main_test.go new file mode 100644 index 0000000..b763ed4 --- /dev/null +++ b/tools/migrate-seed/main_test.go @@ -0,0 +1,355 @@ +package main + +import ( + "encoding/json" + "os" + "path/filepath" + "testing" + + "github.com/modelcontextprotocol/registry/internal/model" + "github.com/stretchr/testify/assert" + "github.com/stretchr/testify/require" +) + + +// createTestLegacySeed creates a small test file with legacy format data +func createTestLegacySeed(t *testing.T) string { + t.Helper() + testData := []OldServerFormat{ + { + ID: "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", + Name: "io.github.21st-dev/magic-mcp", + Description: "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", + Repository: model.Repository{ + URL: "https://github.com/21st-dev/magic-mcp", + Source: "github", + ID: "935450522", + }, + VersionDetail: OldVersionDetail{ + Version: "0.0.1-seed", + ReleaseDate: "2025-05-16T18:56:49Z", + IsLatest: true, + }, + Packages: []model.Package{ + { + RegistryName: "npm", + Name: "@21st-dev/magic", + Version: "0.0.46", + EnvironmentVariables: []model.KeyValueInput{ + { + Name: "API_KEY", + InputWithVariables: model.InputWithVariables{ + Input: model.Input{ + Description: "${input:apiKey}", + }, + }, + }, + }, + }, + }, + }, + { + ID: "d3669201-252f-403c-944b-c3ec0845782b", + Name: "io.github.adfin-engineering/mcp-server-adfin", + Description: "A Model Context Protocol Server for connecting with Adfin APIs", + Repository: model.Repository{ + URL: "https://github.com/Adfin-Engineering/mcp-server-adfin", + Source: "github", + ID: "951338147", + }, + VersionDetail: OldVersionDetail{ + Version: "0.0.1-seed", + ReleaseDate: "2025-05-16T18:56:52Z", + IsLatest: true, + }, + Packages: []model.Package{ + { + RegistryName: "pypi", + Name: "adfinmcp", + Version: "0.1.0", + }, + }, + }, + } + + tempFile, err := os.CreateTemp("", "test-legacy-seed-*.json") + require.NoError(t, err) + defer tempFile.Close() + + jsonData, err := json.MarshalIndent(testData, "", " ") + require.NoError(t, err) + + _, err = tempFile.Write(jsonData) + require.NoError(t, err) + + return tempFile.Name() +} + +func TestMigrationCLI(t *testing.T) { + // Create test legacy seed file + legacyFile := createTestLegacySeed(t) + defer os.Remove(legacyFile) + + // Create output file path + outputFile := filepath.Join(t.TempDir(), "migrated-output.json") + + // Run migration (simulate command line execution) + err := migrateSeed(legacyFile, outputFile) + require.NoError(t, err, "Migration should succeed") + + // Read the output file + outputData, err := os.ReadFile(outputFile) + require.NoError(t, err, "Should be able to read output file") + + // Parse as ServerResponse array (new format) + var migratedServers []model.ServerResponse + err = json.Unmarshal(outputData, &migratedServers) + require.NoError(t, err, "Output should be valid JSON in ServerResponse format") + + // Verify we have the expected number of servers + assert.Len(t, migratedServers, 2, "Should have migrated 2 servers") + + // Verify first server structure + server1 := migratedServers[0] + assert.Equal(t, "io.github.21st-dev/magic-mcp", server1.Server.Name) + assert.Equal(t, "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", server1.Server.Description) + assert.Equal(t, "https://github.com/21st-dev/magic-mcp", server1.Server.Repository.URL) + assert.Equal(t, "0.0.1-seed", server1.Server.VersionDetail.Version) + assert.Len(t, server1.Server.Packages, 1) + assert.Equal(t, "npm", server1.Server.Packages[0].RegistryName) + assert.Equal(t, "@21st-dev/magic", server1.Server.Packages[0].Name) + + // Verify registry metadata extension + assert.NotNil(t, server1.XIOModelContextProtocolRegistry, "Should have registry metadata extension") + registryMeta1, ok := server1.XIOModelContextProtocolRegistry.(map[string]interface{}) + require.True(t, ok, "Registry metadata should be a map") + assert.Equal(t, "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", registryMeta1["id"]) + assert.Equal(t, true, registryMeta1["is_latest"]) + assert.Equal(t, "2025-05-16T18:56:49Z", registryMeta1["release_date"]) + + // Verify second server structure + server2 := migratedServers[1] + assert.Equal(t, "io.github.adfin-engineering/mcp-server-adfin", server2.Server.Name) + assert.Equal(t, "A Model Context Protocol Server for connecting with Adfin APIs", server2.Server.Description) + assert.Equal(t, "pypi", server2.Server.Packages[0].RegistryName) + assert.Equal(t, "adfinmcp", server2.Server.Packages[0].Name) + + // Verify registry metadata for second server + registryMeta2, ok := server2.XIOModelContextProtocolRegistry.(map[string]interface{}) + require.True(t, ok, "Registry metadata should be a map") + assert.Equal(t, "d3669201-252f-403c-944b-c3ec0845782b", registryMeta2["id"]) + assert.Equal(t, true, registryMeta2["is_latest"]) + assert.Equal(t, "2025-05-16T18:56:52Z", registryMeta2["release_date"]) + + // Verify no x-publisher extensions (should be empty/nil for seed data) + assert.Nil(t, server1.XPublisher, "Seed data should not have x-publisher extensions") + assert.Nil(t, server2.XPublisher, "Seed data should not have x-publisher extensions") +} + +// migrateSeed is a testable version of the main migration logic +func migrateSeed(inputFile, outputFile string) error { + // Read source data + data, err := os.ReadFile(inputFile) + if err != nil { + return err + } + + // Parse old format + var oldServers []OldServerFormat + if err := json.Unmarshal(data, &oldServers); err != nil { + return err + } + + // Convert to new format + var newServers []model.ServerResponse + for _, old := range oldServers { + converted := convertServer(old) + newServers = append(newServers, converted) + } + + // Write migrated data + migratedData, err := json.MarshalIndent(newServers, "", " ") + if err != nil { + return err + } + + // Ensure output directory exists + if err := os.MkdirAll(filepath.Dir(outputFile), 0755); err != nil { + return err + } + + return os.WriteFile(outputFile, migratedData, 0600) +} + +func TestMigrationCLI_CommandLine(t *testing.T) { + // Create test legacy seed file + legacyFile := createTestLegacySeed(t) + defer os.Remove(legacyFile) + + // Create output file path + outputFile := filepath.Join(t.TempDir(), "cli-migrated-output.json") + + // Simulate command line arguments + oldArgs := os.Args + defer func() { os.Args = oldArgs }() + os.Args = []string{"migrate-seed", legacyFile, outputFile} + + // Capture any panics or exits from main() + defer func() { + if r := recover(); r != nil { + t.Errorf("main() panicked: %v", r) + } + }() + + // Test the main function (Note: this would normally call os.Exit, but in tests it should return) + main() + + // Verify the output file was created and has correct content + require.FileExists(t, outputFile, "Output file should be created") + + outputData, err := os.ReadFile(outputFile) + require.NoError(t, err, "Should be able to read output file") + + var migratedServers []model.ServerResponse + err = json.Unmarshal(outputData, &migratedServers) + require.NoError(t, err, "Output should be valid JSON in ServerResponse format") + + // Basic verification + assert.Len(t, migratedServers, 2, "Should have migrated 2 servers") + assert.Equal(t, "io.github.21st-dev/magic-mcp", migratedServers[0].Server.Name) + assert.Equal(t, "io.github.adfin-engineering/mcp-server-adfin", migratedServers[1].Server.Name) +} + +func TestMigrationCLI_ErrorHandling(t *testing.T) { + t.Run("Invalid JSON input", func(t *testing.T) { + // Create invalid JSON file + invalidFile, err := os.CreateTemp("", "invalid-*.json") + require.NoError(t, err) + defer os.Remove(invalidFile.Name()) + + _, err = invalidFile.WriteString(`{"invalid": json}`) + require.NoError(t, err) + invalidFile.Close() + + outputFile := filepath.Join(t.TempDir(), "output.json") + err = migrateSeed(invalidFile.Name(), outputFile) + assert.Error(t, err, "Should error on invalid JSON") + }) + + t.Run("Missing input file", func(t *testing.T) { + outputFile := filepath.Join(t.TempDir(), "output.json") + err := migrateSeed("/nonexistent/file.json", outputFile) + assert.Error(t, err, "Should error on missing input file") + }) + + t.Run("Empty input file", func(t *testing.T) { + // Create empty JSON array + emptyFile, err := os.CreateTemp("", "empty-*.json") + require.NoError(t, err) + defer os.Remove(emptyFile.Name()) + + _, err = emptyFile.WriteString("[]") + require.NoError(t, err) + emptyFile.Close() + + outputFile := filepath.Join(t.TempDir(), "output.json") + err = migrateSeed(emptyFile.Name(), outputFile) + assert.NoError(t, err, "Empty array should be valid") + + // Verify empty output + outputData, err := os.ReadFile(outputFile) + require.NoError(t, err) + + var result []model.ServerResponse + err = json.Unmarshal(outputData, &result) + require.NoError(t, err, "Should be valid JSON") + assert.Len(t, result, 0, "Should have no servers") + }) +} + +func TestMigrationCLI_GoldenFile(t *testing.T) { + // Test migration with predefined input and expected output files + inputFile := "testdata/legacy-input.json" + expectedFile := "testdata/expected-output.json" + + // Ensure test files exist + require.FileExists(t, inputFile, "Input test file should exist") + require.FileExists(t, expectedFile, "Expected output test file should exist") + + // Run migration on test input + outputFile := filepath.Join(t.TempDir(), "golden-output.json") + err := migrateSeed(inputFile, outputFile) + require.NoError(t, err, "Migration should succeed") + + // Read expected and actual output + expectedData, err := os.ReadFile(expectedFile) + require.NoError(t, err, "Should be able to read expected output") + + actualData, err := os.ReadFile(outputFile) + require.NoError(t, err, "Should be able to read actual output") + + // Parse both as JSON to normalize formatting and compare semantically + var expectedJSON, actualJSON []model.ServerResponse + + err = json.Unmarshal(expectedData, &expectedJSON) + require.NoError(t, err, "Expected output should be valid JSON") + + err = json.Unmarshal(actualData, &actualJSON) + require.NoError(t, err, "Actual output should be valid JSON") + + // Compare the parsed structures + assert.Equal(t, expectedJSON, actualJSON, "Migration output should match expected golden file") + + // Also compare server count + assert.Len(t, actualJSON, len(expectedJSON), "Should have same number of servers") + + // Verify specific server names to ensure ordering is preserved + if len(expectedJSON) >= 2 && len(actualJSON) >= 2 { + assert.Equal(t, expectedJSON[0].Server.Name, actualJSON[0].Server.Name, "First server name should match") + assert.Equal(t, expectedJSON[1].Server.Name, actualJSON[1].Server.Name, "Second server name should match") + } +} + +func TestGoldenFiles_Validation(t *testing.T) { + // Validate that the golden files themselves are valid + t.Run("Input file is valid legacy format", func(t *testing.T) { + inputData, err := os.ReadFile("testdata/legacy-input.json") + require.NoError(t, err, "Should be able to read input file") + + var legacyServers []OldServerFormat + err = json.Unmarshal(inputData, &legacyServers) + require.NoError(t, err, "Input file should be valid legacy format JSON") + + assert.Len(t, legacyServers, 2, "Input should contain exactly 2 servers") + + // Verify it contains expected server names + names := []string{legacyServers[0].Name, legacyServers[1].Name} + assert.Contains(t, names, "io.github.21st-dev/magic-mcp") + assert.Contains(t, names, "io.github.adfin-engineering/mcp-server-adfin") + }) + + t.Run("Expected output is valid extension wrapper format", func(t *testing.T) { + expectedData, err := os.ReadFile("testdata/expected-output.json") + require.NoError(t, err, "Should be able to read expected output file") + + var expectedServers []model.ServerResponse + err = json.Unmarshal(expectedData, &expectedServers) + require.NoError(t, err, "Expected output should be valid ServerResponse format JSON") + + assert.Len(t, expectedServers, 2, "Expected output should contain exactly 2 servers") + + // Verify structure of first server + server1 := expectedServers[0] + assert.NotEmpty(t, server1.Server.Name, "Server should have a name") + assert.NotEmpty(t, server1.Server.Description, "Server should have a description") + assert.NotNil(t, server1.XIOModelContextProtocolRegistry, "Should have registry metadata") + assert.Nil(t, server1.XPublisher, "Seed data should not have publisher extensions") + + // Verify registry metadata contains required fields + registryMeta, ok := server1.XIOModelContextProtocolRegistry.(map[string]interface{}) + require.True(t, ok, "Registry metadata should be a map") + assert.Contains(t, registryMeta, "id", "Registry metadata should have id") + assert.Contains(t, registryMeta, "is_latest", "Registry metadata should have is_latest") + assert.Contains(t, registryMeta, "release_date", "Registry metadata should have release_date") + }) +} \ No newline at end of file diff --git a/tools/migrate-seed/testdata/README.md b/tools/migrate-seed/testdata/README.md new file mode 100644 index 0000000..4ff28ca --- /dev/null +++ b/tools/migrate-seed/testdata/README.md @@ -0,0 +1,38 @@ +# Migration Test Data + +This directory contains golden files for testing the seed migration CLI tool. + +## Files + +- **`legacy-input.json`** - Sample input file in the legacy seed format (flat structure with registry metadata mixed in) +- **`expected-output.json`** - Expected output after migration to extension wrapper format + +## Usage + +The golden file test (`TestMigrationCLI_GoldenFile`) runs the migration tool on `legacy-input.json` and compares the output against `expected-output.json` to ensure the migration produces the correct result. + +## Updating Golden Files + +If you make changes to the migration logic, you may need to update the expected output: + +1. Review the changes to ensure they're correct +2. Regenerate the expected output: + ```bash + cd cmd/migrate-seed + ../../bin/migrate-seed testdata/legacy-input.json testdata/expected-output.json + ``` +3. Verify the new output is correct by reviewing the diff +4. Run the tests to ensure they pass + +## Format Details + +### Legacy Input Format +- Flat JSON array of server objects +- Registry metadata fields (`id`, `is_latest`, `release_date`) mixed directly in server objects +- Version detail contains registry metadata + +### Expected Output Format +- Extension wrapper format +- Each server wrapped in `"server"` field +- Registry metadata in `"x-io.modelcontextprotocol.registry"` extension +- No `"x-publisher"` extensions for seed data \ No newline at end of file diff --git a/tools/migrate-seed/testdata/expected-output.json b/tools/migrate-seed/testdata/expected-output.json new file mode 100644 index 0000000..4279f6f --- /dev/null +++ b/tools/migrate-seed/testdata/expected-output.json @@ -0,0 +1,77 @@ +[ + { + "server": { + "name": "io.github.21st-dev/magic-mcp", + "description": "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", + "status": "active", + "repository": { + "url": "https://github.com/21st-dev/magic-mcp", + "source": "github", + "id": "935450522" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "npm", + "name": "@21st-dev/magic", + "version": "0.0.46", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:49Z", + "updated_at": "0001-01-01T00:00:00Z" + } + }, + { + "server": { + "name": "io.github.adfin-engineering/mcp-server-adfin", + "description": "A Model Context Protocol Server for connecting with Adfin APIs", + "status": "active", + "repository": { + "url": "https://github.com/Adfin-Engineering/mcp-server-adfin", + "source": "github", + "id": "951338147" + }, + "version_detail": { + "version": "0.0.1-seed" + }, + "packages": [ + { + "registry_name": "pypi", + "name": "adfinmcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Path to the configuration file", + "is_required": true, + "format": "string", + "value": "/config/adfin.json", + "default": "/config/adfin.json", + "type": "positional", + "value_hint": "/path/to/config.json" + } + ] + } + ] + }, + "x-io.modelcontextprotocol.registry": { + "id": "d3669201-252f-403c-944b-c3ec0845782b", + "is_latest": true, + "published_at": "0001-01-01T00:00:00Z", + "release_date": "2025-05-16T18:56:52Z", + "updated_at": "0001-01-01T00:00:00Z" + } + } +] \ No newline at end of file diff --git a/tools/migrate-seed/testdata/legacy-input.json b/tools/migrate-seed/testdata/legacy-input.json new file mode 100644 index 0000000..c12bce4 --- /dev/null +++ b/tools/migrate-seed/testdata/legacy-input.json @@ -0,0 +1,63 @@ +[ + { + "id": "4e9cf4cf-71f6-4aca-bae8-2d10a29ca2e0", + "name": "io.github.21st-dev/magic-mcp", + "description": "It's like v0 but in your Cursor/WindSurf/Cline. 21st dev Magic MCP server for working with your frontend like Magic", + "repository": { + "url": "https://github.com/21st-dev/magic-mcp", + "source": "github", + "id": "935450522" + }, + "version_detail": { + "version": "0.0.1-seed", + "release_date": "2025-05-16T18:56:49Z", + "is_latest": true + }, + "packages": [ + { + "registry_name": "npm", + "name": "@21st-dev/magic", + "version": "0.0.46", + "environment_variables": [ + { + "description": "${input:apiKey}", + "name": "API_KEY" + } + ] + } + ] + }, + { + "id": "d3669201-252f-403c-944b-c3ec0845782b", + "name": "io.github.adfin-engineering/mcp-server-adfin", + "description": "A Model Context Protocol Server for connecting with Adfin APIs", + "repository": { + "url": "https://github.com/Adfin-Engineering/mcp-server-adfin", + "source": "github", + "id": "951338147" + }, + "version_detail": { + "version": "0.0.1-seed", + "release_date": "2025-05-16T18:56:52Z", + "is_latest": true + }, + "packages": [ + { + "registry_name": "pypi", + "name": "adfinmcp", + "version": "0.1.0", + "package_arguments": [ + { + "description": "Path to the configuration file", + "is_required": true, + "format": "string", + "value": "/config/adfin.json", + "default": "/config/adfin.json", + "type": "positional", + "value_hint": "/path/to/config.json" + } + ] + } + ] + } +] \ No newline at end of file diff --git a/tools/publisher/auth/dns.go b/tools/publisher/auth/dns.go index a285f04..5dda571 100644 --- a/tools/publisher/auth/dns.go +++ b/tools/publisher/auth/dns.go @@ -5,8 +5,7 @@ type DNSProvider struct { } // NewDNSProvider creates a new DNS-based auth provider -// -//nolint:ireturn +//nolint:ireturn // Factory function returns interface by design func NewDNSProvider(registryURL, domain, hexSeed string) Provider { return &DNSProvider{ CryptoProvider: &CryptoProvider{ diff --git a/tools/publisher/auth/github-at.go b/tools/publisher/auth/github-at.go index 364c3a7..95dc6b5 100644 --- a/tools/publisher/auth/github-at.go +++ b/tools/publisher/auth/github-at.go @@ -63,7 +63,8 @@ type ServerHealthResponse struct { } // NewGitHubATProvider creates a new GitHub OAuth provider -func NewGitHubATProvider(forceLogin bool, registryURL string) Provider { //nolint:ireturn +//nolint:ireturn // Factory function returns interface by design +func NewGitHubATProvider(forceLogin bool, registryURL string) Provider { return &GitHubATProvider{ forceLogin: forceLogin, registryURL: registryURL, diff --git a/tools/publisher/auth/github-oidc.go b/tools/publisher/auth/github-oidc.go index f43bb08..746e821 100644 --- a/tools/publisher/auth/github-oidc.go +++ b/tools/publisher/auth/github-oidc.go @@ -14,7 +14,8 @@ type GitHubOIDCProvider struct { registryURL string } -func NewGitHubOIDCProvider(registryURL string) Provider { //nolint:ireturn +//nolint:ireturn // Factory function returns interface by design +func NewGitHubOIDCProvider(registryURL string) Provider { return &GitHubOIDCProvider{ registryURL: registryURL, } diff --git a/tools/publisher/auth/http.go b/tools/publisher/auth/http.go index 2e189ed..99e7f2c 100644 --- a/tools/publisher/auth/http.go +++ b/tools/publisher/auth/http.go @@ -5,8 +5,7 @@ type HTTPProvider struct { } // NewHTTPProvider creates a new HTTP-based auth provider -// -//nolint:ireturn +//nolint:ireturn // Factory function returns interface by design func NewHTTPProvider(registryURL, domain, hexSeed string) Provider { return &HTTPProvider{ CryptoProvider: &CryptoProvider{ diff --git a/tools/publisher/auth/none.go b/tools/publisher/auth/none.go index 1f80ecc..d7a1823 100644 --- a/tools/publisher/auth/none.go +++ b/tools/publisher/auth/none.go @@ -19,7 +19,8 @@ type TokenResponse struct { ExpiresAt int64 `json:"expires_at"` } -func NewNoneProvider(registryURL string) Provider { //nolint:ireturn +//nolint:ireturn // Factory function returns interface by design +func NewNoneProvider(registryURL string) Provider { return &NoneProvider{ registryURL: registryURL, } diff --git a/tools/publisher/main.go b/tools/publisher/main.go index 10cf1e2..721aa6f 100644 --- a/tools/publisher/main.go +++ b/tools/publisher/main.go @@ -344,8 +344,17 @@ func publishToRegistry(registryURL string, mcpData []byte, token string) error { return fmt.Errorf("error parsing server.json file: %w", err) } - // Create the publish request payload (without authentication) - publishReq := mcpDetails + // Create the publish request payload + var publishReq map[string]any + if _, hasServerField := mcpDetails["server"]; hasServerField { + // Already in PublishRequest format with server field (and possibly x-publisher) + publishReq = mcpDetails + } else { + // Legacy ServerDetail format - wrap it in extension wrapper format + publishReq = map[string]any{ + "server": mcpDetails, + } + } // Convert the request to JSON jsonData, err := json.Marshal(publishReq) diff --git a/tools/validate-examples/main.go b/tools/validate-examples/main.go index e555279..7ff9bf4 100644 --- a/tools/validate-examples/main.go +++ b/tools/validate-examples/main.go @@ -74,10 +74,26 @@ func runValidation() error { continue } + // Extract server portion if this is a PublishRequest format + serverData := data + publishRequestValid := true + if dataMap, ok := data.(map[string]any); ok { + if server, exists := dataMap["server"]; exists { + // This is a PublishRequest format - validate only expected properties exist + for key := range dataMap { + if key != "server" && key != "x-publisher" { + log.Printf(" Invalid PublishRequest property: ❌ %s (only 'server' and optional 'x-publisher' are allowed)", key) + publishRequestValid = false + } + } + serverData = server + } + } + baseValid := false registryValid := false - if err := baseSchema.Validate(data); err != nil { + if err := baseSchema.Validate(serverData); err != nil { log.Printf(" Validating against schema.json: ❌") log.Printf(" Error: %v", err) } else { @@ -85,7 +101,7 @@ func runValidation() error { baseValid = true } - if err := registrySchema.Validate(data); err != nil { + if err := registrySchema.Validate(serverData); err != nil { log.Printf(" Validating against registry-schema.json: ❌") log.Printf(" Error: %v", err) } else { @@ -93,8 +109,8 @@ func runValidation() error { registryValid = true } - // Only count as validated if both schemas passed - if baseValid && registryValid { + // Only count as validated if all validations passed + if publishRequestValid && baseValid && registryValid { validatedCount++ }