Think of this as the MCP server that helps your AI find other MCP servers. It searches across the Official Registry, Glama, and Smithery registries in one shot, returns trust signals and popularity metrics, then generates the exact JSON config snippet you need for Claude Desktop, Cursor, or whatever client you're running. Four tools: search by keyword, inspect details and warnings, browse by category, get install config. Install it once with npx and your assistant can bootstrap its own capabilities on demand. The server works entirely offline after first sync using a prebuilt SQLite snapshot, so discovery stays fast even when you're rate limited elsewhere.
The MCP server that helps AI agents discover, evaluate, and install other MCP servers.
MCPfinder is an AI-first discovery layer over the Official MCP Registry, Glama, and Smithery. Install it once, and your assistant can search for missing capabilities, inspect trust signals, review required secrets, and generate client-specific MCP config snippets.
stdio via npx -y @mcpfinder/server@mcpfinder/serverdev.mcpfinder/server{
"mcpServers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
{
"mcpServers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
{
"mcpServers": {
"mcpfinder": {
"command": "npx",
"args": ["-y", "@mcpfinder/server"]
}
}
}
Supported install targets today:
If your agent supports the Agent Skills format (Claude Code, GitHub Copilot in VS Code, OpenAI Codex, and others), you can drop a one-line install and let the agent handle the config merge itself.
Claude Code (global):
mkdir -p ~/.claude/skills/install-mcpfinder && \
curl -sSf -o ~/.claude/skills/install-mcpfinder/SKILL.md \
https://mcpfinder.dev/skill/install-mcpfinder/SKILL.md
VS Code (project-scoped):
mkdir -p .agents/skills/install-mcpfinder && \
curl -sSf -o .agents/skills/install-mcpfinder/SKILL.md \
https://mcpfinder.dev/skill/install-mcpfinder/SKILL.md
Then tell your agent any of: "install MCPfinder", "connect my AI to Postgres", "I need a tool for [anything]" — the skill activates, detects your client, merges the config without clobbering, and tells you what to restart.
Use MCPfinder when the user needs a capability you do not already have.
search_mcp_servers.get_server_details.get_install_config.browse_categories (omit category to list; pass category for top servers).Preferred workflow:
search_mcp_servers(query="postgres")get_server_details(name="...best candidate...")get_install_config(name="...best candidate...", platform="claude-desktop")| Tool | Purpose | When to call |
|---|---|---|
search_mcp_servers | Search by keyword, technology, or use case | First step when a capability is missing |
get_server_details | Inspect metadata, trust signals, tools, warnings, env vars | Before recommending or installing |
get_install_config | Generate a JSON config snippet for a target client | After selecting a server |
browse_categories | Single-call category browser (omit category to list; pass category for top servers) | Domain-driven discovery |
MCPfinder is intentionally optimized for agent consumption.
Search ranking uses:
useCount)Each result is also annotated with:
confidenceScorerecommendationReasonwarningFlagsupdatedAtsourceCountMCPfinder aggregates:
Counts vary over time and differ depending on whether you count raw upstream records or merged/deduplicated entries. Snapshot metadata is the source of truth for the currently published local bootstrap dataset.
First run can bootstrap from a prebuilt SQLite snapshot instead of doing a slow live sync.
/api/v1/snapshot/manifest.json/api/v1/snapshot/data.sqlite.gz.github/workflows/snapshot.ymlUser request:
I need my assistant to read data from PostgreSQL.
Agent workflow:
search_mcp_servers(query="postgres")
get_server_details(name="io.example/postgres")
get_install_config(name="io.example/postgres", platform="cursor")
Agent response:
I found a PostgreSQL MCP server with official registry presence and recent metadata.
It requires DATABASE_URL and runs via npx.
Add this JSON to ~/.cursor/mcp.json, then reload Cursor.
mcpfinder/
├── packages/
│ ├── core/ # sync, SQLite search, trust signals, install-config generation
│ └── mcp-server/ # stdio MCP server
├── landing/ # static website and AI-facing public files
├── api-worker/ # snapshot/support worker for published bootstrap artifacts
└── scripts/ # snapshot builder and other support scripts
pnpm install
pnpm --filter @mcpfinder/core build
pnpm --filter @mcpfinder/server build
node packages/mcp-server/dist/index.js
stdio server is the canonical interface. Install via npx -y @mcpfinder/server.mcpfinder.dev/mcp. The api-worker package is reserved for snapshot support and will only be promoted to a canonical HTTP transport once it exposes the same tool contract as the stdio server.These items are planned but not yet implemented. Informed largely by feedback from AI agents consuming the tool surface.
toolsExposed[*].description (where upstream exposes
it) into a lightweight embedding column, expose a semanticQuery parameter
alongside the existing keyword query, and rank hybrid.mcpfinder.dev/mcp. Today only stdio is
canonical. Serverless AI agents (Workers, Lambda, browser) can't spawn a
subprocess; giving them an HTTP transport with the same 4-tool contract
removes an entire class of blocker. Plan: port the MCP SDK streamable-http
transport into api-worker/, re-use the same snapshot-backed database via
R2 + Durable Objects, gate with a lightweight rate limit.capabilityCount is
currently 0 for most Official/Smithery rows because those upstreams don't
publish tool manifests in list responses. Plan: during the snapshot build,
probe the downstream server's README or, for npm packages, parse the tarball's
package.json for an mcp.tools hint; surface per-row confidence in the
extracted list.docs/publish-playbook.md) is manual and consumes a fresh OTP per package.
Plan: move to GitHub Actions with NPM automation tokens and a committed
mcp-publisher login step triggered on v* tags.dev.mcpfinder/serverBuilt by Coder AI under AGPL-3.0-or-later.