Awesome MCP FastAPI

remote-capable server

The server can be hosted and run remotely because it primarily relies on remote services or has no dependency on the local environment.

Integrations

  • Supports environment variable configuration through .env files when running with Docker, as shown in the docker run command with --env-file flag.

  • Provides Docker support for building and running the MCP server in containers, with detailed instructions for Docker deployment.

  • The MCP server is built on FastAPI, leveraging its ecosystem for automatic OpenAPI documentation generation, dependency injection, middleware support, validation, and async capabilities.

Impresionante MCP FastAPI

Una poderosa implementación basada en FastAPI del Protocolo de Contexto de Modelo (MCP) con capacidades de registro de herramientas mejoradas, que aprovecha el ecosistema maduro de FastAPI.

Descripción general

Awesome MCP FastAPI es una implementación lista para producción del Protocolo de Contexto de Modelo que mejora y amplía la funcionalidad estándar de MCP al integrarla con el robusto ecosistema de FastAPI. Este proyecto proporciona un sistema de registro de herramientas mejorado que facilita la creación, gestión y documentación de herramientas de IA para Modelos de Lenguaje Grandes (LLM).

Por qué es mejor que el MCP estándar

Si bien el Protocolo de Contexto de Modelo proporciona una base sólida para conectar modelos de IA con herramientas y fuentes de datos, nuestra implementación ofrece varias ventajas importantes:

Ecosistema maduro de FastAPI

  • Marco web listo para producción : creado sobre FastAPI, un marco web moderno y de alto rendimiento con generación automática de documentación OpenAPI.
  • Inyección de dependencia : aproveche el potente sistema de inyección de dependencia de FastAPI para obtener un código más fácil de mantener y probar.
  • Compatibilidad con middleware : fácil integración con autenticación, monitoreo y otros componentes de middleware.
  • Validación incorporada : integración de Pydantic para una validación sólida de solicitudes/respuestas y modelado de datos.
  • Compatibilidad asíncrona : compatibilidad de primera clase con patrones asíncronos/en espera para aplicaciones de alta concurrencia.

Registro de herramientas mejorado

Nuestra implementación mejora el registro de herramientas MCP estándar mediante:

  • Generación automática de documentación : las herramientas se documentan automáticamente tanto en formato MCP como en la especificación OpenAPI.
  • Sugerencias de tipo mejoradas : extracción de información de tipo mejorada para mejores herramientas y soporte IDE.
  • Definiciones de esquema más completas : definiciones de esquema JSON más expresivas para entradas y salidas de herramientas.
  • Mejor manejo de errores : respuestas de errores estructuradas con información detallada.
  • Compatibilidad mejorada con cadenas de documentación : mejor extracción de documentación de cadenas de documentación de Python.

Características adicionales

  • Compatibilidad con CORS : listo para solicitudes de origen cruzado, lo que facilita la integración con aplicaciones web.
  • Gestión de vida útil : inicialización y limpieza adecuadas de recursos a través de la API de vida útil de FastAPI.

Empezando

Prerrequisitos

  • Python 3.10+

Instalación

# Clone the repository git clone https://github.com/yourusername/awesome-mcp-fastapi.git cd awesome-mcp-fastapi # Create a virtual environment python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate # Install dependencies pip install -e .

Ejecución del servidor

uvicorn src.main:app --reload

Visita http://localhost:8000/docs para ver la documentación de OpenAPI.

Uso

Creando una herramienta

from fastapi import FastAPI from src.utils.tools import auto_tool, bind_app_tools app = FastAPI() bind_app_tools(app) @auto_tool( name="calculator", description="Perform basic arithmetic operations", tags=["math"] ) @app.post("/api/calculator") async def calculator(operation: str, a: float, b: float): """ Perform basic arithmetic operations. Parameters: - operation: The operation to perform (add, subtract, multiply, divide) - a: First number - b: Second number Returns: The result of the operation """ if operation == "add": return {"result": a + b} elif operation == "subtract": return {"result": a - b} elif operation == "multiply": return {"result": a * b} elif operation == "divide": if b == 0: return {"error": "Cannot divide by zero"} return {"result": a / b} else: return {"error": f"Unknown operation: {operation}"}

Acceso a herramientas a través de MCP

Los LLM pueden descubrir y usar sus herramientas mediante el Protocolo de Contexto de Modelo. Ejemplo con Claude:

You can perform calculations using the calculator tool. Try calculating 42 * 13.

Claude encontrará y utilizará automáticamente su herramienta calculadora para realizar el cálculo.

Arquitectura

Nuestra aplicación sigue una arquitectura modular:

src/ ├── api/ # API endpoints │ └── v1/ # API version 1 ├── core/ # Core functionality │ └── settings.py # Application settings ├── db/ # Database connections │ └── models/ # Database models ├── main.py # Application entry point └── utils/ # Utility functions └── tools.py # Enhanced tool registry

Soporte de Docker

Construir y ejecutar con Docker:

docker build -t awesome-mcp-fastapi . docker run -p 8000:8000 --env-file .env awesome-mcp-fastapi

Contribuyendo

¡Agradecemos sus contribuciones! No dude en enviar una solicitud de incorporación de cambios.

Licencia

Este proyecto está licenciado bajo la licencia MIT: consulte el archivo de LICENCIA para obtener más detalles.

-
security - not tested
F
license - not found
-
quality - not tested

Un servidor MCP listo para producción creado con FastAPI, que proporciona un registro de herramientas mejorado para crear, administrar y documentar herramientas de IA para modelos de lenguaje grandes (LLM).

  1. Overview
    1. Why This Is Better Than Standard MCP
      1. FastAPI's Mature Ecosystem
      2. Enhanced Tool Registry
      3. Additional Features
    2. Getting Started
      1. Prerequisites
      2. Installation
      3. Running the Server
    3. Usage
      1. Creating a Tool
      2. Accessing Tools Through MCP
    4. Architecture
      1. Docker Support
        1. Contributing
          1. License
            ID: 2ysi73d5t3