mcp-output-schema.ts 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  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. const server = new Server({ name: "output-schema", version: "1.0.0" }, { capabilities: { tools: {} } })
  5. server.setRequestHandler(ListToolsRequestSchema, ({ params }) =>
  6. Promise.resolve(
  7. params?.cursor === "page-2"
  8. ? {
  9. tools: [
  10. {
  11. name: "second",
  12. inputSchema: { type: "object" },
  13. outputSchema: {
  14. type: "object",
  15. properties: { value: { type: "number" } },
  16. required: ["value"],
  17. },
  18. },
  19. ],
  20. }
  21. : {
  22. tools: [
  23. {
  24. name: "first",
  25. inputSchema: { type: "object" },
  26. outputSchema: {
  27. type: "object",
  28. properties: { value: { type: "string" } },
  29. required: ["value"],
  30. },
  31. },
  32. ],
  33. nextCursor: "page-2",
  34. },
  35. ),
  36. )
  37. await server.connect(new StdioServerTransport())