Admissions MCP Hub
Admissions MCP Hub
Un servidor Model Context Protocol con gobernanza que expone capacidades de curso, grupo, tarifa, prospecto y devolución de llamada a dos aplicaciones de chat de IA independientes mediante un único contrato MCP.
Qué demuestra esto
Un servidor MCP, dos clientes independientes (estudiante + consejero) — sin integraciones duplicadas
Credenciales de BD, autenticación, auditoría y validación — todo centralizado en el servidor
Las operaciones de escritura requieren una puerta de confirmación (prepare → confirm) — un LLM no puede crear un prospecto por sí solo
Cada llamada a herramienta es auditada (actor, cliente, hash de args, resultado, latencia)
Una demo comparativa sin MCP muestra lo que perderías sin MCP

Related MCP server: ComplyOS
Inicio rápido
# 1. PostgreSQL
docker compose up -d postgres
# 2. Migrate + seed
uv sync
uv run alembic upgrade head
uv run python scripts/seed_demo.py
# 3. Start services (4 terminals)
uv run uvicorn services.mcp_server.app:asgi_app --port 8010
uv run uvicorn services.learner_host.api:app --port 8020
uv run uvicorn services.counsellor_host.api:app --port 8030
uv run streamlit run ui/app.py --server.port 8501Abre http://localhost:8501 — dos pestañas de chat (Estudiante + Consejero).
Comparativa sin MCP:
uv run streamlit run ui/no_mcp_demo.py --server.port 8502
Pruébalo
🎓 Asistente del Estudiante
Prompt | Qué ocurre |
| Enumera 4 cursos |
| Fechas de grupo + presupuesto de matrícula + política |
| Devuelve el texto de la política |
| ✅/❌ puerta de confirmación antes de crear el prospecto |
🎧 Consola del Consejero
Prompt | Qué ocurre |
| Enumera 4 cursos |
| 3 grupos con plazas |
| ID de presupuesto + total (INR) |
| Muestra los prospectos asignados |
| ✅/❌ puerta de confirmación |
Consulta RUN_GUIDE.md para ver los prompts completos y las respuestas esperadas.
Arquitectura
Puerto | Servicio | Función |
5433 | PostgreSQL | Fuente de verdad (cursos, grupos, prospectos, auditoría) |
8010 | Servidor MCP | Herramientas (11) + Recursos (8) + Prompts (2), autenticación JWT, RBAC, auditoría |
8020 | Host del Estudiante | Aplicación LangGraph — JWT de estudiante, puerta de confirmación para escrituras |
8030 | Host del Consejero | Aplicación LangGraph — JWT de consejero, gestión de prospectos |
8501 | Interfaz Streamlit | Dos pestañas de chat (basadas en MCP) |
8502 | Demo sin MCP | Mismo flujo, BD directa — muestra lo que MCP protege |
Stack: Python 3.11 · MCP SDK · LangGraph · FastAPI · SQLAlchemy 2 · PostgreSQL 16 · Pydantic v2 · Ollama (qwen3.5:2b) · Streamlit
Conceptos clave
Concepto | Dónde | Por qué importa |
Puerta de confirmación |
| El LLM no puede crear un prospecto sin el ✅ de un humano |
Idempotencia |
| Los reintentos de red no crean duplicados |
RBAC | mapa | El estudiante no puede ver los prospectos de otras personas |
Auditoría | tabla | Cada llamada queda registrada: quién, qué, resultado, latencia |
Sin estado | IDs generados por el servidor ( | Escalado horizontal sin sesiones |
Estructura del proyecto
scai-mcp-admissions/
├── services/
│ ├── mcp_server/ # MCP server (tools, resources, prompts, auth, audit)
│ ├── learner_host/ # LangGraph learner app (port 8020)
│ └── counsellor_host/ # LangGraph counsellor app (port 8030)
├── ui/
│ ├── app.py # Streamlit — 2 chat tabs (MCP)
│ └── no_mcp_demo.py # Streamlit — no-MCP comparison (direct DB)
├── packages/
│ ├── contracts/ # Pydantic tool inputs/outputs + domain models
│ ├── shared/ # Config, LLM adapter, JWT tokens
│ └── observability/ # Structured logging, tracing
├── scripts/
│ ├── seed_demo.py # Seed 4 courses, 4 batches, 4 fee plans, 3 policies
│ ├── issue_dev_token.py # Issue dev JWTs for manual testing
│ └── run_demo_checks.py # Smoke tests against running server
├── tests/ # unit, contract, integration, security, e2e
├── migrations/ # Alembic migrations
├── data/demo_seed/ # Seed data + knowledge_base.json
├── mcp_concept.ipynb # MCP concept notebook (what/why/how/scale/use cases)
├── mcp_flow_diagram.mmd # Mermaid source for architecture diagram
├── mcp_flow_diagram.png # Rendered architecture diagram
├── RUN_GUIDE.md # Step-by-step run guide with test prompts
└── docker-compose.yml # PostgreSQL 16Pruebas
uv run pytest # all tests
uv run pytest -m unit # just unit tests
uv run pytest -m contract # contract testsReferencias
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.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA production-grade, LLM-agnostic MCP server that integrates AI models with tools for managing subscriptions, organizations, and payments via the Updation API. It features Redis-backed conversation memory, structured logging, and role-based access control for secure, scalable orchestration.
- AlicenseNot gradedqualityBmaintenanceAI-native compliance auditing engine for enterprise LMS, enabling querying compliance status, running audits, and validating assignment rules through natural language with MCP clients like Claude or Cursor.Business Source 1.1
- FlicenseNot gradedqualityCmaintenanceAn MCP server that enables AI agents to safely query and act on school data (attendance, fees, student records) with strict role-based access control and a two-step write approval flow.
- FlicenseNot gradedqualityBmaintenanceSingle source of truth and control for agent-operated companies, managing business state with deterministic policy enforcement, seat identity, and hash-chained audit trail.
Related MCP Connectors
Runtime AI governance: decision gates, human approval, hash-chained audit, compliance mapping.
Enterprise AI Control Plane: governance, guardrails, spend tracking, compliance & smart routing.
Odoo ERP for AI agents: hosted OAuth endpoint, gated writes, one endpoint for every instance.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/avivek-dwivedi/custom-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server