IFS API MCP服务器
一种MCP(模型上下文协议)服务器,为IFS ERP系统提供智能的API发现和推荐。此服务器分析5000多个OData元数据文件,以根据自然语言任务描述推荐适当的API。
特性
- 自然语言API发现:用简明的英语描述你的任务,并获得相关的IFS API建议
- 语义搜索:使用OpenAI嵌入来理解意图并在语义上匹配API
- 实体探索:详细探索IFS实体、其属性和可用操作
- 请求建筑:完成代码生成和BPMN工作流的HTTP请求详细信息
- IFS特定:专为IFS ERP业务对象和操作量身定制
安装
npm install
npm run build配置
创建一个 config.json 根目录中的文件:
{
"metadataDirectory": "./metadata",
"databasePath": "./ifs-api-catalog.db",
"openaiApiKey": "your-openai-api-key",
"enableEmbeddings": true
}或者,将OpenAI API键设置为环境变量:
export OPENAI_API_KEY="your-openai-api-key"用法
元数据设置
- 将IFS OData元数据JSON文件放在
./metadata目录 - 服务器将自动解析并索引所有
.json启动时的文件
运行服务器
npm start或者在开发模式下:
npm run dev可用工具
find_ifs_api
根据任务描述查找API建议。
参数:
task_prompt(string):任务的自然语言描述limit(数字,可选):建议的最大数量(默认值:5)
例子:
{
"task_prompt": "Create a new customer order",
"limit": 3
}explore_entity
探索特定的IFS实体及其操作。
参数:
entity_name(string):要探索的IFS实体的名称
例子:
{
"entity_name": "CustomerOrder"
}build_request
为API终结点生成完整的HTTP请求详细信息。
参数:
entity_name(string):IFS实体的名称operation(string):操作类型(CREATE、READ、UPDATE、DELETE、FUNCTION、ACTION)function_or_action_name(字符串,可选):函数或操作的名称(如适用)
例子:
{
"entity_name": "CustomerOrder",
"operation": "CREATE"
}get_api_stats
获取有关加载的IFS API目录的统计信息。
例子:
{}输出格式
服务器提供结构化输出,适用于:
- 代码生成:完整的HTTP请求详细信息,包括标头、正文模式和响应格式
- BPMN工作流程:流程自动化的活动类型提示和实施细节
- API文档:业务背景和使用示例
示例响应
{
"task": "Create a new customer order",
"recommendations": [
{
"id": "CustomerOrder-CREATE",
"entity": "CustomerOrder",
"operation": "CREATE",
"confidence": 0.95,
"httpMethod": "POST",
"endpoint": "/api/ifsapplications-{version}/projection/v1/CustomerOrder",
"description": "Create a new CustomerOrder",
"businessContext": "CREATE operation on CustomerOrder entity in IFS ERP system",
"ifsModule": "ORDER",
"businessObject": "CustomerOrder",
"codeGeneration": {
"method": "POST",
"url": "/api/ifsapplications-{version}/projection/v1/CustomerOrder",
"headers": {
"Content-Type": "application/json",
"Authorization": "Bearer {access_token}"
},
"requestBody": {
"OrderNo": { "type": "string", "required": true },
"CustomerNo": { "type": "string", "required": true },
"OrderDate": { "type": "string", "required": true }
}
},
"bpmnFragment": {
"activityType": "BusinessRuleTask",
"implementation": "REST",
"method": "POST",
"url": "/api/ifsapplications-{version}/projection/v1/CustomerOrder"
}
}
]
}建筑
src/
├── types/ifs.ts # IFS-specific type definitions
├── parsers/odata-parser.ts # OData metadata parser
├── database/schema.ts # SQLite database management
├── embeddings/semantic-index.ts # Semantic indexing with OpenAI
├── nlp/task-parser.ts # Natural language processing
├── recommendation/api-recommender.ts # API recommendation engine
├── server/mcp-server.ts # MCP server implementation
└── index.ts # Main entry point发展
构建
npm run build类型检查
npm run typecheck代码检查
npm run lint测试
npm test整合
此MCP服务器可以与以下设备集成:
- AI助理:用于API智能发现和推荐
- 代码生成工具:用于自动生成API客户端
- BPMN设计师:用于IFS集成的流程自动化
- 文档工具:对于API目录和使用示例
许可证
麻省理工学院
