The last MCP server you install by hand. Discover, install, and configure MCP servers from inside your AI assistant.
Project description
mcp-tap
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.
Before mcp-tap
- Google "MCP server for postgres"
- Find 4 competing packages, compare stars and last commit dates
- Pick one, read the README
- Figure out the right
command,args, andenvvalues - Manually edit
claude_desktop_config.json(ormcp.json, ormcp_config.json...) - Realize you need a
POSTGRES_CONNECTION_STRINGenvironment variable - Find your connection string, add it to the config, restart the client
- Get "connection refused", debug for 20 minutes
- Finally works. Repeat for every server. Repeat for every client.
After mcp-tap
You: "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.
Install
You install mcp-tap once. It installs everything else.
Claude Desktop
Add to your claude_desktop_config.json:
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
Claude Code
claude mcp add mcp-tap -- uvx mcp-tap
Cursor
Add to .cursor/mcp.json:
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
Windsurf
Add to ~/.codeium/windsurf/mcp_config.json:
{
"mcpServers": {
"mcp-tap": {
"command": "uvx",
"args": ["mcp-tap"]
}
}
}
What can it do?
| 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 |
Tools
| Tool | What it does |
|---|---|
scan_project |
Scans your project directory, detects languages/frameworks/databases, recommends MCP servers |
search_servers |
Searches the MCP Registry by keyword, optionally ranked by project relevance |
configure_server |
Installs a package (npm/pip/docker) and writes config to one or all clients |
test_connection |
Spawns a server process, connects via MCP, and lists its tools |
check_health |
Tests all configured servers concurrently, reports healthy/unhealthy/timeout |
list_installed |
Shows all configured servers with their commands and environment variables (secrets masked) |
remove_server |
Removes a server from one or all client configs |
Features
- Project-aware: Scans your codebase to recommend servers based on your actual stack
- Multi-client: Configure Claude Desktop, Claude Code, Cursor, and Windsurf — all at once or individually
- Project-scoped configs: Use
scope="project"to write.mcp.jsonfor team-shared setups - Connection validation: Every install is verified with a real MCP connection test
- Health monitoring: Check all your servers in one command
- Secrets masked:
list_installednever exposes environment variable values
Requirements
- Python 3.11+
uv(recommended) orpip
License
MIT
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file mcp_tap-0.2.3.tar.gz.
File metadata
- Download URL: mcp_tap-0.2.3.tar.gz
- Upload date:
- Size: 217.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c632a1e633960f6e307835042c0267b3313c0632a1ebbe5c1ab28f19da96e2f0
|
|
| MD5 |
bd2703e92c79f29ddf35d1e2ae838268
|
|
| BLAKE2b-256 |
8d9cef39f44a6f00e7cea0d1c0ccc32b0ce30c0d51a1f6237fae42c337a1a33f
|
File details
Details for the file mcp_tap-0.2.3-py3-none-any.whl.
File metadata
- Download URL: mcp_tap-0.2.3-py3-none-any.whl
- Upload date:
- Size: 62.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: uv/0.10.4 {"installer":{"name":"uv","version":"0.10.4","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5d21152f2c1d9ae8f585f5d5f630f1f65361a9c76ca50111562cd67fe8f52cb3
|
|
| MD5 |
510471215589ca38bfd384287ef17b48
|
|
| BLAKE2b-256 |
eef975dcff0d34c97df1d61afae37ddcc5d8188b0eba5f6f15105f5261549503
|