AS

azure-samples/remote-mcp-webapp-python-auth-oauth

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

28 stars 13 forks Качество 53 Тренд 11

Сервер Model Context Protocol (MCP), созданный с помощью FastAPI, который предоставляет информацию о погоде с использованием API Национальной службы погоды.

Обзор

Сервер Model Context Protocol (MCP), созданный с помощью FastAPI, который предоставляет информацию о погоде с использованием API Национальной службы погоды. Функции с PKCE, динамической регистрацией клиентов и интеграцией Azure AD. Готовы к развертыванию в Azure App Service с помощью Azure Developer CLI (azd). Полная реализация спецификации авторизации MCP (2025-03-26) - : Безопасная авторизация с ключом доказательства для обмена кодом (метод RFC 7636, S256) - : Автоматическая регистрация клиента на RFC 7591 - : Конечная точка обнаружения на RFC 8414 - : Использует Azure AD в качестве сервера авторизации - : Полная поддержка MCP-Protocol-Version: 2025-03-26 - : Безопасная аутентификация на основе токенов - : - Get alerts: Получить предупреждения о погоде для любого штата США - Get forecast: Получить подробный прогноз погоды для любого местоположения - : Предварительно сконфигурированный для развертывания службы приложений Azure - : Встроенное тестирование потока OAuth 2.1 Этот сервер реализует полную спецификацию авторизации MCP (2025-03-26): - Вставай.

Обзор (машинный перевод)

Сервер Model Context Protocol (MCP), созданный с помощью FastAPI, который предоставляет информацию о погоде с использованием API Национальной службы погоды. Функции ** полное соответствие MCP OAuth 2.1** с PKCE, динамической регистрацией клиентов и интеграцией Azure AD. Готовы к развертыванию в Azure App Service с помощью Azure Developer CLI (azd).

Feature Особенности

MCP OAuth 2.1 Specification Compliant: Complete implementation of MCP Authorization Specification (2025-03-26) PKCE Required: Безопасная авторизация с ключом подтверждения для обмена кодом (метод RFC 7636, S256) ** Динамическая регистрация клиентов** Автоматическая регистрация клиентов по RFC 7591 ** Метаданные сервера авторизации**: конечная точка обнаружения по RFC 8414 Стороннее разрешение: Использование Azure AD в качестве сервера авторизации ** Заголовки протокола MCP**: полная поддержка MCP-Protocol-Version: 2025-03-26 JWT Token Management: Безопасная аутентификация на основе токенов Погодные инструменты **:

  • [[Т1]]: Получите предупреждения о погоде для любого штата США
  • [[Т2]]: Подробный прогноз погоды в любом месте Azure Ready: предварительная настройка для развертывания Azure App Service Интерфейс веб-тестирования: встроенное тестирование потока OAuth 2.1

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

README

Показан фрагмент оригинального README. Открыть оригинал.

Python MCP Weather Server with OAuth 2.1 Authentication

A production-ready Model Context Protocol (MCP) server built with FastAPI that provides weather information using the National Weather Service API. Features full MCP OAuth 2.1 compliance with PKCE, dynamic client registration, and Azure AD integration. Ready for deployment to Azure App Service with Azure Developer CLI (azd).

🌟 Features

  • MCP OAuth 2.1 Specification Compliant: Complete implementation of MCP Authorization Specification (2025-03-26)
  • PKCE Required: Secure authorization with Proof Key for Code Exchange (RFC 7636, S256 method)
  • Dynamic Client Registration: Automatic client registration per RFC 7591
  • Authorization Server Metadata: Discovery endpoint per RFC 8414
  • Third-Party Authorization: Uses Azure AD as authorization server
  • MCP Protocol Headers: Full support for MCP-Protocol-Version: 2025-03-26
  • JWT Token Management: Secure token-based authentication
  • Weather Tools:
    • get_alerts: Get weather alerts for any US state
    • get_forecast: Get detailed weather forecast for any location
  • Azure Ready: Pre-configured for Azure App Service deployment
  • Web Test Interface: Built-in OAuth 2.1 flow testing

🔐 MCP Authorization Implementation

This server implements the complete MCP Authorization Specification (2025-03-26):

OAuth 2.1 Endpoints

  • GET /.well-known/oauth-authorization-server - Authorization server metadata (RFC 8414)
  • POST /register - Dynamic client registration (RFC 7591)
  • GET /authorize - Authorization endpoint with PKCE (RFC 7636)
  • POST /token - Token endpoint for code exchange and refresh
  • GET /auth/azure/callback - Third-party authorization callback

MCP Protocol Features

  • ✅ Protocol Version Headers: MCP-Protocol-Version: 2025-03-26
  • ✅ PKCE Required: All clients must use S256 method
  • ✅ Dynamic Registration: Automatic client onboarding
  • ✅ JWT Authentication: Bearer token validation on MCP endpoints
  • ✅ Proper Error Handling: 401/403/400 responses with details
  • ✅ Azure AD Integration: Enterprise-grade authorization server

⚠️ Important: Complete OAuth setup required before use. See AUTH_SETUP.md for Azure AD configuration instructions.

💻 Local Development

Prerequisites

  • Python 3.8+
  • Azure account with completed OAuth setup (see AUTH_SETUP.md)

Setup & Run

  1. Complete OAuth setup first: Follow the instructions in AUTH_SETUP.md to create your Azure App Registration.

  2. Clone and install dependencies:

    git clone 
    cd remote-mcp-webapp-python-auth-oauth
    python -m venv venv
    .\venv\Scripts\Activate.ps1  # Windows
    # source venv/bin/activate   # macOS/Linux
    pip install -r requirements.txt
    
  3. Configure environment variables:

Открыть полный README на GitHub

Установка

npx @modelcontextprotocol/inspector
Новичок в MCP? Начните с руководства на mcpskill.org →

Конфигурация

{ "mcpServers": { "weather-mcp-server-local": { "transport": { "type": "http", "url": "http://localhost:8000/", "headers": { "Authorization": "Bearer <your-jwt-token>" } }, "name": "Weather MCP Server (Local with Auth)", "description": "Authenticated MCP Server with weather tools" } } }