RUMO MCP

Cloudflare Worker exposing the RUMO platform as MCP tools.

Connect

Authentication is OAuth 2.1 — your MCP client registers itself, then a browser window opens the RUMO consent page:

claude mcp add rumo --transport http https://mcp.rumohq.com/mcp

Tools (65)

rumo_whoami — Returns the bound phone, account, and session info. In LOCAL_DEV mode this is read from env; in production it comes from the verified MCP session.
rumo_list_accounts — List the accounts this connection can act on, with the caller's role in each and which one is active. Pass account_id on any other tool to act on a different covered account. Read-only.
rumo_list_inboxes — List all RUMO inboxes (channels) for the bound account.
rumo_list_conversations — List account-scoped conversations with the canonical status, assignment, inbox, team, label, type, sorting, page, and delta-cursor filters.
rumo_filter_conversations — Apply the canonical Chatwoot advanced conversation filter DSL with AND/OR conditions.
rumo_search_conversations — Search account-scoped conversations by text using the canonical RUMO/Chatwoot conversation search endpoint. Returns compact matches and pagination metadata; call rumo_get_conversation for full chronology.
rumo_get_conversation — Retrieve one account-scoped conversation and normalize returned messages/events into evidence-grounded chronology, including assignments, labels, notes, activities, and attachment metadata where present.
rumo_list_conversation_messages — Page through the authoritative account-scoped conversation timeline. Returns message IDs for stable before/after pagination and never claims completeness without evidence.
rumo_analyze_conversation — Build a deterministic, evidence-grounded analysis bundle from the complete authorized timeline: counts, response timing, unanswered state, ownership, labels, and chronology. It does not invent sentiment or facts.
rumo_list_contacts — List contacts in the bound account.
rumo_search_contacts — Search account-scoped contacts by name, email, phone, or identifier using the canonical RUMO/Chatwoot search endpoint. Read-only: it does not import, merge, or synchronize contacts.
rumo_list_agents — List account agents available for conversation assignment.
rumo_list_teams — List account teams available for conversation assignment.
rumo_list_labels — List account labels usable for conversations, contacts, and campaign audiences.
rumo_list_segments — List the current user's saved contact filters (segments), including their exact filter query for campaign audience selection.
rumo_list_projects — List Studio AI projects for the bound account. Goes through the RUMO studio/* proxy → Studiochat (no direct Studiochat call).
rumo_list_kbs — List Knowledge Bases in a Studio project. If project_id is omitted, the account's default Studio project is used.
rumo_list_playbooks — List Suggestion Playbooks in a Studio project. If project_id is omitted, the account's default Studio project is used.
rumo_list_assistant_playbooks — List the assistant's playbooks — the behavior definitions. This is the entry point for the diagnosis workflow: the base_id it returns is what rumo_get_playbook, rumo_list_skills and rumo_list_eval_cases accept. NOTE: this is a different entity from rumo_list_playbooks, which lists *suggestion* playbooks and whose ids these tools will not accept. Read-only.
rumo_get_assistant — Read one Studio assistant: its identity plus its resolved settings, in a single call. Use this before explaining or changing an assistant so the description is grounded in configuration rather than inferred from conversations. Read-only.
rumo_get_playbook — Read one playbook — the assistant's behavior. Pass playbook_id for an exact version, or base_id for the current one. Returns the instruction body and version metadata. Read-only; use rumo_get_playbook_history to see how it got here.
rumo_get_playbook_history — List the version history of a playbook, newest first. Use this to explain what changed and when before proposing an edit or a rollback. Read-only.
rumo_list_skills — List the skills on a playbook — the individual behaviors the assistant can run, in execution order. This is the right starting point for diagnosing why an assistant did or did not do something. Read-only.
rumo_get_kb — Read one knowledge base: type, training status, and item inventory. Use it to check whether a KB is actually trained before blaming an assistant answer on its instructions. Read-only.
rumo_list_api_tools — List the API tools an assistant may call, with method and endpoint. Use this to explain what external actions the assistant can take. Read-only; secrets and auth headers are never returned.
rumo_list_example_blocks — List the example blocks steering an assistant's tone and format (few-shot examples). Small surface, high leverage on how replies read. Read-only.
rumo_get_assistant_schedule — Read a playbook's schedule: when the assistant is on, plus any overrides. Check this before concluding an assistant ignored a conversation — it may simply have been off. Read-only.
rumo_preview_jmespath — Preview how a JMESPath expression reshapes a sample API response. Makes no outbound request and saves nothing — use it to get response_transform right before saving an API tool.
rumo_list_eval_cases — List the eval cases defined for a playbook — the test suite that says whether a change to the assistant helped or hurt. Read-only.
rumo_list_eval_runs — List past eval runs for a playbook, so run ids can be found without starting a new run. Read-only — this is how you get the two ids rumo_diff_eval_runs needs.
rumo_get_eval_run — Read an eval run: its status and, once finished, per-case results. Read-only. A run that is still queued or running has no verdict — do not describe it as passing or failing.
rumo_diff_eval_runs — Compare two eval runs case by case — the direct answer to 'did that playbook change make the assistant better or worse'. Read-only.
rumo_get_performance_report — Account performance over a date range, assembled from both halves of the platform: conversation handling by human agents (Rumo) and assistant behavior (Studio). The two halves count different populations over different denominators and are returned separately, each labelled with what it measures. Never combine them into one figure — there is no shared denominator, so a 'deflection' or 'automation' rate cannot be derived from this tool. Read-only.
rumo_list_report_definitions — List Studio report *definitions* — the scheduled, assistant-scoped narrative reports configured for an assistant, delivered to Slack. This returns their configuration, not their content: there is currently no tool that reads what a report said. Covers assistant behavior only; for account conversation metrics use rumo_get_performance_report. Read-only.
rumo_list_templates — Discover WhatsApp templates for one account-scoped inbox, including language, category, review status, placeholders, and whether the current status is eligible for sending. Read-only; APPROVED status is required for send eligibility.
rumo_preview_template — Preview a WhatsApp template as a rendered MCP-UI card (a real Meta-accurate WhatsApp bubble the client shows inline). Call this DIRECTLY — inbox_id is OPTIONAL and you should NOT ask the user for it; if omitted, a sample/first template is previewed. Optionally pin a template by template_id or name, and pass sample_variables to fill {{placeholders}}.
rumo_parse_contacts — Parse and clean a raw CSV before any contact import. Uses international libphonenumber metadata, understands national/international formats and per-row country columns, normalizes valid recipients to E.164, and conservatively excludes ambiguous, invalid, duplicate, extension, or spreadsheet-corrupted numbers. Returns row-level correction evidence; read rumo://guide/csv-phone-normalization first.
rumo_get_contact_import — Poll one account-scoped asynchronous contact import receipt.
rumo_list_campaigns — List canonical campaigns for the bound account, including optional archived filtering, pagination, and sorting.
rumo_get_campaign — Get the canonical configuration for one account-scoped campaign after creation.
rumo_get_campaign_status — Get current delivery-processing status for one account-scoped WhatsApp campaign.
rumo_get_campaign_analytics — Analyze account-scoped campaign delivery and engagement events with optional status filtering and pagination.
rumo_preview_campaign_audience — Resolve the exact account-scoped SQL union of Label and Segment audience sources, de-duplicate it, exclude blocked/missing recipients, and return capped synthetic-safe samples. This is read-only even though the filter body uses POST.
rumo_preview_campaign_message — Test a campaign's variables on REAL contacts before creating it: fills the template's slots from the same variable mapping the campaign will send, resolves every {{contact…}} reference against real contact records the way the platform does, and returns the final message per contact. Reports slots that are literal (same text for everyone), unresolved for a given contact (missing attribute), or mismatched with the template. Pass the audience (Label/Segment) to sample from it, or explicit contact_ids. Read-only.
rumo_build_campaign — Show an INTERACTIVE campaign confirmation card for the user to review and approve. It renders the template, a summary (how many contacts, what time it sends), and a contact picker that live-updates the real WhatsApp preview so the user can see the exact final message per contact. It has an Approve button. Call this to confirm a campaign before scheduling — pass the parsed contacts (the sample from rumo_parse_contacts) so the picker works. After the user approves in the card, you will get a message to call rumo_create_campaign, which is the single tool that creates and schedules the campaign.
rumo_send_direct — Preview and send a WhatsApp Direct template message either through an existing wrapper or by inbox/template name. The approval response includes MCP UI plus copyable secret-free REST/MCP requests. STEP-UP REQUIRED. LOCAL_DEV is always a synthetic dry run.
rumo_label_conversation — Set the full label list on a RUMO conversation (replaces existing labels). STEP-UP REQUIRED: first call returns approval token + summary; second call with `approval_token` applies.
rumo_manage_conversation — Manage one authorized conversation: status/snooze, priority, assignment, append-or-replace labels, mute/read state, participants, or custom/additional attributes. Every mutation requires bound single-use approval. Bulk changes are intentionally unavailable until the upstream bulk authorization path is repaired.
rumo_send_conversation_message — Send a customer-visible reply or add a private note to one conversation. The exact content and privacy flag are bound to a single-use approval token.
rumo_import_campaign_contacts — Re-run standards-based phone normalization, attach one dedicated campaign label to every unique valid row, and upload only that normalized E.164 CSV through the canonical asynchronous contact-import API. Invalid or ambiguous rows are excluded and summarized before bound approval.
rumo_create_campaign — Create a canonical scheduled campaign from server-resolved Label and/or Segment audience sources after the full campaign preview. Returns exact REST and MCP request forms without secrets. Bound single-use approval is required; LOCAL_DEV remains synthetic and never enqueues a provider send.
rumo_update_campaign — Update an existing campaign configuration after a bound approval. Re-preview audience/template details before changing them.
rumo_archive_campaign — Archive a campaign after bound approval. Use this reversible action to remove it from the active campaign list.
rumo_unarchive_campaign — Restore an archived campaign to active status after bound approval.
rumo_create_template — Create a WhatsApp message template. STEP-UP REQUIRED: first call returns an approval token + a rendered MCP-UI preview of exactly what will be submitted; the user confirms, then the second call (with approval_token) submits it. In LOCAL_DEV / test mode it composes and previews the template without calling Meta (status TEST_DRAFT); in production it POSTs to the WhatsApp Cloud inbox. Every value that differs per recipient (name, order, date, amount) MUST be a placeholder — NAMED ({{nombre}}) or positional ({{1}}); text without placeholders reaches every recipient identically. Name NAMED slots after the CSV columns they will be filled from so the campaign mapping is one-to-one. Placeholders may not sit at the very start or end of the body.
rumo_create_kb — Create a knowledge base on an assistant from text, FAQ pairs, or snippets. STEP-UP REQUIRED: the first call returns a summary and an approval token; re-call with the token to create it. Training is asynchronous — a created KB is not immediately answering questions. File upload is not exposed here.
rumo_update_kb — Update a knowledge base's title or content. STEP-UP REQUIRED. Re-training is asynchronous; use rumo_set_kb_state with action=rollback to undo a bad edit.
rumo_set_kb_state — Archive, unarchive, restore, or roll back a knowledge base. STEP-UP REQUIRED. This is the undo path for a bad KB edit — prefer it over deleting, which this MCP does not expose.
rumo_upsert_skill — Create or update one skill on a playbook — this changes what the assistant actually does. STEP-UP REQUIRED. Read rumo_list_skills and rumo_get_playbook first; a skill edit takes effect on the playbook's current version, and rumo_rollback_playbook is the undo.
rumo_reorder_skills — Set the evaluation order of a playbook's skills. STEP-UP REQUIRED. Order is behavior: the assistant evaluates skills in this sequence, so reordering can change which one fires.
rumo_rollback_playbook — Roll a playbook back to a previous version — the undo for a bad skill or instruction edit. STEP-UP REQUIRED. Use rumo_get_playbook_history first to pick the version.
rumo_manage_example_block — Create or update a few-shot example block steering the assistant's tone and format. STEP-UP REQUIRED. Small surface, strong effect on how replies read.
rumo_manage_api_tool — Create or update an API tool the assistant may call. STEP-UP REQUIRED. Validate the request with rumo_test_api_tool before saving. Credentials passed here are written upstream and are never echoed back.
rumo_test_api_tool — Execute an API tool definition against its real endpoint and return the response, without saving it. STEP-UP REQUIRED: this makes a real outbound request to a third-party system from the platform. Use it to validate a tool before rumo_manage_api_tool.
rumo_run_eval — Start an eval run for a playbook. STEP-UP REQUIRED: a run executes the assistant against every case and consumes model budget. Returns a run id; poll rumo_get_eval_run for the outcome — it does not wait.

Status

Built: 2026-07-17

See github.com/Kaption-AI for sources (when published).