Back to MCP directory
publicPublicdnsLocal runtime

openapi-mcp-server-3wh

一个支持多种通信协议(标准I/O、SSE、OpenAPI)的MCP服务器框架,提供Docker部署方式和配置示例。

article

README

🚀 OpenAPI MCP 服务器

这是一个示例项目,可作为您构建自己的 MCP 服务器的起点。示例中的加法函数展示了如何在三种协议中实现处理程序。

🚀 快速开始

本项目提供了一个可用于构建自定义 MCP 服务器的示例,通过示例中的加法函数,您能了解如何在三种协议中实现处理程序。

✨ 主要特性

当前实现状态:

  • ✅ 标准输入输出(stdio)
  • ✅ Server-Sent Events(SSE)
  • ✅ OpenAPI/REST 端点

📦 安装指南

使用 Docker Compose

  1. 构建容器:
docker compose build
  1. 运行特定服务:
# 同时运行所有服务
docker compose up

# 仅运行SSE服务器
docker compose up sse-mcp-server

# 仅运行OpenAPI服务器
docker compose up openapi-mcp-server

直接使用 Docker

您也可以直接使用 Docker 运行该服务器:

# 在stdio模式下运行
docker run -i --rm -e MODE=stdio 3loc/openapi-mcp-server

# 在SSE模式下运行
docker run -p 8001:8000 --rm -e MODE=sse 3loc/openapi-mcp-server

# 在OpenAPI模式下运行
docker run -p 8002:8000 --rm -e MODE=openapi 3loc/openapi-mcp-server

📚 详细文档

运行模式

服务器支持三种不同的运行模式,由 MODE 环境变量控制:

  • stdio:以标准 I/O 服务器运行
  • sse:以 Server-Sent Events 服务器运行(端口 8001)
  • openapi:以 OpenAPI/REST 服务器运行(端口 8002)

配置

服务器可以通过一个 mcp.json 文件进行配置。以下是一个示例配置:

{
  "mcpServers": {
    "stdio-mcp-server": {
      "command": "docker",
      "args": [
        "run",
        "--rm", 
        "-i",
        "--name", "openapi-mcp-server",
        "-e", "MODE=stdio",
        "3loc/openapi-mcp-server"
      ]
    },
    "sse-mcp-server": {
      "url": "http://localhost:8001/sse"
    }
  }
}

开发

该项目为实现一个具有多种通信协议的 MCP 服务器提供了基础。所有三种模式(stdio、SSE 和 OpenAPI)现已实现,并可根据需要互换使用。

help

Runtime guide

cloud

Hosted runtime

Hosted servers run from a provider-managed environment. You usually connect the MCP client to the hosted endpoint or follow the provider's authorization flow, without keeping a local process alive

  1. Open provider connection page
  2. Authorize or copy endpoint
  3. Connect from your MCP client
terminal

Local runtime / other methods

Local servers run on your own machine or infrastructure. You normally copy the server_config into your MCP client, install the required package, and provide env variables from env_schema when needed

  1. Copy server_config
  2. Install required package
  3. Fill env variables and restart client