mcp-discovery
GitHub在会话缺失能力且本地工具无法解决时,通过 MCP Registry 搜索、安装并启动外部 stdio 服务器以扩展功能。作为最后手段的 fallback 机制,用于获取数据库、API 或协议客户端等外部服务支持。
Trigger Scenarios
Install
npx skills add Hmbown/Codewhale --skill mcp-discovery -g -y
SKILL.md
Frontmatter
{
"name": "mcp-discovery",
"description": "Find and start a zero-environment local MCP server when the session lacks a capability that no available tool, project script, or ordinary local code can cover."
}
mcp-discovery
The public MCP Registry ships hundreds of ready-made stdio servers (filesystems, databases, browsers, media processing, developer utilities, cloud APIs, SaaS integrations, …). This skill is how you reach one when the session is genuinely missing a capability.
It is a fallback, not a first step. Discovery costs a tool_search to load the
deferred tools, a query, an approval, and an install — spend that only when it
buys a capability you do not have.
When to use
- An available tool, a project script or test, or a few lines of local code cannot do the job.
- The task needs an external service, database, or protocol client that this session has no access to.
- You would otherwise install a package or reimplement a well-known converter or client by hand.
When not to use
- Ordinary work: writing and editing files, reading fixtures, running repo commands, and checking your own output. Do those directly.
- A capability an already-loaded tool covers, even partially — try it first.
- A near-miss row in a result list. A scored match is a suggestion; the missing capability is what decides.
Workflow
- Name the gap. State the capability you lack before searching. If you cannot name one, you do not need the Registry.
- Load and query.
registry_syncandstart_registry_mcp_serverare deferred: load one withtool_searchand use the returned schema. If a call only loads the schema without executing, retry once with that schema. Then callregistry_sync {query: "<the missing capability>"}. It scores a host-side snapshot and returns at most eight matches; the full index never enters the conversation. Packages declaring any environment variable (including API keys/tokens) are excluded and never written to the cache. - Judge the matches. Take a server when it covers the gap you named. If nothing does, refine the query once, then continue with local tools.
- Install + run transactionally. Call
start_registry_mcp_server {registry_name: "<exact name>", arguments: {...}}. Supply only values listed inrequired_args; omitargumentswhen none are required. Never install or launch the package through the shell. Starting a server requires approval. - Solve the task with the new tools. Their complete schemas are added to the current turn immediately after a successful connection; call the exact names returned by the start result.
If a server fails to start
start_registry_mcp_server reports when a package exits before the handshake
(often CLI help output = incomplete launch args). Verify the exact required
arguments, retry once with the corrected structured values, and if it still
fails move on to the next candidate or to a local approach. Failed starts are
rolled back, so retrying the same Registry name is safe.
Don't
- Don't attempt to pass env vars or secrets; this flow has no env channel.
- Don't reconstruct or edit the Registry-provided package command.
Version History
-
6e005de
Current 2026-09-22 09:59
修复了提供商偏好设置和审批协调的稳定性问题,优化了工具注册表查找为可选回退,并增强了运行时标识和诊断功能。
- 0fe366b 2026-08-16 09:03


