渐进式MCP工具发现系统

一个基于文件系统的渐进式MCP工具发现系统,可按需加载工具而非一次性加载全部,适用于浏览器自动化和开发效率提升。

  • by lnoir
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 lnoir/mcp-catalogue

使用说明

渐进式MCP工具发现

基于文件系统的渐进式发现系统,用于模型上下文协议(MCP)工具。按需加载工具,而不是一次全部加载。

快速开始

  • 发现CLI -无需加载所有内容即可探索服务器和工具
  • 会话管理器 -为浏览器、数据库等运行持久化MCP服务器。
  • 添加服务器 -使用新的MCP服务器扩展目录

安装

依赖项应该已经安装。如果需要:

cd ~/.mcp-catalogue
pnpm install

需求:Node.js 20+(许多MCP服务器需要现代Node功能)

使用示例

发现工具

# List all servers
pnpm run discover

# List tools in a server
pnpm run discover -- list chrome-devtools

# Get tool details
pnpm run discover -- info chrome-devtools navigate-page

使用会话

# Start a browser session
pnpm run session -- start chrome-devtools

# Navigate and screenshot
pnpm run session -- call chrome-devtools navigate_page '{"type":"url","url":"https://example.com"}'
pnpm run session -- call chrome-devtools take_screenshot '{}'

# Stop when done
pnpm run session -- stop chrome-devtools

建筑

~/.mcp-catalogue/
├── servers.json          # Server configurations
├── index.ts              # CLI entry point
├── session-manager.ts    # Persistent sessions
├── mcp-client.ts         # MCP client wrapper
├── docs/                 # Documentation
│   ├── discovery.md
│   ├── sessions.md
│   └── adding-servers.md
└── servers/              # Server implementations
    ├── coretx/
    │   ├── coretx_get_ai_notes.ts
    │   ├── coretx_create_session.ts
    │   └── index.ts
    └── chrome-devtools/
        ├── navigate-page.ts
        ├── take-screenshot.ts
        └── index.ts

每个工具文件都在其旁边记录了自己的输入/输出接口 callMCPTool() 包装器,保存发现元数据、验证说明和类型 共同定位。为了避免重复的类型名称通过桶泄漏,请重新导出 只有可调用包装器(例如。, export { createSession } from './coretx_create_session.js') 并将接口保存在其文件的本地。

可用服务器

跑 pnpm run discover 查看所有已配置的服务器及其工具计数。可用性取决于您的 servers.json 配置。

运作原理

  1. 渐进式发现:工具按文件组织,但并非全部加载到内存中
  2. 按需加载:仅在需要时导入所需的工具
  3. 会话保持:为需要它们的工具维护有状态的连接
  4. HTTP包装器:基于会话的服务器为工具调用公开本地HTTP端点

贡献

要添加新服务器,请参阅 添加服务器.

许可证

[在此处添加您的许可证]