fix: Fix InitializeResult schema mismatch in Context7 server response

The response from the server was not matching the expected `InitializeResult` schema [^1].

1. The `serverInfo` field contained a `description` that was not part of the schema.
2. The `capabilities` field was incorrectly nested in `serverInfo`.
3. The `capabilities` field in the response included `resources`, even though this server does not support resources.

This change also adds an `instructions` field to the response, which provides guidance on how to use the server.

The SDK takes care of registering capabilities [^2], so we don't need to add this when instantiating the `server` object.

Response does not match `InitializeResult` schema:

```json
{
  "capabilities": {
    "tools": {
      "listChanged": true
    }
  },
  "serverInfo": {
    "name": "Context7",
    "version": "1.0.13",
    "description": "Retrieves up-to-date documentation and code examples for any library.",
    "capabilities": {
      "resources": {},
      "tools": {}
    }
  }
}
```

Response matches `InitializeResult` schema:

```json
{
  "capabilities": {
    "tools": {
      "listChanged": true
    }
  },
  "serverInfo": {
    "name": "Context7",
    "version": "1.0.13"
  },
  "instructions": "Use this server to retrieve up-to-date documentation and code examples for any library."
}
```

[^1]: https://github.com/modelcontextprotocol/modelcontextprotocol/blob/main/schema/2025-03-26/schema.ts#L179-L193

[^2]: 2cf4f0ca86/src/server/mcp.ts (L101)

Fixes https://github.com/upstash/context7/issues/282
This commit is contained in:
Niel Thiart 2025-06-12 11:55:15 +02:00
parent 0bf9466a14
commit fd2a2d6299
No known key found for this signature in database

View File

@ -48,15 +48,16 @@ const sseTransports: Record<string, SSEServerTransport> = {};
// Function to create a new server instance with all tools registered
function createServerInstance() {
const server = new McpServer({
name: "Context7",
description: "Retrieves up-to-date documentation and code examples for any library.",
version: "1.0.13",
capabilities: {
resources: {},
tools: {},
const server = new McpServer(
{
name: "Context7",
version: "1.0.13",
},
});
{
instructions:
"Use this server to retrieve up-to-date documentation and code examples for any library.",
}
);
// Register Context7 tools
server.tool(