Training Platform MCP G2
MCP server for tracking user course progress, providing tools to retrieve and save course and stage progress for authenticated users with data persisted in SQL Server.
README
Training Platform MCP G2
¿Qué hace este proyecto?
Este repositorio contiene un servidor MCP (Model Context Protocol) en Python para registrar y consultar el progreso de cursos de usuarios autenticados. El servidor expone herramientas para:
- obtener el progreso actual de un usuario (
get_course_progress) - guardar el avance de curso y etapa (
save_course_progress)
La aplicación valida tokens de acceso y persiste los datos en SQL Server.
Estructura principal
main.py: punto de entrada del servidor MCP.mcp.yaml: configuración del servidor y namespace.db.py: conexión y operaciones con SQL Server para el MCP de progreso de cursos.db_init.sql: script SQL para crear la estructura de base de datos.init_db.py: script de inicialización local de la base de datos.docker-compose.yml: configuración de desarrollo con Docker Compose.namespaces/training_platform_mcp_g2/handlers.py: tools, recurso y prompt del namespace.namespaces/training_platform_mcp_g2/auth.py: extracción y validación del token.namespaces/training_platform_mcp_g2/config.py: definición del namespace.
Requisitos
- Python 3.10+
- Docker y Docker Compose (opcional)
- SQL Server (local o remoto)
- Variables de entorno correctamente configuradas
Configuración rápida
- Copia
.env.examplea.env:
copy .env.example .env
- Ajusta las variables:
DB_HOST=<host_sql_server>
DB_PORT=1433
DB_USER=<usuario_sql>
DB_PASSWORD=<password_sql>
DB_NAME=HistorialCursos
SA_PASSWORD=<password_sql_server>
GO_BASE_PATH=<go_base_path>
SERVER_HOST=0.0.0.0
SERVER_PORT=8000
- Instala las dependencias:
pip install -r requirements.txt
- Inicia el servidor directamente:
python main.py
- O usa Docker Compose:
docker compose up --build
Docker Compose cargará las variables desde el archivo .env.
Variables de entorno importantes
DB_HOST: host del servidor SQL ServerDB_PORT: puerto de SQL ServerDB_USER: usuario de SQL ServerDB_PASSWORD: contraseña de SQL ServerDB_NAME: nombre de la base de datosSA_PASSWORD: contraseña del usuariosapara SQL Server (solo Docker Compose)GO_BASE_PATH: URL base para validar tokensSERVER_HOST: host del servidor MCPSERVER_PORT: puerto del servidor MCP
Inicialización de la base de datos
El proyecto incluye el script db_init.sql para crear la base de datos y las tablas necesarias.
Opción 1: usar Docker Compose
Si levantás el stack con Docker Compose, el contenedor de SQL Server se inicializa con el script incluido y queda listo para el servidor MCP.
Opción 2: inicializarla manualmente
Si ya tenés SQL Server corriendo, podés ejecutar el script desde una herramienta como sqlcmd o desde tu cliente SQL Server:
sqlcmd -S <host> -U <usuario> -P <password> -i db_init.sql
El script crea:
courses: catálogo de cursosstages: etapas del flujo de aprendizajestudent_progress: registro del progreso de cada usuario
Uso básico
get_course_progress
Recupera el curso y la etapa actuales del usuario autenticado.
save_course_progress
Guarda o actualiza el progreso de un usuario autenticado.
get_user_email
Devuelve el email del usuario autenticado a partir del token de acceso.
Buenas prácticas para revisión
- No subir archivos de configuración local ni secretos.
- Mantener
pip.conf,.envyvenv/fuera del repositorio. - Usar
.env.examplecomo plantilla de configuración. - Documentar los endpoints o tools disponibles.
Notas de seguridad
Este proyecto ya está configurado para leer la conexión a la base de datos desde variables de entorno en lugar de valores hardcodeados.
Notas de compatibilidad
El servidor está pensado para ejecutarse con el framework interno ffmcp y el patrón de autenticación go-token. Por eso, si se quiere levantar fuera del contexto de Finnegans, puede requerir ajustes adicionales de infraestructura o dependencias.
No debes subir nunca:
.envpip.confpip.configvenv/o.venv/- archivos con contraseñas, certificados o claves privadas
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
Neon Database
MCP server for interacting with Neon Management API and databases
E2B
Using MCP to run code via e2b.
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.