Documéntalo
Servicialo

Servicialo — El estándar abierto para servicios profesionales

Protocolo que define cómo AI agents y aplicaciones interactúan con organizaciones de servicios. Compatible con MCP (Model Context Protocol).

Servicialo

Draft v0.4MCP CompatibleOpen Standard

Protocolo que define cómo AI agents y aplicaciones interactúan con organizaciones de servicios profesionales. Compatible con Model Context Protocol (MCP).


¿Qué es Servicialo?

Servicialo define un set estandarizado de operaciones para gestionar servicios profesionales: agendamiento, pagos, clientes y notificaciones.

Es un estándar abierto, no un producto. Cualquier plataforma puede implementar la especificación para exponer sus servicios de manera uniforme a aplicaciones y AI agents.

Principios de diseño

PrincipioDescripción
InteroperableCualquier plataforma puede implementar el estándar
AI-nativeDiseñado para ser consumido por AI agents vía MCP
Dominio acotadoCubre exclusivamente servicios profesionales
IncrementalCada versión agrega capacidades sin romper las anteriores
Agnóstico al origenServicialo no asume quién inicia una acción. Un paciente reservando por WhatsApp, una secretaria agendando por teléfono, un kinesiólogo programando un control, y un AI agent operando vía MCP son todos actores válidos del protocolo. Cada operación registra quién la ejecutó y, opcionalmente, en nombre de quién.

¿Por qué un estándar?

Hoy, cada plataforma de servicios profesionales (clínicas, consultorios, salones, academias) expone APIs propietarias. Un AI agent que quiera agendar una cita necesita integrarse con cada una por separado.

Servicialo resuelve esto definiendo una interfaz común. Un agent que implementa Servicialo puede interactuar con cualquier plataforma compatible.

Coordinalo es la implementación de referencia.


Conceptos fundamentales

Actor

Cualquier entidad que inicia o ejecuta una acción en el sistema. Servicialo es agnóstico al origen de las acciones — una sesión puede ser creada por un cliente, un profesional, un administrador o un AI agent. Todas las operaciones del protocolo registran quién las inició.

interface Actor {
  type: 'client' | 'provider' | 'organization' | 'agent';
  id: string;
  on_behalf_of?: {              // cuando alguien actúa por otro
    type: 'client' | 'provider' | 'organization';
    id: string;
  };
}

Ejemplos de actores

SituaciónActor
Paciente reserva online{type: "client", id: "pac_123"}
Admin agenda para paciente{type: "organization", id: "org_1", on_behalf_of: {type: "client", id: "pac_123"}}
Kinesiólogo programa seguimiento{type: "provider", id: "pro_456"}
AI agent agenda vía MCP{type: "agent", id: "claude", on_behalf_of: {type: "client", id: "pac_123"}}
Clínica derivadora solicita hora{type: "organization", id: "org_2", on_behalf_of: {type: "client", id: "pac_789"}}

Tools estándar

Servicialo define cuatro grupos de tools que toda implementación debe exponer. Todos los tools reciben actor como parámetro requerido para registrar quién inicia cada operación.

Scheduling

Tools para gestionar el ciclo de vida de las sesiones.

ToolDescripciónParámetros
scheduling.check_availability()Consultar horarios disponiblesprovider_id, service_id, date_range
scheduling.book()Agendar una sesiónorganization_id, service_id, provider_id, client_id, starts_at, actor
scheduling.reschedule()Reagendar sesión existentesession_id, new_datetime, actor
scheduling.cancel()Cancelar sesiónsession_id, reason?, actor

scheduling.book() — Detalle

// scheduling.book()
// Crea una nueva sesión

Request: {
  organization_id: string,
  service_id: string,
  provider_id: string,
  client_id: string,
  starts_at: ISO8601,
  actor: Actor               // quién inicia la reserva
}

Response: {
  session: Session,
  status: 'confirmed' | 'pending_confirmation',
  confirmation_required_from?: Actor  // null si auto-confirm
}

El campo status en la respuesta permite que cada organización defina su política: auto-confirmación (el portal confirma al instante) o confirmación manual (requiere que el profesional o admin apruebe).

Payments

Tools para gestionar el flujo financiero asociado a los servicios.

ToolDescripciónParámetros
payments.get_balance()Consultar saldo de un clienteclient_id
payments.charge()Registrar cobroclient_id, amount, method, session_id?, actor
payments.record()Registrar pago recibidoclient_id, amount, reference, actor

Clients

Tools para gestionar el directorio de clientes de la organización.

ToolDescripciónParámetros
clients.list()Listar clientes de la organizaciónpage?, limit?, search?
clients.get()Obtener detalle de un clienteclient_id
clients.create()Crear nuevo clientename, email?, phone?, actor

