UNPKG

mcp-proxy

Version:

A TypeScript SSE proxy for MCP servers that use stdio transport.

73 lines (64 loc) 1.64 kB
import { Server } from "@modelcontextprotocol/sdk/server/index.js"; import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"; import { ListResourceTemplatesRequestSchema, ListResourcesRequestSchema, ReadResourceRequestSchema, SubscribeRequestSchema, UnsubscribeRequestSchema, } from "@modelcontextprotocol/sdk/types.js"; const server = new Server( { name: "example-server", version: "1.0.0", }, { capabilities: { resources: { subscribe: true }, }, }, ); server.setRequestHandler(ListResourcesRequestSchema, async () => { return { resources: [ { uri: "file:///example.txt", name: "Example Resource", }, ], }; }); server.setRequestHandler(ReadResourceRequestSchema, async (request) => { if (request.params.uri === "file:///example.txt") { return { contents: [ { uri: "file:///example.txt", mimeType: "text/plain", text: "This is the content of the example resource.", }, ], }; } else { throw new Error("Resource not found"); } }); server.setRequestHandler(ListResourceTemplatesRequestSchema, async () => { return { resourceTemplates: [ { uriTemplate: `file://{filename}`, name: "Example resource template", description: "Specify the filename to retrieve", }, ], }; }); server.setRequestHandler(SubscribeRequestSchema, async () => { return {}; }); server.setRequestHandler(UnsubscribeRequestSchema, async () => { return {}; }); const transport = new StdioServerTransport(); await server.connect(transport);