Intent MCP服务器
一种模型上下文协议(MCP)服务器,将自然语言意图处理成结构化、可操作的格式。该服务器提供了一个强大的API,用于管理和处理意图,重点关注可扩展性和可靠性。
概述
该项目实现了一种意图处理架构,该架构将自然语言输入转换为结构化对象并生成可执行工作流。它关注可维护性、类型安全性和可扩展性,同时为意图管理提供一个干净的API。
特性
- 🎯 意图处理:通过定义良好的API创建、检索和处理意图
- 🔍 自然语言理解:分析和理解原始用户意图
- 🧩 意图分解:将意图转化为具有目标和约束的结构化对象
- 💾 灵活的存储:具有内置内存实现的可插拔存储系统
- 📝 类型安全:具有全面类型定义的完整TypeScript实现
- 🛡️ 错误处理:强大的错误处理和记录系统
- 🧪 测试:使用Jest的全面测试套件
- 📚 API文档:清晰的API文档和示例
先决条件
- Node.js(v18或更高版本)
- npm或纱线
安装
- 克隆存储库:
git clone https://github.com/openpandacodes/intent-mcp-server.git
cd intent-mcp-server- 安装依赖项:
npm install- 创建一个
.env根目录中的文件:
cp .env.example .env- 更新
.env文件中包含您的配置设置。
配置
可以使用环境变量配置服务器:
NODE_ENV:环境(开发、生产、测试)PORT:服务器端口(默认值:3000)LOG_LEVEL:日志记录级别(调试、信息、警告、错误)
用法
发展
使用热重新加载启动开发服务器:
npm run dev生产
构建并启动生产服务器:
npm run build
npm start测试
运行测试:
npm test运行覆盖率测试:
npm run test:coverageAPI终点
意图管理
POST /api/intent:创建新意图
curl -X POST http://localhost:3000/api/intent \
-H "Content-Type: application/json" \
-d '{"rawIntent": "Your natural language intent here"}'GET /api/intent/:id:通过ID获取意图
curl -X GET http://localhost:3000/api/intent/YOUR_INTENT_IDAPI规范中记录了其他端点。
健康检查
GET /health:检查服务器运行状况
建筑
服务器遵循具有不同层的干净架构模式:
- 控制器:处理HTTP请求和响应
- 服务:实施核心业务逻辑和意图处理
- 存储:使用可插拔实现管理数据持久性
- 模型:定义数据结构和类型
关键组件
IntentController:处理与意图相关的HTTP端点IntentService:意图处理核心服务StorageInterface:抽象存储层InMemoryStorage:存储接口的参考实现
项目结构
intent-mcp-server/
├── src/
│ ├── controllers/ # HTTP request handlers
│ ├── services/ # Business logic implementation
│ │ └── __tests__/ # Service tests
│ ├── storage/ # Storage implementations
│ ├── models/ # Type definitions
│ └── utils/ # Utility functions
├── tests/ # Test suites
└── config/ # Configuration files意向结构
该系统将意图结构化为形式对象:
interface Intent {
id: string;
rawIntent: string;
processed: {
goals: Goal[];
constraints: Constraint[];
metadata: Record;
};
status: "pending" | "processing" | "completed" | "failed";
createdAt: Date;
updatedAt: Date;
}错误处理
服务器实现了全面的错误处理:
- 针对不同类型错误的自定义错误类
- 正确的HTTP状态代码和错误响应
- 用于调试和监控的结构化日志记录
- 使用TypeScript类型进行验证
贡献
- 分叉存储库
- 创建要素分支(
git checkout -b feature/amazing-feature) - 提交您的更改(
git commit -m 'feat: Add some amazing feature') - 推到分支(
git push origin feature/amazing-feature) - 创建拉取请求
请确保您的代码:
- 遵循现有的风格和惯例
- 包括适当的测试
- 根据需要更新文档
- 使用常规提交消息
许可证
MIT许可证-有关详细信息,请参阅许可证文件
