Discover and install MCP servers by capability from your LLM client.
Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β or use 1-click editor setup below.
We haven't yet run this listing's install command through our automated sandbox check. This isn't a red flag β we're steadily working through the catalog.
π‘ Paste the JSON block into your client's configuration file under mcpServers, then restart the application.
Inspect callable tools, capabilities, and parameters exposed to AI agents by MCPfinder.
search_mcp_serversSearch by keyword, technology, or use case
get_server_detailsInspect metadata, trust signals, tools, warnings, env vars
get_install_configGenerate a JSON config snippet for a target client
browse_categoriesSingle-call category browser (omit `category` to list; pass `category` for top servers)
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/serverSupported 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):
VS Code (project-scoped):
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:
io.github.<owner>/<repo> β <owner>/<repo>, ai.smithery/<slug> β
<slug>). That leading segment is a reverse-DNS namespace assigned by the
Official registry to say where the server's code is hosted β io.github.*
servers all come from Official, not from some "GitHub" registry β and it says
nothing about what the server does. 19.6% of the catalog is named
io.github.%, so scoring it turned the boost into a constant and buried every
real match. The owner segment stays, so searching by owner still works. There
is no way to search by the hosting namespace: registrySource filters on
the registries an entry was found in (official/glama/smithery), which is
a different thing.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. Normal startup therefore does not wait for all live registry budgets. The sequential Official β Glama β Smithery cold crawl is a fallback for an empty DB only when snapshot bootstrap is disabled or fails, preserving deterministic cross-registry deduplication.
The download runs in the background: the MCP server answers initialize
immediately, tool calls arriving before the catalog exists β during the download
and during the handle switch alike β get a "still preparing" notice with progress
(status: "preparing", distinct from a not-found result), and the verified file
is switched in without a restart. A
freshly installed snapshot counts as a fresh sync, so it does not immediately
trigger the live crawl it was meant to replace.
Each snapshot is stored as its own immutable file, data-<sha16>.db, selected
by a pointer at data.db.snapshot.json. Nothing is replaced in place, so the
several MCP clients that each run their own mcpfinder process against
~/.mcpfinder never pull a database out from under one another; superseded
files are swept only after MCPFINDER_SNAPSHOT_RETAIN_HOURS (default 48) of
being un-pointed-to and untouched, and the sweep unlinks the database file
alone β never its -wal/-shm, which a peer that still has the file open looks
up by name. That rule is unconditional: an orphaned journal, one whose database
is already gone, is left alone too, because nothing distinguishes it from the
journal of a peer that outlived its own file, and deleting the latter is
corruption. What keeps the residue small is that every successful sync ends with
PRAGMA wal_checkpoint(TRUNCATE); the 40MB -wal measured beside a 323MB
database came from a single-transaction crawl whose journal was never trimmed at
all. What is left is a bounded leak after processes killed with SIGKILL β how
MCP clients usually stop stdio servers. Two limits follow: a removal is allowed
to fail β on the platforms and filesystems where an open file's name cannot be
taken away, stale snapshots stay until nothing holds them β and a journal can
outlive the database it belonged to. The install is re-checked daily: one
manifest request when nothing changed, plus a request for the DB when the
manifest advertises a newer digest β conditional (ETag) on the gzip endpoint,
unconditional on the brotli one, which is content-addressed by its own digest
and for which no ETag is ever recorded.
/api/v1/snapshot/manifest.jsonmanifest.url (data.sqlite.gz?sha=<sha256>) as the content-addressed primary endpointmanifest.brotli.url (data.sqlite.br?sha=<brotli sha256>)/api/v1/snapshot/data.sqlite.gz, refreshed only after manifest publication.github/workflows/snapshot.yml.github/workflows/snapshot-staleness.ymlEvery build publishes the same SQLite file twice β gzip always, brotli when
that half of the pipeline succeeds (see the publication section below). Brotli
(quality 9, 16MB window) is about 21% smaller: measured at 36.8MB against
46.7MB gzip for the 238MB / 84,647-server database published on 2026-08-26.
Both figures scale with the corpus, so treat the manifest's sizeBytes and
brotli.sizeBytes as the live numbers rather than these. Compressing the
second artifact costs well under a minute of build time inside a 90-minute job,
and decompression is a fraction of a second. zstd compresses a further ~2MB but
needs Node 22.15+/23.8+. The 22.x floor now clears that bar, but Node 23.0-23.7
does not, so a third artifact would still have to carry a fallback for the gain
to be safe β not worth it while brotli already does the work.
Factual signals from GitHub, npm, and our automated checks β not a rating.
No reviews yet β be the first to share how this listing worked for you.
Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.
[](https://allmcps.com/mcp/mcpfinder)<a href="https://allmcps.com/mcp/mcpfinder"><img src="https://allmcps.com/api/badge/mcpfinder?style=directory" alt="MCPfinder on AllMCPs" /></a>