{"uid":"cap_sKP9znY8PSzV_ROlGEdnk","slug":"toolschema-forge-openapi-to-llm-tool-schema-converter-9ad96496","name":"ToolSchema Forge - OpenAPI to LLM Tool Schema Converter","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/openapi/to-tools?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","required":["spec"],"properties":{"spec":{"type":"object","description":"OpenAPI 3.x or Swagger 2.0 document as JSON."},"target":{"enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"],"type":"string","description":"Output format. Default openai."},"include":{"type":"array","items":{"type":"string"},"description":"Optional operationIds or 'METHOD /path' strings to include."},"maxTools":{"type":"integer","maximum":128,"minimum":1}}},"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":["count","tools","skipped","issues"],"properties":{"count":{"type":"integer"},"tools":{"type":"array","items":{"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"}}}},"skipped":{"type":"array","items":{"type":"object","properties":{"reason":{"type":"string"},"operation":{"type":"string"}}}}}}}}}},"responseSchema":{"type":"json","example":{"count":1,"tools":[{"name":"getPet","description":"Get a pet by id","input_schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string"}}}}],"issues":[],"skipped":[]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.02","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.02/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.02","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_zt6sPL0z09c9I47T9egor","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.02","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts an OpenAPI 3.x or Swagger 2.0 spec into LLM-ready tool schemas for OpenAI, Anthropic, Gemini, or MCP, with linting and issue reporting.","exampleAgentPrompt":"Convert my OpenAPI 3.0 spec to Anthropic tool schemas — here's the spec as JSON — and flag any linting issues that might break Claude's tool calling.","exampleUseCases":[{"title":"Integrate REST API with OpenAI agents","prompt":"I have a Swagger 2.0 spec for my payments API. Can you convert it to strict-mode OpenAI tool schemas so I can wire it into my GPT-4 agent, and tell me if any operations get skipped?"},{"title":"Generate MCP manifest from internal API","prompt":"Take this OpenAPI 3.1 spec and generate an MCP manifest from it — only include the 'listOrders', 'getOrder', and 'cancelOrder' operations, up to 10 tools max."},{"title":"Lint API spec for Gemini compatibility","prompt":"Run my OpenAPI spec through the ToolSchema Forge linter targeting Gemini function declarations and show me every warning or error it finds, including which ones were auto-fixed."}],"resultDescription":"A JSON object with: count (number of tools generated), tools (array of LLM-format tool schema objects ready to pass to the target provider), issues (array of lint findings with provider, path, code, message, severity, and whether auto-fixed), and skipped (array of operations that couldn't be converted with reasons).","failureModes":["Invalid or malformed OpenAPI/Swagger JSON causes parsing errors","Unsupported spec version results in conversion failure","maxTools limit truncates output without error if spec exceeds threshold","Operations with unsupported parameter types are skipped and listed in skipped array","Payment failure via x402 returns 402 before processing","Missing required 'spec' field causes validation error","Spec with no convertible operations returns empty tools array"],"whenToPreferThis":"Choose this endpoint when you need deterministic, provider-specific LLM tool schemas — especially when targeting multiple providers (OpenAI strict, Anthropic, Gemini, MCP) from a single OpenAPI/Swagger source of truth, and when you want lint feedback on schema compatibility issues. Prefer it over manual schema writing or generic JSON converters when you need LLM-provider-aware validation and auto-fixing.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:20:15.929Z","isFirstParty":false,"canonicalSlug":"toolschema-forge-openapi-to-llm-tool-schema-converter-9ad96496"}