该项目旨在将OpenAPI规范转换为TypeScript代码,并生成MCP服务器。它提供了一种简单的方法,根据OpenAPI YAML文件中的定义生成TypeScript模式和处理器。
本项目支持OpenAPI v3,如需将v2转换为v3,请参阅此文档:openapi3-parser
要运行项目,请激活虚拟环境:
uv venv --python 3.12.9
source .venv/bin/activate
uv install
然后,您可以运行生成器脚本来将您的OpenAPI YAML文件转换为TypeScript代码。以下命令假设您有一个名为example/openapi_v3.yaml的OpenAPI YAML文件,并希望在output目录中生成TypeScript文件,使用位于src/templates目录中的模板。
python -m src.main --input=example/openapi_v3.yaml --output_dir=output --templates_dir=src/templates
或者
make run
切换到output目录,创建一个.env文件并放置您的环境变量,然后运行:
npm i
运行node dist/server.js。您应该看到启动消息。(MCP服务器正在运行...)
在项目的根目录下创建一个.vscode文件夹,并创建一个mcp.json文件。
{
"servers": {
"gitlab": {
"command": "node",
"args": [
"/path/to/mcp_builder/output/dist/server.js" ## 根据您的路径更改此内容
],
"env": {
"ACCESS_TOKEN": "ss", ## 更改此内容
"API_URL": "ss" ## 更改此内容
},
"type": "stdio"
}
}
}
在您的设备上找到cline_mcp_settings.json文件,并添加以下内容:
{
"mcpServers": {
"gitlab": {
"disabled": false,
"timeout": 60,
"command": "node",
"args": [
"/path/to/mcp_builder/output/dist/server.js" ## 根据您的路径更改此内容
],
"env": {
"ACCESS_TOKEN": "ss", ## 更改此内容
"API_URL": "ss" ## 更改此内容
},
"transportType": "stdio"
}
}
}
如果生成的工具超过约50个,则它们不会显示在命令行列表中。您可以在
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,
})),
};
});
...