🚀 MCP Agent Server
MCP Agent Server 是一个开源的 AI 员工“大脑”,旨在与 n8n 等工作流引擎无缝协作,为 AI 员工/代理提供强大的支持。
🚀 快速开始
- 克隆仓库:
git clone https://github.com/yourusername/mcp-agent-server.git
cd mcp-agent-server
- 如有需要,复制文档和内存文件夹。
- 使用 Docker Compose 构建并运行:
docker-compose up --build
- MCP 服务器将在
http://localhost:4000
上可用。
🎉 开始使用
- 确保你已安装 Node.js 和 Docker。
- 移除
package.json
中的所有注释(JSON 不支持注释)。
- 运行
npm install
安装依赖项。
- 使用
docker-compose up --build
启动所有服务。
- 服务器将在
http://localhost:4000
上可用。
- 有关架构和设计,请查看
/docs
和 /memory
文件夹以及 MCP 内存中的“mcp-agent-server 项目计划”。
📁 项目结构
/docs
— 设计、架构和使用文档
/memory
— 持久内存、日志和知识
🎯 项目愿景:MCP Agent Server
mcp-agent-server 是一个开源的、模块化的 AI 员工/代理“大脑”,旨在与 n8n 和其他工作流引擎无缝协作。
- AI 员工隐喻:
允许用户“雇佣”、“分配任务”、“评估”和“改进”持久化的 AI 代理,每个代理都有自己的记忆、学习和反馈循环。
- 有主见且以代理为中心:
与通用的工作流自动化工具不同,MCP 代理服务器有自己的主见,专注于“AI 员工”隐喻,使记忆、反馈和学习成为核心功能,而非可选附加功能。
- 自然语言接口:
接受自然语言指令(不仅仅是 API 调用或工作流触发器),将其解析为可执行任务,并通过 n8n 或其他连接器编排执行。
- 主动、自适应和个性化:
代理可以建议操作,从用户反馈中学习,并随着时间的推移不断改进。
- 垂直解决方案与简单性:
支持具有预建技能、工作流和反馈循环的垂直解决方案(例如“AI 分析师”、“AI 管理员”),并为中小企业和个人提供简单、非技术性的用户体验。
- 持久的、以代理为中心的记忆:
记忆和反馈是持久的且以代理为中心,使代理能够记住过去的操作、用户偏好和性能历史。
- 易于部署和扩展:
设计用于易于部署(Docker、Docker Compose)、扩展(可插拔的连接器和技能)和 SaaS 货币化(多租户、API 密钥管理、计费集成)。
- 不仅仅是另一个工作流工具:
MCP 代理服务器是一个用于构建、管理和改进与人类协同工作、从经验中学习并提供实际商业价值的 AI 员工的平台。
🔑 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"}'
$login = Invoke-RestMethod -Uri "http://localhost:4000/users/login" -Method Post -ContentType "application/json" -Body '{"email": "user@example.com", "password": "yourpassword"}'
$apiKey = $login.apiKey
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys" -Method Get -Headers @{ "x-api-key" = $apiKey }
Invoke-RestMethod -Uri "http://localhost:4000/users/me/api-keys" -Method Post -Headers @{ "x-api-key" = $apiKey }
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"}'
curl -X POST http://localhost:4000/users/login -H "Content-Type: application/json" -d '{"email": "user@example.com", "password": "yourpassword"}'
curl http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"
curl -X POST http://localhost:4000/users/me/api-keys -H "x-api-key: <your-api-key>"
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": "Agent completed onboarding."}'
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": "Agent completed onboarding."}'
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
)。
- 要添加新模型或字段:
- 编辑
prisma/schema.prisma
。
- 在本地运行
npx prisma migrate dev --name <desc>
(运行你的 Docker Postgres)。
- 将生成的迁移文件提交到
prisma/migrations/
中的 git。
- 在每次部署或容器重建时,所有迁移将自动应用。