ToolSchema Forge

Convert, lint and generate LLM tool schemas for OpenAI, Anthropic, Gemini and MCP

Should I use this

Quality & Safety

A
Description quality
100%
Schema completeness
97%
Naming quality
88%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~1,112Tokens (tool definitions)
~1.3 KBTypical response size
Moderate attention impact (0.87% of 128k context)

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-http

What it can do

Tool inventory

Tools (5)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢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

Rate this Server

Evidence

Recent observations

verifiedversion not recorded5 tools