Your tools cost tokens in every single conversation.

Every MCP server ships its whole tools/list payload into the model's context before the user has typed a word. mcplint measures that footprint, then statically audits the tool surface for the design smells that make agents pick the wrong tool — naming drift, CRUD mirrors, overlapping descriptions, unbounded lists.

Paste, upload, or try the sample. Reports are unlisted by default and removable by their creator.

What it checks

Nineteen rules across six categories. Tier 1 is hygiene — missing descriptions, loose schemas, absent annotations. Tier 2 is the interesting half: design. Whether your surface mirrors your REST API instead of your users' intents, whether two tools are confusable, whether an enum is buried in prose where the model can't see it. Read the rule catalogue →

It runs locally too

Keep private schemas and credentials on your machine, audit stdio servers, or add a deterministic quality gate to CI.

npx mcp-surface-lint --stdio "node dist/server.js"npx mcp-surface-lint https://example.com/mcpnpx mcp-surface-lint snapshot.json --fail-under 80

Use it from your AI client

Add the hosted, stateless MCP endpoint to Cursor, VS Code, Claude, Windsurf, or another Streamable HTTP client. Then ask your agent to audit a server and turn the structured findings into a concrete refactor plan.

One tool, one boundary.

check_mcp_server reads the tool surface and never calls target tools.

Install MCP server