OpenAPI代理工具

mcp-openapi-proxy是一个Python包,实现了一个模型上下文协议(MCP)服务器,旨在动态地将由OpenAPI规范定义的REST API作为MCP工具公开,便于将OpenAPI描述的API集成到基于MCP的工作流中。

作者 By matthewhand
本地部署 OpenAPI RESTAPI
GitHub

mcp openapi代理

mcp openapi代理 是一个Python包,它实现了一个模型上下文协议(MCP)服务器,旨在将OpenAPI规范定义的REST API动态公开为MCP工具。这有助于将OpenAPI描述的API无缝集成到基于MCP的工作流中。

目录

  • 概述

  • 特性

  • 安装

  • MCP生态系统整合

  • 操作模式

  • 快速MCP模式(简单模式)

  • 低级别模式(默认)

  • 环境变量

  • 例子

  • Glama示例

  • Fly.io示例

  • 渲染示例

  • 松弛示例

  • GetZep示例

  • 病毒总数示例

  • 概念示例

  • Asana示例

  • APIs.guru示例

  • NetBox示例

  • 方框API示例

  • WolframAlpha API示例

  • 故障排除

  • 许可证

概述

该软件包提供两种操作模式:

  • 低级模式(默认): 动态注册与OpenAPI文档中指定的所有有效API端点对应的工具(例如。 /chat/completions 成为 chat_completions()).
  • 快速MCP模式(简单模式): 通过公开一组预定义的工具(例如。 list_functions()call_function())基于静态配置。

特性

  • 动态工具生成: 根据OpenAPI端点定义自动创建MCP工具。
  • 简单模式选项: 通过FastMCP模式提供静态配置替代方案。
  • OpenAPI规范支持: 与OpenAPI v3兼容,并可能支持v2。
  • 灵活过滤: 允许根据路径或其他条件通过白名单进行端点过滤。
  • 有效载荷身份验证: 支持通过JMESPath表达式进行自定义身份验证(例如,对于像Slack这样的API,它们期望有效载荷中的令牌而不是HTTP标头)。
  • 标头身份验证: 用途 Bearer 默认情况下为 API_KEY 在Authorization标头中,可针对Fly.io等API进行定制 Api-Key.
  • MCP集成: 与MCP生态系统无缝集成,以调用REST API作为工具。

安装

使用以下命令直接从PyPI安装包:

