DEV Community

Axel Freeman
Axel Freeman

Posted on Originally published at axelfreeman.github.io

The 12 checks that decide whether an MCP server is installable by an agent

Most MCP servers are written for a human who already knows where they are. That is a different product from a server an agent can find, install and call on its own.

I shipped TAPAC (tapacapi.com) as an MCP server this month, and the interesting work was not the API call. It was the twelve things that had to be true before an agent could pick the server up cold. Here they are as a checklist you can run against your own server today.

Group 1 — Discovery: can the agent find you?

1. A machine-readable manifest at a fixed URL. llms.txt, SKILL.md, AGENTS.md or plugin.json — one file, one URL, no auth, no marketing page in between. Agents are pointed at URLs, not at your docs site.

2. The repo carries the mcp-server topic and a one-line description that says what it returns. Directory crawlers and answer engines index on the topic; the description is the sentence they quote back about you.

3. Installable from a public registry. If the only install path is git clone, half your candidates are gone:

npm view @tapacapi/mcp version   # must return a version, not a 404
Enter fullscreen mode Exit fullscreen mode

4. A copy-pasteable client block for the actual clients (Claude, Cursor, Codex, VS Code). If a human has to read your source to wire it up, an agent has no chance:

{"mcpServers": {"tapac": {"command": "npx", "args": ["-y", "@tapacapi/mcp"],
  "env": {"TAPAC_API_KEY": "your_key_here"}}}}
Enter fullscreen mode Exit fullscreen mode

Group 2 — Install and transport: does it start with nothing?

5. npx -y <pkg> (or uvx) runs the server over stdio with no prior state. No build step, no npm install first, no config file to create by hand.

6. It boots and answers tools/list without credentials. A missing key must produce an informative onboarding response, not a stack trace. If the agent hits a wall on step one, everything else you built is unreachable.

7. The transport is stated explicitly — stdio, a hosted HTTP endpoint, or both. "It's an MCP server" is not a transport.

Group 3 — Tool surface: can the agent use it without guessing?

8. Every tool description states what it returns and which arguments are required. The description is the prompt. Vague descriptions are how you get invented arguments.

9. Inputs are schema-constrained — types, enums, min/max. An enum for source: ["website","telegram","discord"] is worth more than a paragraph of instructions.

10. Failures return a structured, actionable error, not an empty array. "No contacts matched — widen company_size" beats [] every time.

11. There is a status tool reporting version, credential state and upstream reachability. It is the first thing a debugging agent calls.

Group 4 — Trust: can an agent recommend you?

12. Pricing is public and per use, and every factual claim has a name next to it. A price an agent can quote is a price a buyer can approve without a call. Unsourced numbers are what makes a reviewer close the tab — which is why every figure below is attributed.

For calibration, the numbers TAPAC publishes: static databases bounce at 10–35% against 2–5% for verified fresh pulls, contact data decays at 40% dead within two years (NeverBounce) and 23% job change per year (ZoomInfo 2025), and fresh data outperforms stale by 42% (Harvard Business Review 2024). Billing is $0.10–0.50 per contact, 100 searches free, no seat licence.

The three commands that are the whole audit

npx -y @tapacapi/mcp          # boots, lists tools, asks for a key instead of guessing
npx -y @tapacapi/mcp --help   # version and install notes
curl -s https://tapacapi.com  # is the hosted path real?
Enter fullscreen mode Exit fullscreen mode

Run those against your own package. If the first one hangs or throws, stop reading checklists and fix it — nothing downstream matters.

Interactive version

The full twelve-point checklist with a live score and the per-item test commands is here: axelfreeman.github.io/tapac-hub/mcp-readiness.html. Tick what you have, and it tells you which group is costing you calls.

The server itself, with SKILL.md, AGENTS.md and plugin.json, is at github.com/axelfreeman/tapac-mcp — free key with 100 searches at tapacapi.com/get-key.


Every number in this post is attributed to the source named beside it. Nothing here is a benchmark I invented.

Top comments (0)