Notifications

Tools para comunicaciones con clientes a través de múltiples canales.

ToolDescripciónParámetros
notifications.send()Enviar notificaciónclient_id, channel, template, data, actor

Canales soportados: whatsapp, email, sms.


Versiones de la especificación

Servicialo sigue un esquema de versionamiento incremental. Cada versión agrega un dominio funcional.

v0.1 — Core

Entidades base del protocolo.

  • Organización: Entidad raíz que agrupa profesionales, clientes y servicios
  • Profesional: Persona que ofrece servicios dentro de una organización
  • Cliente: Persona que recibe servicios
  • Servicio: Tipo de servicio ofrecido (ej: "Sesión de kinesiología")
  • Sesión: Instancia de un servicio agendado entre profesional y cliente

v0.2 — Derivaciones

Referrals entre organizaciones y profesionales.

  • Derivación: Solicitud de transferencia de un cliente de un profesional/organización a otro
  • Red de derivaciones: Grafo de relaciones entre organizaciones que se derivan clientes
  • Trazabilidad completa del flujo de derivación

v0.3 — Reputación

Sistema de calidad y métricas.

  • Métricas de servicio: Tasa de asistencia, puntualidad, satisfacción
  • Calificaciones: Rating bidireccional (cliente ↔ profesional)
  • Indicadores de calidad: Agregados a nivel organización y profesional

v0.4 — Liquidación (versión actual)

Reparto de ingresos y acuerdos financieros.

  • Acuerdo financiero: Contrato que define cómo se reparten los ingresos entre organización y profesional
  • Movimiento financiero: Registro de cada transacción asociada a una sesión
  • Liquidación: Proceso de cierre periódico que calcula compensaciones netas
  • Compensación: Monto final a pagar/cobrar a cada parte

Entidades del protocolo

El modelo de datos de Servicialo define las siguientes relaciones:

┌──────────────┐       tiene        ┌───────────────┐
│ Organización │───────────────────▶│ Profesionales │
└──────────────┘                    └───────┬───────┘
                                            │ ofrecen

                                    ┌───────────────┐
                                    │   Servicios   │
                                    └───────┬───────┘

┌──────────────┐  participan en     ┌───────▼───────┐   iniciadas por   ┌──────────┐
│   Clientes   │◄──────────────────▶│   Sesiones    │◄─────────────────│  Actores  │
│  (reciben)   │                    └───────┬───────┘  (cualquier tipo) └──────────┘
└──────────────┘                            │ generan

                                    ┌───────────────┐
                                    │  Movimientos  │
                                    │  financieros  │
                                    └───────┬───────┘
                                            │ se liquidan via

                                    ┌───────────────┐
                                    │   Acuerdos    │
                                    │  financieros  │
                                    └───────────────┘

Sesiones son el punto de encuentro entre Clientes y Profesionales, no una acción unidireccional. Cualquier Actor autorizado puede crear, modificar o cancelar una sesión.

Relaciones many-to-many

Servicialo soporta relaciones many-to-many entre las entidades core:

  • Un Profesional puede pertenecer a múltiples Organizaciones
  • Un Cliente puede ser atendido por múltiples Organizaciones
  • Un Profesional puede ofrecer múltiples Servicios, y un Servicio puede ser entregado por múltiples Profesionales

Esto es fundamental para soportar derivaciones entre organizaciones y profesionales que operan en múltiples centros.

Schema de entidades (v0.4)

interface Organization {
  id: string;
  name: string;
  slug: string;
  timezone: string;
  created_at: string; // ISO 8601
}

interface Professional {
  id: string;
  organization_id: string;
  name: string;
  email: string;
  specialties: string[];
  active: boolean;
}

interface Client {
  id: string;
  organization_id: string;
  name: string;
  email?: string;
  phone?: string;
}

interface Service {
  id: string;
  organization_id: string;
  name: string;
  duration_minutes: number;
  price: number;
  currency: string; // ISO 4217
}

interface Session {
  id: string;
  organization_id: string;
  service_id: string;
  provider_id: string;
  client_id: string;

  // Cuándo y dónde
  starts_at: ISO8601;
  ends_at: ISO8601;
  modality: 'in_person' | 'remote' | 'home_visit';
  location?: string;

  // Quién la creó
  initiated_by: Actor;

  // Estado
  status: 'created' | 'confirmed' | 'reminded' | 'in_progress'
        | 'completed' | 'no_show' | 'cancelled' | 'rescheduled';

  // Trazabilidad
  status_history: Array<{
    from: string;
    to: string;
    changed_by: Actor;
    changed_at: ISO8601;
    reason?: string;
  }>;

