Token导航 LogoToken导航TokenDH.com
MCP Openapi Oauth2 logo
安全风控stdio官方级别未说明来源级核验

MCP Openapi Oauth2

MCP Server

一个基于OpenAPI规范自动生成MCP工具并支持OAuth2认证的服务器。

工具数

0

提示词数

0

GitHub Stars

0

资源数

0
API集成TypeScriptClaudeAPI开发Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

krrrr38

提供方

krrrr38

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run -d -p 3030:3030 \

详细介绍

MCP OpenAPI OAuth2 服务器

根据OpenAPI规范自动生成MCP工具的服务器。

设置

本地开发

pnpm install
pnpm run generate  # OpenAPI からツール生成
pnpm run dev       # サーバー起動 (http://localhost:3030)

Docker

在构建Docker镜像时 specs/ 复制目录的OpenAPI规范以生成工具。

1. 准备OpenAPI规范:

specs/ 在目录中放置以下内容:

  • specs-config.json - 工具生成设置
  • OpenAPI YAML/JSON 文件

specs/specs-config.json 示例:

[
  {
    "name": "myapi",
    "spec": "./specs/my-api.yaml",
    "baseUrl": "https://api.example.com"
  }
]

2. 构建:

docker build -t mcp-openapi-oauth2 .

若使用不同的OpenAPI规范specs/ 请对其进行编辑并重新构建。

3. 启动:

# 基本起動
docker run -d -p 3030:3030 \
  -e API_BASE_URL=https://api.example.com \
  mcp-openapi-oauth2

# OAuth2認証付き
docker run -d -p 3030:3030 \
  -e API_BASE_URL=https://api.example.com \
  -e OAUTH_CLIENT_ID=your-client-id \
  -e OAUTH_CLIENT_SECRET=your-client-secret \
  -e OAUTH_TOKEN_URL=https://auth.example.com/oauth/token \
  -e OAUTH_SCOPES="read write" \
  mcp-openapi-oauth2

4. 健康检查:

curl http://localhost:3030/health

命令

开发

  • pnpm run generate - 从OpenAPI生成工具

- specs/specs-config.json 从加载设置

  • pnpm run dev - 启动开发服务器(端口3030)
  • pnpm run build - 构建
  • pnpm run lint - 林特
  • pnpm run format - 格式

调试工具

  • pnpm run debug:mock-api - 启动模拟API服务器(端口8080)
  • pnpm run debug:list-tools - 显示工具列表
  • pnpm run debug:call-tool - 工具执行(例如: pnpm run debug:call-tool getPetById '{"petId": "1"}'
  • pnpm run debug:inspector - 启动MCP Inspector(在浏览器中测试)

终端设备

  • GET /health - 健康检查
  • GET/POST /mcp - MCP 可流式传输HTTP终端(用于Claude Desktop)

与Mock API的集成

工具是环境变量API_BASE_URL然后从指定的API服务器获取数据。

# Mock APIサーバー起動 (port 8080)
pnpm run debug:mock-api

# MCPサーバー起動 (デフォルトでlocalhost:8080に接続)
pnpm run dev

# または別のAPIサーバーを指定
API_BASE_URL=https://api.example.com pnpm run dev

架构

specs/                     # OpenAPI仕様ファイル(Dockerボリュームマウント対象)
├── specs-config.json      # ツール生成設定
├── petstore.yaml          # サンプル: Petstore API
└── todo.yaml              # サンプル: Todo API

src/
├── index.ts               # サーバー (Hono + StreamableHTTP)
├── api-executor.ts        # OAuth2トークン注入ラッパー
├── auth/
│   └── oauth2-client.ts   # OAuth2 Client Credentials Flow
├── generator/             # OpenAPI → ツール生成
│   └── generate-from-openapi.ts
└── __generated__/         # 自動生成されたファイル
    ├── petstore/          # Petstore API tools
    ├── todo/              # Todo API tools
    ├── common/            # 共通コード (executor, security)
    └── index.ts           # aggregator

debug/
├── mock-api-server.ts    # Mock APIサーバー
├── list-tools.ts         # ツール一覧表示
└── call-tool.ts          # ツール実行

OAuth2认证

支持OAuth2客户端凭证流程。设置环境变量后,所有请求将 Authorization: Bearer ${token} 会自动授予。

export OAUTH_CLIENT_ID="your-client-id"
export OAUTH_CLIENT_SECRET="your-client-secret"
export OAUTH_TOKEN_URL="https://auth.example.com/oauth/token"
export OAUTH_SCOPES="read write"  # オプション

pnpm run dev
  • 令牌自动获取、缓存、更新
  • 在多个OpenAPI规范中共享同一令牌
  • 如未设置环境变量,则无需认证即可运行

环境变量

服务器设置

  • PORT - MCP服务器端口(默认:3030)
  • API_BASE_URL - 要连接的API的基础URL(默认:http://localhost:8080)

OAuth2 认证(可选)

  • OAUTH_CLIENT_ID - OAuth2 客户端 ID
  • OAUTH_CLIENT_SECRET - OAuth2 客户端密钥
  • OAUTH_TOKEN_URL - OAuth2令牌端点URL
  • OAUTH_SCOPES - OAuth2 权限范围(空格分隔,可选)

用于调试

  • MOCK_API_PORT - 模拟API服务器的端口(默认:8080)
  • OPENAPI_SPEC - 用于模拟API的OpenAPI规范路径(默认:./petstore.yaml)

来自MCP客户端的验证方法

在能够通过http://localhost:3030/mcp连接到服务器的前提下,可以执行以下操作

MCP检查员

pnpm run debug:inspector 通过inspector进行验证

克劳德·科德

如果使用claude code进行连接,可以通过以下命令进行确认

$ claude mcp add --transport http example http://localhost:3030/mcp
$ claude
claude> /mcp

目录标签

目录标签

API集成TypeScriptClaudeAPI开发OpenAPI本地部署工具生成OAuth2认证

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

oauth

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiooauth部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP