mcp大摇大摆ui
](https://github.com/VasuDevAiNamaha/mcp_swagger_ui/actions/workflows/python-publish.yml)
MCP的Swagger UI风格文档 FastMCP 服务器。
特性
给定一个 mcp.server.fastmcp.FastMCP 实例,此包:
- 检查已注册的工具、提示、资源和资源模板
- 生成类似OpenAPI的JSON文档
- 提供与FastAPI相同的Swagger UI风格
/docs - 在Swagger参数列表中直接显示工具和提示参数
- 在生成的文档中突出显示必需参数和可选参数
- 支持文档端点的可选身份验证
安装
pip install mcp-swagger-ui对于当地发展:
cd mcp_swagger_ui
python -m venv .venv
.venv\Scripts\activate
pip install -e ".[dev]"快速入门
from fastapi import FastAPI, HTTPException, Header
from mcp.server.fastmcp import FastMCP
from mcp_swagger_ui import mount_mcp_docs
# your FastMCP instance
mcp = FastMCP("My MCP Server")
app = FastAPI()
def docs_auth(x_api_key: str | None = Header(default=None)) -> None:
if x_api_key != "secret-docs-key":
raise HTTPException(status_code=401, detail="Unauthorized")
mount_mcp_docs(
app,
mcp,
mount_path="/mcp-docs",
title="My MCP Server Docs",
auth_dependency=docs_auth, # optional
)然后打开:
http://localhost:8000/mcp-docshttp://localhost:8000/mcp-docs/openapi.json
文档显示什么
生成的文档以可发现性为重点,当前文档为:
- 工具说明
- 提示性描述
- 参数名称、类型、默认值和所需状态
- 响应模式摘要(如果可用)
工具、提示和资源按Swagger标记分组,而显示的路径仅使用项目名称,例如 /search_users 或 /summarize_text.
测试
该项目包括 pytest 该套件具有覆盖执行功能。
- 最低覆盖范围:
90% - 配置在: pyproject.toml
- 命令指南: 测试.md
发布流程
此存储库遵循自动化的开源发布流程:
- 拉取请求运行CI
- 发布准备在维护者控制的发布分支中进行
- 发布PR必须包括版本和更改日志更新
- 发布到PyPI只发生在推送
v*与上的包版本匹配的标记master
贡献者指南:
- 在需要时,将面向用户的更改记录在PR和文档中
- 除非工作是明确的发布准备,否则不要手动编辑正常功能PR的版本
维护指南:
API
mount_mcp_docs(app, mcp, mount_path="/mcp-docs", title="MCP Docs", version="1.0.0", auth_dependency=None) -> Nonecreate_docs_router(mcp, title="MCP Docs", version="1.0.0", openapi_path="/openapi.json", auth_dependency=None) -> APIRouter
兼容性
- FastMCP API校准:
- 首先使用官方服务器方法: list_tools(), list_prompts(), list_resources(), list_resource_templates() - 处理异步和同步方法返回 - 使用转换器助手(to_mcp_tool(), to_mcp_prompt(), to_mcp_resource())如果可用
- 为了与FastMCP相邻对象兼容,仍然存在通用的回退自检路径。
- 生成的模式类似于OpenAPI,侧重于可发现性/文档。
- 此包中尚未实现对已安装的MCP JSON-RPC端点执行工具。
重要
- 此套餐针对的是
mcpSDK FastMCP导入路径:
- from mcp.server.fastmcp import FastMCP
- 如果您使用的是单机版
fastmcp,由于API重叠,此程序包通常仍然有效。
出版
发布是通过GitHub Actions从GitHub Release自动完成的。
初始存储库设置仍然需要:
- 为此存储库配置PyPI可信发布
- 可选地保护
pypiGitHub环境
