diff --git a/.changeset/add_serverjson_for_mcp_registry_publishing.md b/.changeset/add_serverjson_for_mcp_registry_publishing.md new file mode 100644 index 000000000..06a9cdf18 --- /dev/null +++ b/.changeset/add_serverjson_for_mcp_registry_publishing.md @@ -0,0 +1,7 @@ +--- +default: patch +--- + +### Add server.json for MCP Registry publishing + +In preparation for publishing Apollo MCP Server to the official MCP Registry at `registry.modelcontextprotocol.io`, this PR adds `server.json` configuration file and adds the `io.modelcontextprotocol.server.name` label Dockerfile for registry verification. diff --git a/Dockerfile b/Dockerfile index 9adfe7171..b78b53126 100644 --- a/Dockerfile +++ b/Dockerfile @@ -21,6 +21,9 @@ RUN cargo build --release --package apollo-mcp-server --bin apollo-mcp-server # Using distroless/cc which includes glibc and CA certificates FROM gcr.io/distroless/cc-debian12 +# MCP Registry annotation for publishing +LABEL io.modelcontextprotocol.server.name="io.github.apollographql/apollo-mcp-server" + # Copy the binary COPY --from=builder /app/target/release/apollo-mcp-server /usr/local/bin/apollo-mcp-server diff --git a/server.json b/server.json new file mode 100644 index 000000000..1623e1842 --- /dev/null +++ b/server.json @@ -0,0 +1,71 @@ +{ + "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json", + "name": "io.github.apollographql/apollo-mcp-server", + "title": "Apollo MCP Server", + "description": "MCP server that exposes GraphQL operations as tools for AI models.", + "websiteUrl": "https://www.apollographql.com/docs/apollo-mcp-server/", + "repository": { + "url": "https://github.com/apollographql/apollo-mcp-server", + "source": "github" + }, + "version": "1.3.0", + "packages": [ + { + "registryType": "oci", + "identifier": "ghcr.io/apollographql/apollo-mcp-server:v1.3.0", + "transport": { + "type": "stdio" + }, + "runtimeArguments": [ + { + "type": "named", + "name": "--mount", + "description": "Mount your config file into the container", + "value": "type=bind,src={config_path},dst=/config.yaml,readonly", + "isRequired": true, + "variables": { + "config_path": { + "description": "Path to your Apollo MCP Server configuration file on the host", + "format": "filepath", + "isRequired": true + } + } + }, + { + "type": "named", + "name": "--mount", + "description": "Mount your project data directory into the container (for local schema and operations)", + "value": "type=bind,src={data_path},dst=/data", + "isRequired": false, + "variables": { + "data_path": { + "description": "Path to your project directory containing schema and operation files", + "format": "filepath", + "isRequired": true + } + } + }, + { + "type": "named", + "name": "-p", + "description": "Expose the HTTP Streamable transport port", + "value": "8000:8000", + "isRequired": false + } + ], + "packageArguments": [ + { + "type": "positional", + "value": "/config.yaml" + } + ] + } + ], + "icons": [ + { + "src": "https://raw.githubusercontent.com/apollographql/apollo-client-devtools/main/assets/apollo-wordmark.svg", + "mimeType": "image/svg+xml", + "sizes": ["any"] + } + ] +}