mcp-lifecycle-stdio.ts 877 B

1234567891011121314151617181920212223242526
  1. import { Server } from "@modelcontextprotocol/sdk/server/index.js"
  2. import { StdioServerTransport } from "@modelcontextprotocol/sdk/server/stdio.js"
  3. import { ListToolsRequestSchema } from "@modelcontextprotocol/sdk/types.js"
  4. if (process.argv.includes("--hang")) {
  5. const pidFile = process.env.MCP_LIFECYCLE_PID_FILE
  6. if (!pidFile) throw new Error("MCP_LIFECYCLE_PID_FILE is required")
  7. await Bun.write(pidFile, String(process.pid))
  8. await new Promise(() => {})
  9. }
  10. const server = new Server({ name: "mcp-lifecycle-stdio", version: "1.0.0" }, { capabilities: { tools: {} } })
  11. server.setRequestHandler(ListToolsRequestSchema, () =>
  12. Promise.resolve({
  13. tools: [
  14. {
  15. name: "current_directory",
  16. description: process.cwd(),
  17. inputSchema: { type: "object", properties: {} },
  18. },
  19. ],
  20. }),
  21. )
  22. await server.connect(new StdioServerTransport())