OpenAPI转TypeScript代码生成器

将OpenAPI规范转换为TypeScript代码并生成MCP服务器的工具,简化基于OpenAPI YAML文件的TypeScript模式和处理器生成过程。

  • by alikarimii
  • Python
  • 本地部署
  • 4 星标
  • 更新于
在 GitHub 查看 alikarimii/mcp_builder

使用说明

MCP生成器

该项目旨在将OpenAPI规范转换为TypeScript代码并生成MCP Server。它提供了一种基于OpenAPI YAML文件中提供的定义生成TypeScript模式和处理程序的简单方法。

此项目使用OpenAPI v3,要将v2转换为v3,请查看此文档: openapi3解析器

生成代码

要运行项目,请激活venv:

uv venv --python 3.12.9
source .venv/bin/activate
uv install

然后,您可以运行生成器脚本将OpenAPI YAML文件转换为TypeScript代码。下面的命令假设您有一个名为的OpenAPI YAML文件 example/openapi_v3.yaml 您想在中生成TypeScript文件 output 目录,使用位于 src/templates 目录。

python -m src.main --input=example/openapi_v3.yaml --output_dir=output --templates_dir=src/templates

或

make run

准备MCP服务器

将目录更改为 output,创建 .env 文件并将envs放在那里,然后运行:

npm i

检查服务器

跑 node dist/server.js你应该看到开头的信息。(MCP服务器正在运行…)

使用MCP服务器

VsCode

创建 .vscode 在项目的根目录下创建文件夹 mcp.json 文件。

{
  "servers": {
    "gitlab": {
      "command": "node",
      "args": [
        "/path/to/mcp_builder/output/dist/server.js" ## Change this base on your path
      ],
      "env": {
        "ACCESS_TOKEN": "ss", ## change it
        "API_URL": "ss" ## change it
      },
      "type": "stdio"
    }
  }
}

克莱恩

找到 cline_mcp_settings.json 在您的设备中添加以下内容:

{
  "mcpServers": {
    "gitlab": {
      "disabled": false,
      "timeout": 60,
      "command": "node",
      "args": [
        "/path/to/mcp_builder/output/dist/server.js" ## Change this base on your path
      ],
      "env": {
        "ACCESS_TOKEN": "ss", ## change it
        "API_URL": "ss" ## change it
      },
      "transportType": "stdio"
    }
  }
}

如果生成的工具超过约50个,则不会显示在Cline列表中。您可以在中筛选列表 src/templates/server.ts.j2 并再次生成它:

...
server.setRequestHandler(ListToolsRequestSchema, async () => {
  return {
    tools: Object.entries(toolStore).slice(0,50).map(([name, tool]) => ({
      name,
      description: tool.definition.description,
      inputSchema: tool.definition.inputSchema,
    })),
  };
});
...