knife4j-mcp
Provides tools for reading and querying Knife4j/Swagger multi-module API documentation, including listing specs, searching APIs by path/keyword/tag/method, retrieving detailed API info with expanded schemas, and refreshing documentation.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@knife4j-mcplist all available API modules"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
knife4j-mcp
一个基于 Node.js + TypeScript 的标准 MCP server(stdio),用于读取 Knife4j / Swagger 多模块接口文档,并为 Agent 提供结构化接口查询能力。
它适合这样的场景:
文档入口不是单个 OpenAPI spec,而是 Knife4j 聚合页
需要先从
/swagger-resources获取模块列表每个模块再去拉自己的
/v2/api-docs文档可能受 Basic Auth 或自定义 Header 保护
Agent 需要根据路径、关键词、tag、字段线索快速定位接口
使用方式
SWAGGER_RESOURCES_URL=http://127.0.0.1:3301/swagger-resources \
npx -y @chaselen/knife4j-mcp如果文档受保护,也可以一起传认证信息:
SWAGGER_RESOURCES_URL=http://127.0.0.1:3301/swagger-resources \
SWAGGER_BASIC_AUTH=demo:demo \
npx -y @chaselen/knife4j-mcp说明:
已发布到 npm,可直接通过
npx启动要求 Node.js >= 20
这是一个 stdio MCP server,通常由 MCP Client 拉起,而不是手动长期在终端里交互运行
Related MCP server: mcp-openapi-swagger
MCP Client 接入
这个包不只支持 Codex,也支持 Claude Code、OpenCode,以及其他支持本地 stdio MCP 的客户端。
本质上都可以抽象成下面这组启动参数:
{
"command": "npx",
"args": ["-y", "@chaselen/knife4j-mcp"],
"env": {
"SWAGGER_RESOURCES_URL": "http://127.0.0.1:3301/swagger-resources",
"SWAGGER_BASIC_AUTH": "demo:demo"
}
}Codex CLI
codex mcp add knife4j-swagger \
--env SWAGGER_RESOURCES_URL=http://127.0.0.1:3301/swagger-resources \
--env SWAGGER_BASIC_AUTH=demo:demo \
-- npx -y @chaselen/knife4j-mcpClaude Code
CLI 添加方式:
claude mcp add knife4j-swagger \
--env SWAGGER_RESOURCES_URL=http://127.0.0.1:3301/swagger-resources \
--env SWAGGER_BASIC_AUTH=demo:demo \
-- npx -y @chaselen/knife4j-mcp如果你偏好项目级配置,也可以在项目根目录放一个 .mcp.json:
{
"mcpServers": {
"knife4j-swagger": {
"command": "npx",
"args": ["-y", "@chaselen/knife4j-mcp"],
"env": {
"SWAGGER_RESOURCES_URL": "http://127.0.0.1:3301/swagger-resources",
"SWAGGER_BASIC_AUTH": "demo:demo"
}
}
}
}OpenCode
在 opencode.json 或 opencode.jsonc 中加入:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"knife4j-swagger": {
"type": "local",
"command": ["npx", "-y", "@chaselen/knife4j-mcp"],
"enabled": true,
"environment": {
"SWAGGER_RESOURCES_URL": "http://127.0.0.1:3301/swagger-resources",
"SWAGGER_BASIC_AUTH": "demo:demo"
}
}
}
}其他客户端
如果你的 MCP 客户端支持本地 stdio server,通常只要把下面三类信息按它自己的格式填进去即可:
command:npxargs:["-y", "@chaselen/knife4j-mcp"]env:SWAGGER_RESOURCES_URL、SWAGGER_BASIC_AUTH、SWAGGER_HEADERS等环境变量
环境变量
必填
SWAGGER_RESOURCES_URLKnife4j / Swagger 聚合入口地址,用来读取模块列表。
这个地址通常就是平台暴露出来的
/swagger-resources,例如:http://127.0.0.1:3301/swagger-resourcesserver 启动后会先请求它,再根据返回结果继续拉取每个模块自己的 Swagger / OpenAPI 文档。
注意:这里填的不是某个单独模块的
/v2/api-docs或/v3/api-docs,而是“模块目录入口”。
可选
SWAGGER_BASE_URL用于补全
swagger-resources里返回的相对路径。如果模块文档地址是
/api/user/v2/api-docs这种相对路径,server 会拿它和SWAGGER_BASE_URL进行拼接。未设置时,默认回退到
SWAGGER_RESOURCES_URL的基址。常见场景是:
swagger-resources和真实文档地址不在同一个基址下,或者经过了网关改写。
SWAGGER_BASIC_AUTH访问 Swagger 文档时使用的 HTTP Basic Auth 账号密码。
这个值会同时用于请求
SWAGGER_RESOURCES_URL和每个模块的 spec 文档。格式是
username:password,例如:demo:demo不需要带
Basic前缀,程序会自动转成Authorization: Basic ...请求头。如果你的文档地址本身不需要登录认证,可以不填。
SWAGGER_HEADERS额外附带到所有文档请求上的自定义 HTTP Header。
适合需要 Token、租户标识、环境标识这类网关头的场景。
格式是 JSON 字符串,例如:
{"X-Env":"dev","X-Token":"abc"}这些 Header 会和 Basic Auth 一起生效;如果两者都配置了,请求会同时带上。
SWAGGER_MODULE_ALLOWLIST只加载指定模块,其他模块会被忽略。
适合模块很多、只想给 Agent 暴露其中一部分接口时使用。
格式为逗号分隔,例如:
sample-account,sample-auth这里填写的名称应与
swagger-resources返回的模块名一致。
CACHE_TTL_MS内存缓存有效期,单位是毫秒。
默认值是
300000,也就是 5 分钟。在缓存有效期内,查询会直接复用已加载的索引;过期后会在下次刷新时重新拉取远端文档。
LOG_LEVEL日志级别。
当前设为
debug时会输出更多拉取和解析过程日志,便于排查文档地址、认证或 JSON 格式问题。
一个更完整的例子
SWAGGER_RESOURCES_URL=https://gateway.example.com/swagger-resources \
SWAGGER_BASIC_AUTH=swagger_user:swagger_password \
SWAGGER_HEADERS='{"X-Env":"prod","X-Tenant":"platform"}' \
SWAGGER_MODULE_ALLOWLIST=system-user,system-auth \
npx -y @chaselen/knife4j-mcpMCP Tools
对外只提供 4 个核心 tools:
list_specs:列出模块、spec 地址、加载状态和接口数量find_api:按关键词、path、tag、module、method 搜索接口get_api_detail:获取单个接口的完整详情,并递归展开请求/响应 schemarefresh_specs:强制刷新swagger-resources和所有模块 spec
功能
支持读取 Knife4j / Swagger 多模块聚合文档
支持 Basic Auth 和自定义 Header
支持 Swagger 2.0,并尽量兼容 OpenAPI 3
支持按路径、关键词、tag、method 等条件搜索接口
支持通过
get_api_detail获取完整接口详情,并递归展开请求/响应 schema支持模块 allowlist、缓存 TTL 和手动刷新
单个模块加载失败不会影响其他模块可用
最小可运行示例
仓库自带一个 mock 的多模块 Swagger 服务。
1. 启动 mock 文档服务
MOCK_SWAGGER_BASIC_AUTH=demo:demo npm run mock:swagger默认地址:
http://127.0.0.1:3301/swagger-resourceshttp://127.0.0.1:3301/sample-account/v2/api-docshttp://127.0.0.1:3301/sample-auth/v2/api-docshttp://127.0.0.1:3301/demo/sample-notify/v3/api-docs
2. 构建 MCP server
npm run build3. 运行 smoke test
SWAGGER_RESOURCES_URL=http://127.0.0.1:3301/swagger-resources \
SWAGGER_BASIC_AUTH=demo:demo \
npm run test:smoke这个脚本会通过 MCP stdio client 依次调用:
tools/listlist_specsfind_apiget_api_detail
它会自动完成一次 list_specs -> find_api -> get_api_detail 的最小联调验证。
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Latest Blog Posts
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/chaselen/knife4j-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server