TeamAPI-MCP
Manages API documentation via Markdown files and exposes it as MCP tools for querying, searching, and updating interface specs, with an admin web UI and REST API.
README
TeamAPI-MCP
用 Markdown 接口描述 作为唯一真相源,提供:
- 远程 MCP 服务(
http://<IP>:<PORT>/mcp)—— Agent 查询请求/响应结构 - 管理 REST API + Web 管理台—— 上传/编辑/预览/删除
.md文档 - Cursor / Claude Code skill & command—— 引导 Agent 先查文档再写联调代码
快速开始
# 安装后端
uv sync --extra dev
# 启动(默认 127.0.0.1:8765)
uv run python -m api_mcp
# 开发前端(代理到 8765)
cd frontend && npm install && npm run dev
生产可先构建前端,再由后端托管 frontend/dist:
cd frontend && npm install && npm run build
API_MCP_HOST=0.0.0.0 API_MCP_PORT=8765 uv run python -m api_mcp
浏览器打开 http://<host>:8765/ 进入管理台。
环境变量
| 变量 | 默认 | 说明 |
|---|---|---|
API_MCP_HOST |
127.0.0.1 |
监听地址;局域网访问用 0.0.0.0 |
API_MCP_PORT |
8765 |
端口 |
API_MCP_PATH |
/mcp |
MCP 挂载路径 |
API_MCP_DOCS_DIR |
data/apis |
Markdown 文档目录 |
API_MCP_TEMPLATE_PATH |
data/templates/api-doc.template.md |
写作样例模板路径(不在 catalog 列表中) |
API_MCP_CATEGORIES_PATH |
data/categories.json |
分类注册表 |
API_MCP_TOKEN |
(空) | 可选共享 Bearer Token;留空 = 不鉴权(内网/防火墙控访问即可) |
API_MCP_PUBLIC_HOST |
(空) | 管理台展示用对外主机名/IP;启用 Token 时还需把该 Host 加入 MCP 允许列表 |
未设置 API_MCP_TOKEN 时:管理 API 与 MCP 均无鉴权,并关闭 MCP 的 Host(DNS rebinding)校验,便于用 http://<局域网IP>:8765/mcp/ 直连。访问范围请用防火墙限制。
Markdown 约定
每个接口一个 .md 文件,需含 YAML frontmatter 与固定章节:
---
id: user-login
method: POST
path: /api/v1/auth/login
title: 用户登录
summary: 使用账号密码换取 token
---
## Description
...
## Request
...
## Response
...
示例见 data/apis/。
MCP Tools
| Tool | 作用 |
|---|---|
list_apis |
列出接口摘要;可选 category(空/不传=全部)、limit |
search_apis |
按 keyword / method / path_contains / category 检索(category 空或不传=全部) |
get_api_detail |
返回请求与响应章节 |
get_api_doc_template |
获取写作样例(写入/修改前先调用) |
overwrite_api_doc |
用完整 Markdown 全文覆盖创建或替换某接口文档 |
create_api_doc |
新建接口文档(id 已存在则报错);可选 category(不存在则新建,空/不传=未分类) |
list_categories |
列出分类及接口数量(含保留分类 未分类 / 样例) |
create_category |
新建分类 |
delete_category |
删除空自定义分类(保留/非空不可删) |
set_api_category |
将接口移动到已有分类 |
新建工作流:get_api_doc_template → 改编全文(替换占位 id)→ create_api_doc(content, category?) → get_api_detail 校验。
更新工作流:改编全文 → overwrite_api_doc(content) → get_api_detail 校验。
管理台左侧按分类分组;样例 下展示写作样例(只读);业务接口可拖拽到其他分类。
Cursor 配置示例
~/.cursor/mcp.json(或项目级 MCP 配置):
{
"mcpServers": {
"TeamAPI-MCP": {
"url": "http://192.168.1.10:8765/mcp/"
}
}
}
启用鉴权时增加 headers(以你使用的 Cursor MCP 字段为准):
{
"mcpServers": {
"TeamAPI-MCP": {
"url": "http://192.168.1.10:8765/mcp/",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
项目内已提供:
- Skill:
.cursor/skills/api-docs-lookup/SKILL.md - Command:
.cursor/commands/api-docs.md(/api-docs)
Claude Code 配置示例
{
"mcpServers": {
"TeamAPI-MCP": {
"type": "http",
"url": "http://192.168.1.10:8765/mcp/",
"headers": {
"Authorization": "Bearer your-token"
}
}
}
}
Skill:.claude/skills/api-docs-lookup/SKILL.md
管理 API(摘要)
GET /api/apis— 列表GET /api/apis/{id}/raw— 原文POST /api/apis— 创建/覆盖(JSON{content})PUT /api/apis/{id}— 更新DELETE /api/apis/{id}— 删除POST /api/apis/upload— 上传.mdGET /api/connection— MCP 连接信息(不回显完整 token)GET /health— 健康检查(无需鉴权)
安全说明
面向内网联调。未设置 API_MCP_TOKEN 时服务无鉴权;绑定 0.0.0.0 前请确认网络可信或启用 token。
测试
uv run pytest
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
mcp-server-qdrant
这个仓库展示了如何为向量搜索引擎 Qdrant 创建一个 MCP (Managed Control Plane) 服务器的示例。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器