BASH``` 1uvx mcp-openapi-proxy


### MCP生态系统整合


包括 **mcp openapi代理** 在您的MCP生态系统中配置它 `mcpServers` 设置。下面是一个通用示例:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12{
    "mcpServers": {
        "mcp-openapi-proxy": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "${OPENAPI_SPEC_URL}",
                "API_KEY": "${API_OPENAPI_KEY}"
            }
        }
    }
}

请参阅 例子 下面的部分介绍了为特定API量身定制的实用配置。

操作模式

快速MCP模式(简单模式)

  • 启用方式: 设置环境变量 OPENAPI_SIMPLE_MODE=true.
  • 说明: 公开一组从代码中定义的特定OpenAPI端点派生的固定工具。
  • 配置: 依赖于环境变量来指定工具行为。

低级别模式(默认)

  • 说明: 自动将提供的OpenAPI规范中的所有有效API端点注册为单独的工具。
  • 工具命名: 从标准化的OpenAPI路径和方法中导出工具名称。
  • 行为: 从OpenAPI操作摘要和描述生成工具描述。

环境变量

  • OPENAPI_SPEC_URL:(必填)OpenAPI规范JSON文件的URL(例如。 https://example.com/spec.jsonfile:///path/to/local/spec.json).
  • OPENAPI_LOGFILE_PATH:(可选)指定日志文件路径。
  • OPENAPI_SIMPLE_MODE:(可选)设置为 true 启用FastMCP模式。
  • TOOL_WHITELIST:(可选)以逗号分隔的端点路径列表,作为工具公开。
  • TOOL_NAME_PREFIX:(可选)所有工具名称前的前缀。
  • API_KEY:(可选)发送为API的身份验证令牌 Bearer <API_KEY> 默认情况下,在“授权”标题中。
  • API_AUTH_TYPE:(可选)覆盖默认值 Bearer 授权标头类型(例如。 Api-Key GetZep)。
  • STRIP_PARAM:(可选)JMESPath表达式,用于删除不需要的参数(例如。 token Slack)。
  • DEBUG:(可选)当设置为“true”、“1”或“yes”时,启用详细调试日志记录。
  • EXTRA_HEADERS:(可选)附加到传出API请求的“Header:Value”格式的HTTP标头(每行一个)。
  • SERVER_URL_OVERRIDE:(可选)设置时覆盖OpenAPI规范中的基本URL,这对自定义部署很有用。
  • TOOL_NAME_MAX_LENGTH:(可选)将工具名称截断到最大长度。
  • 附加变量: OPENAPI_SPEC_URL_<hash> –每个测试配置的唯一变体(可追溯到 OPENAPI_SPEC_URL).
  • IGNORE_SSL_SPEC:(可选)设置为 true 在获取OpenAPI规范时禁用SSL证书验证。
  • IGNORE_SSL_TOOLS:(可选)设置为 true 禁用工具发出的API请求的SSL证书验证。

例子

为了进行测试,您可以按照示例中的演示运行uvx命令,然后通过JSON-RPC消息与MCP服务器交互,列出工具和资源。请参阅下面的“JSON-RPC测试”部分。

Glama示例

Glama为mcp-openapi代理提供了最简单的配置,只需要 OPENAPI_SPEC_URL 环境变量。这种简单性使其成为快速测试的理想选择。

1.验证OpenAPI规范

检索Glama OpenAPI规范:

BASH``` 1curl https://glama.ai/api/mcp/openapi.json


确保响应是有效的OpenAPI JSON文档。


#### 2.为Glama配置mcp-openapi代理


将以下配置添加到MCP生态系统设置中:


JSON```
1
2
3
4
5
6
7
8
9
10
11{
    "mcpServers": {
        "glama": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "https://glama.ai/api/mcp/openapi.json"
            }
        }
    }
}

3.测试

使用以下方式启动服务:

BASH``` 1OPENAPI_SPEC_URL=“https://glama.ai/api/mcp/openapi.json” uvx mcp-openapi-proxy


然后参考 JSON-RPC测试 有关列出资源和工具的说明的部分。


### Fly.io示例


