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
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
| Principio | Descripción |
|---|---|
| Interoperable | Cualquier plataforma puede implementar el estándar |
| AI-native | Diseñado para ser consumido por AI agents vía MCP |
| Dominio acotado | Cubre exclusivamente servicios profesionales |
| Incremental | Cada versión agrega capacidades sin romper las anteriores |
| Agnóstico al origen | Servicialo 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ón | Actor |
|---|---|
| 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.
| Tool | Descripción | Parámetros |
|---|---|---|
scheduling.check_availability() | Consultar horarios disponibles | provider_id, service_id, date_range |
scheduling.book() | Agendar una sesión | organization_id, service_id, provider_id, client_id, starts_at, actor |
scheduling.reschedule() | Reagendar sesión existente | session_id, new_datetime, actor |
scheduling.cancel() | Cancelar sesión | session_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.
| Tool | Descripción | Parámetros |
|---|---|---|
payments.get_balance() | Consultar saldo de un cliente | client_id |
payments.charge() | Registrar cobro | client_id, amount, method, session_id?, actor |
payments.record() | Registrar pago recibido | client_id, amount, reference, actor |
Clients
Tools para gestionar el directorio de clientes de la organización.
| Tool | Descripción | Parámetros |
|---|---|---|
clients.list() | Listar clientes de la organización | page?, limit?, search? |
clients.get() | Obtener detalle de un cliente | client_id |
clients.create() | Crear nuevo cliente | name, email?, phone?, actor |
Notifications
Tools para comunicaciones con clientes a través de múltiples canales.
| Tool | Descripción | Parámetros |
|---|---|---|
notifications.send() | Enviar notificación | client_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ón | Client | Provider | Organization | Agent |
|---|---|---|---|---|
created → confirmed | ✗ | ✓ | ✓ | ✓* |
confirmed → cancelled | ✓ | ✓ | ✓ | ✓* |
confirmed → rescheduled | ✓ | ✓ | ✓ | ✓* |
in_progress → completed | ✗ | ✓ | ✓ | ✗ |
in_progress → no_show | ✗ | ✓ | ✓ | ✗ |
* Agent hereda permisos de on_behalf_of
Implementaciones
Coordinalo
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}"
}
]
}
}Links
Servicialo es un estándar abierto mantenido por Grupo Digitalo.