mcpField
S
Skynet-MCP (THIS PROJECT IS A WORK IN PROGRESS)

Skynet-MCP (THIS PROJECT IS A WORK IN PROGRESS)

本地服务
github.com/ivo-tobyAI 与智能体583 周前更新

关于 Skynet-MCP (THIS PROJECT IS A WORK IN PROGRESS)

Skynet-MCP 是一个通过 MCP 协调层级式 AI Agent 的开发中项目。每个实例可同时作为服务端和客户端,发现已连接服务的工具并创建子 Agent 任务;Agent 框架尚未实现。

主要功能

  1. 01MCP 服务端和客户端模式
  2. 02发现已连接服务的工具
  3. 03创建和管理子 Agent
  4. 04延迟执行任务并获取结果
  5. 05STDIO 和 SSE 传输方式

适用场景

  1. 01拆解复杂研究任务
  2. 02将工作委派给子 Agent
  3. 03异步运行任务并查询结果

MCP 相关

每个实例既是 MCP 服务,也是 MCP 客户端:它向上级 Agent 提供 Agent 任务工具,并可发现已连接 MCP 服务的工具。项目仍在开发中,Agent 框架尚待实现。

配置

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

暂未收录安装方式

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

代码仓库

工具

还没有获取到工具列表

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

详细介绍

Skynet-MCP(此项目仍在开发中)

一个使用 Model Context Protocol(MCP)的分层 AI Agent 网络。该网络中的 AI Agent 可以创建新的 Agent 来执行任务,每个 Agent 还包含发起 Agent 所拥有的全部工具。 该 Agent 网络能够处理复杂任务,涵盖研究、报告编写和编码等。

借助不断扩大的 MCP 服务集合,每个 Agent 都可能拥有大量工具,可用于执行各种任务。

想要帮忙吗?

如果你喜欢这个想法,并且精通 TypeScript,我很需要你的帮助!如果你愿意贡献力量,请联系我。

概述

Skynet-MCP 是一种先进的架构,使用 Model Context Protocol(MCP)构建分层 AI Agent 网络。每个 Skynet-MCP 实例既是 MCP 服务,也是 MCP 客户端,因此既可以向父级 Agent 提供工具,也可以创建和管理子 Agent。

这种架构支持递归的 Agent 网络,能够拆解复杂任务、并行处理工作,并整合多个模型和服务的专用能力。

功能

  • 双模式运行:既是 MCP 服务,也是客户端
  • 大模型集成:连接 OpenAI 或 Anthropic 模型,实现智能决策
  • 工具发现:自动发现并使用已连接 MCP 服务中的工具
  • 分层 Agent 管理:创建和管理子 Agent
  • 可配置:灵活的配置系统,支持多种环境
  • FastMCP 集成:基于高效的 FastMCP 框架构建,可稳健地实现 MCP 服务
  • 多种传输选项:支持 STDIO 和 SSE(Server-Sent Events)传输
  • 延迟执行:异步运行任务,并在之后轮询结果

MCP 工具

Skynet-MCP 通过 FastMCP 实现提供以下 MCP 工具:

  1. Invoke:创建并管理 Agent 任务

    • 参数:
      • mcpConfig:MCP 服务配置(Agent 可用的工具)
      • llmConfig:大模型配置(要使用的提供方和模型)
      • prompt:Agent 任务的指令
      • delayedExecution:布尔值,表示是否应异步运行任务
  2. DelayedResponse:获取异步任务的结果

    • 参数:
      • taskId:要查询的任务 ID
    • 返回:任务状态和结果(如果已完成)

Agent

Agent 框架仍有待实现。

项目结构

skynet-mcp/
├── src/
│   ├── server/       # MCP server implementation
│   ├── client/       # MCP client implementation
│   ├── orchestrator/ # Agent orchestration
│   ├── tools/        # Agent tools
│   ├── persistence/  # State management
│   └── utils/        # Shared utilities
├── test/
│   ├── unit/         # Unit tests
│   └── integration/  # Integration tests
├── examples/         # Example implementations
└── config/           # Configuration files

开发

前置条件
  • Node.js(v20+)
  • npm
  • Docker 和 Docker Compose(可选,用于容器化开发)
  • OpenAI 或 Anthropic 的 API 密钥(用于由大模型驱动的 Agent)
设置
  1. 克隆仓库
  2. 安装依赖:
    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 - 以监视模式运行 TypeScript
  • npm 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 - 存储类型(memory 或 redis)
  • REDIS_URL - Redis 连接 URL(使用 Redis 时)
  • OPENAI_API_KEY - OpenAI API 密钥(用于大模型驱动的 Agent)
  • ANTHROPIC_API_KEY - Anthropic API 密钥(用于大模型驱动的 Agent)

CI/CD

Skynet-MCP 使用 GitHub Actions 实现持续集成和交付。

工作流:

  1. 在推送到 main 分支和提交拉取请求时运行
  2. 设置 Node.js 环境
  3. 安装依赖项
  4. 运行代码检查和格式检查
  5. 构建项目
  6. 运行所有测试
  7. 构建并验证 Docker 镜像

CI/CD 流水线通过在变更合并前自动测试,帮助确保代码质量和稳定性。

许可证

ISC

评论

支持 Markdown

第一次接触 MCP?

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

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