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.
Create Booking — Create 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…
Get Booking — Get complete details of a session/appointment by its ID, including client, provider, service, financial, and delivery proof information.
List Bookings — List sessions for an organization with filters by provider, client, service, status, and date range. Supports cursor-based pagination.
Cancel Booking — Cancel an existing session. By default applies the org cancellation policy: the charge is computed from the no-charge/partial/full windows and, if the policy has autoApply, registered as a penalty transaction (money-write). Set applyCancellationPolicy: false to waive the charge. Requires confirm: true.
Reschedule Booking — Reschedule a session to a new time. Cancels the original and creates a new one. Requires confirm: true.
Update Booking Status — Advance 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.
Create Recurring Booking — Create recurring sessions (e.g. weekly therapy). Generates multiple individual sessions linked by a recurrence series ID. Max 52 occurrences.
List Reschedule Requests — List the reschedule requests (SessionRequest) of an organization — the org side of the bilateral coordination loop a client opens from the portal. Filter by status (pending|all|resolved, default pending), sessionId or clientId. Returns the proposed slot, current session state, and who proposed it. Cursor-paginated. Set includePendingCount: true to also get the count of pending requests (powers the sidebar badge). Read-only. Use booking_resolve_request to approve or reject one.
Resolve Reschedule Request
kind ← A2A Agent Card
name ← A2A Agent Card
repoUrl ← Official MCP Registry
summary ← A2A Agent Card
version ← A2A Agent Card
description ← A2A Agent Card
homepageUrl ← A2A Agent Card
publisherUrl ← A2A Agent Card
publisherName ← A2A Agent Card
Derived by Wellknown
Capabilities
Mapped onto the structured taxonomy from declared text and observed tool names. Confidence shown for derived entries.
2 h ago · declared · summary → "Plataforma SaaS multi-tenant para gestionar servicios profesionales: agenda, finanzas y CRM. Expone herramientas MCP pa
2 h ago · declared · description → "Plataforma SaaS multi-tenant para gestionar servicios profesionales: agenda, finanzas y CRM. Expone herramientas MCP pa
2 h ago · declared · publisherName → "Coordinalo"
2 h ago · declared · publisherUrl → "https://coordinalo.com"
2 h ago · declared · homepageUrl → "https://coordinalo.com"
2 h ago · declared · version → "1.0.0"
2 h ago · declared · kind → "agent"
2 h ago · declared · description → "Scheduling, availability, clients, billing and CRM for appointment-based services."
2 h ago · declared · publisherName → "com.coordinalo"
2 h ago · declared · homepageUrl → "https://coordinalo.com/developers"
— Approve or reject a pending reschedule request (SessionRequest) that a client proposed from the portal — closes the bilateral coordination loop. outcome: "approved" applies the reschedule atomically (moves the session to the proposed slot in the same transaction); "rejected" requires a reason of at least 10 characters. Idempotent: a request already resolved returns a conflict with its current status. Emits the corresponding session lifecycle events.
Confirm Session (client portal) — Confirm a client's attendance to their session, on behalf of the client (e.g. the client called or messaged the org to confirm). Moves scheduled/pending_confirmation → confirmed and notifies the provider. This is the client-portal confirm flow (event role = client), distinct from the org's own admin confirm in booking_update_status. Idempotent: a session already confirmed returns alreadyConfirmed=true. The org API key owner is recorded as the actor acting on behalf of the client (ADR-004 §6).
Cancel Session (client portal) — Cancel a client's session on behalf of the client (client-initiated cancellation: cancelledBy=client). Allowed from scheduled/pending_confirmation/confirmed; rejects past sessions. Idempotent: a session already cancelled returns alreadyCancelled=true. Distinct from the admin cancellation with cancellation-policy charges — this is the client-portal cancel flow. The org API key owner is recorded as the actor acting on behalf of the client (ADR-004 §6).
Propose Reschedule (client portal) — Propose a new time for a session on behalf of the client — opens the bilateral coordination loop by creating a pending SessionRequest (it does NOT move the session; the org resolves it with booking_resolve_request). Provide requestedScheduledAt as an ISO datetime (must be future, within ~3 months). Gated by the org's session-request flow flag and rate-limited per (client, session). The event records the session's client as the proposer. Use booking_list_requests to track pending requests.
Report Session (client portal) — Report, on behalf of the client, that the professional did not show up (reason=provider_no_show) or that the session was cancelled/not delivered (reason=cancelled). Creates a Dispute(OPEN) for the org to review — it does NOT change the session status. Idempotent: if an open dispute already exists for the session, returns alreadyReported=true with its disputeId. Notifies the org.
Confirm Delivery (client portal) — Confirm, on behalf of the client, that the service was delivered (writes DeliveryProof.clientConfirmed) — the client-side confirmation that closes dual-confirm verification. Allowed once the session is completed/delivered/documented; rejected if an open dispute exists. Optionally records a 1-5 rating (only if the service captures quality). This is an OVERLAY: it does NOT change session.status (the auto-verify cron advances delivered→verified). Idempotent: alreadyConfirmed=true if already done. …
Cancel Reschedule Request (client portal) — Cancel a pending reschedule request (SessionRequest) on behalf of the client who proposed it — the client-side withdrawal in the bilateral loop (outcome=cancelled_by_client). Idempotent: a request already cancelled_by_client returns wasAlreadyCancelled=true; a request in another terminal state returns a conflict. Use booking_list_requests to find pending requests; use booking_resolve_request for the org's own approve/reject.
Upsert Session Note — Create or update the clinical note (ficha) of a session: evolution, treatmentPerformed, nextSessionPlan, type (evaluacion/tratamiento/derivacion/cierre), progressMetrics, etc. One note per session (upsert). Sensitivity is resolved automatically (health-vertical orgs default to restricted). NOTE: unlike the provider's own UI save, this does NOT create the provider-confirmed DeliveryProof nor award practice points — those are provider-bound actions (PDC-SEC-001); use the provider portal / REST fo…
Get Session Note — Read the clinical note of a session. Non-restricted notes return full content. Notes marked dataSensitivity=restricted return metadata only (type, sensitivity, timestamps, which fields are present) with the clinical text withheld — pass includeRestricted: true to retrieve the full content, which logs an audited restricted-access event and increments the access counter. Returns note: null if the session has no note.
Get Available Slots — Query 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…
Get Provider Schedule — Get the configured weekly availability schedule for a provider (not free slots, but the base configuration). Use admin_set_availability to modify.
List Clients — List clients of an organization with search and pagination. Can filter by provider or outstanding debt.
Get Client — Get complete details of a client including financial summary and recent sessions.
Create Client — Create a new client in the organization. If a Person with the same email exists, it will be linked (not duplicated).
Update Client — Update an existing client's personal data. Email cannot be changed via MCP.
Create Service — Create 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. Optional delivery-verification overrides per service: verificationLevel (none = silent auto-complete, legacy; default_confirm = both can confirm and silence auto-confirms after the org window; dua…
List Services — List services of an organization. Can filter by active status, discoverability, or category.
Update Service — Update an existing service (price, duration, status, etc.). Creates a price history entry if price changes. Delivery-verification overrides can be changed too: verificationLevel (none / default_confirm / dual_confirm / documented — see service_create for semantics) and qualityCapture (1–5 rating on confirmation). Pass null on either to reset that field and inherit the organization default again; omit to leave it unchanged.
Assign Provider to Service — Assign or unassign a provider to/from a service. Controls which providers can deliver which services.
Get Provider — Get complete details of a provider including services, schedule, and session stats.
Create Provider — Create a new provider in the organization. Links or creates a Person record by email.
Get Provider Stats — Get detailed performance metrics for a provider over a date range: sessions, occupancy, no-show rate, revenue.
List Charges — List charges (cobros) for an organization. Filter by client, status, or date range. Includes summary totals.
Get Charge — Get details of a specific charge (cobro) including all associated payments.
Create Charge — Create a manual charge (cobro) for a client. Not linked to a sale/venta. Requires confirm: true.
Register Payment — Register a manual payment against an existing charge (cobro). Updates cobro status automatically. Requires confirm: true.
Get Client Balance — Get the complete financial balance for a client: total sales, charges, payments, pending debt, and credits.
List Payments — List payments received with filters. Includes summary by payment type.
List Sales — List sales (ventas) for an organization. Filter by client, service, provider, or status.
Create Sale — Create a service sale (venta) for a client. Optionally auto-creates a charge (cobro) depending on org configuration. Requires confirm: true.
Accounts Receivable Aging — Get 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.
List Charge Confirmations — List 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).
Send Confirmation Digest — Send 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.
List Operating Expenses — List operational expenses (gastos operacionales) of an organization with their category, plus totals broken down by category type (FIJO/VARIABLE/COSTO_PRODUCTO/PROVISION). Filter by date range (dateFrom/dateTo), category id, type(s), or recurring-only. Read-only — complements finance_list_cobros/finance_list_payments (income side) to complete the financial picture.
List Invoices — List invoices (facturas) of an organization with total, balance (saldo), status, SII status, linked-sales count and the amount already applied via payment links (with a derived payment status: pendiente/abonada/pagada). Filter by client or status (pendiente/pagada/cancelada). Read-only.
List Campaigns — List communication campaigns (WhatsApp/email) for the organization. Filter by status.
Get Campaign — Get details of a specific campaign with optional delivery logs per recipient.
List Audiences — List the saved audiences/segments used for campaign targeting, each with its filter definition and campaign-usage count. Set includeCount: true to also resolve how many clients currently match each audience, and includePredefined: true to include built-in predefined segments. Read-only — use before comms_create_campaign to pick a target audience.
Create Email Campaign — Create 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"/"withPhone"/"withoutPhone", or "adhoc" with custom filters. On send, links in the body are auto-tagged with UTMs (utm_campaign = stable slug from campaign name) and a legal footer with unsubscribe link is appended. Returns campaign ID and re…
Send Campaign — Execute a draft or scheduled campaign. Sends messages to all matching recipients asynchronously, skipping recipients with email opt-out or bounced addresses (logged as "skipped"). Campaign must be in draft or scheduled status. Returns immediately — use comms_get_campaign to track progress (sent/delivered/opened/clicked update via provider webhooks). Requires confirm: true.
Get Communication Preferences — Get the communication preferences for an organization (WhatsApp, email, confirmation, reminder channels and messages).