{"apiVersion":"v1","directorySlug":"relacionalo-mcp-9a64aa2558","title":"Coordínalo","description":"Relaciónalo detecta a los clientes que dejaron de venir y automatiza el seguimiento para traerlos de vuelta. Una pieza del ecosistema Coordínalo.","pageUrl":"https://www.mcpbundles.com/skills/relacionalo-mcp-9a64aa2558","connectPath":"importable","connectAction":"import_server","catalogListing":false,"bundleSlug":null,"listingKind":"remote_mcp","kind":"provider","transportUrl":"https://relacionalo.com/api/mcp","hostedMcpUrl":null,"toolCount":112,"toolInventoryStatus":"observed","refreshedAt":"2026-11-03T13:26:00.516172+00:00","registryName":"com.relacionalo/relacionalo-mcp-9a64aa2558","registryVersion":"2026.11.3","registryEligible":true,"tools":[{"name":"dunning_get_config","description":"Get the current dunning (payment recovery) configuration for an organization. Returns whether dunning is enabled, grace period, step timings, and blocking settings.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["organizationSlug"],"properties":{"apiKey":{"type":"string"},"organizationSlug":{"type":"string"}}},"logicalName":"dunning_get_config","displayName":"dunning_get_config","title":"dunning_get_config","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"admin_list_providers","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"admin_list_providers","displayName":"admin_list_providers","title":"admin_list_providers","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"admin_set_availability","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","providerId","schedule"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"schedule":{"type":"array","items":{"type":"object","required":["day","start","end"],"properties":{"day":{"enum":["monday","tuesday","wednesday","thursday","friday","saturday","sunday"],"type":"string"},"end":{"type":"string"},"start":{"type":"string"}}}},"providerId":{"type":"string"}}},"logicalName":"admin_set_availability","displayName":"admin_set_availability","title":"admin_set_availability","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"availability_get_provider_schedule","description":"Get the configured weekly availability schedule for a provider (not free slots, but the base configuration). Use admin_set_availability to modify.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","providerId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"availability_get_provider_schedule","displayName":"availability_get_provider_schedule","title":"availability_get_provider_schedule","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"booking_get","description":"Get complete details of a session/appointment by its ID, including client, provider, service, financial, and delivery proof information.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"}}},"logicalName":"booking_get","displayName":"booking_get","title":"booking_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"booking_list","description":"List sessions for an organization with filters by provider, client, service, status, and date range. Supports cursor-based pagination.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"dateTo":{"type":"string"},"status":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"orderBy":{"enum":["scheduledAt_asc","scheduledAt_desc"],"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"dateFrom":{"type":"string"},"serviceId":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"booking_list","displayName":"booking_list","title":"booking_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"booking_cancel","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId","reason","confirm"],"properties":{"apiKey":{"type":"string"},"reason":{"type":"string","maxLength":500},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"},"cancelledBy":{"enum":["client","provider","admin"],"type":"string"},"applyCancellationPolicy":{"type":"boolean"}}},"logicalName":"booking_cancel","displayName":"booking_cancel","title":"booking_cancel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"booking_reschedule","description":"Reschedule a session to a new time. Cancels the original and creates a new one. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId","newScheduledAt","confirm"],"properties":{"apiKey":{"type":"string"},"reason":{"type":"string","maxLength":500},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"},"newProviderId":{"type":"string"},"newScheduledAt":{"type":"string"}}},"logicalName":"booking_reschedule","displayName":"booking_reschedule","title":"booking_reschedule","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"client_list","description":"List clients of an organization with search and pagination. Can filter by provider or outstanding debt.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"search":{"type":"string"},"hasDebt":{"type":"boolean"},"orgSlug":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"client_list","displayName":"client_list","title":"client_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"client_get","description":"Get complete details of a client including financial summary and recent sessions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"includeHistory":{"type":"boolean"},"includeFinancials":{"type":"boolean"}}},"logicalName":"client_get","displayName":"client_get","title":"client_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"client_create","description":"Create a new client in the organization. If a Person with the same email exists, it will be linked (not duplicated).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","name","lastName"],"properties":{"rut":{"type":"string"},"name":{"type":"string","minLength":1},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"notes":{"type":"string"},"phone":{"type":"string"},"apiKey":{"type":"string"},"comuna":{"type":"string"},"orgSlug":{"type":"string"},"lastName":{"type":"string","minLength":1},"direccion":{"type":"string"},"idempotencyKey":{"type":"string"},"proveedorTitularId":{"type":"string"}}},"logicalName":"client_create","displayName":"client_create","title":"client_create","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"client_update","description":"Update an existing client's personal data. Email cannot be changed via MCP.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId"],"properties":{"rut":{"type":"string"},"name":{"type":"string"},"notes":{"type":"string"},"phone":{"type":"string"},"apiKey":{"type":"string"},"comuna":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"lastName":{"type":"string"},"direccion":{"type":"string"},"proveedorTitularId":{"type":"string"}}},"logicalName":"client_update","displayName":"client_update","title":"client_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"service_list","description":"List services of an organization. Can filter by active status, discoverability, or category.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"category":{"type":"string"},"activeOnly":{"type":"boolean"},"discoverableOnly":{"type":"boolean"}}},"logicalName":"service_list","displayName":"service_list","title":"service_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"service_assign_provider","description":"Assign or unassign a provider to/from a service. Controls which providers can deliver which services.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","serviceId","providerId","action"],"properties":{"price":{"type":"number","minimum":0},"action":{"enum":["assign","unassign"],"type":"string"},"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"serviceId":{"type":"string"},"commission":{"type":"number","maximum":100,"minimum":0},"providerId":{"type":"string"}}},"logicalName":"service_assign_provider","displayName":"service_assign_provider","title":"service_assign_provider","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"provider_get","description":"Get complete details of a provider including services, schedule, and session stats.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","providerId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"provider_get","displayName":"provider_get","title":"provider_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"provider_update","description":"Update provider data: status, commission, coverage areas, permissions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","providerId"],"properties":{"name":{"type":"string"},"phone":{"type":"string"},"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"isActive":{"type":"boolean"},"lastName":{"type":"string"},"providerId":{"type":"string"},"comunasCobertura":{"type":"array","items":{"type":"string"}},"defaultCommission":{"type":"number","maximum":100,"minimum":0},"canManageOwnServices":{"type":"boolean"},"canManageOwnAvailability":{"type":"boolean"}}},"logicalName":"provider_update","displayName":"provider_update","title":"provider_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"provider_get_stats","description":"Get detailed performance metrics for a provider over a date range: sessions, occupancy, no-show rate, revenue.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","providerId"],"properties":{"apiKey":{"type":"string"},"dateTo":{"type":"string"},"orgSlug":{"type":"string"},"dateFrom":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"provider_get_stats","displayName":"provider_get_stats","title":"provider_get_stats","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_list_cobros","description":"List charges (cobros) for an organization. Filter by client, status, or date range. Includes summary totals.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"dateTo":{"type":"string"},"estado":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}}]},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"dateFrom":{"type":"string"}}},"logicalName":"finance_list_cobros","displayName":"finance_list_cobros","title":"finance_list_cobros","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_get_cobro","description":"Get details of a specific charge (cobro) including all associated payments.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","cobroId"],"properties":{"apiKey":{"type":"string"},"cobroId":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"finance_get_cobro","displayName":"finance_get_cobro","title":"finance_get_cobro","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_register_payment","description":"Register a manual payment against an existing charge (cobro). Updates cobro status automatically. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","cobroId","monto","tipo","confirm"],"properties":{"tipo":{"enum":["EFECTIVO","TRANSFERENCIA","TARJETA","MERCADOPAGO","OTRO"],"type":"string"},"fecha":{"type":"string"},"monto":{"type":"number","exclusiveMinimum":0},"apiKey":{"type":"string"},"cobroId":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"descripcion":{"type":"string"},"idempotencyKey":{"type":"string"}}},"logicalName":"finance_register_payment","displayName":"finance_register_payment","title":"finance_register_payment","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_client_balance","description":"Get the complete financial balance for a client: total sales, charges, payments, pending debt, and credits.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"finance_client_balance","displayName":"finance_client_balance","title":"finance_client_balance","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_list_payments","description":"List payments received with filters. Includes summary by payment type.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"tipo":{"type":"string"},"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"dateTo":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"dateFrom":{"type":"string"}}},"logicalName":"finance_list_payments","displayName":"finance_list_payments","title":"finance_list_payments","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_list_ventas","description":"List sales (ventas) for an organization. Filter by client, service, provider, or status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"dateTo":{"type":"string"},"estado":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"dateFrom":{"type":"string"},"servicioId":{"type":"string"},"proveedorId":{"type":"string"}}},"logicalName":"finance_list_ventas","displayName":"finance_list_ventas","title":"finance_list_ventas","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_create_venta","description":"Create a service sale (venta) for a client. Optionally auto-creates a charge (cobro) depending on org configuration. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId","servicioId","precio","confirm"],"properties":{"apiKey":{"type":"string"},"estado":{"enum":["realizado","proyectado"],"type":"string"},"precio":{"type":"number","minimum":0},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"cantidad":{"type":"integer","maximum":9007199254740991,"minimum":1},"clientId":{"type":"string"},"fechaRef":{"type":"string"},"servicioId":{"type":"string"},"proveedorId":{"type":"string"}}},"logicalName":"finance_create_venta","displayName":"finance_create_venta","title":"finance_create_venta","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_create_cobro","description":"Create a manual charge (cobro) for a client. Not linked to a sale/venta. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId","monto","descripcion","confirm"],"properties":{"tipo":{"type":"string"},"fecha":{"type":"string"},"monto":{"type":"number","exclusiveMinimum":0},"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"descripcion":{"type":"string"},"idempotencyKey":{"type":"string"}}},"logicalName":"finance_create_cobro","displayName":"finance_create_cobro","title":"finance_create_cobro","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_aging","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"number","maximum":200,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"finance_aging","displayName":"finance_aging","title":"finance_aging","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_list_confirmations","description":"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).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"status":{"enum":["pending","confirmed","disputed","auto_confirmed"],"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"finance_list_confirmations","displayName":"finance_list_confirmations","title":"finance_list_confirmations","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_send_confirmations","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","confirm"],"properties":{"apiKey":{"type":"string"},"channel":{"enum":["whatsapp","email"],"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"finance_send_confirmations","displayName":"finance_send_confirmations","title":"finance_send_confirmations","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"finance_list_invoices","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":200,"minimum":1},"apiKey":{"type":"string"},"estado":{"enum":["pendiente","pagada","cancelada"],"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"finance_list_invoices","displayName":"finance_list_invoices","title":"finance_list_invoices","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_get_preferences","description":"Get the communication preferences for an organization (WhatsApp, email, confirmation, reminder channels and messages).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"comms_get_preferences","displayName":"comms_get_preferences","title":"comms_get_preferences","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_list_campaigns","description":"List communication campaigns (WhatsApp/email) for the organization. Filter by status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"cursor":{"type":"string"},"status":{"enum":["draft","scheduled","sent","completed","failed"],"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"comms_list_campaigns","displayName":"comms_list_campaigns","title":"comms_list_campaigns","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_get_campaign","description":"Get details of a specific campaign with optional delivery logs per recipient.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","campaignId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"logLimit":{"type":"integer","maximum":200,"minimum":1},"campaignId":{"type":"string"},"includeLogs":{"type":"boolean"}}},"logicalName":"comms_get_campaign","displayName":"comms_get_campaign","title":"comms_get_campaign","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_send_message","description":"Send a single WhatsApp or email message to a specific client. Use templateKey for predefined templates or customMessage for free text. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId","channel","confirm"],"properties":{"apiKey":{"type":"string"},"channel":{"enum":["whatsapp","email"],"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"variables":{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{"type":"string"}},"templateKey":{"type":"string"},"customMessage":{"type":"string","maxLength":2000}}},"logicalName":"comms_send_message","displayName":"comms_send_message","title":"comms_send_message","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_send_campaign","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","campaignId","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"campaignId":{"type":"string"}}},"logicalName":"comms_send_campaign","displayName":"comms_send_campaign","title":"comms_send_campaign","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"comms_list_audiences","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"includeCount":{"type":"boolean"},"includePredefined":{"type":"boolean"}}},"logicalName":"comms_list_audiences","displayName":"comms_list_audiences","title":"comms_list_audiences","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"org_summary","description":"Compact 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"org_summary","displayName":"org_summary","title":"org_summary","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_occupancy","description":"Calculate provider occupancy rates for a period. Group by provider, day, or week.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"dateTo":{"type":"string"},"groupBy":{"enum":["provider","day","week"],"type":"string"},"orgSlug":{"type":"string"},"dateFrom":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"report_occupancy","displayName":"report_occupancy","title":"report_occupancy","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_revenue","description":"Calculate revenue for a period grouped by day, week, month, service, or provider.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"dateTo":{"type":"string"},"groupBy":{"enum":["day","week","month","service","provider"],"type":"string"},"orgSlug":{"type":"string"},"dateFrom":{"type":"string"}}},"logicalName":"report_revenue","displayName":"report_revenue","title":"report_revenue","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_sc_summary","description":"Breakdown 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).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"}}},"logicalName":"report_sc_summary","displayName":"report_sc_summary","title":"report_sc_summary","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_no_shows","description":"Report no-show statistics for a period. Group by client, provider, service, or day.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"dateTo":{"type":"string"},"groupBy":{"enum":["client","provider","service","day"],"type":"string"},"orgSlug":{"type":"string"},"dateFrom":{"type":"string"}}},"logicalName":"report_no_shows","displayName":"report_no_shows","title":"report_no_shows","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_deuda_real","description":"Real-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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"report_deuda_real","displayName":"report_deuda_real","title":"report_deuda_real","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"report_dashboard","description":"Executive summary of the organization: today's sessions, monthly metrics, revenue, pending charges, and alerts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"date":{"type":"string"},"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"report_dashboard","displayName":"report_dashboard","title":"report_dashboard","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"agendas_list","description":"List public agendas for an organization. Returns agendas with their provider, service, and session counts.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"agendas_list","displayName":"agendas_list","title":"agendas_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"agendas_get","description":"Get complete details of a public agenda by ID. Returns all configuration including booking flow (service_first, provider_first, auto), selection modes, assignment strategy, privacy settings, linked provider/service, and session count. Use before agendas_update to inspect current settings.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","agendaId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"agendaId":{"type":"string"}}},"logicalName":"agendas_get","displayName":"agendas_get","title":"agendas_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"agendas_delete","description":"Delete a public agenda permanently. Cascades to related sessions booked through this agenda, comments, and service configs. Requires confirm: true. Cannot be undone.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","agendaId","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"agendaId":{"type":"string"}}},"logicalName":"agendas_delete","displayName":"agendas_delete","title":"agendas_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"disputes_list","description":"List disputes for an organization. Filter by status or type. Returns disputes with client and provider info.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"page":{"type":"integer","maximum":9007199254740991,"minimum":1},"type":{"type":"string"},"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"status":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"disputes_list","displayName":"disputes_list","title":"disputes_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"members_list","description":"List members of an organization with their roles and status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"members_list","displayName":"members_list","title":"members_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"members_invite","description":"Invite a new member to the organization by email. Sends an invitation email. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","email","role","confirm"],"properties":{"role":{"enum":["admin","member"],"type":"string"},"email":{"type":"string","format":"email","pattern":"^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"},"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"}}},"logicalName":"members_invite","displayName":"members_invite","title":"members_invite","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"org_update","description":"Update organization profile fields: name, description, logo URL, or vertical. Only provided fields are updated.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"name":{"type":"string","maxLength":100,"minLength":2},"apiKey":{"type":"string"},"logoUrl":{"anyOf":[{"type":"string","format":"uri"},{"type":"null"}]},"orgSlug":{"type":"string"},"vertical":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}]}}},"logicalName":"org_update","displayName":"org_update","title":"org_update","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_domain_get","description":"Get 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"email_domain_get","displayName":"email_domain_get","title":"email_domain_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_domain_register","description":"Register 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","domain"],"properties":{"apiKey":{"type":"string"},"domain":{"type":"string","minLength":3},"orgSlug":{"type":"string"}}},"logicalName":"email_domain_register","displayName":"email_domain_register","title":"email_domain_register","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_domain_verify","description":"Trigger 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"email_domain_verify","displayName":"email_domain_verify","title":"email_domain_verify","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"email_domain_delete","description":"Remove 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"}}},"logicalName":"email_domain_delete","displayName":"email_domain_delete","title":"email_domain_delete","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_preview_cliente","description":"Preview the financial snapshot for a client in a period WITHOUT creating the closing. Returns totals for ventas, cobros, pagos, sessions.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId","periodo"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"cierre_preview_cliente","displayName":"cierre_preview_cliente","title":"cierre_preview_cliente","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_crear_cliente","description":"Create a client monthly closing (immutable financial snapshot). Requires historialCompleto=true on the client. One closing per client per period. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","clientId","periodo","confirm"],"properties":{"notas":{"type":"string"},"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"periodo":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"cierre_crear_cliente","displayName":"cierre_crear_cliente","title":"cierre_crear_cliente","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_listar_clientes","description":"List client closings for an organization. Filter by period and/or client.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"},"clientId":{"type":"string"}}},"logicalName":"cierre_listar_clientes","displayName":"cierre_listar_clientes","title":"cierre_listar_clientes","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_eliminar_cliente","description":"Delete (reopen) a client closing. Only allowed if the organizational period is not frozen. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","cierreId","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"cierreId":{"type":"string"}}},"logicalName":"cierre_eliminar_cliente","displayName":"cierre_eliminar_cliente","title":"cierre_eliminar_cliente","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_evaluar_org","description":"Evaluate organizational closing readiness for a period. Returns: active clients, closed count, excluded count, pending count, completion percentage, and whether closing is possible.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","periodo"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"}}},"logicalName":"cierre_evaluar_org","displayName":"cierre_evaluar_org","title":"cierre_evaluar_org","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_cerrar_org","description":"Close the organizational period. Requires ALL active clients with historialCompleto=true to be closed first. Freezes the period. Requires confirm: true.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","periodo","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"periodo":{"type":"string"}}},"logicalName":"cierre_cerrar_org","displayName":"cierre_cerrar_org","title":"cierre_cerrar_org","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_distribuir_utilidades","description":"Distribute 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","periodo","montoDistribuido","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean"},"orgSlug":{"type":"string"},"periodo":{"type":"string"},"montoDistribuido":{"type":"number","minimum":0}}},"logicalName":"cierre_distribuir_utilidades","displayName":"cierre_distribuir_utilidades","title":"cierre_distribuir_utilidades","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"cierre_listar_utilidades","description":"List retained earnings (utilidades retenidas) for an organization. Returns per-period records with accumulated totals: ingresos, costos, utilidadNeta, distribuido, retenido.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"cierre_listar_utilidades","displayName":"cierre_listar_utilidades","title":"cierre_listar_utilidades","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"payroll_list_records","description":"List payroll records for an organization. Filter by period, provider, or status.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"status":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"},"providerId":{"type":"string"}}},"logicalName":"payroll_list_records","displayName":"payroll_list_records","title":"payroll_list_records","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"payroll_get_summary","description":"Get payroll summary for a period: total per provider, total cost, pending approvals.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","periodo"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"periodo":{"type":"string"}}},"logicalName":"payroll_get_summary","displayName":"payroll_get_summary","title":"payroll_get_summary","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"reminders_get_config","description":"Get 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 follow-up), pendingConfirmation (auto-cancel unconfirmed). Each has enabled, timing, and frequency settings. More granular than settings_get reminders chapter.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"reminders_get_config","displayName":"reminders_get_config","title":"reminders_get_config","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"portal_session_confirm","description":"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).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"}}},"logicalName":"portal_session_confirm","displayName":"portal_session_confirm","title":"portal_session_confirm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"portal_report_session","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId","reason"],"properties":{"note":{"type":"string","maxLength":500},"apiKey":{"type":"string"},"reason":{"enum":["provider_no_show","cancelled"],"type":"string"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"}}},"logicalName":"portal_report_session","displayName":"portal_report_session","title":"portal_report_session","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"portal_cancel_reschedule_request","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","requestId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"requestId":{"type":"string"}}},"logicalName":"portal_cancel_reschedule_request","displayName":"portal_cancel_reschedule_request","title":"portal_cancel_reschedule_request","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"session_note_get","description":"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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","sessionId"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"sessionId":{"type":"string"},"includeRestricted":{"type":"boolean"}}},"logicalName":"session_note_get","displayName":"session_note_get","title":"session_note_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"resources_list","description":"List the bookable resources of an organization (rooms, boxes, chairs, equipment) with their type, capacity, buffer minutes, location and active state. Filter by type, active state, or a name/description search. Read-only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"type":{"type":"string"},"limit":{"type":"integer","maximum":200,"minimum":1},"apiKey":{"type":"string"},"search":{"type":"string"},"orgSlug":{"type":"string"},"isActive":{"type":"boolean"}}},"logicalName":"resources_list","displayName":"resources_list","title":"resources_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"treatment_plans_list","description":"List treatment/care plans of an organization with client, provider, status, objectives and their items (services with quantity/frequency/priority). Filter by clientId, status or proveedorId; paginated (page/limit). Read-only — plan creation/editing stays in the UI (requires clinical supervision).","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"page":{"type":"integer","maximum":9007199254740991,"minimum":1},"limit":{"type":"integer","maximum":100,"minimum":1},"apiKey":{"type":"string"},"status":{"type":"string"},"orgSlug":{"type":"string"},"clientId":{"type":"string"},"proveedorId":{"type":"string"}}},"logicalName":"treatment_plans_list","displayName":"treatment_plans_list","title":"treatment_plans_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"treatment_plans_get","description":"Get the full detail of a single treatment/care plan by id: diagnosis, objectives, notes, status timeline, expiration, the intake session, and all plan items (service, quantity, frequency, priority, sessions booked/completed). Read-only.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","planId"],"properties":{"apiKey":{"type":"string"},"planId":{"type":"string"},"orgSlug":{"type":"string"}}},"logicalName":"treatment_plans_get","displayName":"treatment_plans_get","title":"treatment_plans_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"lifecycle_get_state","description":"Get 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","session_id"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"session_id":{"type":"string"}}},"logicalName":"lifecycle_get_state","displayName":"lifecycle_get_state","title":"lifecycle_get_state","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"scheduling_confirm","description":"Confirm 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"apiKey":{"type":"string"},"orgSlug":{"type":"string"},"booking_id":{"type":"string"},"credential":{"type":"string","minLength":20}}},"logicalName":"scheduling_confirm","displayName":"scheduling_confirm","title":"scheduling_confirm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"scheduling_reschedule","description":"Reschedule 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","session_id","new_datetime","confirm"],"properties":{"apiKey":{"type":"string"},"confirm":{"type":"boolean","const":true},"orgSlug":{"type":"string"},"session_id":{"type":"string"},"new_datetime":{"type":"string"}}},"logicalName":"scheduling_reschedule","displayName":"scheduling_reschedule","title":"scheduling_reschedule","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_service_list","description":"List 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"orgSlug":{"type":"string"}}},"logicalName":"public_service_list","displayName":"public_service_list","title":"public_service_list","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_availability_get_slots","description":"Query 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug"],"properties":{"date":{"type":"string"},"dateTo":{"type":"string"},"orgSlug":{"type":"string"},"dateFrom":{"type":"string"},"timezone":{"type":"string"},"serviceId":{"type":"string"}}},"logicalName":"public_availability_get_slots","displayName":"public_availability_get_slots","title":"public_availability_get_slots","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_booking_confirm","description":"Confirm 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","confirmationToken"],"properties":{"orgSlug":{"type":"string"},"confirmationToken":{"type":"string","minLength":20}}},"logicalName":"public_booking_confirm","displayName":"public_booking_confirm","title":"public_booking_confirm","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_booking_get","description":"Get 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","bookingToken"],"properties":{"orgSlug":{"type":"string"},"bookingToken":{"type":"string","minLength":20}}},"logicalName":"public_booking_get","displayName":"public_booking_get","title":"public_booking_get","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_booking_cancel","description":"Cancel 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","bookingToken"],"properties":{"reason":{"type":"string","maxLength":500},"orgSlug":{"type":"string"},"bookingToken":{"type":"string","minLength":20}}},"logicalName":"public_booking_cancel","displayName":"public_booking_cancel","title":"public_booking_cancel","annotations":{"untrustedContentHint":true,"readOnlyHint":true}},{"name":"public_booking_reschedule","description":"Reschedule 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.","inputSchema":{"type":"object","$schema":"http://json-schema.org/draft-07/schema#","required":["orgSlug","bookingToken","newStartAt"],"properties":{"orgSlug":{"type":"string"},"newStartAt":{"type":"string"},"bookingToken":{"type":"string","minLength":20}}},"logicalName":"public_booking_reschedule","displayName":"public_booking_reschedule","title":"public_booking_reschedule","annotations":{"untrustedContentHint":true,"readOnlyHint":true}}],"toolSource":"directory_preview","agentAction":"both","installLinks":[{"id":"cursor","label":"Cursor","href":"cursor://anysphere.cursor-deeplink/mcp/install?name=Coord-nalo&config=eyJ1cmwiOiAiaHR0cHM6Ly9yZWxhY2lvbmFsby5jb20vYXBpL21jcCJ9"},{"id":"vscode","label":"VS Code","href":"vscode:mcp/install?%7B%22name%22%3A%22Coord-nalo%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Frelacionalo.com%2Fapi%2Fmcp%22%7D"},{"id":"vscode-insiders","label":"VS Code Insiders","href":"vscode-insiders:mcp/install?%7B%22name%22%3A%22Coord-nalo%22%2C%22type%22%3A%22http%22%2C%22url%22%3A%22https%3A%2F%2Frelacionalo.com%2Fapi%2Fmcp%22%7D"},{"id":"claude-web","label":"Claude.ai","href":"https://claude.ai/customize/connectors?modal=add-custom-connector&connectorName=Coord%C3%ADnalo&connectorUrl=https%3A%2F%2Frelacionalo.com%2Fapi%2Fmcp"},{"id":"codex","label":"Codex","copyText":"codex mcp add \"Coord-nalo\" --url \"https://relacionalo.com/api/mcp\""},{"id":"chatgpt","label":"ChatGPT","href":"https://www.mcpbundles.com/docs/integrations/chatgpt"}],"catalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/relacionalo-mcp-9a64aa2558","callUrl":"https://www.mcpbundles.com/api/directory/v1/servers/relacionalo-mcp-9a64aa2558/tools/{tool}","mcpServerUrl":"https://relacionalo.com/api/mcp","liveCatalogUrl":"https://www.mcpbundles.com/api/directory/v1/servers/relacionalo-mcp-9a64aa2558?live=1"}