mcpField
M
MCPfinder - MCP Server Discovery

MCPfinder - MCP Server Discovery

本地服务
mcpfinder.dev搜索与检索134 天前更新

关于 MCPfinder - MCP Server Discovery

MCPfinder 是本地 MCP 服务,为 AI 客户端提供 MCP 服务目录搜索、详情查看和安装配置生成。它索引 Official MCP Registry 与 Glama,并通过快照启动和定期更新目录。

主要功能

  1. 01跨目录搜索 MCP 服务
  2. 02查看信任信号与安装信息
  3. 03生成客户端安装配置
  4. 04按类别浏览服务

适用场景

  1. 01按关键词查找可用 MCP 服务
  2. 02安装前检查服务信息与警告
  3. 03生成客户端可用的配置片段

MCP 相关

它向 MCP 客户端提供搜索、详情、安装配置和分类浏览工具,帮助 Agent 发现并配置其他 MCP 服务。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"dev-mcpfinder-server": {
"command": "npx",
"args": [
"-y",
"@mcpfinder/server"
]
}
}
}
启动命令npx -y @mcpfinder/server

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
npm@mcpfinder/server1.5.0

工具

4

收录的工具列表 · 更新于 2 周前

参数类型必填说明
limitnumber否返回的最大结果数(默认值:10,最大值:50)
querystring否搜索查询——关键词(例如,"filesystem")、用例("query databases")或技术("postgres")。支持常见别名:"gh" → github,"pg" → postgres,"k8s" → kubernetes,"db" → database。留空可查看最热门的服务。
registryTypeenum否按包注册表类型筛选npm | pypi | oci | any
transportTypeenum否按传输类型筛选stdio | streamable-http | sse | any
registrySourceenum否按注册表来源筛选official | glama | smithery | any

详细介绍

@mcpfinder/server

用于查找 MCP 服务的 MCP 服务。AI 的工具应用商店。

npm license MCP Registry

MCPfinder 是一个本地 MCP 服务,可提供可搜索的索引,涵盖 Official MCP Registry 和 Glama 中的 MCP 服务。 只需将它作为一项功能安装到 AI 客户端中,之后助手就能按需发现、检查和安装任何 MCP 服务,无需手动浏览。

快速安装

将以下代码片段添加到客户端的 MCP 配置文件中。首次运行时会从 https://mcpfinder.dev/api/v1/snapshot 下载预构建的压缩快照,因此通常只需下载一次,无需进行耗时 10 分钟的实时同步。服务优先使用 brotli 文件(比 gzip 文件小约 21%);如果无法获取、解压或验证该文件,则会回退到 gzip,此时会下载两次。因此,仅 brotli 下载失败不会导致初始化失败;如果两个文件都下载失败,则下载失败,服务会回退到实时同步,而不会就此停止。设置 MCPFINDER_SNAPSHOT_NO_BROTLI=1 可强制使用 gzip。两种文件的大小都随索引语料库的变化而变化,并会随语料库增长;当前大小可在快照清单的 sizeBytes 和 brotli.sizeBytes 字段中查看:https://mcpfinder.dev/api/v1/snapshot/manifest.json。

下载不会阻塞启动:服务会立即响应 initialize,并在后台获取快照,因此客户端握手超时不会在下载中途终止服务。如果目录仍为空时(快照正在下载期间,以及安装快照时切换句柄期间)收到工具调用,服务会返回包含进度的简短“仍在准备中”提示,而不会一直等待或回答“未找到”。该响应会报告 status: "preparing" 和 retry_after_seconds,绝不会报告 found: false,因此结构化输出的使用方不会把“尚未就绪”误认为“不存在”。文件下载完成后会进行验证(sha256),并在无需重启的情况下切换启用。任何时刻发生的网络故障都会被记录,服务会降级为实时同步,不会因此停止。

多个客户端,共用一个数据目录