  // Referencias
  previous_session_id?: string;  // si fue reagendada
  referral_source?: {            // si viene de derivación
    organization_id: string;
    provider_id?: string;
  };
}

interface FinancialAgreement {
  id: string;
  organization_id: string;
  professional_id: string;
  type: 'fixed' | 'percentage' | 'tiered';
  value: number;
  effective_from: string; // ISO 8601
  effective_until?: string;
}

interface FinancialMovement {
  id: string;
  session_id: string;
  type: 'charge' | 'payment' | 'adjustment';
  amount: number;
  currency: string;
  created_at: string;
}

Ciclo de vida de una sesión

Cada sesión transita por estados bien definidos. Todas las transiciones registran el Actor que las ejecutó.

created ──► confirmed ──► reminded ──► in_progress ──► completed
    │           │             │              │
    │           │             │              └──► no_show
    │           │             │
    └───────────┴─────────────┴──► cancelled

                └──► rescheduled (crea nueva sesión)

Transiciones permitidas por actor

TransiciónClientProviderOrganizationAgent
created → confirmed✓*
confirmed → cancelled✓*
confirmed → rescheduled✓*
in_progress → completed
in_progress → no_show

* Agent hereda permisos de on_behalf_of


Implementaciones

Coordinalo

Live

Primera implementación comercial del estándar Servicialo. Gestión integral para clínicas y centros de servicios profesionales en Chile.

  • URL: coordinalo.com
  • Cobertura: Tools de Scheduling, Payments, Clients y Notifications
  • Versión del protocolo: v0.4
  • Entorno: Producción

Implementa Servicialo

¿Quieres implementar el estándar en tu plataforma? Servicialo es abierto y cualquier organización puede adoptarlo.

Contacta al equipo en Grupo Digitalo para soporte técnico y certificación de compatibilidad.


MCP Server

Servicialo expone sus tools como un servidor MCP, permitiendo que AI agents interactúen con servicios profesionales de forma nativa.

Namespace: com.servicialo/professional-services

Configuración

Agrega el servidor a tu claude_desktop_config.json:

{
  "mcpServers": {
    "servicialo": {
      "command": "npx",
      "args": ["-y", "@servicialo/mcp-server"],
      "env": {
        "SERVICIALO_API_KEY": "tu_api_key",
        "SERVICIALO_ORG_ID": "org_01"
      }
    }
  }
}

Ejemplo: Agendar una cita vía AI agent

Un AI agent puede usar los tools de Servicialo para gestionar sesiones. Este es el flujo completo para agendar una cita:

1. Consultar disponibilidad

{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "scheduling.check_availability",
    "arguments": {
      "provider_id": "pro_paula",
      "service_id": "srv_kinesiologia",
      "date_range": {
        "from": "2026-02-14",
        "to": "2026-02-18"
      }
    }
  }
}

Respuesta:

{
  "jsonrpc": "2.0",
  "id": 1,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"available_slots\":[{\"date\":\"2026-02-14\",\"times\":[\"09:00\",\"10:00\",\"14:00\"]},{\"date\":\"2026-02-16\",\"times\":[\"11:00\",\"15:00\"]}]}"
      }
    ]
  }
}

2. Agendar la sesión

{
  "method": "tools/call",
  "params": {
    "name": "scheduling.book",
    "arguments": {
      "organization_id": "org_mamapro",
      "service_id": "srv_kinesiologia",
      "provider_id": "pro_paula",
      "client_id": "cli_maria",
      "starts_at": "2026-02-14T10:00:00-03:00",
      "actor": {
        "type": "agent",
        "id": "claude_mcp",
        "on_behalf_of": {
          "type": "client",
          "id": "cli_maria"
        }
      }
    }
  }
}

Respuesta:

{
  "jsonrpc": "2.0",
  "id": 2,
  "result": {
    "content": [
      {
        "type": "text",
        "text": "{\"session\":{\"id\":\"ses_01\",\"status\":\"confirmed\",\"starts_at\":\"2026-02-14T10:00:00-03:00\",\"ends_at\":\"2026-02-14T10:45:00-03:00\",\"provider\":\"Paula Méndez\",\"client\":\"María López\",\"service\":\"Sesión de kinesiología\",\"initiated_by\":{\"type\":\"agent\",\"id\":\"claude_mcp\",\"on_behalf_of\":{\"type\":\"client\",\"id\":\"cli_maria\"}}},\"status\":\"confirmed\",\"confirmation_required_from\":null}"
      }
    ]
  }
}


Servicialo es un estándar abierto mantenido por Grupo Digitalo.

On this page