用于AgentAPI的MCP服务器(Node.js/TypeScript)
一个用TypeScript编写的综合MCP(模型上下文协议)服务器,提供与AgentAPI交互的工具,支持Claude Code、Goose和Aider。
特性
- 状态管理:检查代理状态(稳定/运行)
- 消息处理:发送和检索对话消息
- 文件操作:将文件上载到代理工作区
- 事件流:通过服务器发送事件(SSE)进行实时事件订阅
- 错误处理:具有详细错误消息的全面错误处理
- 类型安全:带Zod验证的完整TypeScript实现
- 生产就绪:全面测试、剥皮和建造管道
安装
npm install mcp-agentapi或用于开发:
git clone
cd mcp-agentapi
npm install用法
配置
MCP服务器需要AgentAPI实例的基本URL。设置 AGENTAPI_BASE_URL 环境变量:
export AGENTAPI_BASE_URL="http://localhost:3284"建立和运行
# Build the TypeScript project
npm run build
# Run the MCP server
npm start
# Or for development with hot reload
npm run dev可用工具
1. get_status
检索代理的当前状态。
参数:
- 无
退货:
status:代理状态(“稳定”或“运行”)agent_type:使用的试剂类型
2. agent_get_messages
检索与代理的对话历史记录。
参数:
- 无
退货:
messages:消息对象数组,包含:
- id:唯一标识符 - role:“用户”或“代理” - content:消息内容(80个字符行) - time:时间戳
3. agent_send_message
向代理发送消息。
参数:
content(必填):消息内容字符串type(可选):消息类型-“用户”或“原始”(默认:“用户”)
- “user”:登录对话历史记录,代理处理任务 - “原始”:作为击键发送到终端,不保存在历史记录中
4. upload_file
将文件上载到代理工作区。
参数:
file_path(必填):要上传的文件的本地路径
退货:
ok:成功状态filePath:上传文件的路径
5. subscribe_events
订阅代理的实时事件。
参数:
timeout(可选):超时秒数(默认值:30)
退货:
- 事件流包括:
- message_update:对话消息的更新 - status_change:代理状态的变化
示例
基本用法
// Check agent status
const status = await get_status();
console.log(`Agent is ${status.status}`);
// Send a message
const result = await agent_send_message({
content: "Hello, can you help me with TypeScript?",
type: "user"
});
// Get conversation history
const messages = await agent_get_messages();
for (const msg of messages.messages) {
console.log(`${msg.role}: ${msg.content}`);
}文件上传
// Upload a TypeScript file
const result = await upload_file({
file_path: "./script.ts"
});
if (result.ok) {
console.log(`File uploaded to: ${result.filePath}`);
}事件流
// Subscribe to real-time events
const events = await subscribe_events({ timeout: 30 });
for (const event of events.events) {
if (event.event === 'status_change') {
console.log(`Status changed to: ${event.data.status}`);
} else if (event.event === 'message_update') {
console.log(`Message updated: ${event.data.message}`);
}
}发展
运行测试
npm test
npm run test:coverage代码质量
npm run lint
npm run lint:fix
npm run format
npm run type-check项目脚本
npm run build-将TypeScript构建为JavaScriptnpm run dev-在开发过程中以热重载运行npm run start-启动生产服务器npm run demo-运行交互式演示npm test-运行测试套件npm run quality-运行所有代码质量检查
配置选项
环境变量
AGENTAPI_BASE_URL:AgentAPI实例的基本URL(必需)- 违约:
http://localhost:3284
建筑
项目结构
src/
├── server.ts # Main MCP server implementation
├── client.ts # HTTP client for AgentAPI
├── types.ts # TypeScript types and Zod schemas
├── index.ts # Entry point
└── demo.ts # Interactive demonstration主要特点
- 类型安全:带有Zod验证的完整TypeScript
- 异步/等待:全程无阻塞运行
- 错误处理:带上下文的详细错误报告
- 事件流:服务器发送实时更新事件
- 测试:Vitest提供全面的测试覆盖
- 生产就绪:内置验证和错误恢复
错误处理
服务器提供详细的错误信息,包括:
- 带有上下文的错误消息
- 请求数据中错误的位置
- 状态代码
- 时间戳信息
许可证
MIT许可证-有关详细信息,请参阅许可证文件。
贡献
欢迎投稿!请确保:
- 所有测试均通过(
npm test) - 代码遵循项目样式指南(
npm run quality) - 包括类型提示
- 文档已更新
支持
对于问题和疑问:
- 查看文档中的故障排除部分
- 在项目存储库上打开一个问题
- 请参阅 Agent API文件
