OpenAPI转换服务器

一个HTTP服务器,将OpenAPI规范转换为MCP工具并代理调用上游API。

  • by merzzzl
  • Go
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 merzzzl/openapi-mcp-server

使用说明

OpenAPI MCP服务器

HTTP服务器,将OpenAPI规范转换为MCP工具,并代理对上游API的调用。

快速开始

  1. 克隆存储库:
git clone https://github.com/merzzzl/openapi-mcp-server.git
cd openapi-mcp-server
  1. 复制并编辑配置:
cp config.example.yaml config.yaml
  1. 运行服务器:
go run ./cmd/app -config config.yaml
  1. MCP端点位于:
http://localhost:9090/{server_name}/mcp   — Streamable HTTP
http://localhost:9090/{server_name}/sse   — SSE
  1. 健康检查:
http://localhost:8080/healthz

配置

# Main HTTP server port (defaults to ":8080").
port: ":9090"

# Enable TOON format for tool responses.
enable_toon: false

# OpenTelemetry: traces, logs, metrics via OTLP gRPC.
# If endpoint is empty — traces and metrics are disabled, logs go to stdout.
telemetry:
  endpoint: "localhost:4317"
  insecure: true

# List of OpenAPI servers. Each one is registered as a separate MCP server.
servers:
  - # Server name — used in URL path (/{name}/mcp, /{name}/sse).
    name: petstore

    # OpenAPI specification URL (v2 or v3).
    schema_url: "https://petstore3.swagger.io/api/v3/openapi.json"

    # Base URL for proxying tool calls.
    base_url: "https://petstore3.swagger.io/api/v3"

    # Operation filter rules. allow — whitelist, block — blacklist.
    # Each rule: methods (HTTP methods) + regex (path pattern).
    allow:
      - methods: ["GET", "POST", "PUT", "DELETE"]
        regex: ".*"
    block: []

码头工人

docker pull ghcr.io/merzzzl/openapi-mcp-server:latest
docker run \
  -p 9090:9090 \
  -v $(pwd)/config.yaml:/config.yaml \
  ghcr.io/merzzzl/openapi-mcp-server:latest

先决条件

  • 转到>=1.24
  • OpenTetry收集器(可选,用于遥测收集)