Пошаговое руководство по преобразованию приложения 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.
Также ознакомьтесь с практическим примером решения на основе ИИ: бот для продаж, созданный для автоматизации взаимодействия с клиентами и управления взаимодействиями на всех этапах клиентского пути.