返回市场
MCP代理服务器

MCP代理服务器

作者:LeadBroaf3 星标更新:2025-06-06

项目介绍

MCP Agent Server

这是一个开源的“大脑”,用于AI员工,设计用于与n8n和其他工作流引擎协同工作。

快速开始

  1. 克隆仓库:

    git clone https://github.com/yourusername/mcp-agent-server.git
    cd mcp-agent-server
    
  2. 如果需要,复制你的文档和记忆文件夹。

  3. 使用Docker Compose构建并运行:

    docker-compose up --build
    
  4. MCP服务器将在 http://localhost:4000 上可用。

开始使用

  1. 确保已安装Node.js和Docker。
  2. 从package.json中删除任何注释(JSON不支持注释)。
  3. 运行 npm install 安装依赖项。
  4. 使用 docker-compose up --build 启动所有服务。
  5. 服务器将在 http://localhost:4000 上可用。
  6. 对于架构和设计,请参阅/docs和/memory文件夹以及MCP记忆中的“mcp-agent-server项目计划”。

项目结构

  • /docs — 设计、架构和使用文档
  • /memory — 持久记忆、日志和知识

项目愿景:MCP Agent Server

mcp-agent-server 是一个开源的、模块化的“大脑”,用于AI员工/代理,设计用于无缝地与n8n和其他工作流引擎协同工作。

  • AI员工比喻: 使用户能够“雇佣”、“分配”、“评估”和“改进”具有自己记忆、学习和反馈循环的持久AI代理。

  • 有立场且以代理为中心: 与通用的工作流自动化工具不同,MCP代理服务器是有立场的,并专注于“AI员工”比喻,使得记忆、反馈和学习成为核心功能,而不是可选附加组件。

  • 自然语言接口: 接受自然语言指令(不仅仅是API调用或工作流触发器),将其解析为可执行任务,并通过n8n或其他连接器进行编排执行。

  • 主动、适应性和个性化: 代理可以建议行动,从用户反馈中学习,并随着时间的推移而改进。

  • 垂直解决方案及简易性: 支持垂直解决方案(例如,“AI分析师”、“AI管理员”),具有预建技能、工作流和反馈循环,以及面向SMB和个人的简单、非技术用户体验。

  • 持久、以代理为中心的记忆: 记忆和反馈是持久的并且以代理为中心,使代理能够记住过去的行动、用户偏好和绩效历史。

  • 易于部署和扩展: 设计用于易于部署(Docker、Docker Compose)、扩展(可插拔连接器和技能)以及SaaS货币化(多租户、API密钥管理、账单集成)。

  • 不仅仅是一个工作流工具: MCP代理服务器是一个平台,用于构建、管理和改进与人类一起工作的AI员工,从经验中学习,并提供真正的商业价值。

对于完整的架构、设计和上下文,请参阅MCP记忆中的“mcp-agent-server项目计划”实体以及/docs和/memory文件夹。

API认证

所有端点(除了 /health/users/register/users/login)都需要一个 x-api-key 头部。API密钥按用户管理。请参见以下用户和API密钥管理。

用户及API密钥管理

端点

  • POST /users/register — 注册新用户(电子邮件、密码)
  • POST /users/login — 登录并接收API密钥
  • GET /users/me/api-keys — 列出您的API密钥
  • POST /users/me/api-keys — 创建新的API密钥
  • DELETE /users/me/api-keys/:id — 撤销API密钥

示例PowerShell用法

# 注册新用户
Invoke-RestMethod -Uri "http://localhost:4000/users/register" -Method Post -ContentType "application/json" -Body '{"email": "user@example.com", "password": "yourpassword"}'

# 登录并获取API密钥
$login = Invoke-RestMethod -Uri "http://localhost:4000/users/login" -Method Post -ContentType "application/json" -Body '{"email": "user@example.com", "password": "yourpassword"}'
$apiKey = $login.apiKey

# 列出API密钥
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys" -Method Get -Headers @{ "x-api-key" = $apiKey }

# 创建新的API密钥
Invoke-RestMethod -Uri "http://localhost:4_000/users/me/api-keys" -Method Post -Headers @{ "x-api-key" = $apiKey }

# 撤销API密钥(将1替换为实际密钥ID)
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys/1" -Method Delete -Headers @{ "x-api-key" = $apiKey }

示例curl用法

# 注册新用户
curl -X POST http://localhost:4000/users/register -H "Content-Type: application/json" -d '{"email": "user@example.com", "password": "yourpassword"}'

# 登录并获取API密钥
curl -X POST http://localhost:4000/users/login -H "Content-Type: application/json" -d '{"email": "user@example.com", "password": "yourpassword"}'

# 列出API密钥
curl http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"

# 创建新的API密钥
curl -X POST http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"

# 撤销API密钥(将1替换为实际密钥ID)
curl -X DELETE http://localhost:4000/users/me/api-keys/1 -H "x-api-key: <your-api-key>"

代理记忆及反馈端点

  • POST /agents/:id/memory — 为代理添加记忆/反馈。
  • GET /agents/:id/memory — 列出代理的所有记忆/反馈。
  • POST /agents/:id/trigger — 触发代理动作(n8n集成的存根)。

示例PowerShell用法

$headers = @{ "x-api-key" = "changeme" }

# 创建代理
Invoke-RestMethod -Uri "http://localhost:4000/agents" -Method Post -Headers $headers -ContentType "application/json" -Body '{"name": "Test Agent"}'

# 添加记忆/反馈
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/memory" -Method Post -Headers $headers -ContentType "application/json" -Body '{"content": "代理已完成入职培训。"}'

# 列出记忆/反馈
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/memory" -Method Get -Headers $headers

# 触发代理
Invoke-RestMethod -Uri "http://localhost:4000/agents/1/trigger" -Method Post -Headers $headers

示例curl用法

curl -X POST http://localhost:4000/agents/1/memory -H "Content-Type: application/json" -H "x-api-key: changeme" -d '{"content": "代理已完成入职培训。"}'
curl http://localhost:4000/agents/1/memory -H "x-api-key: changeme"
curl -X POST http://localhost:4000/agents/1/trigger -H "x-api-key: changeme"

数据库迁移及模式管理

  • 所有数据库迁移在容器启动时自动应用(参见docker-entrypoint.sh)。
  • 要添加新的模型或字段:
    1. 编辑 prisma/schema.prisma
    2. 在本地运行 npx prisma migrate dev --name <desc>(带有正在运行的Docker Postgres)。
    3. 将生成的迁移文件提交到git。
  • 在每次部署或容器重建时,所有迁移都会自动应用。