● healthy
Plataforma SaaS multi-tenant para gestionar servicios profesionales: agenda, finanzas y CRM. Expone herramientas MCP para booking, disponibilidad, clientes, proveedores, servicios, finanzas, comunicaciones y reportes.
Transport
—
Protocol
1.0.0
Price
—
Skills
-
Create BookingCreate a new session/appointment for a client. providerId is optional — if omitted, the system auto-assigns a provider using the agenda assignment strategy (round_robin, least_booked, etc.). When a client has a titular provider, that provider is preferred automatically. Without providerId and without publicAgendaId, the org default public agenda is used. Preconditions: (1) service must exist and be active, (2) client must exist (use client_create first). Use availability_get_slots to find valid time slots before calling this. Set retroactive: true to register past sessions (skips slot validation, sets status to completed by default). Use autoCharge: true with retroactive to auto-generate the charge. Retroactive sessions are tagged with self_declared provenance. Max 365 days in the past. Past dates are auto-detected as retroactive — the retroactive flag is optional (system infers it from scheduledAt).bookingsessionsschedulingretroactive
-
Get BookingGet complete details of a session/appointment by its ID, including client, provider, service, financial, and delivery proof information.bookingsessions
-
List BookingsList sessions for an organization with filters by provider, client, service, status, and date range. Supports cursor-based pagination.bookingsessionslisting
-
Cancel BookingCancel an existing session. Optionally applies cancellation policy charges. Requires confirm: true.bookingsessionscancellation
-
Reschedule BookingReschedule a session to a new time. Cancels the original and creates a new one. Requires confirm: true.bookingsessionsrescheduling
-
Update Booking StatusAdvance a session through the Servicialo lifecycle: confirm, start, complete, or mark as no-show. NOTE: the "deliver" action is NOT available via MCP (ref PDC-SEC-001) — MCP authentication cannot validate actor-as-Proveedor. Delivery must be performed via the REST endpoint PATCH /api/organizations/[orgSlug]/coordinalo/sessions/[sessionId]/deliver which enforces provider binding.bookingsessionslifecycle
-
Create Recurring BookingCreate recurring sessions (e.g. weekly therapy). Generates multiple individual sessions linked by a recurrence series ID. Max 52 occurrences.bookingsessionsrecurring
-
Get Available SlotsQuery available time slots within a date range. Agenda-aware: without clientId, filters by the org default public agenda — each org decides which services to expose. With clientId, resolves the client titular provider and returns their full service catalog. Five modes: (1) orgSlug only — slots from the public agenda grouped by service, provider auto-assigned at booking; (2) orgSlug + clientId — resolves titular provider if set, falls back to agenda; (3) orgSlug + agendaId — slots for a specific agenda; (4) serviceId — slots for all providers assigned to that service; (5) providerId — slots for a specific provider. Modes 1–3 hide provider details. Use before booking_create.availabilityschedulingslots
-
Get Provider ScheduleGet the configured weekly availability schedule for a provider (not free slots, but the base configuration). Use admin_set_availability to modify.availabilityschedulingproviders
-
List ClientsList clients of an organization with search and pagination. Can filter by provider or outstanding debt.clientscrmlisting
-
Get ClientGet complete details of a client including financial summary and recent sessions.clientscrm
-
Create ClientCreate a new client in the organization. If a Person with the same email exists, it will be linked (not duplicated).clientscrm
-
Update ClientUpdate an existing client's personal data. Email cannot be changed via MCP.clientscrm
-
Create ServiceCreate a new bookable service in an existing organization. Use this for day-to-day service management (requires X-Org-Api-Key). For initial org setup, prefer admin_create_service instead. After creating, use service_assign_provider to link providers. A service without providers cannot accept bookings.servicescatalog
-
List ServicesList services of an organization. Can filter by active status, discoverability, or category.servicescataloglisting
-
Update ServiceUpdate an existing service (price, duration, status, etc.). Creates a price history entry if price changes.servicescatalog
-
Assign Provider to ServiceAssign or unassign a provider to/from a service. Controls which providers can deliver which services.servicesproviders
-
Get ProviderGet complete details of a provider including services, schedule, and session stats.providers
-
Create ProviderCreate a new provider in the organization. Links or creates a Person record by email.providers
-
Update ProviderUpdate provider data: status, commission, coverage areas, permissions.providers
-
Get Provider StatsGet detailed performance metrics for a provider over a date range: sessions, occupancy, no-show rate, revenue.providersreporting
-
List ChargesList charges (cobros) for an organization. Filter by client, status, or date range. Includes summary totals.financechargeslisting
-
Get ChargeGet details of a specific charge (cobro) including all associated payments.financecharges
-
Create ChargeCreate a manual charge (cobro) for a client. Not linked to a sale/venta.financecharges
-
Register PaymentRegister a manual payment against an existing charge (cobro). Updates cobro status automatically. Requires confirm: true.financepayments
-
Get Client BalanceGet the complete financial balance for a client: total sales, charges, payments, pending debt, and credits.financeclients
-
List PaymentsList payments received with filters. Includes summary by payment type.financepaymentslisting
-
List SalesList sales (ventas) for an organization. Filter by client, service, provider, or status.financesaleslisting
-
Create SaleCreate a service sale (venta) for a client. Optionally auto-creates a charge (cobro) depending on org configuration. Requires confirm: true.financesales
-
Accounts Receivable AgingGet accounts receivable aging report: pending charges grouped by age buckets (0-7, 7-30, 30-90, 90+ days). Use to answer "who owes money" or "old debts" questions.financereportingaging
-
List Charge ConfirmationsList pending charge confirmations and their status. Shows cobros in pending_confirmation state that await client verification. Filter by client or confirmation status (pending, confirmed, disputed, auto_confirmed).financeconfirmationsprovenance
-
Send Confirmation DigestSend pending confirmation digest to clients. Groups all pending_confirmation charges by client and sends a single message per client via WhatsApp or email. Creates confirmation tokens and sets a grace period for auto-confirmation. Requires confirm: true.financeconfirmationscommunications
-
Get Communication PreferencesGet the communication preferences for an organization (WhatsApp, email, confirmation, reminder channels and messages).communicationspreferences
-
Update Communication PreferencesEnable or disable communication channels and features for an organization. Partial update — only provided fields are changed. Creates preferences if none exist.communicationspreferences
-
List CampaignsList communication campaigns (WhatsApp/email) for the organization. Filter by status.communicationscampaignslisting
-
Get CampaignGet details of a specific campaign with optional delivery logs per recipient.communicationscampaigns
-
Send MessageSend a single WhatsApp or email message to a specific client. Use templateKey for predefined templates or customMessage for free text. Requires confirm: true.communicationsmessaging
-
Render Visual MessageRender a communication template as a visual image (PNG). Available templates: session-confirmation, session-reminder, payment-reminder. Use action "preview" to get the image URL, "send" to render and send via WhatsApp with the image attached. Each template requires specific data fields (clientName, providerName, date, time, etc.).communicationsrenderingvisual
-
Create Email CampaignCreate a new email campaign with HTML body to send to a segmented audience. Supports variable substitution: {nombre}, {apellido}, {nombre_completo}, {email}, {telefono}, {organizacion}. Use audienceType "predefined" with audienceId "active"/"inactive"/"new"/"with_whatsapp"/"without_whatsapp", or "adhoc" with custom filters. Returns campaign ID and recipient count. Campaign starts as draft — use comms_send_campaign to execute. Requires confirm: true.communicationscampaignsemail
-
Send CampaignExecute a draft or scheduled campaign. Sends messages to all matching recipients asynchronously. Campaign must be in draft or scheduled status. Returns immediately — use comms_get_campaign to track progress. Requires confirm: true.communicationscampaigns
-
Dashboard ReportExecutive summary of the organization: today's sessions, monthly metrics, revenue, pending charges, and alerts.reportingdashboard
-
Occupancy ReportCalculate provider occupancy rates for a period. Group by provider, day, or week.reportingoccupancy
-
Revenue ReportCalculate revenue for a period grouped by day, week, month, service, or provider.reportingrevenue
-
No-Shows ReportReport no-show statistics for a period. Group by client, provider, service, or day.reportingno-shows
-
SC Summary ReportBreakdown of Servicio Coordinado (SC) events by month and resolver path (backfill, cac-native, live, compensalo). Use to validate SC coverage and monitor live SC resolution growth. Key metric: sc_live shows SCs resolved in production (not backfill).reportingscvalidation
-
Real Debt ReportReal-time report of clients with genuine outstanding debt. Excludes temporal payment mismatches (prepaid clients whose global balance is covered). Shows: client name, debt amount, periods with debt, last payment date, and collection status (active/inactive/never_paid). Use to answer "who actually owes money" questions.reportingfinancedeudacac
-
Organization SummaryCompact organization overview (~500 tokens). Returns services, providers, schedules, active features, key counts, and an onboarding_status checklist showing what is configured vs missing (services, providers, availability, public agenda). Use as first call to orient yourself — cheaper than report_dashboard. If onboarding_status.ready is false, follow the missing steps before booking.reportingorganizationonboarding
-
List AgendasList public agendas for an organization. Returns agendas with their provider, service, and session counts.agendasbooking
-
Create AgendaCreate a public agenda — a shareable booking page where external clients can self-book appointments. Links to a specific provider and/or service. The agenda gets a public URL at /{orgSlug}/agenda/{slug}. Create this after services and availability are configured. Without a public agenda, clients can only be booked via the API or dashboard.agendasbooking
-
Get AgendaGet complete details of a public agenda by ID. Returns all configuration including booking flow (service_first, provider_first, auto), selection modes, assignment strategy, booking policies (advance booking, same-day, on-demand), cancellation policies, privacy settings, linked provider/service, and session count. Use before agendas_update to inspect current settings.agendasbooking
-
Update AgendaUpdate a public agenda’s configuration. Partial update — only provided fields are changed. Supports modifying: title, description, visibility (isPublic/isActive), booking flow order (service_first/provider_first/auto), selection modes for service and provider (required/optional/auto/hidden), assignment strategy (manual/round_robin/least_booked/most_available/priority/random), booking policies (min/max advance, same-day, on-demand), cancellation policies (type, deadline, penalty), privacy flags (showSessions, showClientNames, showProviderUtilization, showProviderList), prepayment, and provider/service linking. When a provider is assigned, their services are auto-linked to the agenda.agendasbookingsettings
-
Delete AgendaDelete a public agenda permanently. Cascades to related sessions booked through this agenda, comments, and service configs. Requires confirm: true. Cannot be undone.agendasbooking
-
Update OrganizationUpdate organization profile fields: name, description, logo URL, or vertical. Only provided fields are updated.organizationsettings
-
List MembersList members of an organization with their roles and status.membersteam
-
Invite MemberInvite a new member to the organization by email. Sends an invitation email. Requires confirm: true.membersteam
-
List DisputesList disputes for an organization. Filter by status or type. Returns disputes with client and provider info.disputessupport
-
Get Email DomainGet the email sending domain configured for an organization and its verification status (PENDING, VERIFIED, FAILED). Returns null if no domain is configured. Use email_domain_register to set one up.emaildomainconfiguration
-
Register Email DomainRegister a custom email sending domain for an organization via Resend. Returns DNS records that must be configured in the domain provider before verification. Replaces any previously configured domain. After adding DNS records, call email_domain_verify to check status.emaildomainconfiguration
-
Verify Email DomainTrigger DNS verification for the configured email domain and return updated status. Call this after the organization has added the required DNS records. Status will be VERIFIED (ready to send), PENDING (DNS not yet propagated), or FAILED.emaildomainverification
-
Delete Email DomainRemove the configured email sending domain from the organization. This deletes it from both Resend and the database. The organization will revert to using the default Coordinalo sending address. Requires confirm: true.emaildomainconfiguration
-
Get Dunning ConfigGet the current dunning (payment recovery) configuration for an organization. Returns whether dunning is enabled, grace period, step timings, and blocking settings.dunningfinanceconfiguration
-
Configure DunningUpdate dunning (payment recovery) configuration for an organization. All fields except organizationSlug are optional — only provided fields are updated, rest stays unchanged.dunningfinanceconfiguration
-
Get SettingsGet organization settings by chapter or specific keys. Chapters: basics (name, description, vertical, timezone, currency), availability (weekday hours, saturday, assisted assignment), communication (channels, phone required), finances (provider payment type, client payment timing, max balance), policies (no-show strikes, blocking duration, no-show charge, auto-apply), reminders (session 24h, booking, payment, confirmation timeout), client_data (required fields: lastName, rut, email, phone, direccion). Use chapter param for a group, or keys param for specific settings (comma-separated, e.g. "policies.noShowMaxStrikes,finances.clientPaymentTiming").settingsconfiguration
-
Update SettingsUpdate organization settings. Partial update — only provided keys are changed. Pass a settings object with key-value pairs (e.g. {"policies.noShowMaxStrikes": 3, "finances.clientPaymentTiming": "BEFORE"}). All values are validated before writing — if any key fails validation, no changes are applied. Returns the full updated settings for the affected chapters. See settings_get for available keys and valid values.settingsconfiguration
-
Get Reminder ConfigurationGet the full reminder/notification configuration for an organization. Returns detailed settings for each reminder type: bookingReminder (post-booking follow-up), sessionReminder24h (24h before), sessionReminder1h (1h before), paymentReminder (payment due), paymentOverdue (overdue payment), notificationFollowup (post-session NPS/follow-up), pendingConfirmation (auto-cancel unconfirmed). Each has enabled, timing, and frequency settings. More granular than settings_get reminders chapter.remindersnotificationsconfiguration
-
Update Reminder ConfigurationUpdate reminder/notification configuration for an organization. Partial update — only provided sections are changed. Sections: bookingReminder {enabled, daysAfter, maxReminders, interval}, sessionReminder24h {enabled, hoursBefore, sendTime}, sessionReminder1h {enabled, hoursBefore}, paymentReminder {enabled, daysAfter, maxReminders, interval}, paymentOverdue {enabled, daysOverdue, maxReminders, interval}, notificationFollowup {enabled, daysAfter, maxFollowups, interval}, pendingConfirmation {enabled, timeoutHours, autoConfirm}. Returns the full configuration after update.remindersnotificationsconfiguration
-
Create OrganizationCreate a new organization from scratch. Use this first when onboarding a new client — no org needs to exist yet. Requires X-Bootstrap-Key header (not X-Org-Api-Key, because the org does not exist yet). Returns a one-time admin API key (sk_admin_...) for subsequent admin_create_service, admin_set_availability calls. To get a bootstrap key, visit https://coordinalo.com/developers — free, self-service, issued in minutes. IMPORTANT: Always pass an idempotencyKey (e.g. a UUID) to safely handle retries — if a previous call with the same key and slug succeeded, the existing org is returned without creating a duplicate. Errors with isRetryable: false should NOT be retried with the same parameters. NOTE: As of 2026-05-22, new orgs are born PRIVATE — they are NOT auto-registered in the public Servicialo registry. The response includes registry_registered: false. To publish, the human owner must sign in to coordinalo.com and turn on "Publicar en Servicialo" from the org's admin panel; this consent action cannot be performed via MCP/admin_toggle_discoverable.adminonboardingorganization
-
List Providers (Admin)List active providers (professionals) for an organization. Use this to get providerId before calling admin_set_availability. The org owner is auto-provisioned as a provider. Requires X-Org-Api-Key header.adminproviders
-
Create Service (Admin)Add a bookable service to an organization. Use after admin_create_organization. Auto-discoverable by default. If the org has exactly one active provider, the service is auto-assigned to them. With multiple providers, use service_assign_provider to assign manually — unassigned services block admin_toggle_discoverable. Next step: admin_set_availability to configure the provider schedule. Requires X-Org-Api-Key header.adminservicesonboarding
-
Set Availability (Admin)Replace the weekly availability schedule for a provider (not additive — overwrites all existing blocks). Get providerId from admin_list_providers first. Schedule uses day names and HH:MM times. Requires X-Org-Api-Key header.adminavailabilityscheduling
-
Toggle Discoverable (Admin)Toggle the LIFECYCLE flags isPublic and servicialoPublished. ⚠️ This tool does NOT grant public discovery consent — discovery in the Servicialo registry requires Organization.discoveryConsent=true, which can ONLY be set by the human owner via PATCH /api/organizations/:slug/servicialo from the web panel (a deliberate, authenticated consent action). Without consent, the cron registry-sync and resolver-heartbeat skip the org, so calling this tool with discoverable=true on a non-consented org flips local flags but does not publish anywhere. Requires X-Org-Api-Key header.adminregistrydiscovery
-
Preview Client ClosingPreview the financial snapshot for a client in a period WITHOUT creating the closing. Returns totals for ventas, cobros, pagos, sessions.cierrefinancepreview
-
Create Client ClosingCreate a client monthly closing (immutable financial snapshot). Requires historialCompleto=true on the client. One closing per client per period.cierrefinance
-
List Client ClosingsList client closings for an organization. Filter by period and/or client.cierrefinancelisting
-
Delete Client ClosingDelete (reopen) a client closing. Only allowed if the organizational period is not frozen. Requires confirm: true.cierrefinance
-
Evaluate Org Closing ReadinessEvaluate organizational closing readiness for a period. Returns: active clients, closed count, excluded count, pending count, completion percentage, and whether closing is possible.cierrefinancereporting
-
Close Organizational PeriodClose the organizational period. Requires ALL active clients with historialCompleto=true to be closed first. Freezes the period.cierrefinance
-
Distribute ProfitsDistribute profits for a closed period. Freezes the current period and all prior open periods. Requires the period to be organizationally closed first. Requires confirm: true.cierrefinance
-
List Retained EarningsList retained earnings (utilidades retenidas) for an organization. Returns per-period records with accumulated totals: ingresos, costos, utilidadNeta, distribuido, retenido.cierrefinancelisting
-
NPS SummaryGet NPS summary for the organization: score, trend, promoter/passive/detractor counts. Use to answer questions about customer satisfaction.npsreportingsatisfaction
-
List Payroll RecordsList payroll records for an organization. Filter by period, provider, or status.payrollfinancelisting
-
Payroll SummaryGet payroll summary for a period: total per provider, total cost, pending approvals.payrollfinancereporting
-
Public Service ListList publicly bookable services for an organization. Does NOT require an API key. Returns only active, discoverable services with assigned providers. Use this as the first step in the public booking flow to show available services to end users or agents.publicservicesdiscoverybooking
-
Public Availability SlotsQuery available time slots for public booking. Does NOT require an API key. Returns slots grouped by service from the organization's public agenda. Provider details are hidden — the system auto-assigns at booking time. Use after public_service_list to find bookable times.publicavailabilityslotsbooking
-
Public Booking CreateCreate a public booking request. Does NOT require an API key, but DOES require: (1) requester identity — fullName plus at least email or phone, (2) submission context — channel and whether an agent assisted, (3) authorization.humanIntentConfirmed must be true. The booking is created as pending_confirmation — use public_booking_confirm with the returned confirmationToken to confirm. A bookingToken is also returned for future lifecycle management (cancel, reschedule). Rate-limited per IP+org. All requests are audited with semantic decision codes. Use public_service_list → public_availability_get_slots → public_booking_create → public_booking_confirm as the complete public booking flow.publicbookingidentity-validated
-
Public Booking ConfirmConfirm a pending public booking using the confirmationToken returned by public_booking_create. Advances the booking from pending_confirmation to scheduled. The token expires after 30 minutes. Does NOT require an API key. Rate-limited.publicbookingconfirmation
-
Public Booking GetGet details of a public booking using the bookingToken returned by public_booking_create. Returns status, scheduled time, service, and requester info. Does NOT require an API key — the booking token is the credential. Only returns public-safe data.publicbookinglifecycle
-
Public Booking CancelCancel a public booking using the bookingToken. Only works for bookings in pending_confirmation, scheduled, or confirmed status. Optionally include a reason. Does NOT require an API key. The booking token scopes access to a single booking.publicbookinglifecyclecancellation
-
Public Booking RescheduleReschedule a public booking using the bookingToken. Cancels the original and creates a new pending_confirmation booking at the new time. Returns new confirmationToken and bookingToken. Only works for bookings in pending_confirmation, scheduled, or confirmed status. Does NOT require an API key.publicbookinglifecyclerescheduling
-
Get Lifecycle HistoryGet the SCEvent stream for a session — all observed transitions reconstructed from status_history. Returns events[] with discriminated union by event_type (sc.scheduled, sc.confirmed, sc.completed, sc.delivered, sc.verified, sc.cancelled, etc.), plus stream_completeness ("complete" | "partial_pre_trigger") and pagination cursor. Events carry origin="reprojected_from_status_history" and canonical SCEvent shape per docs/protocol/sc-event-canonical-schema-2026-04-18.md §7.2. Filters: event_types (e.g. ["sc.delivered"]), from_sequence (cursor), limit (default 50, max 500). PII note: delivery_proof clinical fields (summary, outcome, next_steps) are returned only for admin-scoped keys. IMPORTANT: backfilled sc_resolved timestamps do NOT emit sc.resolved events in this stream (Forma B, see decisions log 2026-04-18-lifecycle-history-backfill-policy). For current resolution status, use lifecycle_get_state.sc_resolution. Requires X-Org-Api-Key.servicialolifecyclespec-compliantsc-eventsstream
-
Get Lifecycle StateGet the current lifecycle state of a session, including available transitions, state history, and SC resolution. Returns current_state, available_transitions, verification_deadline (when state=delivered), timestamps, duration, sc_resolution (the fundamental SC event: resolved, resolved_at, resolved_by, billing_model), and recent transition history with from/to/at/by/method fields. Requires X-Org-Api-Key. Shape per docs/protocol/sc-event-canonical-schema-2026-04-18.md §7.1.servicialolifecyclespec-compliantsc-resolution
-
Lifecycle TransitionExecute a state transition on a session. Accepts either to_state (target state name per Servicialo spec: confirmed, in_progress, completed, verified, documented, cancelled, no_show) or action (semantic verb: confirm, start, complete, verify, document, cancel, no_show). When to_state=no_show, no_show_type is required. NOTE: to_state="delivered" / action="deliver" is NOT available via MCP (ref PDC-SEC-001) — MCP authentication cannot validate actor-as-Proveedor. Delivery must be performed via the REST endpoint PATCH /api/organizations/[orgSlug]/coordinalo/sessions/[sessionId]/deliver which enforces provider binding. Returns transition record with from, to, at, by, method fields. Requires X-Org-Api-Key.servicialolifecyclespec-compliant
-
Book SessionBook a session (Servicialo spec). Returns confirmation_credential (opaque token, valid 30 min) and booking_id. Use scheduling_confirm with the credential to finalize. Does NOT require an API key — uses requester identity (fullName + email or phone). Accepts optional submission context for audit trail.servicialoschedulingspec-compliantpublic
-
Confirm SchedulingConfirm a booking (Servicialo spec). Dual-mode: (1) with credential — uses the confirmation token from scheduling_book, no API key needed; (2) with booking_id — uses API key to confirm an existing session. Returns confirmed status with timestamp.servicialoschedulingspec-compliant
-
Cancel SessionCancel a session (Servicialo spec). Applies cancellation policy based on time remaining before scheduled time. Requires confirm: true and X-Org-Api-Key.servicialoschedulingspec-compliant
-
Reschedule SessionReschedule a session to a new time (Servicialo spec). Cancels the original session and creates a new one at the specified datetime. Requires confirm: true and X-Org-Api-Key.servicialoschedulingspec-compliant
How to call
A2A endpoint (JSONRPC)
https://coordinalo.com/api/mcp
Homepage
https://coordinalo.com