{"uid":"cap_tHXTfIwYdmKyS_m5lQQ1z","slug":"toolschema-forge-mcp-manifest-generator-643199b8","name":"ToolSchema Forge - MCP Manifest Generator","description":"Deterministic LLM tool-schema conversion, linting and MCP manifest generation for OpenAI (incl. strict mode), Anthropic, Gemini and MCP, paid per call in USDC on Base via x402.","url":"https://toolschema-forge.toolschemaforge.workers.dev/v1/mcp/manifest?utm_source=zero.xyz","method":"POST","headers":{},"bodySchema":{"type":"object","$schema":"https://json-schema.org/draft/2020-12/schema","required":["input"],"properties":{"input":{"type":"object","required":["type","method","bodyType","body"],"properties":{"body":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object"},"maxItems":100,"minItems":1,"description":"Tool definitions in any supported format. Give this or openapi."},"server":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"}},"description":"Optional server info overrides."},"include":{"type":"array","items":{"type":"string"},"description":"Optional operationIds or 'METHOD /path' strings to include (openapi input)."},"openapi":{"type":"object","description":"OpenAPI 3.x or Swagger 2.0 document as JSON. Give this or tools."}}},"type":{"type":"string","const":"http"},"method":{"enum":["POST"],"type":"string"},"bodyType":{"enum":["json","form-data","text"],"type":"string"}},"additionalProperties":false},"output":{"type":"object","required":["type"],"properties":{"type":{"type":"string"},"example":{"type":"object","required":["server","protocolVersion","capabilities","tools","http_bindings","issues","skipped","stub"],"properties":{"stub":{"type":"object","properties":{"code":{"type":"string"},"filename":{"type":"string"},"language":{"type":"string"},"dependencies":{"type":"object"}}},"tools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"title":{"type":"string"},"annotations":{"type":"object"},"description":{"type":"string"},"inputSchema":{"type":"object"}}}},"issues":{"type":"array","items":{"type":"object","required":["provider","path","code","message","severity","fixed"],"properties":{"code":{"type":"string"},"path":{"type":"string"},"fixed":{"type":"boolean"},"message":{"type":"string"},"provider":{"enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"],"type":"string"},"severity":{"enum":["error","warning"],"type":"string"}}}},"server":{"type":"object","properties":{"name":{"type":"string"},"version":{"type":"string"},"description":{"type":"string"}}},"skipped":{"type":"array","items":{"type":"object"}},"capabilities":{"type":"object"},"http_bindings":{"type":"array","items":{"type":"object","properties":{"path":{"type":"string"},"tool":{"type":"string"},"method":{"type":"string"},"baseUrl":{"type":["string","null"]}}}},"protocolVersion":{"type":"string"}}}}}}},"responseSchema":{"type":"json","example":{"stub":{"code":"import { Server } from \"@modelcontextprotocol/sdk/server/index.js\";\nimport { StdioServerTransport } from \"@modelcontextprotocol/sdk/server/stdio.js\";\nimport { ListToolsRequestSchema, CallToolRequestSchema } from \"@modelcontextprotocol/sdk/types.js\";\n// ... TOOLS array, Server setup, ListTools/CallTool handlers that call the bound HTTP endpoints ...\nawait server.connect(new StdioServerTransport());","filename":"server.ts","language":"typescript","dependencies":{"@modelcontextprotocol/sdk":"^1.17.0"}},"tools":[{"name":"getPet","title":"Get Pet","annotations":{"readOnlyHint":true,"openWorldHint":true,"idempotentHint":true,"destructiveHint":false},"description":"Get a pet by id","inputSchema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}],"issues":[],"server":{"name":"pets","version":"1.0.0","description":""},"skipped":[],"capabilities":{"tools":{"listChanged":false}},"http_bindings":[{"path":"/pets/{id}","tool":"getPet","method":"GET","baseUrl":"https://api.example.com"}],"protocolVersion":"2025-06-18"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.15","displayCostAsset":"USDC","priceDynamic":false,"priceHint":null,"priceStatus":"priced","priceSource":"probe","requiresHandshake":false,"reviewCount":0,"rating":{"score":"0.00","successRate":"0.00","reviews":0,"stars":null,"state":"unrated"},"availabilityStatus":"unknown","priceObserved":null,"sessionDeposit":null,"pricing":{"kind":"static","summary":"$0.15/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.15","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.15","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_2MRRiHWmI2TNkyqYeb5x8","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.15","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts OpenAPI specs or raw tool definitions into a validated MCP manifest with LLM-provider-specific schema linting and a TypeScript server stub","exampleAgentPrompt":"Take my OpenAPI 3.0 spec and convert it to an MCP manifest — lint it for OpenAI strict mode and Anthropic compatibility, and generate a TypeScript server stub I can use right away.","exampleUseCases":[{"title":"OpenAPI to MCP for existing REST API","prompt":"I have an OpenAPI 3.0 JSON spec for my pets API — can you convert it into an MCP manifest with HTTP bindings and generate a TypeScript MCP server stub from it?"},{"title":"Lint tool schemas for OpenAI strict mode","prompt":"Here are my raw tool definitions as JSON objects — can you run them through ToolSchema Forge to find and auto-fix any errors that would break OpenAI strict mode or Anthropic tool calling?"},{"title":"Selective endpoint inclusion from large OpenAPI doc","prompt":"I have a large Swagger 2.0 document but I only want the MCP manifest to include the 'getPet' and 'POST /orders' operations — can you convert just those and give me the MCP tools array and issues list?"}],"resultDescription":"Returns a JSON object containing: a validated MCP manifest with protocolVersion and capabilities, an array of MCP-formatted tools with inputSchema and annotations, HTTP bindings mapping each tool to its underlying REST endpoint, a list of lint issues per LLM provider (openai, openai_strict, anthropic, gemini, mcp) with severity and whether they were auto-fixed, a list of skipped operations, and a ready-to-use TypeScript MCP server stub with filename and npm dependencies.","failureModes":["Invalid or malformed OpenAPI document returns schema validation errors","Neither 'tools' nor 'openapi' provided in body causes a 400-equivalent error","Tools array exceeds 100-item limit causing rejection","x402 payment not included or insufficient USDC causes 402 Payment Required response","Unsupported Swagger/OpenAPI version may result in partial conversion or errors","Network timeout on Cloudflare Workers edge if input payload is very large"],"whenToPreferThis":"Choose this endpoint when you need a deterministic, paid-per-call conversion of OpenAPI specs or raw tool definitions into MCP manifests with cross-provider linting (OpenAI incl. strict mode, Anthropic, Gemini, MCP). It is especially valuable when you need auto-fixing of schema issues, HTTP binding generation, and a ready-to-run TypeScript MCP server stub in a single call. Prefer it over manual schema authoring or open-source converters when correctness guarantees and multi-provider compatibility matter.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T12:30:10.879Z","isFirstParty":false,"canonicalSlug":"toolschema-forge-mcp-manifest-generator-643199b8"}