Skynet-MCP (THIS PROJECT IS A WORK IN PROGRESS)
一个充当代理的 MCP 服务器,并且可以通过使用 MCP 来生成更多的代理……MCP 嵌套!
ivo-toby
README
Skynet-MCP (本项目正在开发中)
一个使用模型上下文协议 (MCP) 的 AI 代理分层网络。此网络中的 AI 代理可以生成新的代理来执行工作,每个代理还包括启动代理拥有的所有工具。 代理网络能够处理复杂的任务,范围从研究、报告到编码。
通过利用不断增长的 MCP 服务器集合,每个代理都有可能拥有大量的工具来执行各种任务。
想要帮忙吗?
如果您喜欢这个想法并且精通 TypeScript;我可以利用您的帮助!如果您想贡献,请联系我。
概述
Skynet-MCP 是一个先进的架构,它实现了模型上下文协议 (MCP) 来创建一个 AI 代理的分层网络。每个 Skynet-MCP 实例都充当 MCP 服务器和 MCP 客户端,使其能够向父代理提供工具,同时生成和管理子代理。
这种架构支持递归代理网络,能够分解复杂任务、并行化工作以及集成跨多个模型和服务的专业功能。
特性
- 双模式运行: 既充当 MCP 服务器又充当客户端
- LLM 集成: 连接到 OpenAI 或 Anthropic 模型以进行智能决策
- 工具发现: 自动发现和使用来自连接的 MCP 服务器的工具
- 分层代理管理: 创建和管理子代理
- 可配置: 灵活的配置系统,支持多种环境
- FastMCP 集成: 构建在高效的 FastMCP 框架之上,用于强大的 MCP 服务器实现
- 多种传输选项: 支持 STDIO 和 SSE(服务器发送事件)传输
- 延迟执行: 异步运行任务并在以后轮询结果
MCP 工具
Skynet-MCP 通过其 FastMCP 实现提供以下 MCP 工具:
-
Invoke: 创建和管理代理任务
- 参数:
mcpConfig
: MCP 服务器配置(代理可用的工具)llmConfig
: LLM 配置(要使用的提供程序和模型)prompt
: 代理任务的指令delayedExecution
: 布尔值,指示是否应异步运行任务
- 参数:
-
DelayedResponse: 检索异步任务的结果
- 参数:
taskId
: 要检查的任务的 ID
- 返回:任务状态和结果(如果已完成)
- 参数:
代理
代理框架仍需要实现。
项目结构
skynet-mcp/
├── src/
│ ├── server/ # MCP 服务器实现
│ ├── client/ # MCP 客户端实现
│ ├── orchestrator/ # 代理编排
│ ├── tools/ # 代理工具
│ ├── persistence/ # 状态管理
│ └── utils/ # 共享实用程序
├── test/
│ ├── unit/ # 单元测试
│ └── integration/ # 集成测试
├── examples/ # 示例实现
└── config/ # 配置文件
开发
前提条件
- Node.js (v20+)
- npm
- Docker 和 Docker Compose(可选,用于容器化开发)
- OpenAI 或 Anthropic 的 API 密钥(用于 LLM 驱动的代理)
设置
- 克隆存储库
- 安装依赖项:
npm install
可用脚本
基本开发命令
npm run build
- 构建项目npm run test
- 运行测试npm run test:watch
- 在监视模式下运行测试npm run test:coverage
- 运行带有覆盖率的测试npm run lint
- 检查代码风格npm run lint:fix
- 检查并修复代码风格npm run format
- 格式化代码npm run dev
- 在监视模式下运行 TypeScriptnpm start
- 启动应用程序
Docker 命令
npm run docker:build
- 构建 Docker 镜像npm run docker:up
- 使用 Docker Compose 启动应用程序npm run docker:down
- 停止 Docker Compose 服务npm run docker:test
- 在 Docker 容器内运行测试npm run test:docker
- 运行特定于 Docker 的测试(需要 Docker 运行)
Docker 支持
Skynet-MCP 包括 Docker 支持,用于容器化开发和部署。
Dockerfile
该项目包含一个 Dockerfile,它:
- 使用 Node.js 20 Alpine 作为基础镜像
- 设置应用程序环境
- 安装依赖项
- 构建 TypeScript 代码
- 公开服务器的 3000 端口
Docker Compose
docker-compose.yml 文件提供了一个完整的开发环境,包括:
- Skynet-MCP 应用程序容器
- Redis 用于状态管理和持久性
- 用于本地开发的卷挂载
- 环境变量配置
要启动完整的环境:
npm run docker:up
配置系统
Skynet-MCP 使用灵活的配置系统,可以从以下位置加载设置:
- 默认值
- 环境变量
- 特定于环境的 JSON 配置文件
配置文件存储在 config/
目录中,并根据 NODE_ENV
环境变量加载。
环境变量
关键环境变量包括:
SERVER_PORT
- 服务器监听的端口SERVER_HOST
- 服务器绑定的主机LOG_LEVEL
- 日志记录级别(debug、info、warn、error)PERSISTENCE_TYPE
- 存储类型(内存或 redis)REDIS_URL
- Redis 连接 URL(使用 Redis 时)OPENAI_API_KEY
- OpenAI API 密钥(用于 LLM 驱动的代理)ANTHROPIC_API_KEY
- Anthropic API 密钥(用于 LLM 驱动的代理)
CI/CD
Skynet-MCP 使用 GitHub Actions 进行持续集成和交付。
工作流程:
- 在推送到主分支和拉取请求时运行
- 设置 Node.js 环境
- 安装依赖项
- 运行代码风格检查和格式化检查
- 构建项目
- 运行所有测试
- 构建并验证 Docker 镜像
CI/CD 管道通过在合并更改之前自动测试更改来帮助确保代码质量和稳定性。
许可证
ISC
推荐服务器
Crypto Price & Market Analysis MCP Server
一个模型上下文协议 (MCP) 服务器,它使用 CoinCap API 提供全面的加密货币分析。该服务器通过一个易于使用的界面提供实时价格数据、市场分析和历史趋势。 (Alternative, slightly more formal and technical translation): 一个模型上下文协议 (MCP) 服务器,利用 CoinCap API 提供全面的加密货币分析服务。该服务器通过用户友好的界面,提供实时价格数据、市场分析以及历史趋势数据。
MCP PubMed Search
用于搜索 PubMed 的服务器(PubMed 是一个免费的在线数据库,用户可以在其中搜索生物医学和生命科学文献)。 我是在 MCP 发布当天创建的,但当时正在度假。 我看到有人在您的数据库中发布了类似的服务器,但还是决定发布我的服务器。
mixpanel
连接到您的 Mixpanel 数据。 从 Mixpanel 分析查询事件、留存和漏斗数据。

