ToolSchema Forge
Convert, lint and generate LLM tool schemas for OpenAI, Anthropic, Gemini and MCP
Should I use this
Quality & Safety
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.
Install
One-Click Install
Add this to your `claude_desktop_config.json` file:
{
"mcpServers": {
"toolschema-forge": {
"url": "https://toolschema-forge.toolschemaforge.workers.dev/mcp"
}
}
}Remote endpoints
https://toolschema-forge.toolschemaforge.workers.dev/mcpstreamable-httpWhat it can do
Tool inventory
Tools (5)
🟢convert_tool_schema(tool, targets)
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.
Input Schema
{
"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"
]
}🟢lint_tool_schema(tool, targets)
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.
Input Schema
{
"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"
]
}🟢openapi_to_tools(spec, target, include, maxTools)
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.
Input Schema
{
"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"
]
}🟢batch_convert_tool_schemas(tools, targets)
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.
Input Schema
{
"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"
]
}🟢mcp_manifest(openapi, tools, server, include)
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.
Input Schema
{
"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)."
}
}
}Community
Evidence