Itinai.com it company office background blured photography by b78d385e b261 4424 829c 8c380ea5040f 2

Преобразование приложения FastAPI в сервер MCP: пошаговое руководство

Itinai.com it company office background blured photography by b78d385e b261 4424 829c 8c380ea5040f 2

Преобразование 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.

Мобильная разработка на заказ и готовые решения

Мобильная разработка

Готовые и индивидуальные решения

Веб решения - разработка сайтов и сервисов

Web решения

Получите бесплатную консультацию по веб-разработке прямо сейчас

Аутсорсинг, подбор специалистов и команд разработки

Аутсорсинг

Выберите своего специалиста сегодня и начните свой проект

Новости