FastAPI-MCP
Автоматическое преобразование эндпоинтов FastAPI в инструменты Model Context Protocol (MCP) без какой-либо конфигурации.
Репозиторий: github.com/tadata-org/fastapi_mcp
PyPI: pypi.org/project/fastapi-mcp
Возможности
- Прямая интеграция: MCP-сервер монтируется прямо в ваше FastAPI-приложение.
- Ноль конфигурации: просто укажите приложение.
- Автоматическое обнаружение всех эндпоинтов FastAPI и их преобразование в MCP-инструменты.
- Сохранение схем запросов и ответов.
- Документация эндпоинтов сохраняется так же, как в Swagger.
- Расширяемость: можно добавлять собственные MCP-инструменты рядом с автоматически сгенерированными.
Установка
Рекомендуется использовать uv — быстрый установщик Python-пакетов:
uv add fastapi-mcp
Или через pip:
pip install fastapi-mcp
Быстрый старт
Просто добавьте MCP-сервер к вашему FastAPI-приложению:
from fastapi import FastAPI
from fastapi_mcp import add_mcp_server
app = FastAPI()
add_mcp_server(
app,
mount_path="/mcp",
name="My API MCP"
)
Готово! MCP-сервер доступен по адресу https://app.base.url/mcp.
Продвинутое использование
Вы можете настроить поведение MCP-сервера с помощью дополнительных параметров:
from fastapi import FastAPI
from fastapi_mcp import add_mcp_server
app = FastAPI()
mcp_server = add_mcp_server(
app,
mount_path="/mcp",
name="My API MCP",
describe_all_responses=True, # Включает все возможные схемы ответов в описание инструмента
describe_full_response_schema=True # Включает полную JSON-схему вместо упрощённого примера
)
# Добавление собственного MCP-инструмента
@mcp_server.tool()
async def get_server_time() -> str:
"""Возвращает текущее время сервера."""
from datetime import datetime
return datetime.now().isoformat()
Подключение к MCP-серверу
Через SSE
Подходит для клиентов, поддерживающих SSE (например, Cursor):
- Запустите ваше приложение.
- В Cursor → Settings → MCP укажите URL эндпоинта MCP-сервера (например,
http://localhost:8000/mcp) как sse.
- Cursor автоматически обнаружит все доступные инструменты.
Через mcp-proxy (stdio)
Если клиент не поддерживает SSE (например, Claude Desktop):
- Запустите приложение.
- Установите mcp-proxy:
uv tool install mcp-proxy.
- Добавьте в конфиг Claude Desktop (
claude_desktop_config.json):
- Windows:
{
"mcpServers": {
"my-api-mcp-proxy": {
"command": "mcp-proxy",
"args": ["http://127.0.0.1:8000/mcp"]
}
}
}
- macOS:
{
"mcpServers": {
"my-api-mcp-proxy": {
"command": "/Full/Path/To/Your/Executable/mcp-proxy",
"args": ["http://127.0.0.1:8000/mcp"]
}
}
}
Путь к mcp-proxy можно узнать командой which mcp-proxy в терминале.
- Claude Desktop автоматически обнаружит инструменты.
Примеры
Полные примеры смотрите в директории examples.
Системные требования
- Python 3.10+
- uv (рекомендуется) или pip
Разработка и вклад
См. CONTRIBUTING.md. Присоединяйтесь к MCParty Slack для общения.
Лицензия
MIT License. © 2024 Tadata Inc.
Комментарии
Комментариев пока нет. Будьте первым.