Toolcard

Toolcard checks one MCP tool, or a whole tools list, against a short, cited rule list, and it keeps an anonymous tally of tools that were called or ignored.

A check is not stored. A report stores the tool name, the SHA-256 of the description if you sent one, called or ignored, an optional client label, and the time. Raw descriptions and schemas are not stored. The public tally does not list tool names.

An empty findings list means these checks did not fire. It does not mean the tool is good. Toolcard does not call a model and does not take payment.

Sample: endpoint-shaped name

getUser with the description "Get a user" is endpoint-shaped. Three checks fire: endpoint-shaped-name, thin-description, description-echoes-name. stored is false. Rules version 2026-10-18.1.

Each of those findings includes resource. endpoint-shaped-name is toolcard://answers/mcp-tools-mapped-1-to-1-onto-a-rest-api. thin-description and description-echoes-name are toolcard://answers/mcp-server-loads-but-the-agent-never-calls-it. A wide-input finding is toolcard://answers/picking-the-right-subset-of-parameters. missing-input-schema, input-schema-not-object, duplicate-name, overlapping-descriptions, and too-many-tools omit resource. Pass resource to resources/read. It is not an http URL.

curl -s -X POST https://agentghostedme.com/v1/check \
  -H 'content-type: application/json' \
  -d '{"name":"getUser","description":"Get a user","inputSchema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}'

The same two samples, computed by the running server, are at /v1/examples. The note behind the name check is answered on MCP tools mapped 1:1 onto a REST API, with this checker on the page. The note behind the description checks is answered on MCP server loads but the agent never calls the tool. The note behind the wide-input check is answered on Picking the right subset of parameters.

Sample: these checks do not fire

manage_user with a description that says what the tool does, and two input properties, returns shape: not-endpoint-shaped and findings: [].

Check a tool

The response appears here. Nothing you type is stored by a check.

Check a tools list

POST /v1/check-server accepts a tools/list result, a JSON-RPC envelope whose result.tools is that list, or a server card with a tools array. Each tool is checked the same way as one tool. Top-level findings are only duplicate-name, overlapping-descriptions, and too-many-tools. One list counts as one check. Nothing is stored. The same call over MCP is check_server.

curl -s -X POST https://agentghostedme.com/v1/check-server \
  -H 'content-type: application/json' \
  -d '{"tools":[{"name":"getUser","description":"Get a user","inputSchema":{"type":"object","properties":{"id":{"type":"string"}}}},{"name":"listUsers","description":"List users","inputSchema":{"type":"object","properties":{"id":{"type":"string"}}}}]}'

More than 20 tools fires too-many-tools. 20 stays quiet. That cutoff is Toolcard's. Duplicate names compare the trimmed name and keep case. Two descriptions overlap when both have at least 4 content tokens and share at least 80 percent of the shorter set. Send at most 64 tools. The body limit is 128KB.

Tally

Reports on this server: see the summary. This is whoever called this server, not a survey. GET /v1/outcomes/summary

curl -s -X POST https://agentghostedme.com/v1/outcomes \
  -H 'content-type: application/json' \
  -d '{"name":"manage_user","result":"called","report_id":"report_8f3a12bc"}'

Send report_id if you retry. The same id is stored once. Do not put secrets or personal data in the description. Only a hash is kept, and you should not send them at all.

For agents

Free cap: 60 checks per IP per hour, 30 outcome reports per IP per hour, 60 MCP tool calls per IP per hour. One tools list counts as one check. Over the cap the response is HTTP 429 with Retry-After. Listing or reading an MCP resource is not a tool call. Paid keys are not offered yet.

Sources

Toolcard is an independent experiment. It is not affiliated with the people or the projects cited.

Privacy · Terms