🌟
modelcontextprotocol/sdk の MCP サーバのメモ
Tools
registerTool ではなく, JSON 受け取り, JSON 返しでやりとりしたい.
(MCP サーバ実態コードが webassembly だったりとか)
sessionid は server.server.transport.sessionId で取得できる.
import { McpError, ErrorCode, ListResourceTemplatesRequestSchema, ReadResourceRequestSchema, ListToolsRequestSchema, CallToolRequestSchema, ListResourcesRequestSchema, ListPromptsRequestSchema, GetPromptRequestSchema, CompleteRequestSchema } from "@modelcontextprotocol/sdk/types.js";
im
server.server.setRequestHandler(ListToolsRequestSchema, () => {
const sessionId = server.server.transport.sessionId;
console.log("sessId", sessionId);
const json_result = ...;
return json_result;
});
server.setRequestHandler で対応.
registerCapabilities で手動で tools 登録する必要がある.
server.server.registerCapabilities({
resources: {
listChanged: true
},
tools: {
listChanged: true
}
});
resources
tools のときと同様にすれば OK!
Discussion