Fix guides · check schema.root
Tools need an inputSchema whose root is {"type":"object"}, even when they take no arguments.
1 of 15,415 reachable MCP servers (0%) have this issue today.
The MCP spec requires tool input schemas to be JSON Schema objects. Several clients validate this before showing the tool to the model; a missing schema or a root of type string/array gets the tool dropped, or makes the model send arguments the server cannot parse.
{ "name": "get_status" }
{ "name": "search", "inputSchema": { "type": "string" } }{ "name": "get_status", "inputSchema": { "type": "object", "properties": {} } }
{ "name": "search", "inputSchema": { "type": "object", "properties": { "query": { "type": "string" } }, "required": ["query"] } }server.registerTool("get_status", { description: "Service status: uptime, version, queue depth.", inputSchema: {} }, handler);@mcp.tool()
def get_status() -> dict:
"""Service status: uptime, version, queue depth."""
Paste your endpoint at /check, or run it in CI:
pipx run glimind check https://your-server.example.com/mcp --min-grade B