Skip to main content
Glama
Leivoo
by Leivoo
README.md
# mcp-openapi-swagger

一个基于 NodeJS 的 MCP Server:输入 OpenAPI JSON URL 或 Swagger UI URL,自动抓取/解析文档并返回接口清单(summary 级),供 Cursor 的提示词继续处理。

## 你会得到什么

- 支持两种输入:
  - **OpenAPI JSON URL**(例如 `/openapi.json`、`/v3/api-docs`)
  - **Swagger UI URL**(例如 `/swagger-ui/index.html`),会自动发现其背后的 spec URL
- 输出:`method + path + summary + tags + operationId`

## 安装依赖与构建

```bash
npm install
npm run build
```

构建产物在 `dist/`,并且已配置 `bin`,可以被 `npx` 直接执行。

## 在 Cursor 配置 MCP(npx 启动本地目录)

项目内已提供示例配置:`.cursor/mcp.json`。

关键配置如下(示例):

```json
{
  "mcpServers": {
    "openapi-swagger": {
      "transport": "stdio",
      "command": "npx",
      "args": ["-y", "E:/API-MCP"],
      "env": {
        "OPENAPI_SOURCE_URL": "https://example.com/v3/api-docs"
      }
    }
  }
}
```

> 把 `E:/API-MCP` 替换成你本机的项目根目录路径。
>
> 你也可以把 `OPENAPI_SOURCE_URL` 配成 Swagger UI 地址(例如 `https://example.com/swagger-ui/index.html`)。

## 工具(Tools)

### openapi_setSource

缓存一个文档地址,后续 `openapi_listEndpoints` 可省略入参。

输入:

```json
{ "sourceUrl": "https://example.com/swagger-ui/index.html" }
```

### openapi_listEndpoints

抓取并解析 OpenAPI,然后返回接口清单(summary 级)。

输入(两种用法二选一):

```json
{ "sourceUrl": "https://example.com/v3/api-docs" }
```

或(使用已缓存的 source):

```json
{}
```

> 如果你在 `.cursor/mcp.json` 里配置了 `OPENAPI_SOURCE_URL`,那么第一次调用 `openapi_listEndpoints` 直接传 `{}` 就能生效。

输出示例:

```json
{
  "ok": true,
  "source": {
    "inputUrl": "https://example.com/swagger-ui/index.html",
    "resolvedSpecUrl": "https://example.com/v3/api-docs",
    "openapiVersion": "3.0.3"
  },
  "endpoints": [
    {
      "method": "GET",
      "path": "/pets/{id}",
      "operationId": "getPetById",
      "summary": "Get a pet",
      "tags": ["pets"]
    }
  ]
}
```

失败时输出示例(便于提示词分支处理):

```json
{
  "ok": false,
  "stage": "fetch/parse/extract",
  "inputUrl": "https://example.com/swagger-ui/index.html",
  "details": {
    "name": "Error",
    "message": "Failed to discover spec URL from Swagger UI page"
  }
}
```

## 运行/调试

```bash
npm run dev
```

如果你要验证 npx 启动(Cursor 同款):

```bash
npx -y E:/API-MCP
```

TDQS

B3.1/5.0

Scored across 2 tools

Disambiguation5/5

The two tools have completely distinct purposes: one fetches endpoint summaries from an OpenAPI spec, while the other sets the source URL for that spec. There is no overlap in functionality, making them easy to tell apart.

Naming Consistency5/5

Both tools follow a consistent naming pattern with the 'openapi_' prefix and descriptive action_noun structure (listEndpoints, setSource). The naming is uniform and predictable throughout the set.

Tool Count2/5

With only 2 tools, the server feels thin for its apparent purpose of interacting with OpenAPI/Swagger specs. Core operations like testing endpoints, validating specs, or detailed querying are missing, making the toolset underpowered for typical API exploration workflows.

Completeness2/5

The toolset is severely incomplete for OpenAPI/Swagger interaction. While it covers fetching endpoints and setting a source, it lacks essential operations such as testing API calls, retrieving detailed schema information, or validating specs, which are critical for comprehensive API exploration and integration.

Maintenance

ActivityInactive
ResponsivenessNo issues