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
- /llms.txt
- /skills/SKILL.md — call
check_toolorcheck_server, then read the three answer resources. Served on this site. Not submitted to a registry. - Answer: one MCP tool per REST endpoint
- Answer: the server loads but the agent never calls the tool
- Answer: picking the right subset of parameters
- /index.md
- /openapi.json
- /v1/rules
POST /mcp— stateless MCP streamable HTTP. Tools:check_tool,check_server,report_outcome,outcome_summary. Three read-only resources:toolcard://answers/mcp-tools-mapped-1-to-1-onto-a-rest-api,toolcard://answers/mcp-server-loads-but-the-agent-never-calls-it, andtoolcard://answers/picking-the-right-subset-of-parameters, the answer-page markdown. No templates and no subscriptions. JSON responses, or a one-event SSE stream if you accept onlytext/event-stream. A resource read is not a tool call and does not use the tool-call cap.initializeis optional. Itsresult.instructionssays to callcheck_toolorcheck_serverand to pass a finding'sresourcetoresources/read.- /.well-known/mcp/server-card.json — the
skillsarray names /skills/SKILL.md. That URL is not an MCP resource.
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
- Endpoint-shaped names use the six verbs in the examples from @arpit_bhayani, 2026-08-27: get, list, create, update, delete, set. The note says to map a tool to a capability, not one tool per REST endpoint.
fetchUseris not flagged. - Description checks follow @waldekm, 2026-10-13: write the name and description in the words developers use. The 40-character cutoff is Toolcard's. The answer page is MCP server loads but the agent never calls the tool.
- Wide input (more than 8 top-level properties) uses a cutoff Toolcard chose. The motivation is @AvinashDalvi_, 2026-10-13, on choosing which parameters to expose. That post states no number. Nested properties are not counted. The answer page is Picking the right subset of parameters.
inputSchemachecks follow the MCP schema reference, 2025-06-18 revision, which listsinputSchemaas a required object schema.duplicate-namefollows the MCP tools page, 2025-06-18 revision: each tool is uniquely identified by a name. Toolcard compares the trimmed name and keeps case.overlapping-descriptionsandtoo-many-toolsuse cutoffs Toolcard chose (4 content tokens and 80 percent of the shorter set; more than 20 tools). The tool-count motivation is the same 2026-08-27 note, which states no number. Overlap is Toolcard's comparison. Neither finding has an answer page.
Toolcard is an independent experiment. It is not affiliated with the people or the projects cited.