{"uid":"cap_VWxtt966bdWfK_JTaf7P5","slug":"toolschema-forge-llm-tool-schema-converter-d436fbdc","name":"ToolSchema Forge - 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/tool-schema/convert?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":["tool"],"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":{"enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"],"type":"string"},"minItems":1,"description":"Target formats. Default: all."}}},"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":["detected","results"],"properties":{"results":{"type":"object","additionalProperties":{"type":"object","properties":{"tool":{"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"}}}}}}},"detected":{"enum":["openai","openai_strict","anthropic","gemini","mcp","jsonschema"],"type":"string"}}}}}}},"responseSchema":{"type":"json","example":{"results":{"gemini":{"tool":{"name":"get_weather","parameters":{"type":"object","required":["city"],"properties":{"city":{"type":"string","description":"City name"},"unit":{"enum":["c","f"],"type":"string"}}},"description":"Get the current weather for a city."},"issues":[]},"openai_strict":{"tool":{"type":"function","function":{"name":"get_weather","strict":true,"parameters":{"type":"object","required":["city","unit"],"properties":{"city":{"type":"string","description":"City name"},"unit":{"enum":["c","f",null],"type":["string","null"]}},"additionalProperties":false},"description":"Get the current weather for a city."}},"issues":[{"code":"optional_made_nullable","path":"/properties/unit","fixed":true,"message":"Optional property \"unit\" was made nullable and required","provider":"openai_strict","severity":"warning"},{"code":"additional_properties_forced","path":"/additionalProperties","fixed":true,"message":"additionalProperties must be false for OpenAI Structured Outputs","provider":"openai_strict","severity":"warning"}]}},"detected":"openai"}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.01","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.01/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.01","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_AjHueRvU0edjL_rkvtP6S","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.01","costPer":"request","priority":0,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","unit":"request","depositMicros":null,"planRef":null}],"brandName":null,"brandSlug":null,"brandBaseUrl":null,"brandDocsUrl":null,"whatItDoes":"Converts, lints, and cross-compiles LLM tool definitions between OpenAI, Anthropic, Gemini, and MCP formats, with auto-fixing and issue reporting, paid per call via x402.","exampleAgentPrompt":"Convert this OpenAI function schema to Anthropic and Gemini formats and lint it for any compatibility issues: {name: 'get_weather', description: 'Get weather for a city', parameters: {type: 'object', required: ['city'], properties: {city: {type: 'string'}, unit: {enum: ['c','f']}}}}","exampleUseCases":[{"title":"Port tool schema to all providers","prompt":"I have this OpenAI chat tool definition and I need versions of it for Anthropic, Gemini, and MCP all at once — can you run it through the schema converter and show me what issues it flags? Here's the tool: {name: 'search_web', description: 'Search the web', parameters: {type: 'object', required: ['query'], properties: {query: {type: 'string'}}}}"},{"title":"Fix OpenAI strict mode compliance","prompt":"My tool schema works in regular OpenAI mode but fails in strict mode — can you convert it to openai_strict and auto-fix whatever needs to change? The tool is: {name: 'send_email', description: 'Send an email', parameters: {type: 'object', required: ['to'], properties: {to: {type: 'string'}, subject: {type: 'string'}, body: {type: 'string'}}}}"},{"title":"Generate MCP manifest from Gemini tool","prompt":"I've got a Gemini-format tool definition and I need it converted into an MCP manifest — can you also lint it and tell me if there are any errors or warnings? Tool: {name: 'get_stock_price', description: 'Fetch current stock price', parameters: {type: 'object', required: ['ticker'], properties: {ticker: {type: 'string', description: 'Stock ticker symbol'}}}}"}],"resultDescription":"Returns a JSON object with a 'detected' field indicating the auto-detected source format, and a 'results' map keyed by target format (e.g. openai, openai_strict, anthropic, gemini, mcp, jsonschema). Each target entry contains the converted 'tool' schema and an 'issues' array listing any lint findings with path, code, message, severity (error/warning), and whether the issue was auto-fixed.","failureModes":["Unrecognizable tool format — returns error if input doesn't match any supported provider schema","Missing required 'tool' field in body — validation error","Invalid target format enum value — rejected at schema level","Payment failure via x402 — HTTP 402 if USDC payment not provided or insufficient","Malformed JSON body — HTTP 400 parse error","Tool schema too complex or deeply nested for deterministic linting"],"whenToPreferThis":"Choose this endpoint when you need deterministic, rule-based conversion of LLM tool schemas across providers (OpenAI, Anthropic, Gemini, MCP) with linting and auto-fixing, rather than asking an LLM to manually rewrite schemas. Ideal for CI pipelines, agent builder tooling, or any workflow where you need to maintain a single source-of-truth tool definition and emit provider-specific variants automatically. Particularly useful when OpenAI strict mode compliance is needed, since the service auto-fixes common issues like missing additionalProperties:false and optional property nullability.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:18:58.558Z","isFirstParty":false,"canonicalSlug":"toolschema-forge-llm-tool-schema-converter-d436fbdc"}