Reference
FAQ
Scope, limits, and where mcplint fits next to the tools you already use.
Questions
Does it need a network or a running server?
No network. --tools and --config are fully local. A server command is started locally over stdio, asked for tools/list, and then closed; nothing else is sent. There are no uploads and no telemetry.
What inputs can it audit?
A saved tools/list payload (an array, a {"tools":[...]} object, or a raw response), an mcp.json config with an mcpServers or servers object, or a server command it starts itself. See Usage.
Which clients does it know about?
Six built-in profiles: claude, openai, gemini, foundry, copilot, and a permissive generic. Each profile defines the accepted tool-name and property-name characters, the allowed root shape, and the preferred JSON Schema draft. See Rules.
How accurate is the token count?
It is an estimate, not a billing figure. Definitions are measured with a characters-over-four heuristic, which tracks context cost closely enough to compare servers and catch a budget blowout, but it is not a tokenizer for any specific model.
Does it need a browser or a build step?
No. mcplint runs as a command-line program with no rendering step, so it works the same on a laptop, in a container, or in air-gapped CI.
How do I fail CI on warnings too?
Run mcplint --tools tools.json --fail-on warning. It affects only the exit code; every finding is still reported and included in JSON and SARIF output.
What do the exit codes mean?
0 when nothing is at or above --fail-on, 1 when a finding is, 2 on invalid usage or unparseable input, and 3 on an I/O failure such as a file that cannot be read or a server that will not start.
Limitations
Static analysis
mcplint reads tool definitions; it does not execute tools or inspect their implementation. The client profiles encode documented behavior and may lag a client's latest release. Token counts are estimates. A clean run means the definitions are well-formed for the chosen profile, the surface is not obviously risky, and the cost is within budget, not that the server is safe.
How it compares
tools/list payload that a client actually receives, so they cannot measure its cost or its shape.