Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 2

Руководство по внедрению OAuth 2.1 для MCP-серверов с Scalekit: пошаговая инструкция

Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 2

Implementing OAuth 2.1 for MCP Servers with Scalekit: Пошаговое руководство по кодированию

В современном мире, где безопасность данных становится приоритетом, внедрение OAuth 2.1 для серверов MCP с использованием Scalekit открывает новые горизонты для разработчиков. В этом руководстве мы подробно рассмотрим, как реализовать эту технологию, создавая простой сервер анализа финансовых новостей, который будет защищен с помощью Scalekit. Это не только упростит процесс аутентификации, но и повысит уровень безопасности вашего приложения.

Зачем использовать OAuth 2.1?

OAuth 2.1 — это протокол авторизации, который позволяет приложениям получать ограниченный доступ к пользовательским данным без необходимости делиться паролями. Это особенно важно для серверов MCP, которые обрабатывают чувствительную информацию. Scalekit упрощает настройку OAuth, позволяя разработчикам сосредоточиться на функциональности, а не на сложностях аутентификации.

Шаг 1: Установка зависимостей

Перед тем как приступить к кодированию, необходимо установить несколько зависимостей:

  • Alpha Vantage API: Для получения новостей о фондовом рынке.
  • Node.js: Для тестирования нашего приложения.
  • Python зависимости: Установите необходимые пакеты с помощью команды:
pip install fastapi fastmcp mcp scalekit-sdk-python

Шаг 2: Настройка Scalekit

Создайте аккаунт на Scalekit и активируйте полную аутентификацию. Затем настройте разрешения:

  • Имя разрешения: news:read
  • Описание: Используйте Alpha Vantage для получения анализа фондовых новостей.

Добавьте свой сервер MCP, указав уникальный идентификатор и настройки разрешений.

Шаг 3: Создание конфигурационного файла

Создайте файл config.py для загрузки переменных окружения:

import os
from dotenv import load_dotenv

load_dotenv()

class Settings():
    ALPHA_VANTAGE_API_KEY = os.environ.get('ALPHA_VANTAGE_API_KEY')
    # Другие переменные окружения
settings = Settings()

Шаг 4: Логика анализа новостей

Создайте файл finance.py, который будет обрабатывать запросы к Alpha Vantage API и возвращать данные о новостях:

from mcp.server.fastmcp import FastMCP
import httpx
from config import settings

mcp = FastMCP("finance-news")

async def call_alpha_vantage(endpoint: str, params: dict):
    params["apikey"] = settings.ALPHA_VANTAGE_API_KEY
    async with httpx.AsyncClient() as client:
        response = await client.get(BASE_URL, params=params)
        return response.json()

@mcp.tool()
async def get_news_sentiment(ticker: str):
    data = await call_alpha_vantage("NEWS_SENTIMENT", {"tickers": ticker.upper()})
    # Обработка данных
    return result

Шаг 5: Middleware для авторизации

Создайте middleware для проверки токенов доступа:

from fastapi import HTTPException, Request
from scalekit import ScalekitClient

class AuthMiddleware(BaseHTTPMiddleware):
    async def dispatch(self, request: Request, call_next):
        # Логика проверки токена
        return await call_next(request)

Шаг 6: Настройка сервера

Создайте файл server.py, который будет запускать ваше приложение:

import uvicorn
from fastapi import FastAPI
from auth import AuthMiddleware

app = FastAPI()
app.add_middleware(AuthMiddleware)

@app.get("/.well-known/oauth-protected-resource/mcp")
async def oauth_protected_resource_metadata():
    return {"authorization_servers": [settings.SCALEKIT_AUTHORIZATION_SERVERS]}

def main():
    uvicorn.run(app, host="localhost", port=10000)

if __name__ == "__main__":
    main()

Шаг 7: Запуск сервера

Запустите сервер командой python server.py. Теперь вы можете протестировать его с помощью MCP Inspector, предоставив действительный Bearer токен для аутентификации.

Часто задаваемые вопросы (FAQ)

1. Что такое OAuth 2.1?

OAuth 2.1 — это протокол авторизации, который позволяет приложениям безопасно получать доступ к данным пользователей.

2. Как Scalekit упрощает процесс аутентификации?

Scalekit управляет сложными потоками OAuth 2.1, позволяя разработчикам сосредоточиться на функциональности приложения.

3. Какие разрешения нужно настроить в Scalekit?

Необходимо создать разрешение для доступа к данным, например, news:read.

4. Как протестировать сервер?

Используйте MCP Inspector и предоставьте Bearer токен для аутентификации.

5. Какие ошибки могут возникнуть при настройке?

Частые ошибки включают неверные токены и неправильные настройки разрешений.

6. Есть ли лайфхаки для работы с Scalekit?

Регулярно проверяйте документацию Scalekit и используйте их примеры для ускорения разработки.

Заключение

Внедрение OAuth 2.1 для серверов MCP с использованием Scalekit — это мощный инструмент для повышения безопасности ваших приложений. Следуя этому пошаговому руководству, вы сможете создать защищенный сервер, который будет обрабатывать аутентифицированные запросы с легкостью. Не забывайте экспериментировать и адаптировать код под свои нужды, чтобы максимально использовать возможности Scalekit.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн