Mcp Cirujanos — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Cirujanos (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
MCP de agendamiento para consultorios de cirugía plástica. Fork de `valeria-mcp-server` (repo zobra-auto/valeria-mcp-server), adaptado a multi-tenant por archivos/env. Es el Componente B del INFRA_PLAN.md.
CATALOG_JSON (./data/catalog.json) → servicios de la valoración del cirujano.buscar_casos): biblioteca antes/después por procedimiento, leída de CASOS_JSON. La usa el sub-agente VENTAS en M1 del guion.BARBERS_JSON → ./data/doctors.json (cada "barbero" = un médico con su Google Calendar). Duración por defecto 45 min.Lo demás (calendar check/create/cancel, booking search, barbers resolve, auth, rate-limit, caché) es idéntico a valeria y 100% configurable por env — por eso no se toca el mcp-valeria de la barbería.
POST /mcp (alias /tools) con header x-api-key: <API_KEY> y cuerpo { "tool", "action", "params" }.
| tool | action | params | Uso |
|---|---|---|---|
calendar | check | date (YYYY-MM-DD) ó from+to ISO, barber?, duration? | Slots reales del calendar |
calendar | create | date,time (ó when ISO), who, phone, barber, duration? | Agendar valoración |
calendar | cancel | eventId, barber? | Cancelar |
booking | search | phone | Citas del paciente |
catalog | search | query? | Servicios/precios del consultorio |
casos | search | procedimiento, n? (def 2, máx 5) | Casos antes/después (M1) |
health | ping | — | Healthcheck |
Alias para n8n: ver_disponibilidad/agendar_turno/cancelar_turno → calendar; buscar_turnos → booking; buscar_casos → casos.
Copia .env.example → .env y rellena API_KEY + GOOGLE_APPLICATION_CREDENTIALS_JSON. Los datos del consultorio viven en data/ (doctors.json, business_hours.json, catalog.json, casos.json).
Migrar a otro doctor: cambiar los 4 JSON de data/ (o apuntar las envs *_JSON a otros archivos) + el calendarId compartido con la SA. Cero cambios de código.
npm install
cp .env.example .env # rellenar API_KEY y la SA
npm run dev # node --watch
# smoke:
curl -s localhost:3000/mcp -H 'x-api-key: <API_KEY>' -H 'content-type: application/json' \
-d '{"tool":"catalog","action":"search","params":{}}' | jq
curl -s localhost:3000/mcp -H 'x-api-key: <API_KEY>' -H 'content-type: application/json' \
-d '{"tool":"casos","action":"search","params":{"procedimiento":"rinoplastia","n":2}}' | jqNuevo servicio mcp-cirujanos en el proyecto barber_auto. Env según .env.example; copiar GOOGLE_APPLICATION_CREDENTIALS_JSON desde mcp-valeria (misma SA mcp-valeria@zobra-pruebas). Dominio barber-auto-mcp-cirujanos.wytay4.easypanel.host. NO reconfigurar mcp-valeria (aislamiento).
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.