mcp-openapi

mcp-openapi

Enables AI agents to discover, search, and call any REST API described by an OpenAPI or Swagger document. Supports multiple API endpoints with authentication and parameter handling.

Category
访问服务器

README

@avidian/mcp-openapi

MCP server for OpenAPI/Swagger — gives AI agents the ability to discover, search, and call any REST API described by an OpenAPI or Swagger document.

Point it at a single OpenAPI/Swagger document (URL or local file, 2.0/3.0/3.1) and it exposes:

  • The full, dereferenced document as a readable MCP resource
  • A keyword search tool for finding the right operation when a spec defines many of them
  • One MCP tool per operation, which proxies a real HTTP request to the underlying API

Installation

npm (requires Node.js ≥ 20)

npm install -g @avidian/mcp-openapi

Compiled binary (no runtime needed)

Download from GitHub Releases.

Usage

mcp-openapi <openapi-url-or-path> [--base-url <url>] [--timeout <ms>]
mcp-openapi https://petstore3.swagger.io/api/v3/openapi.json
mcp-openapi ./openapi.yaml --base-url https://api.internal.example.com --timeout 10000

The source may also come from OPENAPI_URL instead of the positional argument, which is convenient for MCP client configs.

MCP client configuration

{
  "mcpServers": {
    "my-api": {
      "command": "mcp-openapi",
      "args": ["https://api.example.com/openapi.json"]
    }
  }
}

Configuration

Variable Description
OPENAPI_URL OpenAPI/Swagger source (URL or local path), if not passed as the CLI argument
OPENAPI_BASE_URL Overrides every server URL declared in the spec
OPENAPI_REQUEST_TIMEOUT_MS Per-request timeout in milliseconds (default 30000)

Authentication

For each security scheme declared in the OpenAPI document, credentials are read from environment variables named after the scheme (converted to SCREAMING_SNAKE_CASE) — e.g. a scheme called apiKeyAuth reads OPENAPI_AUTH_API_KEY_AUTH.

Scheme type Environment variables
HTTP bearer OPENAPI_AUTH_<SCHEME>_TOKEN (or bare OPENAPI_AUTH_<SCHEME>)
HTTP basic OPENAPI_AUTH_<SCHEME>_USERNAME and OPENAPI_AUTH_<SCHEME>_PASSWORD
apiKey (header, query, cookie) OPENAPI_AUTH_<SCHEME>

Schemes with no matching environment variable, and unsupported types (OAuth2, OpenID Connect), are skipped with a warning rather than failing startup.

What it exposes

  • Resource openapi://spec — the full, dereferenced OpenAPI/Swagger document.
  • Tool search_operations — keyword search across every operation's name, summary, description, tags, and path. Use this first when a spec defines many operations.
  • One tool per operation — named after its operationId (sanitized and deduplicated), taking the operation's path/query/header parameters and request body as arguments.

Development

# Install dependencies
bun install

# Run in dev mode
bun run dev <openapi-url-or-path>

# Type check
bun run typecheck

# Lint
bun run lint

# Format
bun run format

# Test
bun run test

# Build for npm
bun run build

# Compile native binary
bun run compile

ajv is listed as a direct devDependency even though nothing in src/ imports it. It's a workaround: @apidevtools/swagger-parser depends on ajv-draft-04, which only declares ajv as a peer dependency, and Bun's bundler fails to statically resolve that peer dependency when producing standalone binaries (bun run compile) unless ajv is also resolvable as a direct dependency somewhere in the root of the tree. Not needed for bun run build (the npm-published bundle), which keeps @apidevtools/swagger-parser external and lets Node resolve it normally at install time.

License

MIT

推荐服务器

Baidu Map

Baidu Map

百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。

官方
精选
JavaScript
Playwright MCP Server

Playwright MCP Server

一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。

官方
精选
TypeScript
Magic Component Platform (MCP)

Magic Component Platform (MCP)

一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。

官方
精选
本地
TypeScript
Audiense Insights MCP Server

Audiense Insights MCP Server

通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。

官方
精选
本地
TypeScript
VeyraX

VeyraX

一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。

官方
精选
本地
graphlit-mcp-server

graphlit-mcp-server

模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。

官方
精选
TypeScript
Kagi MCP Server

Kagi MCP Server

一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。

官方
精选
Python
e2b-mcp-server

e2b-mcp-server

使用 MCP 通过 e2b 运行代码。

官方
精选
Neon MCP Server

Neon MCP Server

用于与 Neon 管理 API 和数据库交互的 MCP 服务器

官方
精选
Exa MCP Server

Exa MCP Server

模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。

官方
精选