Claude Desktop、Cursor 和 Claude Code 各自会针对 ~/.mcpfinder 启动自己的 mcpfinder 进程,因此不会有任何文件被原地替换。每个快照都是独立的不可变文件 data-<sha16>.db,并由一个指针(<data-dir>/data.db.snapshot.json)记录当前文件;进程只会新增文件,而使用旧文件提供服务的同伴进程不会受到影响。 保留策略之后会删除已被取代的数据库文件,而且很长一段时间内只删除该文件:在 POSIX 上,仍打开该文件的同伴进程会继续通过其 inode 正常运行,而其 -wal/-shm 文件——真正会因丢失而导致损坏的部分——会保留下来。即使数据库已被删除,这条规则也仍然适用:孤立的日志文件与仍在运行的同伴进程需要的日志文件无法区分,因此永远不会被回收。 这些文件并非没有成本——一次抓取会作为一个事务提交,一次实测安装中,323MB 的数据库旁有一个 40MB 的 -wal 和一个 1MB 的 -shm——但服务会在每次成功同步后精简 WAL,并妥善关闭已退役的句柄,因此日志不会再一直膨胀到整个抓取的大小。关闭失败时会重试——先快速重试三次,然后通过一个不引用事件循环的计时器每分钟重试一次,且无限持续——而不是放弃:stdio 服务的生命周期与启动它的客户端相同,因此放弃关闭会让文件描述符和 WAL 锁在已被取代的文件上滞留数天。 SIGKILL 是 MCP 客户端通常停止 stdio 服务的方式,无法拦截,因此自上次检查点以来累积的内容会造成已知的泄漏。请参阅 @mcpfinder/core,了解随之而来的两种情况:删除操作可能失败,因此只要无法移除打开文件的名称,过时快照就会滞留;附属文件也可能比其所属的数据库存活更久。 在进程内部,切换时会先打开新文件,再退役旧句柄,因此始终有可用的数据库,且任何工具调用都不会等待切换完成。早期版本安装的实例会继续使用现有的 data.db 运行——它永远不会被重命名或删除——直到第一个较新的快照为指针提供一个带版本号的文件,供其切换使用。

只有在已不再被指针指向,且在 MCPFINDER_SNAPSHOT_RETAIN_HOURS(默认值为 48)指定的时长内未被触碰的文件,才会被回收;无论当前文件的年龄多大,都不会将其删除。这里有意做出的权衡是:如果一个进程切换到较新的快照时,另一个进程正处于实时同步过程中,那么后者也切换时,其同步结果就会丢弃。已发布的快照是目录的唯一事实来源,因此最多只会因此多进行一次后续重新同步。 此后,每天会重新检查已安装的快照(每个周期会轮询四次陈旧阈值,因此即使检查略微提前,也不会将刷新推迟到下一个周期)。检查后若未发现更新,只需发送一个清单请求。若清单公布了不同的摘要值,则会接着请求数据库:对于 gzip 端点,请求是有条件的(使用指针记录的 ETag 发送 If-None-Match——但前提是该 ETag 对应的文件仍在磁盘上,因为修复时重新验证会得到 304 响应,无法安装任何内容);请求可能传输文件,也可能得到 304 响应。对于 brotli 端点,请求是无条件的,因为该制品由自身的摘要值寻址,且不会存储 brotli ETag。brotli 尝试失败时,会额外请求一次 gzip 制品。清单请求始终是无条件的。删除指针会额外产生一次下载,并使进程恢复使用 data.db 这一名义名称——这是安全的:如果该名称对应的文件已被清理,且该名称下只剩同级数据库的日志,resolveCurrentDbPath 会打开一个变体名称,而不会采用被遗留的日志。

需要实时刷新时,注册表会按 Official → Glama 的顺序依次运行,这样后续的去重索引就能看到前面插入的内容。某个来源失败时会报告错误,但不会阻止对其余来源的尝试。

正常的冷启动会使用快照,不会承担实时注册表预算的总和。只有在明确禁用了快照引导,或从空数据库启动时引导失败,才会出现顺序执行的最坏情况;保留该顺序是为了确保跨注册表去重结果确定。

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json(macOS) 或 %APPDATA%\Claude\claude_desktop_config.json(Windows):

{
  "mcpServers": {
    "mcpfinder": {
      "command": "npx",
      "args": ["-y", "@mcpfinder/server"]
    }
  }
}

重启 Claude Desktop。

Cursor

.cursor/mcp.json(项目级)或 ~/.cursor/mcp.json(全局):

{
  "mcpServers": {
    "mcpfinder": {
      "command": "npx",
      "args": ["-y", "@mcpfinder/server"]
    }
  }
}
Claude Code

.mcp.json(项目级)或 ~/.claude.json(全局)——使用与上方相同的代码片段。

Cline / Roo Code(VS Code)

.vscode/mcp.json:

{
  "servers": {
    "mcpfinder": {
      "command": "npx",
      "args": ["-y", "@mcpfinder/server"]
    }
  }
}
Windsurf

~/.codeium/windsurf/mcp_config.json——使用与 Cursor 相同的代码片段。

提供的工具

四个规范工具,针对 AI 消费进行了优化(提供类型化的 outputSchema 和 structuredContent 以支持链式调用、警告标记以及置信度细分):

工具用途
search_mcp_servers按关键词、技术或使用场景进行排序的全文搜索。
get_server_details安装前查看信任信号、环境变量、工具清单和警告。
get_install_config为 Claude Desktop、Cursor、Claude Code、Cline 或 Windsurf 提供可直接粘贴的 JSON 配置。
browse_categories单次调用即可浏览类别(省略 category 可列出类别;传入 category 可查看热门服务)。

