API推荐服务器

一个为IFS ERP系统提供智能API发现和推荐的MCP服务器,通过分析OData元数据文件并根据自然语言任务描述推荐合适的API。

  • by Yorktel-IM
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 yorktel-im/ifs-api-mcp-server

使用说明

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"

用法

元数据设置

  1. 将IFS OData元数据JSON文件放在 ./metadata 目录
  2. 服务器将自动解析并索引所有 .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目录和使用示例

许可证

麻省理工学院