🌟

modelcontextprotocol/sdk の MCP サーバのメモ

に公開

https://github.com/modelcontextprotocol/typescript-sdk?tab=readme-ov-file#quick-start

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