MCP Server Demo con Streamlit y Ollama
Este proyecto es una demo de un servidor MCP (Model Context Protocol) en Python, integrado con una interfaz de chat web hecha en Streamlit y un modelo de lenguaje local usando Ollama. Permite gestionar usuarios en una base de datos PostgreSQL (agregar, eliminar, modificar, consultar) tanto desde el chat como desde herramientas MCP externas.
Características
- Chat web con Streamlit.
- LLM local usando Ollama (Llama 3 u otro modelo compatible).
- Servidor MCP con herramientas para CRUD de usuarios.
- Base de datos PostgreSQL para almacenar usuarios.
- Integración flexible: puedes usar solo el chat, solo el servidor MCP, o ambos.
Requisitos
- Python 3.9+
- PostgreSQL corriendo y accesible
- Ollama instalado y corriendo (para LLM local)
- Entorno virtual (recomendado)
- Las dependencias del archivo
requirements.txt
Instalación
Clona el repositorio:
git clone https://github.com/tu-usuario/mcp-server-demo.git cd mcp-server-demoCrea y activa un entorno virtual:
python -m venv .venv source .venv/bin/activate # En Linux/Mac .venv\\Scripts\\activate # En WindowsInstala las dependencias:
pip install -r requirements.txtConfigura tu base de datos PostgreSQL y ajusta los datos de conexión en
server.py.(Opcional) Crea un archivo
.envsi usas claves de API.
Uso
1. Levanta Ollama y el modelo LLM
ollama run llama3
2. Levanta el chat de Streamlit
streamlit run streamlit.py
Abre el navegador en http://localhost:8501.
3. (Opcional) Levanta el servidor MCP
mcp run server.py
o
uv run --with mcp mcp run server.py
Funcionalidades del chat
- Agregar usuario: Escribe:
agregar usuario Juan [email protected] clave123 - Eliminar usuario: Escribe:
eliminar usuario [email protected] - Modificar usuario: Escribe:
modificar usuario [email protected] nombre=Juan Perez contraseña=nuevaClave - Consultar usuarios: Escribe:
consultar usuariosoconsultar usuario [email protected] - Conversación libre: Si el mensaje no es una acción, responde la LLM local.
Créditos
¡Contribuciones y sugerencias son bienvenidas!