MCPfinder 会向你的 AI 返回什么

  • 按 confidenceScore 排序的结果,以及透明的 confidenceBreakdown(base、official、verified、popularity、 multiSource、penalties)。自 2.0.0 起,verified 和 popularity 始终为 0(详情中的 useCount/verified 也分别为 0/false):Smithery 是这两项数据的唯一来源,现已停止同步 — 参见 更新日志。
  • warningFlags:deprecated-npm、archived-repo、stale-over-18-months、 single-source-only、missing-repository-url、install-method-unclear。
  • 安装元数据:各操作系统对应的目标文件路径、必需的环境变量(标记机密信息)以及 safe_to_autoinstall 和 requires_user_secrets 信号。
  • 生成的配置中的 env 块只包含值,不包含说明文字:机密信息使用 <YOUR_VALUE>,其他变量依次使用注册表发布的 default、 placeholder,最后使用 <VALUE>。说明会保留在代码片段下方的“必需环境变量”部分。
  • 注册表中的 isSecret 标记只可能存在或不存在;不存在表示未标注,并不表示非机密。名称看起来像凭据(GITHUB_TOKEN、OPENAI_API_KEY 等)的未标注变量会在环境变量列表中附带提示(“看起来像凭据(注册表未标记为机密);请按机密信息处理”),并列入 get_install_config 的 possible_unlabeled_secrets。这仅为提示:其配置值仍与任何未标记变量完全相同(注册表的 default,然后是 placeholder,最后是 <VALUE>);启发式判断不会更改该值,而 requires_user_secrets 仍只表示注册表中的含义。

2.0.1:目录页面链接不是远程端点

Glama 为每个服务发布一个目录页面(https://glama.ai/mcp/servers/<id>), 而不是 MCP 端点。自 2.0.1 起,该页面会显示为服务的目录页, 仅在 Glama 中收录的服务不再标记为远程服务;如果某个服务既没有软件包也没有远程端点, get_install_config 会回答“未找到已知安装方式”(并附上仓库和目录页链接)。发布的目录中, 当两个 Official Registry 条目列出相同端点时,只保留一个条目。

升级到 2.0.0

2.0.0 移除了 Smithery 这一数据来源:其注册表 API、代理和托管服务 URL 将于 2026-10-31 停止工作(https://smithery.ai/future)。现在的实时同步只调用 Official MCP Registry 和 Glama, registrySource: "smithery" 已移除;不再提供已退役 Smithery 主机上的远程 URL;首次打开时, 会清理 1.x 本地目录(移除仅来自 Smithery 的服务,清除 Smithery URL 和人气度/已验证值)。 详情请参见更新日志。

配置

环境变量默认值作用
MCPFINDER_DATA_DIR~/.mcpfinder/本地 SQLite 数据库的存放位置。
MCPFINDER_DISABLE_SNAPSHOT未设置设为 1 可跳过快照引导,改为实时同步。
MCPFINDER_SNAPSHOT_NO_BROTLI未设置设为 1 可忽略清单中的 brotli 文件,始终下载 gzip 文件。
MCPFINDER_SNAPSHOT_BASEhttps://mcpfinder.dev/api/v1/snapshot为镜像站点或测试覆盖快照主机。
MCPFINDER_SNAPSHOT_REFRESH_HOURS24已安装快照在根据清单重新检查前可保持的最长时间。0 仅会停用定期重新检查——尚无快照的安装始终会进行引导。
MCPFINDER_SNAPSHOT_RETAIN_HOURS48被取代的快照文件删除前的宽限期。如果长期运行 mcpfinder 进程,请调高此值。
MCPFINDER_SNAPSHOT_DOWNLOAD_STALE_HOURS6被放弃的部分下载删除前的宽限期。
MCPFINDER_SNAPSHOT_MANIFEST_TIMEOUT_MS10000小型清单请求的超时时间。
MCPFINDER_SNAPSHOT_STALL_TIMEOUT_MS60000数据库下载的非活动时限——只有在此期间未收到任何字节后才会中止,因此不会中断速度较慢但运行正常的连接。
MCPFINDER_SNAPSHOT_FRESH_MINUTES360新安装的快照可被视为新鲜同步的时长,之后将恢复实时注册表刷新。
GLAMA_API_KEY未设置Glama 注册表的 API 密钥(创建密钥)。未设置时,实时刷新会完全跳过 Glama——同步仅包含 Official,并将 Glama 记录为 skipped。已发布的快照始终包含 Glama 数据:发布时要求涵盖每个注册表,因此无法同步 Glama 的构建不会发布任何内容,客户端会保留上一个完整快照(请查看清单中的 publishedAt 和 counts)。

Glama 的 API 数据许可要求,在每个展示通过其 API 获取的数据的页面上显著标注 Glama 归属信息 (https://glama.ai/policies/terms-of-service)——任何呈现 sources 包含 glama 的服务端的界面都必须标注该信息。

链接

许可证

AGPL-3.0-or-later — 可免费用于个人、内部和商业用途;作为网络服务提供的修改版本必须以相同许可证发布。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。