mcpmap 🧭
mcpmap inventories local Model Context Protocol (MCP) config files and prints a redacted map of servers, commands, environment needs, and known tool names. It is a nosy little cartographer for your agent workstation — useful, cautious, and allergic to leaking secrets.
Why
MCP configs now live in several editor and agent app corners. Before you hand an agent more tools, it helps to know:
- which MCP servers are configured locally;
- which commands and working directories they use;
- which environment keys may contain credentials;
- where duplicate or stale entries are hiding.
mcpmap stays local. It does not upload inventories or run MCP servers unless you explicitly opt in with --allow-run.
--timeout-ms accepts a finite base-10 integer number of milliseconds greater than or equal to 100 (default: 1500). Decimal, exponent, non-finite, signed, and trailing-character forms are rejected.
Install
The first npm release has not been published yet. Until it is available, install and run mcpmap from a checkout:
npm install
npm run build
node dist/cli.js scanAfter the first registry release, npm install -g mcpmap will be the supported global installation command.
Usage
mcpmap scan
mcpmap scan --config ./claude_desktop_config.json --format markdown
mcpmap scan --config ./mcp.json --no-defaults --format json
mcpmap doctor --config ./problematic.jsonc
mcpmap doctor --allow-run --timeout-ms 1000Outputs
- table (default): compact terminal overview.
- json: machine-readable inventory with redacted env values.
- markdown: pasteable documentation for team workstations.
Config discovery
By default, mcpmap checks common local MCP locations for Claude Desktop, VS Code, Cursor, Windsurf, and .mcp.json; default locations that do not exist are silently skipped. Add --config / -c for explicit JSON or JSONC files. An explicit path must exist and be readable, otherwise the command exits non-zero with that path in the diagnostic. Use --no-defaults when you only want those explicit files.