模型上下文协议编排系统

MCP-OS是一个用于管理和编排模型上下文协议(MCP)的系统,旨在通过按需加载和卸载MCP服务器来优化大型语言模型的资源使用和安全性。

  • by giao-123-sun
  • JavaScript
  • 本地部署
  • 3 星标
  • 更新于
在 GitHub 查看 giao-123-sun/mcp-os

使用说明

MCP-OS·模型上下文协议编排系统

让你的大型语言模型专注于解决任务,而不是在MCP的海洋中跋涉。

👉 查看中文版 README


✨ 项目愿景

随着 模型上下文协议(MCP) 生态系统爆炸,数百台MCP服务器造成了三个常见的麻烦:

痛点 描述
快速金发 冗长的MCP描述挤满了上下文窗口;该模型在挑选工具上花费的令牌比 规划/分析.
连接卫生 我们必须不断追踪 哪个 MCP还活着 是否 他们完成了当前的任务。
资源与安全 始终在线的MCP服务器消耗内存并暴露接口,增加了攻击面。

MCP-OS 旨在:

“以操作系统管理进程的方式管理MCP——按需加载,空闲时卸载。”


🌟 当前阶段:MCP检索器(已完成✅)

  1. 矢量检索 --嵌入任务描述并从向量索引中检索Top-k MCP。
  2. 精简提示模板 --仅注射 顶部K MCP描述,平均节省约70%的提示令牌。
  3. 可插拔后端 --默认值 openai/embeddings交换FAISS、Qdrant、Milvus等。

📖 详情请参阅 /packages/retriever.


🛣️ 路线图

里程碑 功能 状态
v0.1 MCP检索器 –矢量搜索 ✅ 释放
v0.2 MCP检索器 -轻版本 ⏳ 进行中
v0.3 健康检查守护进程 –自动心跳和修剪 ⏳ 进行中
v0.4 运行时管理器 –按需启动/停止MCP 🗓 计划中
v1.0 策略沙盒 –细粒度身份验证、速率、成本 🗓 计划中

⚙️ 快速开始

1.克隆和安装

git clone https://github.com/your-org/mcp-os.git
cd mcp-os
npm install      # or npm / yarn

2.构建矢量索引

# Scan local / remote MCP metadata and create an index
npm run build:index --src ./mcp_list.json --out ./index

3.启动检索服务器

npm run start:retriever
# Default listens on 127.0.0.1:5500 (HTTP + SSE)

4.将其电汇至您的法学硕士/代理

// Example: Claude Desktop
{
  "mcpServers": {
    "mcp-os": {
      "command": "/absolute/path/to/mcp-os/bin/retriever.js"
    }
  }
}

或者调用REST端点:

curl -X POST http://localhost:5500/match \
  -H "Content-Type: application/json" \
  -d '{"task": "Scrape a web page and extract its title"}'

示例响应:

{
  "matches": [
    {
      "id": "web-scraper",
      "score": 0.89,
      "functions": ["fetchHtml", "querySelector"]
    }
  ]
}

📂 仓库的规划

mcp-os/
├─ packages/
│  ├─ retriever/        # Phase 1: vector retrieval
│  ├─ health-check/     # Phase 2: heartbeat daemon (WIP)
│  └─ runtime-manager/  # Phase 3: load/unload (planned)
├─ scripts/             # CLI helpers
├─ examples/            # Usage demos
└─ docs/                # Architecture & deep dives

🧩 MCP列表格式

mcp_list.json 描述MCP元数据:

{
  "web-scraper": {
    "name": "Web Scraper MCP",
    "description": "Fetches HTML and parses DOM.",
    "functions": ["fetchHtml", "querySelector"]
  },
  "calc": { ... }
}

❓ 常见问题解答

Retrieval quality is poor—how do I tune it?
  • 增加 topK 以获得更高的召回率。
  • 切换到更强的嵌入模型。
  • 优化任务文本规范化规则。
How do I plug in my own vector store?

实施 VectorStore 接口: src/store/yourStore.ts.


🤝 贡献

  1. 分叉 回购
  2. 创建分支 feature/awesome-stuff
  3. 打开PR并链接相关问题
  4. 等待CI+审核🎉

📜 许可证

Apache许可证v2


🙏 致谢

  • 这 模型上下文协议 开放规范社区
  • MCP检查员 用于调试
  • 所有提交问题或PR的人——谢谢! ❤️