mcpField
M
MCP-OS · Model Context Protocol Orchestration System

MCP-OS · Model Context Protocol Orchestration System

本地服务
github.com/giao-123-sun生产力377 周前更新

关于 MCP-OS · Model Context Protocol Orchestration System

MCP-OS 是用于按任务检索 MCP 服务的编排系统,面向希望精简 LLM 工具上下文的开发者。当前阶段通过向量检索选出相关服务,并仅注入匹配项的描述;按需启停等能力仍在路线图中。

主要功能

  1. 01按任务向量检索 MCP 服务
  2. 02仅注入匹配服务描述
  3. 03支持可插拔向量后端
  4. 04提供 HTTP 与 SSE 检索服务

适用场景

  1. 01为任务筛选相关 MCP 服务
  2. 02减少提示词中的工具描述
  3. 03替换或自定义向量存储后端

MCP 相关

该项目提供 MCP Retriever 服务,可通过 MCP 配置或 REST 端点检索匹配任务的 MCP 服务。运行时启停和策略沙箱仍属规划功能。

配置

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

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

MCP-OS · Model Context Protocol 编排系统

让你的大模型专注于解决任务,而不是在 MCP 的海洋中摸索。

👉 查看中文版 README


✨ 项目愿景

随着 Model Context Protocol(MCP) 生态蓬勃发展,数百个 MCP 服务带来了三个常见难题:

痛点描述
提示词膨胀冗长的 MCP 描述挤占上下文窗口;模型花在挑选工具上的 token 比花在规划/分析上的还多。
连接管理我们必须持续跟踪哪些 MCP 服务处于活动状态,以及它们是否满足当前任务的需求。
资源与安全始终运行的 MCP 服务会占用内存并暴露接口,从而扩大攻击面。

MCP-OS 的目标是:

“像操作系统管理进程那样管理 MCP——按需加载,空闲时卸载。”


🌟 当前阶段:MCP-Retriever(已完成 ✅)

  1. 向量检索 — 嵌入任务描述,并从向量索引中检索 Top-k 个 MCP。
  2. 精简提示词模板 — 仅注入 Top-k 个 MCP 描述,平均节省约 70 % 的提示词 token。
  3. 可插拔后端 — 默认使用 openai/embeddings;可替换为 FAISS、Qdrant、Milvus 等。

📖 详情请参阅 /packages/retriever。


🛣️ 路线图

里程碑功能状态
v0.1MCP-Retriever – 向量搜索✅ 已发布
v0.2MCP-Retriever - 轻量版⏳ 进行中
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. 将其接入你的大模型/Agent
// 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": { ... }
}

❓ 常见问题

检索效果不佳——如何调整?
  • 提高 topK 以提升召回率。
  • 换用更强大的嵌入模型。
  • 优化任务文本规范化规则。
如何接入我自己的向量存储?

实现 VectorStore 接口:src/store/yourStore.ts。


🤝 参与贡献

  1. Fork 此仓库
  2. 创建分支 feature/awesome-stuff
  3. 提交 PR 并关联相关问题
  4. 等待 CI 和评审 🎉

📜 许可证

Apache License v2


🙏 致谢

  • 感谢 Model Context Protocol 社区制定开放规范
  • 感谢 MCP Inspector 提供调试工具
  • 感谢所有提交问题或 PR 的人!❤️

评论

支持 Markdown

第一次接触 MCP?

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

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