Преобразование FastAPI приложения в MCP сервер: Практическое руководство
Введение
FastAPI-MCP – это удобный инструмент, который позволяет приложениям FastAPI легко выставлять свои конечные точки как инструменты протокола Model Context Protocol (MCP). Это руководство продемонстрирует, как преобразовать приложение FastAPI, которое получает оповещения от API Службы национальных парков США, в совместимый с MCP сервер.
1. Настройка окружения
1.1 API Службы национальных парков
Чтобы использовать API Службы национальных парков, сначала необходимо запросить API ключ. Посетите сайт API и заполните короткую форму для получения вашего ключа по электронной почте. Храните этот ключ под рукой, так как он будет необходим для приложения.
1.2 Установка Cursor IDE
Скачайте Cursor IDE, инструмент для разработки с поддержкой ИИ, с его официального сайта. Он бесплатен в использовании и включает 14-дневный пробный период.
1.3 Установка зависимостей Python
Установите необходимые библиотеки Python, выполнив следующую команду:
pip install fastapi uvicorn httpx python-dotenv pydantic fastapi-mcp mcp-proxy
2. Создание приложения FastAPI
Далее мы создадим базовое приложение FastAPI для получения оповещений, связанных с национальными парками США. Это приложение позже будет преобразовано в MCP сервер.
2.1 Настройка переменных окружения
Создайте файл .env и сохраните ваш API ключ следующим образом:
NPS_API_KEY=ваш_api_ключ_здесь
2.2 Основная логика приложения
Создайте новый файл Python и включите следующий код для установления основной логики вашего приложения:
from fastapi import FastAPI, HTTPException, Query
from typing import List, Optional
import httpx
import os
from dotenv import load_dotenv
from fastapi_mcp import FastApiMCP
load_dotenv()
app = FastAPI(title="API оповещений национальных парков")
NPS_API_KEY = os.getenv("NPS_API_KEY")
if not NPS_API_KEY:
raise ValueError("Переменная окружения NPS_API_KEY не установлена")
@app.get("/alerts")
async def get_alerts(
parkCode: Optional[str] = Query(None, description="Код парка (например, 'yell' для Йеллоустона)"),
stateCode: Optional[str] = Query(None, description="Код штата (например, 'wy' для Вайоминга)"),
q: Optional[str] = Query(None, description="Поисковый термин")
):
url = "https://api.nps.gov/api/v1/alerts"
params = {"api_key": NPS_API_KEY}
if parkCode:
params["parkCode"] = parkCode
if stateCode:
params["stateCode"] = stateCode
if q:
params["q"] = q
try:
async with httpx.AsyncClient() as client:
response = await client.get(url, params=params)
response.raise_for_status()
return response.json()
except httpx.HTTPStatusError as e:
raise HTTPException(status_code=e.response.status_code, detail=f"Ошибка API NPS: {e}")
except Exception as e:
raise HTTPException(status_code=500, detail=f"Внутренняя ошибка сервера: {str(e)}")
if __name__ == "__main__":
import uvicorn
uvicorn.run(app, host="0.0.0.0", port=8000)
3. Тестирование приложения FastAPI
Чтобы протестировать ваше приложение, выполните следующую команду в терминале:
python имя_вашего_файла.py
После запуска сервера, перейдите по адресу http://localhost:8000/docs в вашем браузере. Используйте кнопку “Попробовать” для тестирования конечной точки API, введя код парка (например, ‘yell’ для Йеллоустона) и нажав “Выполнить”. Вы должны получить ответ 200 OK с информацией об оповещениях в формате JSON.
4. Реализация MCP сервера
Чтобы преобразовать приложение FastAPI в MCP сервер, добавьте следующий код перед блоком if __name__ == "__main__"
:
mcp = FastApiMCP(
app,
name="API оповещений национальных парков",
description="API для получения оповещений из национальных парков",
base_url="http://localhost:8000",
)
5. Регистрация MCP сервера в Cursor
Откройте Cursor и перейдите в:
Файл > Настройки > Настройки Cursor > MCP > Добавить новый глобальный MCP сервер
В конфигурационном файле добавьте следующую запись и сохраните ее:
"mcpServers": {
"Служба национальных парков": {
"command": "mcp-proxy",
"args": []
}
}
6. Запуск сервера
Запустите приложение снова с помощью:
python имя_вашего_файла.py
После запуска приложения вернитесь к Файл > Настройки > Настройки Cursor > MCP
чтобы убедиться, что ваш новый сервер подключен и работает. Теперь вы можете протестировать сервер, вводя запросы в чате, которые будут использовать MCP сервер для получения и возврата результатов.
Заключение
Это руководство предоставило простой подход к преобразованию приложения FastAPI в MCP сервер с использованием FastAPI-MCP. Интегрируя ИИ и автоматизацию в ваши процессы, вы можете повысить эффективность и улучшить взаимодействие с клиентами. Начните с малого, собирайте данные и расширяйте свои инициативы в области ИИ для максимизации их влияния на ваш бизнес.
Изучите, как технологии искусственного интеллекта могут преобразовать ваш подход к работе, например: преобразование FastAPI приложения в MCP сервер: пошаговое руководство.
Ищите возможности автоматизации процессов. Найдите моменты во взаимодействии с клиентами, где искусственный интеллект может добавить максимальную ценность.
Определите важные KPI, чтобы убедиться, что ваши инвестиции в ИИ действительно оказывают положительное влияние на бизнес.
Выбирайте инструменты, которые соответствуют вашим потребностям и позволяют настраивать их для достижения ваших целей.
Начните с небольшого проекта, собирайте данные о его эффективности и постепенно расширяйте использование ИИ в вашей работе.
Если вам нужна помощь в управлении ИИ в бизнесе, свяжитесь с нами по адресу info@flycode.ru. Чтобы быть в курсе последних новостей ИИ, подпишитесь на наш Telegram https://t.me/flycodetelegram.