Пошаговое руководство по преобразованию приложения FastAPI в сервер MCP
FastAPI-MCP — это инструмент с нулевой конфигурацией, который без усилий открывает конечные точки FastAPI как инструменты протокола контекста модели (MCP). Он позволяет вам интегрировать сервер MCP непосредственно в ваше приложение FastAPI, что делает процесс простым и удобным.
Шаг 1: Настройка окружения
API Службы национальных парков
Чтобы использовать API Службы национальных парков, вы можете запросить ключ API, посетив соответствующий сайт и заполнив короткую форму. После отправки ключ API будет отправлен на ваш электронный адрес. Убедитесь, что он у вас под рукой — мы будем использовать его в ближайшее время.
Установка Cursor IDE
Вы можете скачать Cursor IDE с официального сайта. Он разработан специально для разработки с поддержкой ИИ. Скачивание бесплатное и включает 14-дневную пробную версию.
Зависимости Python
Запустите следующую команду для загрузки необходимых библиотек:
pip install fastapi uvicorn httpx python-dotenv pydantic fastapi-mcp mcp-proxy
Шаг 2: Создание приложения FastAPI
Мы создадим простое приложение FastAPI, которое использует API Службы национальных парков для получения предупреждений, связанных с национальными парками США. Позже мы преобразуем это приложение в сервер MCP.
Сначала создайте файл .env и сохраните в нем ваш ключ API:
NPS_API_KEY=
Замените на сгенерированный вами ключ. Теперь создайте новый файл и вставьте следующий код. Это будет основная логика вашего приложения:
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
# Загрузка переменных окружения из файла .env
load_dotenv()
app = FastAPI(title="API предупреждений национальных парков")
# Получение ключа 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="Поисковый запрос")
):
"""Получение предупреждений о парках из API Службы национальных парков"""
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"NPS API ошибка: {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
После запуска сервера откройте браузер и перейдите по адресу: http://localhost:8000/docs. Это откроет интерфейс, где мы можем протестировать нашу конечную точку API.
Нажмите кнопку «Попробовать». В поле параметра park_code введите yell (для парков Калифорнии). Нажмите «Выполнить». Вы должны получить ответ 200 OK вместе с JSON-данными, содержащими информацию о предупреждениях для национальных парков в Калифорнии.
Шаг 4: Реализация сервера MCP
Для этого добавьте следующий код перед блоком if __name__ == "__main__": в вашем файле:
mcp = FastApiMCP(
app,
# Необязательные параметры
name="API предупреждений национальных парков",
description="API для получения предупреждений из национальных парков",
base_url="http://localhost:8000",
)
Теперь вам нужно зарегистрировать ваш сервер FastAPI MCP в Cursor.
Откройте Cursor и перейдите в:
Файл > Настройки > Настройки Cursor > MCP > Добавить новый глобальный сервер MCP
Это откроет файл конфигурации. Внутри этого файла добавьте следующую запись и сохраните ее:
"mcpServers": {
"Служба национальных парков": {
"command": "mcp-proxy",
"args": []
}
}
Шаг 5: Запуск сервера
Теперь запустите приложение, используя следующую команду:
python
После запуска приложения перейдите в Файл > Настройки > Настройки Cursor > MCP. Теперь вы должны увидеть ваш новый сервер в списке и запущенным в разделе MCP.
Теперь вы можете протестировать сервер, введя запрос в чате. Он будет использовать наш сервер MCP для получения и возврата соответствующего результата.
Заключение
Не забудьте подписаться на нас в социальных сетях и присоединиться к нашему сообществу. Если вам нужна помощь в управлении ИИ в бизнесе, свяжитесь с нами по адресу hello@itinai.ru.
Также ознакомьтесь с практическим примером решения на основе ИИ: бот для продаж, созданный для автоматизации взаимодействия с клиентами и управления взаимодействиями на всех этапах клиентского пути.





















