Skip to main content
Glama
SERV-DRV

MCP---FastApi

by SERV-DRV

API de Inventario con MCP y Chat con IA

Sistema completo de gestión de inventario integrado con inteligencia artificial y el protocolo MCP (Model Context Protocol), ejecutándose en contenedores Docker.

📋 Descripción

API REST para gestión de inventario con capacidades de IA mediante Ollama y soporte MCP para integración con clientes como Claude Desktop y VS Code. El sistema permite gestionar empresas y productos, con persistencia en PostgreSQL, y ofrece un chat interactivo con IA que puede usar las herramientas del inventario.

Related MCP server: MCP Inventory Manager

🏗️ Estructura de Carpetas

Prueba_fastAPI/
├── app/
│   ├── __init__.py
│   ├── main.py                 # Aplicación principal FastAPI
│   ├── database.py             # Configuración de base de datos
│   ├── models.py               # Modelos SQLAlchemy
│   ├── crud.py                 # Operaciones CRUD
│   ├── api/
│   │   ├── __init__.py
│   │   ├── rutas_usuarios.py   # Endpoints de usuarios
│   │   ├── rutas_inventario.py # Endpoints de inventario
│   │   ├── rutas_generals.py   # Endpoints generales
│   │   └── rutas_chat.py       # Endpoint de chat con IA
│   └── schemas/
│       ├── usuario.py          # Schemas de usuarios
│       └── inventario.py       # Schemas de inventario
├── Dockerfile                  # Imagen Docker para FastAPI
├── Dockerfile.mcp-inspector    # Imagen Docker para MCP Inspector
├── docker-compose.yml          # Orquestación de contenedores
├── nginx.conf                  # Configuración de Nginx
├── requirements.txt            # Dependencias Python
└── chat_ia.py                  # Script original de chat (legacy)

🛠️ Tecnologías

Backend

  • FastAPI: Framework web moderno para Python

  • SQLAlchemy: ORM para base de datos

  • Pydantic: Validación de datos

  • Uvicorn: Servidor ASGI

Base de Datos

  • PostgreSQL 15: Base de datos relacional

  • psycopg2-binary: Driver PostgreSQL para Python

Inteligencia Artificial

  • Ollama: Plataforma para ejecutar modelos LLM

  • llama3.2:3b: Modelo de lenguaje local

  • fastapi-mcp: Integración MCP con FastAPI

Infraestructura

  • Docker & Docker Compose: Contenedores

  • Nginx: Proxy reverso y balanceador

  • Node.js 22: Para MCP Inspector

🐳 Contenedores Docker

El proyecto utiliza 5 contenedores:

  1. web-api: Aplicación FastAPI principal

  2. ollama: Modelo de IA llama3.2:3b

  3. postgres: Base de datos PostgreSQL

  4. nginx: Proxy reverso con soporte SSE

  5. mcp-inspector: Herramienta de desarrollo para MCP (opcional)

🚀 Instalación y Uso

Requisitos Previos

  • Docker instalado

  • Docker Compose instalado

Clonar el Proyecto

git clone <url-del-repositorio>
cd Prueba_fastAPI

Iniciar el Sistema

# Iniciar todos los contenedores
docker-compose up -d

# Ver logs de todos los servicios
docker-compose logs -f

# Detener todos los servicios
docker-compose down

📡 Endpoints Disponibles

API REST

  • POST /usuarios/ - Crear usuario

  • GET /usuarios/ - Listar usuarios

  • PUT /usuarios/{id} - Actualizar usuario

  • DELETE /usuarios/{id} - Eliminar usuario

  • POST /inventario/empresas - Crear empresa

  • GET /inventario/empresas - Listar empresas

  • POST /inventario/productos - Crear producto

  • GET /inventario/productos - Listar productos

Chat con IA

  • POST /chat/chat - Chat interactivo con Ollama

MCP

  • GET /sse - Endpoint Server-Sent Events para MCP

Documentación

  • GET /docs - Documentación interactiva Swagger UI

  • GET /redoc - Documentación ReDoc

🔍 Ver Funcionalidad

1. Documentación API

Abre en tu navegador:

http://localhost:8000/docs

2. Chat con IA

Usa el endpoint /chat/chat en la documentación Swagger:

{
  "mensaje": "Crea una empresa llamada TestEmpresa"
}

3. Ver Datos en Base de Datos

docker exec -it postgres_container psql -U postgres -d inventario -c "SELECT * FROM empresas;"

4. MCP Inspector (Opcional)

Si el servicio mcp-inspector está activo, verifica los logs para obtener el token de acceso:

docker logs mcp_inspector_container

🔧 Configuración

Variables de Entorno

Las variables de entorno se configuran en docker-compose.yml:

  • OLLAMA_HOST: URL del servicio Ollama

  • DATABASE_URL: URL de conexión PostgreSQL

  • API_URL: URL interna de la API

Puertos

  • 8000: Nginx (API principal)

  • 11434: Ollama

  • 5432: PostgreSQL

  • 6274-6275: MCP Inspector (si está activo)

📝 Notas Importantes

  • El modelo llama3.2:3b tarda ~1 minuto en responder por ejecutarse en CPU

  • MCP Inspector es opcional y puede eliminarse del docker-compose

  • Los datos persisten en volúmenes Docker incluso al reiniciar contenedores

  • Nginx está configurado para soportar Server-Sent Events (SSE) para MCP

  • Si se desea probar desde docker en MCP inspector se coloca Nginx como ruta ya que maneja e trafico y la comunicacion (/nignx/sse)

🤝 Contribución

Este proyecto es un sistema de demostración para integrar MCP con FastAPI y Ollama.

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A comprehensive Model Context Protocol (MCP) server for product inventory management with PostgreSQL database backend, enabling natural language queries for product information across multiple AI platforms.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    An AI-powered inventory management system with a natural language interface, enabling CRUD operations on items and suppliers, stock transfers, and supplier management via MCP tools.
    -
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables natural language queries to PostgreSQL through an Ollama-powered agent, using MCP protocol to connect the backend to the database and a web interface.
    -