{"$schema":"https://static.modelcontextprotocol.io/schemas/mcp-server-card/v1.json","version":"1.0","protocolVersion":"2025-06-18","serverInfo":{"name":"toolschema-forge","title":"ToolSchema Forge","version":"1.1.0"},"description":"Convert, lint and generate LLM tool schemas across OpenAI (incl. strict), Anthropic, Gemini and MCP. Free tier, then x402 pay-per-call (USDC on Base).","documentationUrl":"https://toolschema-forge.toolschemaforge.workers.dev/","transport":{"type":"streamable-http","endpoint":"/mcp","url":"https://toolschema-forge.toolschemaforge.workers.dev/mcp"},"capabilities":{"tools":{"listChanged":false}},"authentication":{"required":false},"instructions":"ToolSchema Forge converts and lints LLM tool/function schemas across OpenAI (incl. strict), Anthropic, Gemini and MCP, turns OpenAPI specs into tools, and generates MCP manifests. Deterministic, no LLM inside. Free tier: 5 tool calls per hour per IP, arguments up to 8 KB. Beyond that, pay per call in USDC on Base with x402 (MCP convention: params._meta[\"x402/payment\"]), or call the paid HTTP routes listed at /openapi.json.","tools":[{"name":"convert_tool_schema","title":"Convert tool schema","description":"Convert one LLM tool/function definition between OpenAI, OpenAI strict mode, Anthropic, Gemini, MCP and plain JSON Schema. The input format is auto-detected. Every change is reported as an issue with a JSON pointer. Free: 5 calls/hour per IP with arguments up to 8 KB; then $0.01 USDC per call via x402.","inputSchema":{"type":"object","properties":{"tool":{"type":"object","description":"Tool definition in any supported format (OpenAI chat/responses, Anthropic, Gemini, MCP, or {name, description, parameters})."},"targets":{"type":"array","items":{"type":"string","enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"]},"minItems":1,"description":"Target formats. Default: all."}},"required":["tool"]},"annotations":{"title":"Convert tool schema","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"lint_tool_schema","title":"Lint tool schema","description":"Check one LLM tool definition against each provider's schema rules (OpenAI strict, Anthropic, Gemini, MCP) and report errors and warnings with fixes. Free: 5 calls/hour per IP with arguments up to 8 KB; then $0.005 USDC per call via x402.","inputSchema":{"type":"object","properties":{"tool":{"type":"object","description":"Tool definition in any supported format."},"targets":{"type":"array","items":{"type":"string","enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"]},"minItems":1,"description":"Providers to check. Default: all."}},"required":["tool"]},"annotations":{"title":"Lint tool schema","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"openapi_to_tools","title":"OpenAPI to tools","description":"Turn an OpenAPI 3.x or Swagger 2.0 spec (JSON object) into LLM tool definitions in the chosen format, one tool per operation. Free: 5 calls/hour per IP with arguments up to 8 KB; then $0.02 USDC per call via x402.","inputSchema":{"type":"object","properties":{"spec":{"type":"object","description":"OpenAPI 3.x or Swagger 2.0 document as JSON."},"target":{"type":"string","enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"],"description":"Output format. Default openai."},"include":{"type":"array","items":{"type":"string"},"description":"Optional operationIds or 'METHOD /path' strings to include."},"maxTools":{"type":"integer","minimum":1,"maximum":128}},"required":["spec"]},"annotations":{"title":"OpenAPI to tools","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"batch_convert_tool_schemas","title":"Batch convert tool schemas","description":"Convert up to 50 tool definitions at once to the chosen formats, with per-tool issues and ready-to-use bundles. Free: 5 calls/hour per IP with arguments up to 8 KB; then $0.05 USDC per call via x402.","inputSchema":{"type":"object","properties":{"tools":{"type":"array","items":{"type":"object"},"minItems":1,"maxItems":50,"description":"1-50 tool definitions in any supported format."},"targets":{"type":"array","items":{"type":"string","enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"]},"minItems":1,"description":"Target formats. Default: all."}},"required":["tools"]},"annotations":{"title":"Batch convert tool schemas","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}},{"name":"mcp_manifest","title":"MCP manifest + server stub","description":"Generate an MCP server manifest (tools with inputSchema, titles, annotations, HTTP bindings) and a TypeScript stdio server stub from an OpenAPI spec or a list of tools. Free: 5 calls/hour per IP with arguments up to 8 KB; then $0.15 USDC per call via x402.","inputSchema":{"type":"object","properties":{"openapi":{"type":"object","description":"OpenAPI 3.x or Swagger 2.0 document as JSON. Give this or tools."},"tools":{"type":"array","items":{"type":"object"},"minItems":1,"maxItems":100,"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)."}}},"annotations":{"title":"MCP manifest + server stub","readOnlyHint":true,"destructiveHint":false,"idempotentHint":true,"openWorldHint":false}}],"pricing":{"free_tier":{"calls_per_hour_per_ip":5,"max_argument_bytes":8192},"paid":{"protocol":"x402","network":"eip155:8453","asset":"USDC","meta_key":"x402/payment","per_tool":{"convert_tool_schema":"$0.01","lint_tool_schema":"$0.005","openapi_to_tools":"$0.02","batch_convert_tool_schemas":"$0.05","mcp_manifest":"$0.15"}}}}