![](https://gips3.baidu.com/it/u=49939929,2422089245&fm=3081&app=3081&f=PNG?w=1005&h=828)


Fly.io为管理机器提供了一个简单的API,使其成为理想的起点。从获取API令牌 [Fly.io文档](https://fly.io/docs/hands-on/install-flyctl/).


#### 1.验证OpenAPI规范


[检索Fly.io](http://xn--Fly-cf1gu38f.io) OpenAPI规范:


BASH```
1curl https://raw.githubusercontent.com/abhiaagarwal/peristera/refs/heads/main/fly-machines-gen/fixed_spec.json

确保响应是有效的OpenAPI JSON文档。

2.为Fly.io配置mcp-openapi代理

更新您的MCP生态系统配置:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12{ “mcpServers”: { “flyio”: { “command”: “uvx”, “args”: [“mcp-openapi-proxy”], “env”: { “OPENAPI_SPEC_URL”: “https://raw.githubusercontent.com/abhiaagarwal/peristera/refs/heads/main/fly-machines-gen/fixed_spec.json”, “API_KEY”: “<your_flyio_token_here>” } } } }


- **OPENAPI_SPEC_URL**:[指向Fly.io](http://xn--Fly-633ez79d.io) OpenAPI规范。
- **API_密钥**:[您的Fly.io](http://xn--Fly-jn4fy87g.io) API代币(替换 `<your_flyio_token_here>`).
- **API_AUTH_类型**:设置为 `Api-Key` 用于Fly.io的基于头部的身份验证(覆盖默认值 `Bearer`).


#### 3.测试


启动服务后,请参阅 JSON-RPC测试 有关列出资源和工具的说明的部分。


### 渲染示例


![](https://gips1.baidu.com/it/u=3992748716,1603396713&fm=3081&app=3081&f=PNG?w=954&h=900)


Render提供可以通过API管理的基础设施托管。提供的配置文件 `examples/render-claude_desktop_config.json` 演示如何使用最少的设置快速设置MCP生态系统。


#### 1.验证OpenAPI规范


检索Render OpenAPI规范:


BASH```
1curl https://api-docs.render.com/openapi/6140fb3daeae351056086186

确保响应是有效的OpenAPI文档。

2.为Render配置mcp-openapi代理

将以下配置添加到MCP生态系统设置中:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13{ “mcpServers”: { “render”: { “command”: “uvx”, “args”: [“mcp-openapi-proxy”], “env”: { “OPENAPI_SPEC_URL”: “https://api-docs.render.com/openapi/6140fb3daeae351056086186”, “TOOL_WHITELIST”: “/services,/maintenance”, “API_KEY”: “your_render_token_here” } } } }


#### 3.测试


使用渲染配置启动代理:


BASH```
1OPENAPI_SPEC_URL="https://api-docs.render.com/openapi/6140fb3daeae351056086186" TOOL_WHITELIST="/services,/maintenance" API_KEY="your_render_token_here" uvx mcp-openapi-proxy

然后参考 JSON-RPC测试 有关列出资源和工具的说明的部分。

松弛示例

Slack的API展示了使用JMESPath剥离不必要的令牌负载。从以下位置获取机器人令牌 Slack API文档.

1.验证OpenAPI规范

检索Slack OpenAPI规范:

BASH``` 1curl https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json


确保它是一个有效的OpenAPI JSON文档。


#### 2.为Slack配置mcp-openapi代理


更新您的配置:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
    "mcpServers": {
        "slack": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/slackapi/slack-api-specs/master/web-api/slack_web_openapi_v2.json",
                "TOOL_WHITELIST": "/chat,/bots,/conversations,/reminders,/files,/users",
                "API_KEY": "<your_slack_bot_token, starts with xoxb>",
                "STRIP_PARAM": "token",
                "TOOL_NAME_PREFIX": "slack_"
            }
        }
    }
}
  • OPENAPI_SPEC_URL:Slack的OpenAPI规范URL。
  • TOOL_WHITELIST:将工具限制在有用的端点组(例如聊天、对话、用户)。
  • API_密钥:您的Slack机器人令牌(例如。 xoxb-...,替换 <your_slack_bot_token>).
  • STRIP_PARAM:从请求负载中删除令牌字段。
  • 工具名称前缀:前言 slack_ 工具名称。

3.测试

启动服务后,请参阅 JSON-RPC测试 有关列出资源和工具的说明的部分。

GetZep示例

GetZep提供了一个免费的云API,用于内存管理和详细的端点。由于GetZep没有提供官方的OpenAPI规范,为了方便起见,该项目包含了一个托管在GitHub上的生成规范。用户可以类似地为任何REST API生成OpenAPI规范,并在本地引用它们(例如。 file:///path/to/spec.json).从获取API密钥 GetZep的文档.

1.验证OpenAPI规范

检索项目提供的GetZep OpenAPI规范:

BASH``` 1curl https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/getzep.swagger.json


确保它是一个有效的OpenAPI JSON文档。或者,生成自己的规范并使用 `file://` 引用本地文件的URL。


#### 2.为GetZep配置mcp-openapi代理


更新您的配置:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15{
    "mcpServers": {
        "getzep": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/getzep.swagger.json",
                "TOOL_WHITELIST": "/sessions",
                "API_KEY": "<your_getzep_api_key>",
                "API_AUTH_TYPE": "Api-Key",
                "TOOL_NAME_PREFIX": "zep_"
            }
        }
    }
}
  • OPENAPI_SPEC_URL:指向项目提供的GetZep Swagger规范(或使用 file:///path/to/your/spec.json 对于本地文件)。
  • TOOL_WHITELIST:限制 /sessions 端点。
  • API_密钥:您的GetZep API密钥。
  • API_AUTH_类型:用途 Api-Key 用于基于报头的身份验证。
  • 工具名称前缀:前言 zep_ 工具名称。

3.测试

启动服务后,请参阅 JSON-RPC测试 有关列出资源和工具的说明的部分。

病毒总数示例

此示例演示了:

  • 使用YAML OpenAPI规范文件
  • 使用自定义HTTP身份验证标头“x-apikey”

1.验证OpenAPI规范

检索Virustotal OpenAPI规范:

BASH``` 1curl https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml


确保响应是有效的OpenAPI YAML文档。


#### 2.为Virustotal配置mcp-openapi代理


将以下配置添加到MCP生态系统设置中:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13{
    "mcpServers": {
        "virustotal": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml",
                "EXTRA_HEADERS": "x-apikey: ${VIRUSTOTAL_API_KEY}",
                "OPENAPI_SPEC_FORMAT": "yaml"
            }
        }
    }
}

配置要点:

  • 默认情况下,代理需要JSON规范,并发送带有Bearer前缀的API密钥。
  • 要使用YAML OpenAPI规范,请包括 OPENAPI_SPEC_FORMAT="yaml".
  • 注意:VirusTotal需要一个特殊的身份验证标头;EXTRA_HEADERS用于将API密钥传输为“x-apikey:${VIRUSTOTAL_API_key}”。

3.测试

使用Virustotal配置启动代理:

BASH``` 1OPENAPI_SPEC_URL=“https://raw.githubusercontent.com/matthewhand/mcp-openapi-proxy/refs/heads/main/examples/virustotal.openapi.yml” API_KEY=“your_virustotal_api_key” API_AUTH_HEADER=“x-apikey” API_AUTH_TYPE="" OPENAPI_SPEC_FORMAT=“yaml” uvx mcp-openapi-proxy


启动服务后,请参阅 JSON-RPC测试 有关列出资源和工具的说明的部分。


### 概念示例


![](https://gips0.baidu.com/it/u=2271612618,3219517787&fm=3081&app=3081&f=PNG?w=1343&h=1288)


Notion的API要求通过HTTP头指定特定的版本。此示例使用 `EXTRA_HEADERS` 环境变量包含所需的标头,并侧重于验证OpenAPI规范。


#### 1.验证OpenAPI规范


检索Notion OpenAPI规范:


BASH```
1curl https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml

确保响应是有效的YAML文档。

2.为Notion配置mcp-openapi代理

将以下配置添加到MCP生态系统设置中:

JSON``` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16{ “mcpServers”: { “notion”: { “command”: “uvx”, “args”: [ “mcp-openapi-proxy” ], “env”: { “API_KEY”: “ntn_<your_key>”, “OPENAPI_SPEC_URL”: “https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml”, “SERVER_URL_OVERRIDE”: “https://api.notion.com”, “EXTRA_HEADERS”: “Notion-Version: 2022-06-28” } } } }


#### 3.测试


使用Notion配置启动代理:


BASH```
1OPENAPI_SPEC_URL="https://storage.googleapis.com/versori-assets/public-specs/20240214/NotionAPI.yml" SERVER_URL_OVERRIDE="https://api.notion.com" EXTRA_HEADERS="Notion-Version: 2022-06-28" API_KEY="ntn_<your_key>" uvx mcp-openapi-proxy

启动服务后,请参阅 JSON-RPC测试 有关列出资源和工具的说明的部分。

Asana示例

Asana为管理工作区、任务、项目和用户提供了一组丰富的端点。集成测试演示了端点的使用,例如 GET /workspaces, GET /tasks,以及 GET /projects.

1.验证OpenAPI规范

检索Asana OpenAPI规范:

BASH``` 1curl https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml


确保响应是有效的YAML(或JSON)文档。


#### 2.为Asana配置mcp-openapi代理


将以下配置添加到MCP生态系统设置中:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16{
  "mcpServers": {
    "asana": {
      "command": "uvx",
      "args": [
        "mcp-openapi-proxy"
      ],
      "env": {
        "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml",
        "SERVER_URL_OVERRIDE": "https://app.asana.com/api/1.0",
        "TOOL_WHITELIST": "/workspaces,/tasks,/projects,/users",
        "API_KEY": "${ASANA_API_KEY}"
      }
    }
  }
}

注意:大多数Asana API端点都需要身份验证。集 ASANA_API_KEY 在您的环境中或 .env 具有有效令牌的文件。

3.测试

使用以下方式启动服务:

BASH``` 1ASANA_API_KEY=“<your_asana_api_key>” OPENAPI_SPEC_URL=“https://raw.githubusercontent.com/Asana/openapi/refs/heads/master/defs/asana_oas.yaml” SERVER_URL_OVERRIDE=“https://app.asana.com/api/1.0” TOOL_WHITELIST=“/workspaces,/tasks,/projects,/users” uvx mcp-openapi-proxy


然后,您可以使用MCP生态系统列出和调用端点的工具,如 `/dcim/devices/` 和 `/ipam/ip-addresses/`.


### APIs.guru示例


APIs.guru为数千个公共API提供了OpenAPI定义目录。此示例显示了如何使用mcp-openapi代理将APIs.guru目录作为mcp工具公开。


#### 1.验证OpenAPI规范


检索APIs.guru OpenAPI规范:


BASH```
1curl https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml

确保响应是有效的OpenAPI YAML文档。

2.为APIs.guru配置mcp-openapi代理

将以下配置添加到MCP生态系统设置中:

JSON``` 1 2 3 4 5 6 7 8 9 10 11{ “mcpServers”: { “apisguru”: { “command”: “uvx”, “args”: [“mcp-openapi-proxy”], “env”: { “OPENAPI_SPEC_URL”: “https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml” } } } }


#### 3.测试


使用以下方式启动服务:


BASH```
1OPENAPI_SPEC_URL="https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/apis.guru/2.2.0/openapi.yaml" uvx mcp-openapi-proxy

然后,您可以使用MCP生态系统列出和调用以下工具 listAPIs, getMetrics,以及 getProviders 它们在APIs.guru目录中定义。

NetBox示例

NetBox是一个开源的IP地址管理(IPAM)和数据中心基础设施管理(DCIM)工具。此示例演示如何使用mcp-openapi-proxy将NetBox API公开为mcp工具。

1.验证OpenAPI规范

检索NetBox OpenAPI规范:

BASH``` 1curl https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml


确保响应是有效的OpenAPI YAML文档。


#### 2.为NetBox配置mcp-openapi代理


将以下配置添加到MCP生态系统设置中:


JSON```
1
2
3
4
5
6
7
8
9
10
11
12{
    "mcpServers": {
        "netbox": {
            "command": "uvx",
            "args": ["mcp-openapi-proxy"],
            "env": {
                "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml",
                "API_KEY": "${NETBOX_API_KEY}"
            }
        }
    }
}

注意:大多数NetBox API端点都需要身份验证。集 NETBOX_API_KEY 在您的环境中或 .env 具有有效令牌的文件。

3.测试

使用以下方式启动服务:

BASH``` 1OPENAPI_SPEC_URL=“https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/netbox.dev/3.4/openapi.yaml” API_KEY=“$NETBOX_API_KEY” uvx mcp-openapi-proxy


然后,您可以使用MCP生态系统列出和调用端点的工具,如 `/dcim/devices/` 和 `/ipam/ip-addresses/`.


### 方框API示例


您可以使用自己的开发人员令牌集成Box平台API,以便通过身份验证访问Box帐户。此示例演示如何将Box API端点公开为MCP工具。


#### 配置示例: `examples/box-claude_desktop_config.json`


JSON```
1
2
3
4{
  "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/box.com/2.0.0/openapi.yaml",
  "API_KEY": "${BOX_API_KEY}"
}
  • 将Box开发人员令牌设置为中的环境变量 .env:
1BOX_API_KEY=your_box_developer_token
  • 或者使用单行命令运行代理:

BASH``` 1OPENAPI_SPEC_URL=“https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/box.com/2.0.0/openapi.yaml” API_KEY=“$BOX_API_KEY” uvx mcp-openapi-proxy



您现在可以使用MCP生态系统列出并调用Box API工具。有关集成测试,请参阅 `tests/integration/test_box_integration.py`.


### WolframAlpha API示例


您可以使用自己的应用程序ID集成WolframAlpha API进行身份验证访问。此示例演示如何将WolframAlpha API端点公开为MCP工具。


#### 配置示例: `examples/wolframalpha-claude_desktop_config.json`


JSON```
1
2
3
4
5
6
7
8
9
10
11
12
13
14{
  "mcpServers": {
    "wolframalpha": {
      "command": "uvx",
      "args": [
        "mcp-openapi-proxy"
      ],
      "env": {
        "OPENAPI_SPEC_URL": "https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/wolframalpha.com/v0.1/openapi.yaml",
        "API_KEY": "${WOLFRAM_LLM_APP_ID}"
      }
    }
  }
}
  • 将WolframAlpha应用程序ID设置为环境变量 .env:
1WOLFRAM_LLM_APP_ID=your_wolfram_app_id
  • 或者使用单行命令运行代理:

BASH``` 1OPENAPI_SPEC_URL=“https://raw.githubusercontent.com/APIs-guru/openapi-directory/refs/heads/main/APIs/wolframalpha.com/v0.1/openapi.yaml” API_KEY=“$WOLFRAM_LLM_APP_ID” uvx mcp-openapi-proxy



您现在可以使用MCP生态系统列出并调用WolframAlpha API工具。有关集成测试,请参阅 `tests/integration/test_wolframalpha_integration.py`.


## 故障排除


### JSON-RPC测试


对于替代测试,您可以通过JSON-RPC与MCP服务器交互。启动服务器后,粘贴以下初始化消息:


JSON```
1{"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"claude-ai","version":"0.1.0"}},"jsonrpc":"2.0","id":0}

预期响应:

JSON``` 1{“jsonrpc”:“2.0”,“id”:0,“result”:{“protocolVersion”:“2024-11-05”,“capabilities”:{“experimental”:{},“prompts”:{“listChanged”:false},“resources”:{“subscribe”:false,“listChanged”:false},“tools”:{“listChanged”:false}},“serverInfo”:{“name”:“sqlite”,“version”:“0.1.0”}}}


然后粘贴这些后续消息:


JSON```
1
2
3{"method":"notifications/initialized","jsonrpc":"2.0"}
{"method":"resources/list","params":{},"jsonrpc":"2.0","id":1}
{"method":"tools/list","params":{},"jsonrpc":"2.0","id":2}
  • 缺少OPENAPI_SPEC_URL: 确保它设置为有效的OpenAPI JSON URL或本地文件路径。
  • 无效规范: 验证OpenAPI文档是否符合标准。
  • 工具筛选问题: 检查 TOOL_WHITELIST 匹配所需的端点。
  • 身份验证错误: 确认 API_KEYAPI_AUTH_TYPE 是正确的。
  • 登录中:DEBUG=true 以获取stderr的详细输出。
  • 测试服务器: 直接运行:

BASH``` 1uvx mcp-openapi-proxy


## 许可证


MIT许可证