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.