使用说明
EasyMCP🚀
通过动态OpenAPI集成构建生产就绪MCP服务器的最简单方法
EasyMCP 将任何OpenAPI规范转换为功能齐全的模型上下文协议(MCP)服务器,具有开箱即用的热重载、监控和企业功能。
🎯 产品特点
- ✅ OpenAPI 动态在飞行中上传和更新OpenAPI规范
- 🔄 热重载自动监控OpenAPI文件,实时加载
- 🛠️ 工具MCP集成通过 MCP 原生工具管理规格
- 🚀 FastMCP 2.0使用最新版本的 FastMCP 与优化 OpenAPI 解析器
- 🎨 Python最佳实践配置完整的uv,ruff,mypy和类型提示
- 📦 依赖管理现代 UV 成瘾管理
- 🧪 类型安全完整的类型提示和Pydantic验证
📋 要求
- Python 3.11+
- uv(包管理器)
🚀 安装
1. 安装uv(如果尚未安装)
# macOS/Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
# macOS con Homebrew
brew install uv
2. 克隆并配置项目
cd /Users/federicoinzirillo/Developer/Projects/fastmcp
# Crea virtual environment e installa dipendenze
uv sync
# Installa anche le dipendenze di sviluppo
uv sync --dev
📖 使用
服务器启动
# Attiva l'ambiente virtuale
source .venv/bin/activate
# Avvia il server
python -m src.main
或者UV:
uv run python -m src.main
添加 OpenAPI 规范
服务器自动监控目录 openapi_specs/ 新的规格或修改。
方法1:本地文件
添加文件 .yaml 哦 .json 在目录中 openapi_specs/:
cp my-api-spec.yaml openapi_specs/my-api.yaml
服务器将自动加载新规格!
Metodo 2:URL删除
使用石油工具MCP load_openapi_spec:
# Tramite client MCP
result = await client.call_tool(
"load_openapi_spec",
arguments={
"name": "petstore",
"source": "https://petstore3.swagger.io/api/v3/openapi.json",
"base_url": "https://petstore3.swagger.io/api/v3"
}
)
🛠️ 可用的MCP工具
服务器显示了以下动态管理工具:
load_openapi_spec
从本地 URL 或文件上传新的 OpenAPI 规范。
参数 :
name(str):规范标识名称source(str):OpenAPI文件的URLbase_url(str, optional): API 调用的基本 URL
list_openapi_specs
列出当前上传的所有 OpenAPI 规范。
get_openapi_spec_info
获取有关特定负载的详细信息。
参数 :
namestr:规范名称
remove_openapi_spec
删除已加载的 OpenAPI 规范。
参数 :
name(str) 要删除的规范名称
reload_all_specs
从目录中重新加载所有 OpenAPI 规范。
🏗️ 项目结构
fastmcp/
├── src/
│ ├── __init__.py # Package initialization
│ ├── main.py # Entry point del server
│ ├── server.py # Server MCP principale
│ └── openapi_manager.py # Gestione specifiche OpenAPI
├── openapi_specs/
│ └── example.yaml # Specifica OpenAPI di esempio
├── tests/ # Test suite (da implementare)
├── pyproject.toml # Configurazione progetto e dipendenze
├── .gitignore # File da ignorare in git
└── README.md # Questa documentazione
🔧 发展
Linting e格式化
# Format del codice con ruff
uv run ruff format .
# Check linting
uv run ruff check .
# Fix automatico problemi linting
uv run ruff check --fix .
类型检查
uv run mypy src/
测试
uv run pytest
📝 示例:OpenAPI规范
该项目包括一个运行的例子 openapi_specs/example.yaml 使用JSONPlaceholder API测试:
openapi: 3.0.0
info:
title: Example API
version: 1.0.0
servers:
- url: https://jsonplaceholder.typicode.com
paths:
/posts:
get:
summary: Ottieni tutti i post
# ... altre definizioni
🎨 配置 Ruff
该项目使用 Ruff 进行 linting 和格式化,并遵循以下规则:
- ✅ 密码样式(E、W)
- ✅ pyflakes(F)
- ✅ isort(I)
- ✅ flake8冲锋枪(B)
- ✅ flake8综合教程(C4)
- ✅ pyupgrade(UP)
- ✅ flake8简化(SIM卡)
- ✅ flake8使用pathlib(PTH)
🚢 部署
克劳德桌面
fastmcp install claude-desktop src/main.py \
--name "Dynamic OpenAPI MCP" \
--with httpx \
--with pyyaml \
--with watchdog \
--with pydantic \
--with fastmcp
光标
fastmcp install cursor src/main.py \
--name "Dynamic OpenAPI MCP" \
--with httpx \
--with pyyaml \
--with watchdog \
--with pydantic \
--with fastmcp
FastMCP云
fastmcp deploy
🔐 最佳实践实施
- 类型安全完整类型提示 + Pydantic 用于验证
- 错误处理通过日志进行强大的错误管理
- 异步/等待现代异步模式,实现最佳性能
- 上下文管理器使用 Context Manager 管理资源
- 结构化日志:每次调试记录可配置文件
- 文件监视热自动重新加载,无需重新启动
- 依赖注入模块化和可测试的架构
- 清洁代码PEP 8 和 Python 最佳实践
📚 资源
📄 许可证
麻省理工学院
🤝 贡献
欢迎贡献,问题和功能请求!
由❤️ 使用 FastMCP 2.0
