Skip to content

Commit c0da9f2

Browse files
chore: implement resource listing handlers (#7)
* chore: implement resource listing handlers * changeset
1 parent 3376e7f commit c0da9f2

File tree

2 files changed

+18
-0
lines changed

2 files changed

+18
-0
lines changed

.changeset/all-buses-laugh.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"@speakeasy-api/docs-mcp-server": patch
3+
---
4+
5+
Implement resource listing handlers to work around a Codex bug (openai/codex#8565) that is expecting to successfully call resources/list regardless of whether a server exposes any resources or not.

packages/server/src/http.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,13 @@ import type { Transport } from "@modelcontextprotocol/sdk/shared/transport.js";
55
import { StreamableHTTPServerTransport } from "@modelcontextprotocol/sdk/server/streamableHttp.js";
66
import {
77
CallToolRequestSchema,
8+
ListResourcesRequestSchema,
9+
ListResourceTemplatesRequestSchema,
810
ListToolsRequestSchema,
911
type CallToolResult,
1012
type ListToolsResult,
13+
type ListResourcesResult,
14+
type ListResourceTemplatesResult,
1115
} from "@modelcontextprotocol/sdk/types.js";
1216
import type { McpDocsServer } from "./server.js";
1317

@@ -45,6 +49,7 @@ function createPerRequestServer(
4549
{
4650
capabilities: {
4751
tools: {},
52+
resources: {},
4853
},
4954
},
5055
);
@@ -58,6 +63,14 @@ function createPerRequestServer(
5863
return { tools } satisfies ListToolsResult;
5964
});
6065

66+
server.setRequestHandler(ListResourcesRequestSchema, async () => {
67+
return { resources: [] } satisfies ListResourcesResult;
68+
});
69+
70+
server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => {
71+
return { resourceTemplates: [] } satisfies ListResourceTemplatesResult;
72+
});
73+
6174
server.setRequestHandler(CallToolRequestSchema, async (request) => {
6275
const result = await app.callTool(request.params.name, request.params.arguments ?? {});
6376
return result as CallToolResult;

0 commit comments

Comments
 (0)