Skip to main content
Glama

AURON MCP — v1 (solo lectura, multiinquilino, producción-ligera)

Puerta de enlace MCP entre hosts/agentes de IA y el backend AURON Suite (api_peluqueria). La identidad, la tenencia y el RBAC se resuelven desde la API REST real de AURON — el modelo nunca puede dirigirlos.

Qué es esto

  • Solo lectura: cada herramienta es un GET contra un endpoint verificado de AURON. No se expone ninguna creación/actualización/eliminación.

  • Identidad real: resuelve el principal autenticado de AURON mediante GET /api/auth/verify/ + GET /api/tenants/current/ (token Bearer o las cookies de autenticación httpOnly que emite /api/auth/login/).

  • RBAC de cierre ante fallos: espejo de rol → permiso (policy/roles.py) derivado de los roles canónicos de AURON. Los roles desconocidos obtienen cero permisos; la autorización propia de AURON (403) aún anula la tabla.

  • Tenencia delegada a AURON: el adaptador NUNCA envía tenant_id ni un encabezado X-Auron-Tenant. El upstream deriva el inquilino de la sesión a través de su TenantMiddleware, exactamente como los clientes propios de AURON.

  • Límite de error: nada interno (mensajes, tokens, cuerpos upstream, trazas de pila) llega al modelo — ver errors/normalize_error.

  • Auditoría por llamada: cada llamada a herramienta (exitosa o denegada) se escribe en un registro de auditoría JSONL de solo añadidura y en stdout.

  • Limitación de velocidad: limitador de ventana deslizante por (usuario, herramienta) verificado antes de la política en cada llamada.

Related MCP server: DataGate

Herramientas

Herramienta

Endpoint

auron_sales_summary

GET /api/pos/summary/daily/

auron_appointments_today

GET /api/appointments/appointments/today/

auron_clients_search(query, limit)

GET /api/clients/clients/?search=&limit= (máx. 100)

auron_inventory_alerts

GET /api/inventory/alerts/low-stock/

auron_employee_performance(employee_id)

GET /api/reports/employees/

auron_services_list

GET /api/services/services/

auron_employees_list

GET /api/employees/employees/

auron_branches_list

GET /api/settings/branches/

auron_products_list

GET /api/inventory/products/

auron_dashboard_stats

GET /api/pos/dashboard/stats/

auron_daily_review

Compuesto: ventas + citas + inventario + rendimiento de empleados

auron_inventory_review

Compuesto: productos + alertas de stock bajo

auron_revenue_analysis

Compuesto: estadísticas del panel + ventas de hoy

auron_employee_performance_review

Compuesto: rendimiento + plantilla de empleados

auron_system_health

GET /api/healthz/

Además de un recurso auron://context/current y un prompt daily_business_review.

Inicio rápido

python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

Copie .env.example a .env y establezca los valores reales:

AURON_ADAPTER=http
AURON_API_BASE_URL=http://localhost:8000

Autentíquese una vez (esto almacena las cookies de autenticación httpOnly de AURON para la puerta de enlace):

auron-manage login --email caja@salon.test --subdomain salon-uno
auron-manage status        # verify the resolved identity/role

Ejecute el servidor:

auron-mcp          # stdio (default; what local MCP hosts expect)

Ejecute sobre HTTP Streamable (especificación 2026-07-28) en su lugar:

AURON_MCP_TRANSPORT=streamable-http \
AURON_MCP_HTTP_HOST=127.0.0.1 \
AURON_MCP_HTTP_PORT=8765 \
auron-mcp          # serves the MCP endpoint at http://127.0.0.1:8765/mcp

La implementación HTTP valida los encabezados de solicitud MCP-Protocol-Version / Mcp-Method / Mcp-Name contra el cuerpo JSON-RPC (400 + -32020 HeaderMismatch), rechaza los que no sean POST con 405 y habilita la protección contra el reenlace de DNS. Consulte docs/CONNECTING.md para el contrato completo del endpoint y src/auron_mcp/http_app.py para la capa de especificación sobre el transporte del SDK.

Con AURON_ADAPTER=mock (predeterminado) el servidor funciona sin conexión con una identidad de desarrollo fija (u-mock-1 / t-mock-1 / CLIENT_ADMIN) solo para desarrollo y pruebas.

Pruebas

pytest -q          # 78 tests: policy, rbac, audit, ratelimit, adapters,
                   # identity provider, tools, MCP stdio handshake, and the
                   # 2026-07-28 Streamable HTTP header rules
ruff check src tests

Diseño

src/auron_mcp/
  auth/          identity.py (AuronIdentity) + provider.py (resolve via AURON)
  policy/        roles.py (RBAC mirror) + engine.py (PolicyEngine, fail-closed)
  audit/         AuditLogger (JSONL + stdout)
  adapters/      base.py (interface) / http.py (httpx2 + cookies) / mock.py
  tools/         AuronTools (policy + rate-limit + audit around every read)
  errors/        normalize_error (model-safe error boundary)
  server.py      MCPServer wiring (stdio / streamable-http / sse)
  http_app.py    Streamable HTTP deployment: 2026-07-28 header validation,
                 DNS-rebinding settings, optional bearer token
  manage.py      operator CLI: login / status / clean

Principios de seguridad

  1. Nunca confíe en un ID de inquilino proporcionado por un LLM como límite de autorización.

  2. Resuelva inquilino/ámbito a partir de la identidad autenticada y la política del servidor.

  3. Las herramientas son de solo lectura; los efectos secundarios están intencionalmente fuera del alcance para v1.

  4. Cada acción sensible es auditable — incluidos los intentos denegados.

  5. MCP llama a APIs de aplicación estables de AURON, nunca a SQL sin procesar.

  6. Nunca exponga secretos, JWT, cuerpos de respuesta upstream o trazas de pila al modelo.

  7. Una llamada a herramienta tiene un costo — limite su velocidad.

Consulte docs/mcp-integration-audit.md (auditoría del backend real de AURON), docs/ARCHITECTURE.md, docs/CONNECTING.md y docs/ROADMAP.md.

Related MCP Connectors

Related MCP Servers

  • F
    license
    B
    quality
    D
    maintenance
    A secure, read-only MCP server that enables AI assistants to inspect transactions, vendor performance, wallet balances, and analytics through validated REST API calls.
    19
    -
  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a secure, policy-driven read-only gateway that exposes multiple databases to AI tools via MCP, with governed select, search, and aggregate operations and no free-form SQL.
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides an OAuth-protected, scoped, and audited MCP server that lets AI assistants safely query business data through a fixed set of tools without direct database access.
    1
    MIT
  • F
    license
    Not graded
    quality
    C
    maintenance
    Enables MCP-compatible AI clients to securely read data from customers' ERPNext/Frappe sites through a multi-tenant OAuth-protected gateway, with tools for listing, searching, counting, retrieving, and reporting on documents.
    -