{"uid":"cap_2VbW0tmaktJjJiuQYE04b","slug":"toolschema-forge-batch-llm-tool-schema-converter-97e6cd1f","name":"ToolSchema Forge - Batch 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/batch-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":["tools"],"properties":{"tools":{"type":"array","items":{"type":"object"},"maxItems":50,"minItems":1,"description":"1-50 tool definitions in any supported format."},"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":["count","ok","failed","results","duplicate_names"],"properties":{"ok":{"type":"integer"},"count":{"type":"integer"},"failed":{"type":"integer"},"results":{"type":"array","items":{"type":"object","required":["index","name","detected","outputs","issues","error"],"properties":{"name":{"type":["string","null"]},"error":{"type":["string","null"]},"index":{"type":"integer"},"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"}}}},"outputs":{"type":["object","null"]},"detected":{"type":["string","null"]}}}},"duplicate_names":{"type":"array","items":{"type":"string"}}}}}}}},"responseSchema":{"type":"json","example":{"ok":2,"count":2,"failed":0,"results":[{"name":"get_weather","error":null,"index":0,"issues":[],"outputs":{"mcp":{"name":"get_weather","description":"Get the current weather for a city.","inputSchema":{"type":"object","required":["city"],"properties":{"city":{"type":"string","description":"City name"},"unit":{"enum":["c","f"],"type":"string"}}}},"gemini":{"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."}},"detected":"openai"},{"name":"search_docs","error":null,"index":1,"issues":[],"outputs":{"mcp":{"name":"search_docs","description":"Search the documentation.","inputSchema":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}}}},"gemini":{"name":"search_docs","parameters":{"type":"object","required":["query"],"properties":{"query":{"type":"string"}}},"description":"Search the documentation."}},"detected":"anthropic"}],"duplicate_names":[]}},"example":null,"exampleRequest":null,"tags":["x402"],"displayCostAmount":"0.05","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.05/call","primary":{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"},"accepted":[{"kind":"static","protocol":"x402","network":"base","amountUsd":"0.05","per":"call","confidence":"exact"}]},"paymentMethods":[{"uid":"pm_7fxgIrVEKMQtYAk-ih-jW","protocol":"x402","methodType":"crypto","chain":"base","mode":"charge","costAmount":"0.05","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 1-50 LLM tool definitions into multiple target formats (OpenAI, Anthropic, Gemini, MCP, JSON Schema) in a single batch call.","exampleAgentPrompt":"Convert these two tool definitions — one in OpenAI format and one in Anthropic format — into Gemini and MCP formats, and flag any schema issues you find along the way.","exampleUseCases":[{"title":"Cross-provider tool schema migration","prompt":"I have a bunch of OpenAI function definitions that I need to use with Anthropic Claude and Google Gemini too — can you convert all of them to both Anthropic and Gemini formats and tell me if any have compatibility problems?"},{"title":"MCP manifest generation from existing tools","prompt":"Take these 10 tool schemas I wrote for OpenAI strict mode and generate an MCP manifest from them — also flag any issues that would break strict mode compatibility."},{"title":"Multi-format schema linting before deployment","prompt":"Before I ship these tool definitions, can you run them through validation for OpenAI, Anthropic, and MCP at once and give me a report of all warnings and errors by provider?"}],"resultDescription":"Returns a JSON object with a count of processed tools, success/failure counts, and per-tool results. Each result includes the detected source format, converted output schemas keyed by target provider (openai, openai_strict, anthropic, gemini, mcp, jsonschema), a list of lint issues with severity, path, and whether they were auto-fixed, and any error message. Also returns a list of duplicate tool names across the batch.","failureModes":["Empty tools array or more than 50 tools triggers validation error","Unrecognizable tool schema format causes detection failure with error per result","Invalid target format enum value rejected at request level","Malformed JSON body returns HTTP 400","Payment not provided or insufficient USDC balance causes HTTP 402 rejection"],"whenToPreferThis":"Choose this endpoint when you need deterministic, rule-based conversion of tool schemas across multiple LLM providers in a single round-trip — especially when you need linting feedback and auto-fix reporting alongside conversion. Prefer it over manual schema translation when handling more than one tool or more than one target format simultaneously.","instructions":null,"reviewSummary":null,"reviewSummaryHighlights":null,"reviewSummaryConcerns":null,"reviewSummaryGeneratedAt":null,"activationCount":0,"lastUsedAt":null,"lastSuccessfullyRanAt":null,"lastHealthCheckAt":"2026-10-21T07:20:02.461Z","isFirstParty":false,"canonicalSlug":"toolschema-forge-batch-llm-tool-schema-converter-97e6cd1f"}