Sequential Thinking MCP Server
这个服务器通过将复杂问题分解为顺序步骤来促进结构化的问题解决,支持修订,并通过完整的 MCP 集成来实现多条解决方案路径。

Nefino MCP Server
为大型语言模型提供访问德国可再生能源项目新闻和信息的能力,允许按地点、主题(太阳能、风能、氢能)和日期范围进行筛选。
Vectorize
将 MCP 服务器向量化以实现高级检索、私有深度研究、Anything-to-Markdown 文件提取和文本分块。
Mathematica Documentation MCP server
一个服务器,通过 FastMCP 提供对 Mathematica 文档的访问,使用户能够从 Wolfram Mathematica 检索函数文档和列出软件包符号。
kb-mcp-server
一个 MCP 服务器,旨在实现便携性、本地化、简易性和便利性,以支持对 txtai “all in one” 嵌入数据库进行基于语义/图的检索。任何 tar.gz 格式的 txtai 嵌入数据库都可以被加载。
Research MCP Server
这个服务器用作 MCP 服务器,与 Notion 交互以检索和创建调查数据,并与 Claude Desktop Client 集成以进行和审查调查。

Cryo MCP Server
一个API服务器,实现了模型补全协议(MCP),用于Cryo区块链数据提取,允许用户通过任何兼容MCP的客户端查询以太坊区块链数据。