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: Postgres-Neo4j MCP Server

🏗️ 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.

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

0Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

View all related MCP servers

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/SERV-DRV/MCP---FastApi'

If you have feedback or need assistance with the MCP directory API, please join our Discord server