Grade MCP tool definitions for agent-readiness: score, A-F grade, fixes, est. token cost.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Optional. 'Bearer <key>' for a free monthly quota. Works without a key.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
Grade MCP tool definitions (the tools array from a tools/list result) for how well AI agents can pick and call them. Returns a 0–100 score and A–F grade, per-tool scores, and findings with concrete fixes: missing or weak descriptions, untyped parameters, strings without maxLength, missing required or additionalProperties, missing annotations (readOnlyHint, destructiveHint …), invalid or duplicate names, outputSchema and enum problems, hidden characters and tool-poisoning patterns. Also returns an ESTIMATED token cost of the definitions (characters ÷ 4; real counts vary by model). Pure parsing: no network calls, and your tool definitions are never stored. Read-only. Same engine as the ToolGrade JSON API (POST /api/grade).
The tool definitions to grade, e.g. [{"name": "search_docs", "description": "...", "inputSchema": {...}}]: the "tools" array of a tools/list result. Up to 200 tools. Provide this or tools_json.
Alternative to tools: raw JSON text of a tools/list response, its result object ({"tools": [...]}) or a tool array, exactly as copied.
Also return the full /api/grade report (all findings and every tool row) in structuredContent.raw. Larger output.
Grade MCP tool definitions (the tools array from a tools/list result) for how well AI agents can pick and call them. Returns a 0–100 score and A–F grade, per-tool scores, and findings with concrete fixes: missing or weak descriptions, untyped parameters, strings without maxLength, missing required or additionalProperties, missing annotations (readOnlyHint, destructiveHint …), invalid or duplicate names, outputSchema and enum problems, hidden characters and tool-poisoning patterns. Also returns an ESTIMATED token cost of the definitions (characters ÷ 4; real counts vary by model). Pure parsing: no network calls, and your tool definitions are never stored. Read-only. Same engine as the ToolGrade JSON API (POST /api/grade).
| Argument | Type | Description |
|---|---|---|
| tools | array | The tool definitions to grade, e.g. [{"name": "search_docs", "description": "...", "inputSchema": {...}}]: the "tools" array of a tools/list result. Up to 200 tools. Provide this or tools_json. |
| tools_json | string | Alternative to tools: raw JSON text of a tools/list response, its result object ({"tools": [...]}) or a tool array, exactly as copied. |
| include_raw | boolean | Also return the full /api/grade report (all findings and every tool row) in structuredContent.raw. Larger output. |
{
"type": "object",
"required": [],
"properties": {
"tools": {
"type": "array",
"items": {
"type": "object",
"description": "One MCP tool definition (name, description, inputSchema, optional title, annotations, outputSchema)."
},
"maxItems": 200,
"minItems": 1,
"description": "The tool definitions to grade, e.g. [{\"name\": \"search_docs\", \"description\": \"...\", \"inputSchema\": {...}}]: the \"tools\" array of a tools/list result. Up to 200 tools. Provide this or tools_json."
},
"tools_json": {
"type": "string",
"maxLength": 262144,
"minLength": 1,
"description": "Alternative to tools: raw JSON text of a tools/list response, its result object ({\"tools\": [...]}) or a tool array, exactly as copied."
},
"include_raw": {
"type": "boolean",
"default": false,
"description": "Also return the full /api/grade report (all findings and every tool row) in structuredContent.raw. Larger output."
}
},
"additionalProperties": false
}