loading…
Search for a command to run...
loading…
Enables AI assistants to discover, install, configure, and manage MCP servers through natural language conversation, automating tedious manual setup across mult
Enables AI assistants to discover, install, configure, and manage MCP servers through natural language conversation, automating tedious manual setup across multiple clients.
The last MCP server you install by hand.
mcp-tap lives inside your AI assistant. Ask it to find, install, and configure any MCP server — by talking to it. No more editing JSON files. No more Googling environment variables. No more "why won't this connect?"
"Find me an MCP for PostgreSQL."
That's it. mcp-tap searches the registry, installs the package, generates the config, validates the connection — all through conversation.
command, args, and env valuesclaude_desktop_config.json (or mcp.json, or mcp_config.json...)POSTGRES_CONNECTION_STRING environment variableYou: "Set up MCP servers for my project."
mcp-tap: I scanned your project and found:
- PostgreSQL (from docker-compose.yml)
- Slack (SLACK_BOT_TOKEN in your .env)
- GitHub (detected .github/ directory)
I recommend 3 servers. Want me to install them?
You: "Yes, all of them."
mcp-tap: Done. All connections verified. 35 new tools available.
You install mcp-tap once. It installs everything else.
Add to your claude_desktop_config.json:
With uvx (recommended):
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
With npx:
{
"mcpServers": {
"mcp-tap": {
"command": "npx",
"args": ["-y", "mcp-tap"]
}
}
}
# With uvx (recommended)
claude mcp add mcp-tap -- uvx mcp-tap
# With npx
claude mcp add mcp-tap -- npx -y mcp-tap
Add to .cursor/mcp.json:
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
Or use npx — replace "command": "uvx", "args": ["mcp-tap"] with "command": "npx", "args": ["-y", "mcp-tap"].
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
Or use npx — replace "command": "uvx", "args": ["mcp-tap"] with "command": "npx", "args": ["-y", "mcp-tap"].
| You say | mcp-tap does |
|---|---|
| "Scan my project and recommend MCP servers" | Detects your tech stack, shows what's missing |
| "Find me an MCP for PostgreSQL" | Searches the registry, compares options |
| "Set up the official postgres server" | Installs, configures, validates the connection |
| "Set it up on all my clients" | Configures Claude Desktop, Cursor, and Windsurf at once |
| "What MCP servers do I have?" | Lists all configured servers across clients |
| "Are my MCP servers working?" | Health-checks every server concurrently |
| "Test my postgres connection" | Spawns the server, connects, lists available tools |
| "Remove the slack MCP" | Removes from config cleanly |
| Tool | What it does |
|---|---|
scan_project |
Scans your project directory — detects languages, frameworks, databases, CI/CD pipelines — and recommends MCP servers |
search_servers |
Searches the MCP Registry with semantic intent rerank (intent_match_score), maturity scoring, project relevance ranking, and cache fallback metadata during outages |
configure_server |
Installs a package (npm/pip/docker), runs a security gate, validates the connection, writes config, and supports dry_run preflight (no writes) |
test_connection |
Spawns a server process, connects via MCP protocol, and lists its tools. Auto-heals on failure |
check_health |
Tests all configured servers concurrently, detects tool conflicts between servers |
inspect_server |
Fetches a server's README and extracts configuration hints |
list_installed |
Shows all configured servers with secrets masked (layered detection: key names, prefixes, high-entropy) |
remove_server |
Removes a server from one or all client configs |
verify |
Compares mcp-tap.lock against actual config — detects drift |
restore |
Recreates server configs from a lockfile (like npm ci for MCP) |
apply_stack |
Installs a group of servers from a shareable stack profile |
Plus automatic lockfile management on every configure/remove.
mcp-tap.lock tracks exact versions and hashes of all your MCP servers. Reproducible setups across machineslist_installed never exposes environment variable valuesprecision@k, acceptance_rate) keeps recommendation quality stable in CIrecommendations_shown, accepted/rejected/ignored) with version-segmented quality trendserror monitoring) are reranked by intent match, not only popularityconfigure_server(dry_run=true) validates install/connectivity without writing client configuvx/pipx)Run the recommendation benchmark locally:
uv run python -m mcp_tap.benchmark.recommendation
Dataset: src/mcp_tap/benchmark/recommendation_dataset_v1.json.
Enable telemetry explicitly before collecting production recommendation feedback:
export MCP_TAP_TELEMETRY_OPT_IN=true
export MCP_TAP_TELEMETRY_FILE=.mcp-tap/recommendation_feedback.jsonl
Generate a quality report from collected events:
uv run python -m mcp_tap.benchmark.production_feedback --events .mcp-tap/recommendation_feedback.jsonl --top-k 3
The telemetry payload is privacy-safe by default:
MIT
Run in your terminal:
claude mcp add mcp-tap -- npx Security
Low riskAutomated heuristic from public metadata — not a security guarantee.