Token导航 LogoToken导航TokenDH.com
Agent Discover logo
开发工具stdio官方级别未说明来源级核验

Agent Discover

MCP Server

agent-discover

一个动态代理服务,用于发现、安装、激活和管理MCP工具,支持运行时工具注册与动态加载,无需重启代理会话。

工具数

11

提示词数

0

GitHub Stars

4

资源数

0
代理服务TypeScriptClaude工具管理ClaudeCursorWindsurfCline

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

keshrath

提供方

keshrath

最后核验

2026/5/17 20:20

运行时

Node.js

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

npx agent-discover

详细介绍

代理发现

![License: MIT](LICENSE) ](https://nodejs.org/) ![Tests](<>) ![MCP Tools](<>) ![Registry Actions](<>) ![REST Endpoints](<>)

MCP服务器注册和市场。 按需发现、安装、激活和管理MCP工具。充当动态代理——激活的服务器将其工具合并到注册表自己的工具列表中,因此代理可以在不重新启动的情况下使用它们。

今天的每个MCP客户端——Claude Code、Cursor、Codex CLI、Aider、Continue、普通MCP客户端——都需要重新启动完整的代理会话才能获取新注册的MCP服务器。 工具目录在启动时冻结。代理发现是注册新服务器并使其在同一运行会话中可被发现的唯一路径。这是一个区别于每台主机的因素,即使是那些内置了延迟工具加载器的主机。

搜索范围 MCP官方注册, npm,以及 PyPI 在一个查询中,不在官方索引中的热门服务器(微软 @playwright/mcp, @modelcontextprotocol/server-*, mcp-server-fetch, mcp-server-git,…)都出现了。

专为AI编码代理(Claude Code、Codex CLI、Gemini CLI、Aider)构建,但与任何MCP客户端、REST消费者或WebSocket侦听器同样适用。

______________________________________________________________________

浅色主题深色主题
Light ThemeDark Theme

______________________________________________________________________

为什么

静态MCP配置意味着每台服务器始终在运行,即使在未使用时也是如此。添加新服务器需要编辑配置文件并重新启动。无法在运行时浏览可用内容或安装新工具。

无代理发现有代理发现
发现必须提前知道服务器名称浏览官方MCP注册表,按关键字搜索
安装编辑配置文件,重新启动代理一个工具调用即可安装和注册
激活所有服务器始终运行按需激活/停用,工具实时出现/消失
秘密配置文件或envPer-server秘密存储中的API密钥,激活时自动注入
监控无法查看服务器运行状况运行状况检查、每个工具的指标、错误计数
管理手动配置编辑Dashboard+REST API用于配置,标记

______________________________________________________________________

特性

  • 单调用工具发现(find_tool) --混合BM25+语义排名返回带有置信度标签的顶级匹配,紧凑 required_args,以及4个排名的备选方案。自动激活所属的子服务器,以便代理可以在下一轮立即调用代理工具。取代多步骤 search → list → activate 跳一次往返舞。
  • 批量发现(find_tools) --传递一系列意图,以便在多步骤任务的单次往返中发现N个工具。
  • 间接调用(proxy_call) --调用已发现的工具 通过 代理在不将其暴露给主机目录的情况下进行发现。无论注册的子服务器公开了多少工具,都会使主机MCP表面保持在5个操作,这对于非常大的目录至关重要,因为向主机中注入数千个模式会破坏模型的上下文预算。
  • 可插拔嵌入件(AGENT_DISCOVER_EMBEDDING_PROVIDER) --语义搜索是通过以下方式选择加入的 none (默认值,仅限BM25)/ local (Xenova/全MiniLM-L6-v2通过 @huggingface/transformers) / openai (text-embedding-3-small).提供程序故障可以完全恢复到BM25。镜像代理知识的模式,因此可以重用相同的模型。
  • did_you_mean 恢复 --当代理工具调用失败时,代理会将BM25排名相似的工具建议附加到错误响应中,这样代理就可以在一次额外的循环中进行纠正,而不是放弃。
  • 本地注册表 --在SQLite数据库中注册MCP服务器,包括名称、命令、参数、环境、标签
  • 联合市场搜索 --一个查询同时访问官方MCP注册表、npm和PyPI,通过以下方式进行重复数据消除 :,并折叠版本副本
  • PyPI集成 --精心策划的知名Python MCP服务器列表(mcp-server-fetch, mcp-server-git, mcp-server-time, mcp-server-postgres, mcp-server-sqlite, mcp-proxy,…)加上通过PyPIJSON API的实时元数据;Python条目安装通过 uvx
  • npm回退 --两个并行的npm搜索(keywords:mcp mcp)捕获未标记自己的包(例如Microsoft @playwright/mcp)
  • Prereqs探针 -- GET /api/prereqs 报告哪些包管理器(npx, uvx, docker, uv)在主机上可用;当安装所需的东西丢失时,仪表板会显示一个横幅
  • 跨流程激活 --the active flag是SQLite中的真理之源;每个新代理发现进程在启动时都会从数据库中水合其内存中的代理,因此在一个进程中激活的工具会显示在其他进程中
  • 按需激活 --在运行时激活/停用服务器;他们的工具会动态地出现和消失 tools/list_changed 通知
  • 工具代理 --激活的服务器工具的命名空间为 serverName__toolName 并合并到工具列表中
  • 多运输 --用于连接到子服务器的stdio、SSE和流式http传输
  • 秘密管理 --每个服务器存储API密钥和令牌,在激活时自动注入为env vars(stdio)或HTTP头(SSE/streatable-HTTP);CRLF经过验证,可防止标头注入
  • 健康检查 --连接/断开非活动服务器的探测器,检查活动服务器的工具列表,并跟踪错误计数
  • 每工具指标 --每次代理工具调用时自动记录的调用计数、错误计数和平均延迟
  • 全文搜索 --FTS5跨服务器名称、描述和标签搜索+跨服务器工具索引 find_tool
  • 预下载 --即发即弃 npm cache add (npx服务器)或 uv tool install (uvx服务器)注册,加上专用 /preinstall 端点
  • 实时仪表盘 --web用户界面位于http://localhost:3424具有服务器和浏览选项卡、暗/亮主题、WebSocket更新
  • MCP检查员级测试面板 --每个活动服务器卡都会增长一个包含七个子选项卡(工具/信息/资源/提示/事件/导出/诊断)的测试抽屉。模式驱动的表单呈现器、Pretty/Raw JSON/cURL结果模式、实时通知+进度流、本地存储预设、用于并排调试的弹出浮动面板,以及 Test ad-hoc 按钮,启动一个一次性(从未注册)服务器,TTL为15分钟。覆盖与上游相同的表面 @modelcontextprotocol/inspector 而没有第二进程或第二端口。
  • 3个传输层 --MCP(stdio)、REST API(HTTP)、WebSocket(实时事件)
  • 声明性安装文件 --set AGENT_DISCOVER_SETUP_FILE 到一个列出服务器的JSON文件,以确保在启动时注册。Idempotent(跳过现有)。支持 auto_activate,env-var机密参考($VAR)和标签。也会自动读取 .local.json 变体(例如。 discover-setup.local.json)用于具有机密的机器特定服务器。新 registry({ action: "sync" }) MCP行动和 POST /api/sync 用于按需重新读取的REST端点。
  • 工作台安全带 --under bench/,将急切的工具加载与延迟的发现与真正的OpenCode+gpt-5-mini进行比较。可再现的结构结果:发现的第一圈输入标记在N中是平坦的(N∈{10100100003000}上约20.8k);渴望线性增长(20.9k→ 32.4k → 160.9k → N=3000处的上下文溢出)。端到端精度和多匝成本数字更嘈杂,并且取决于型号——请参见 bench/README.md 什么可以复制,什么不能。

______________________________________________________________________

快速开始

从npm安装

npm install -g agent-discover

或者直接使用npx运行

npx agent-discover

或从源代码克隆

git clone https://github.com/keshrath/agent-discover.git
cd agent-discover
npm install
npm run build

选项1:MCP服务器(用于AI代理)

添加到您的MCP客户端配置(Claude Code、Cline、Cursor、Windsurf等):

{
  "mcpServers": {
    "agent-discover": {
      "command": "npx",
      "args": ["agent-discover"]
    }
  }
}

仪表板自动启动http://localhost:3424在第一个MCP连接上。

选项2:独立服务器(用于REST/WebSocket客户端)

node dist/server.js --port 3424

______________________________________________________________________

MCP工具(1)

一个基于动作的工具通过 action 参数——无论注册了多少子服务器,这都会使提示开销成本最小化。

行动目的
find_tool单次呼叫发现。 混合BM25+语义搜索→ 顶级匹配+信任标签+紧凑型 required_args +4种选择。自动激活所属服务器。
find_tools批量发现。 通过 intents: [...] 在一次往返中发现N个工具。用于多步骤任务。
get_schemainput_schema 对于一个发现的工具。仅在紧凑型时需要 required_args 摘要不够(条件/多态参数)。
proxy_call调用已发现的工具 通过 代理在不将其暴露给主机目录的情况下进行发现。配对 find_tool({auto_activate: false}) 对于巨大的目录。
list按服务器搜索本地注册表(FTS5)。
install从市场或通过手动配置(command+args+env)添加服务器。
uninstall删除服务器。
activate启动服务器,发现其工具,将其作为 serverName__toolName.
deactivate停止服务器,隐藏其工具。
browse跨官方MCP注册表、npm和PyPI的联合搜索。
status活动服务器摘要(名称、工具计数、工具列表)。

激活的服务器通过代理发现公开其工具,命名空间为 serverName__toolName。例如,激活名为的服务器 filesystem 这暴露了 read_file 使其可用 filesystem__read_file.

find_tool 被称为 auto_activate: false (建议使用约1k以上的工具目录),代理连接以静默方式打开,工具必须通过以下方式调用 proxy_call 而不是添加到主机的目录中。无论注册的子服务器暴露了多少工具,这都会使主机MCP表面积保持恒定。

______________________________________________________________________

REST API(33个端点)

所有端点都返回JSON。CORS已启用。

GET    /health                            Version, uptime
GET    /api/prereqs                       Probe host for npx/uvx/docker/uv availability
GET    /api/servers                       List servers (?query=, ?source=, ?installed=)
GET    /api/servers/:id                   Server details + tools
POST   /api/servers                       Register new server
PUT    /api/servers/:id                   Update server config (description, command, args, env, tags)
DELETE /api/servers/:id                   Unregister (deactivates first if active)
POST   /api/servers/:id/activate          Activate -- start server, discover tools, begin proxying
POST   /api/servers/:id/deactivate        Deactivate -- stop server, remove tools
POST   /api/servers/:id/preinstall        Pre-download package (npm cache add for npx, uv tool install for uvx)
GET    /api/servers/:id/secrets           List secrets (masked values)
PUT    /api/servers/:id/secrets/:key      Set a secret (upsert)
DELETE /api/servers/:id/secrets/:key      Delete a secret
POST   /api/servers/:id/health            Run health check (connect/disconnect probe)
GET    /api/servers/:id/metrics           Per-tool metrics for a server (call count, errors, latency)
GET    /api/metrics                       Metrics overview across all servers
GET    /api/browse                        Federated search: official registry + npm + PyPI (?query=, ?limit=, ?cursor=)
GET    /api/npm-check                     Check if an npm package exists (?package=)
GET    /api/status                        Active servers summary (names, tool counts, tool lists)

Tester surface (MCP Inspector parity — localhost-only unless AGENT_DISCOVER_ALLOW_REMOTE_TEST=1):
GET    /api/servers/:id/info               Server name, version, capabilities, instructions
GET    /api/servers/:id/tools               Live tools (bypasses activation cache)
POST   /api/servers/:id/call                Call a tool
GET    /api/servers/:id/resources           List resources (?cursor=...)
GET    /api/servers/:id/resource-templates  List resource templates
POST   /api/servers/:id/resource/read       Read a resource
POST   /api/servers/:id/resource/subscribe  Subscribe to resource updates
POST   /api/servers/:id/resource/unsubscribe  Unsubscribe
GET    /api/servers/:id/prompts             List prompts (?cursor=...)
POST   /api/servers/:id/prompt/get          Get a prompt with args
POST   /api/servers/:id/ping                Ping — returns { ok, rtt_ms }
POST   /api/servers/:id/logging-level       Set server logging level
GET    /api/servers/:id/export              Export config (?format=mcp-json|claude-code|cursor|agent-discover)
POST   /api/transient                        Activate an ad-hoc server (returns { handle, ... })
DELETE /api/transient/:handle                Release transient server
GET    /api/transient/:handle/*              Same tester surface, keyed by handle
GET    /api/roots                            Configured client roots (AGENT_DISCOVER_ROOTS)
GET    /api/logs/notifications               Notification log entries
GET    /api/logs/progress                    Progress log entries

______________________________________________________________________

仪表盘

web仪表板自动启动时间为 http://localhost:3424 并提供了两个视图:

服务器选项卡 --所有注册的服务器都显示为卡片,显示健康点、错误计数、活动/非活动状态、描述、标签、工具列表和可扩展的秘密/指标/配置部分。用于激活、停用、健康检查和删除的操作按钮。

浏览选项卡 --跨官方MCP注册表、npm和PyPI的联合搜索。每张卡都显示运行时标签(node, python, streamable-http,…)、版本、描述和一个选择正确命令的安装按钮(npx, uvx,或远程URL)。当所需的包管理器出现时,选项卡顶部的prereq横幅会发出警告(npx, uvx, docker)主机上缺少。

通过WebSocket进行2秒数据库轮询的实时更新。具有持久偏好的深色和浅色主题。

______________________________________________________________________

测试

npm test              # 179 tests across 12 files
npm run test:watch    # Watch mode
npm run test:coverage # Coverage report
npm run check         # Full CI: typecheck + lint + format + test
npm run test:e2e:ui   # Playwright dashboard smoke tests

______________________________________________________________________

环境变量

核心

变量默认值描述
AGENT_DISCOVER_PORT3424仪表板HTTP端口
AGENT_DISCOVER_DB~/.claude/agent-discover.dbSQLite数据库路径
AGENT_DISCOVER_ROOTS--向子服务器通告逗号分隔的根URI(例如。 file:///Users/me/repo,file:///Users/me/data)
AGENT_DISCOVER_ALLOW_REMOTE_TEST0设置为 1 以允许来自非环回源的测试面板端点。 不推荐 --请参阅安全。

嵌入(语义搜索 find_tool)

嵌入是 选择加入。默认值为 none,这意味着 find_tool 仅按BM25+动词同义词排名。设置提供者可以实现混合BM25+余弦检索,从而缩小自然语言差距(例如“计费安排”→ 仅BM25就错过了“订阅”。

变量默认值描述
AGENT_DISCOVER_EMBEDDING_PROVIDERnonenonelocalopenai
AGENT_DISCOVER_EMBEDDING_MODEL--覆盖所选提供程序的默认模型id
AGENT_DISCOVER_EMBEDDING_THREADS1仅限本地提供程序--onnx运行时线程数
AGENT_DISCOVER_EMBEDDING_IDLE_TIMEOUT60仅限本地提供程序--从RAM卸载模型前几秒
AGENT_DISCOVER_OPENAI_API_KEY-用于嵌入的OpenAI API密钥(返回到 OPENAI_API_KEY 如果未设置)

本地供应商 用途 Xenova/all-MiniLM-L6-v2 (384调暗)通过 @huggingface/transformers。使用安装可选的对等依赖关系 npm install @huggingface/transformers 如果你想使用它。没有网络调用,没有API密钥。

OpenAI提供商 用途 text-embedding-3-small (1536调暗)。与代理知识模型相同,因此两台服务器可以共享一个嵌入密钥。

主机包管理器先决条件

代理发现通过主机安装的包管理器生成子MCP服务器。安装你打算使用的任何东西;丢失的工具由以下人员报告 GET /api/prereqs 并在“浏览”选项卡中显示为横幅。

工具用于安装提示
npxnpm发布的MCP服务器随附
uvxPyPI发布的MCP服务器安装 紫外线
dockerDocker镜像MCP服务器(罕见)安装 码头工人

______________________________________________________________________

文档

  • 用户手册 --全面的指南,涵盖所有工具、REST API、仪表板和故障排除
  • API 参考 --所有MCP工具和REST端点
  • 建筑 --源代码结构、设计原则、数据库模式
  • 仪表盘 --web UI视图和功能
  • 安装指南 --安装、客户端设置(Claude Code、Cursor、Windsurf)
  • 更新日志

______________________________________________________________________

许可证

麻省理工学院——见 许可证

目录标签

目录标签

代理服务TypeScriptClaude工具管理MCP工具本地部署动态加载AI编程工具

支持客户端

ClaudeCursorWindsurfCline

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Node.js

来源包(packageName,安装包名)

agent-discover

工具数量(toolCount,工具数)

11

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP