MCP Usuarios DB
Allows AI assistants (like ChatGPT) to manage users in a PostgreSQL database via function calling tools exposed by the MCP server.
Provides tools for managing users in a PostgreSQL database, including CRUD operations, search by email, name, city, age range, and global statistics.
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@MCP Usuarios DBFind users in San Salvador"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
MCP Usuarios DB
Sistema de gestión de usuarios con PostgreSQL, expuesto de tres formas:
Servidor MCP — integración con ChatGPT/OpenAI (herramientas de función)
API REST — Flask + Gunicorn
App web — HTML/CSS/JS con búsqueda por voz (Whisper + TTS)
Todo corre en un solo docker-compose.yml con base de datos compartida.
Arquitectura
┌─────────────────────────────────────────────────────────────┐
│ docker-compose.yml │
├──────────────┬──────────────────┬───────────────────────────┤
│ postgres │ mcp-server │ mcp-api │
│ PostgreSQL │ app/server.py │ app/api.py │
│ :5433 │ (MCP + OpenAI) │ Flask + web/static │
│ │ │ :5001 │
└──────┬───────┴────────┬─────────┴───────────┬───────────────┘
│ │ │
└────────────────┴─────────────────────┘
usuarios_dbRelated MCP server: Enterprise Data MCP Server
Estructura del proyecto
mcp-db/
├── app/
│ ├── __init__.py
│ ├── api.py # API REST Flask + rutas de voz
│ ├── database.py # Conexión PostgreSQL y CRUD
│ ├── models.py # Modelos Usuario y EstadisticasUsuarios
│ ├── server.py # Servidor MCP para ChatGPT
│ └── voice.py # Whisper, TTS e interpretación de comandos
├── web/static/
│ ├── index.html # Interfaz web
│ ├── style.css # Estilos
│ ├── script.js # Lógica UI (búsqueda, crear, stats)
│ └── voice.js # Grabación, permisos micrófono, voz
├── db/
│ ├── init.sql # Esquema tabla usuarios
│ └── seed.sql # ~1000 usuarios de prueba
├── docker-compose.yml # postgres + mcp-server + mcp-api
├── Dockerfile # Imagen MCP server
├── Dockerfile-web # Imagen API web
├── requirements.txt # Deps MCP (openai, psycopg2)
├── requirements-web.txt # Deps web (flask, gunicorn, openai)
├── .env.example # Variables de entorno de ejemplo
└── README.mdRequisitos
Configuración
Clona el repositorio:
git clone https://github.com/hmmatus/mcp-db.git
cd mcp-dbCrea el archivo
.envdesde el ejemplo:
cp .env.example .envEdita
.envy agrega tu clave de OpenAI:
OPENAI_API_KEY=sk-tu-clave-aquiLas variables de PostgreSQL ya están configuradas en docker-compose.yml para Docker. Para desarrollo local fuera de Docker usa DB_PORT=5433.
Ejecutar con Docker
Levantar todos los servicios:
docker compose up -dSolo base de datos y API web:
docker compose up -d postgres mcp-apiVer logs:
docker compose logs -f mcp-apiDetener:
docker compose downURLs y puertos
Servicio | URL / Puerto | Descripción |
Web + API | Interfaz y REST API | |
PostgreSQL | localhost:5433 | BD (usuario: |
MCP server | (stdin, sin puerto HTTP) | Para integración con Cursor/IDE |
Nota macOS: el puerto 5000 suele estar ocupado por AirPlay. La API web usa 5001 en el host.
API REST
Base: http://localhost:5001/api
Método | Ruta | Descripción |
GET |
| Listar usuarios |
GET |
| Usuario por ID |
POST |
| Crear usuario |
PUT |
| Actualizar usuario |
DELETE |
| Borrado lógico |
GET |
| Buscar por email |
GET |
| Buscar por nombre |
GET |
| Buscar por ciudad |
GET |
| Buscar por edad |
GET |
| Estadísticas globales |
GET |
| Health check |
POST |
| Audio → texto (Whisper) |
POST |
| Interpretar comando de voz |
POST |
| Texto → audio (TTS) |
Respuesta estándar:
{
"exito": true,
"datos": {},
"error": null,
"cantidad": 10,
"mensaje": "Usuario creado"
}App web
Abre http://localhost:5001 en el navegador.
Secciones
Voz — mantén presionado el micrófono, habla un comando, escucha la respuesta
Inicio — últimos usuarios registrados
Buscar — por email, nombre, ciudad o rango de edad
Crear — formulario de nuevo usuario
Estadísticas — totales, edad promedio, ciudades y países
Comandos de voz (ejemplos)
"Busca usuarios en San Salvador"
"Dame los usuarios entre 25 y 35 años"
"Busca a Juan"
"Crea un usuario llamado Carlos con email carlos@mail.com"
"Cuántos usuarios hay en total?"
"Elimina el usuario 5"
Al entrar, la app solicita permiso de micrófono con una explicación de uso.
Servidor MCP (ChatGPT)
El servicio mcp-server ejecuta python -m app.server y expone herramientas OpenAI para consultar y modificar usuarios.
Requiere OPENAI_API_KEY en .env. Se usa con clientes MCP compatibles (Cursor, Claude Desktop, etc.).
docker compose up -d mcp-server
docker attach mcp-server # modo interactivoDesarrollo local (sin Docker)
API web
pip install -r requirements-web.txt
export DB_HOST=localhost DB_PORT=5433 DB_USER=mcpuser DB_PASSWORD=mcppassword DB_NAME=usuarios_db
export OPENAI_API_KEY=sk-...
python -m app.apiSolo PostgreSQL en Docker
docker compose up -d postgresBase de datos
Tabla usuarios:
Campo | Tipo |
id | SERIAL PK |
nombre | VARCHAR(100) |
VARCHAR(100) UNIQUE | |
edad | INTEGER |
ciudad, pais | VARCHAR(100) |
telefono | VARCHAR(20) |
activo | BOOLEAN (default true) |
created_at, updated_at | TIMESTAMP |
Conectar con psql:
psql -h localhost -p 5433 -U mcpuser -d usuarios_db
# password: mcppasswordVariables de entorno
Variable | Descripción | Default (Docker) |
| Clave OpenAI (MCP + voz) | — |
| Host PostgreSQL |
|
| Puerto PostgreSQL |
|
| Usuario BD |
|
| Contraseña BD |
|
| Nombre BD |
|
Licencia
MIT
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
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/hmmatus/mcp-db'
If you have feedback or need assistance with the MCP directory API, please join our Discord server