FavCRM

io.favcrmPublished by favcrm.ioOfficial publisherv1.0.0Updated Oct 24, 2026

Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.

Overview

AI-generated overview

FavCRM is a hosted CRM MCP server for service businesses, letting an assistant manage customers, bookings, loyalty, and messaging.

What you can do
  • Search, read, create, update and soft-delete customer accounts, and preview or commit bulk customer imports
  • Manage tags, segments and membership tiers, and enrol members or issue rewards
  • Read and adjust loyalty balances, points and stamps
  • List bookings, booking details, stats and available slots, and manage services, schedules, staff and resources
  • Read business KPIs, invoices, orders, campaigns and blog content across the wider tool catalog
When to use it
Useful when an assistant should work inside a service business's CRM — looking up members, handling bookings and availability, running loyalty or import tasks, or pulling business KPIs — without leaving the chat.
Requirements
Remote Streamable HTTP endpoint; no local install. Needs a FavCRM account and either a FavCRM MCP key sent as an Authorization Bearer token or OAuth. Free tier is limited to 100 customers, 200 bookings per month and 1k MCP calls per month; higher tiers are paid.
Before you install
The Authorization header carries a long-lived, revocable API key that grants access to customer data. Many tools write or delete: account creation and soft-delete, bulk imports that apply points, stamps and credit, tag changes, reward issuance, loyalty credits, and service or schedule edits. Paid-tier enrolment can return PAYMENT_REQUIRED, and plan upgrade links create Stripe checkout links. Some tools call external services such as WhatsApp, Stripe and email, and the full profile exposes…

Installation

In SourceWeft

  1. Open FavCRM in the dashboard and add it to a workspace.
  2. Enable the server for the chats that should use its tools.

Web executable via Streamable HTTP. Remote servers run from the web runtime once configured in a workspace.

Use with an agent

Paste this prompt into Claude Code, Codex, Cursor or another agent — or into SourceWeft chat. The agent reads this server's install guide, shows you its publisher, endpoint and sign-in, and adds it to your client once you agree. Keys never go into a command.

Read https://sourceweft.com/mcp/io.favcrm%2Ffavcrm/install.md and connect the MCP server it describes to my client. Before changing any config, show me its publisher, endpoint and sign-in method and wait for my OK. Never put an API key in a command or in a file I would commit; ask me where it should come from.

Read the install guide the agent follows

Other MCP clients

Add this to your client's mcpServers config.

{
  "mcpServers": {
    "favcrm": {
      "type": "http",
      "url": "https://api.favcrm.io/mcp"
    }
  }
}

README

FavCRM MCP

[smithery badge]

Install snippets, examples, and docs for the FavCRM Model Context Protocol server. The server itself is hosted at https://api.favcrm.io/mcp — this repo is for client setup and community examples.

231 typed tools — customers, bookings, events, loyalty, invoices, payments, WhatsApp / SMS / email — exposed via MCP. Works with any agentic client that speaks Streamable HTTP transport.

The endpoint supports purpose-built tool profiles selected with ?profile=<name> or X-FavCRM-MCP-Profile:

  • compact exposes a small search_tools + execute_tool discovery/router surface for large-agent runtimes.
  • platform exposes only superadmin customer-workspace and company-setup operations, works without an active merchant company, and never exposes raw SQL.
  • full remains the default for clients and scanners.

Platform operators can start from the dedicated Cursor or Claude Desktop configuration. Ordinary merchant API keys cannot access platform tools.

🤖 AI Agent Skills

Building against the FavCRM headless backend with an AI Agent? Teach your AI our best practices, standard operating procedures, and MCP tool shapes by installing our official skills:

bash
# Example: Install the Booking Operator skillnpx skills add https://github.com/favcrm/mcp/tree/main/skills/favcrm-booking-operator
# Or install all skills at oncenpx skills add favcrm/mcp

See the skills/ directory for the full list of available agent skills.

Public agent skills live in skills/: portable workflow packages for agentic registration, team onboarding, channel setup, booking operations, customer lifecycle, comms approval, billing/commerce, content, sales ops, knowledge training, and reporting. They are source-readable for agents and marketing, while FavCRM runtimes install vetted versions through the platform skill registry.

ClientStatusSetup
Vercel v0✅ LiveMarketplace install — auto-provisions a workspace + injects env vars
Cursor✅ Livemcp.json snippet
Smithery✅ Livesmithery mcp add favcrm/favcrm
Claude Desktop / Connector🚧 PendingOAuth provider (Phase 3, ~3 weeks)
ChatGPT Apps Directory🚧 PendingListing under review
Windsurf / Continue.dev / Zed✅ WorksSame mcp.json shape as Cursor

Get a key

Two ways:

Option A — your agent signs you up (no form, no portal click)

Connect FavCRM to your client first (see Cursor section below) using a placeholder env var. Then ask your agent:

"Sign me up for FavCRM. Yoga studio called Stretch + Breathe in Hong Kong."

The agent will:

  1. Call register_organisation_request — server emails a 6-digit code to you
  2. You paste the code back in chat
  3. Agent calls register_organisation_verify — server returns a fresh fav_mcp_* key
  4. Agent stores the key and starts working immediately

See skills/favcrm-agentic-registration for the portable SKILL.md workflow.

Behind the scenes: 10-min OTP, real email-ownership check, per-IP rate limit (3/hour, 20/day). No phishing surface, no fake demos.

Option B — sign up the traditional way

favcrm.io/signup → portal → Settings → MCP Keys → copy the fav_mcp_* value.

Existing FavCRM merchants: same place, no plan upgrade needed for MCP access.

Free tier (both options): 100 customers, 200 bookings/month, 1k MCP calls/month, 30-day trial of higher limits.

Bootstrap from the CLI

The favcrm CLI can also run the zero-state flow:

bash
favcrm signup request --email [email protected] --organisation-name "Ada Studio"favcrm signup verify --request-id <request-id> --code <code>favcrm doctorfavcrm team invite create --email [email protected] --role stafffavcrm whatsapp statusfavcrm whatsapp connect --mode cloud-api

Team invitees can accept without an existing API key:

bash
favcrm team invite accept-request --token <invite-token>favcrm team invite accept-verify --token <invite-token> --code <code>

Cursor

Verified shape, cursor.com/docs/mcp.

~/.cursor/mcp.json (or .cursor/mcp.json in your project):

json
{  "mcpServers": {    "favcrm": {      "url": "https://api.favcrm.io/mcp",      "headers": {        "Authorization": "Bearer ${env:FAVCRM_API_KEY}"      }    }  }}

Then export the key — anywhere your Cursor process reads env vars:

bash
# shell rcecho 'export FAVCRM_API_KEY=fav_mcp_...' >> ~/.zshrc
# or per-project (direnv)echo 'export FAVCRM_API_KEY=fav_mcp_...' >> .envrc

Restart Cursor → Settings → MCP → favcrm connects → 231 tools land in chat.

Why ${env:VAR} instead of inline? Cursor interpolates env vars at request time so the key never lands in your repo or shared config.


Smithery

favcrm.io on Smithery — install via CLI:

bash
npm i -g @smithery/clismithery loginsmithery mcp add favcrm/favcrm

For a project-scoped install, smithery mcp add favcrm/favcrm --client cursor writes the right mcp.json block.


Claude Desktop

🚧 OAuth-based connector pending Phase 3. Once live:

  1. claude.com → Connectors → Add custom connector
  2. URL: https://api.favcrm.io/mcp
  3. Authorize via OAuth → workspace selector → tool list

Until then, advanced users can wire FavCRM into Claude Desktop's claude_desktop_config.json via the same Bearer-header pattern as Cursor (community-only path; not currently in Anthropic's connector directory).


ChatGPT

🚧 Apps Directory listing under review. Once approved:

  1. ChatGPT → Tools menu → Apps → search "FavCRM"
  2. Add → OAuth handshake → workspace selector
  3. 26 curated tools land in chat (read-mostly + safe writes; destructive ops gated behind confirmation)

Test it

Once your config is live, ChatGPT/Cursor/Claude will list tools automatically. To smoke-test from the command line:

bash
# Discovery (no auth needed — public-scan endpoint)curl https://api.favcrm.io/.well-known/mcp/server-card.json | jq '.tools | length'# → 231
# Auth + initializecurl -s https://api.favcrm.io/mcp \  -X POST \  -H "Content-Type: application/json" \  -H "Accept: application/json, text/event-stream" \  -H "Authorization: Bearer $FAVCRM_API_KEY" \  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"curl","version":"1"}}}' \  | jq
# Call a read-only toolcurl -s https://api.favcrm.io/mcp \  -X POST \  -H "Content-Type: application/json" \  -H "Accept: application/json, text/event-stream" \  -H "Authorization: Bearer $FAVCRM_API_KEY" \  -d '{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"list_membership_tiers","arguments":{}}}' \  | jq

See examples/ for more.


Tool surface

231 tools across 28 scopes. Every tool ships with annotations:

  • title — human-readable label
  • readOnlyHint — true for list_* / get_* / search_* / etc.
  • destructiveHint — true for delete_* / cancel_* / void_* / refund_*
  • openWorldHint — true for tools that hit external services (WhatsApp, Stripe, email)
  • idempotentHint — true for set_* / update_* / upsert_* and read-only

Clients can use these to gate destructive calls or estimate cost. The full catalog at https://api.favcrm.io/.well-known/mcp/server-card.json is the source of truth — listings here are summaries only.

Agents working from a compact or context-sensitive tool set should use search_tools to discover operations, then execute_tool to run the selected tool. Use query_favcrm_platform for platform docs before guessing behavior or argument shapes. For merchant-specific facts, policies, pricing notes, FAQs, or brand guidance, use query_company_knowledge; it returns snippets with source document IDs rather than full documents.

ScopeSample toolsRead-onlyWrite
contactssearch_members, get_member_profile, create_account, attach_tags56
customer_segmentslist_segments, preview_segment_count, set_segment_members44
custom_fieldslist_custom_fields, create_custom_field, set_custom_field_values34
bookingslist_services, get_available_slots, create_booking1215
eventslist_event_registrations, get_event_campaign_exclusions20
membershiplist_tiers, enrol_membership, earn_loyalty_points43
shoplist_products, get_order, create_order86
invoiceslist_invoices, mark_invoice_paid44
campaignslist_campaigns, send_campaign (gated)53
bloglist_posts, publish_post1413

Superadmin platform tools use a separate scope family:

ScopeCapability
platform:customer_setupSearch/create customer workspaces and configure company setup
platform:catalogManage global plan, module, and AI-media catalogs in the full profile
platform:sql_readBreak-glass SELECT/EXPLAIN access in the full profile
platform:sql_writeBreak-glass DML access in the full profile
platform:*All platform capabilities; reserve for controlled internal operators

SQL scopes must be explicit, and SQL tools remain unavailable in the platform profile even with platform:*.


Agent Issue Reports

Agents should call report_agent_issue when an MCP-native path is missing, a tool schema is confusing, a tool fails unexpectedly, or they had to fall back to REST/SDK behavior. Include expected behavior, actual behavior, steps tried, relevant tool calls/logs, AI analysis, and clarification questions. FavCRM routes these reports to the platform support queue for triage.

Example:

bash
favcrm tool call report_agent_issue '{"title":"Missing account creation MCP tool","severity":"high","area":"mcp_tool_missing","expectedBehavior":"Agent can create an account via MCP only.","actualBehavior":"Agent had to use SDK fallback.","stepsTried":["Listed tools","Tried create_contact"],"aiAnalysis":"Account creation exists in backend services but was not exposed in MCP."}'

Plan operations

Agents can inspect and preflight plan access without leaving MCP:

bash
favcrm tool call get_plan_status '{}'favcrm tool call check_plan_operation '{"toolName":"create_account"}'favcrm tool call list_plan_options '{}'favcrm tool call create_plan_upgrade_link '{"planCode":"favcrm-lite","billingCycle":"monthly","confirm":true}'

Use check_plan_operation before writes that may hit module, scope, subscription, or quota gates. If the result includes upgradeAction, show the user the returned action. Stripe links are only created by create_plan_upgrade_link with confirm=true.


Auth modes

Token kindLifetimeUse case
fav_mcp_* API keyLong-lived, revocableCursor, Windsurf, Zed, Continue.dev, scripts
fav_v0_* partner tokenPer-Vercel-project, scopedv0 / Vercel install only
OAuth bearer (15-min JWT + 30-day refresh)Short-livedClaude Connectors (Phase 3), ChatGPT Apps
OTP-issued JWT (60 min)Short-livedInteractive humans (merchant portal exchange)

Marketplace tokens (fav_v0_*, OAuth-issued) are hard-blocked from superadmin tools (raw SQL, plan management) regardless of underlying scopes — defence in depth at the request layer, not just per-token RBAC.


Pricing

TierPriceLimits
Free$0100 customers · 200 bookings/mo · 1k MCP calls/mo
Lite$19 / mo1 seat · email comms · BYO-AI via your agent
Starter$49 / mo3 seats · 1M AI credits · WhatsApp + SMS · meeting notes
EnterpriseCustomUnlimited seats · multi-location · custom routing

Full table: favcrm.io/pricing.


Issues / contributions

  • Bugs in tool behaviour or MCP transport: open an issue here.
  • Examples for a new client (Cline, Replit Agent, Roo, etc.): PRs welcome under examples/.
  • Agent workflow skills: PRs welcome under skills/.
  • Contribution guidelines: CONTRIBUTING.md.
  • Security reports: please follow SECURITY.md; do not open public vulnerability issues.
  • Server bugs / new tool requests / commercial questions: [email protected].

Links

Brand assets

Marketplace-ready 1:1 icons with background plate, in assets/:

FileUse
assets/icon.png512×512 PNG — Cursor / Smithery / mcp.so listing
assets/favcrm-icon-256-dark.svg1:1 SVG, ink plate, light glyph — most marketplaces
assets/favcrm-icon-256-light.svg1:1 SVG, canvas plate, ink glyph — light-themed UIs
assets/favcrm-icon-256-dark.png256×256 PNG fallback

All icons are 1:1 aspect ratio with rounded-square plate (48px corner radius on 256-unit grid) and centered "fav." wordmark glyph.

License

This repo (docs + examples) is MIT — see LICENSE. The hosted MCP server is proprietary FavCRM SaaS; install requires a FavCRM account.

Source: README.md at commit aa359e5

Tools

200

search_members

Search Members

Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactive members.

ParameterssortlimitordersearchsourcetagIdstierIdlifeStagehasBookingcreatedAfterinactiveDayscreatedBefore+6 more

get_member_profile

Get Member Profile

Get detailed profile for a specific member/account by ID.

ParametersaccountIdrequired

preview_customer_import

Preview Customer Import

Preview a bulk customer import (max 2000 rows). Matches existing accounts by phone/email and shows create vs update actions plus points/stamps/credit deltas. Use commit_customer_import with the returned sessionId to apply.

Parametersrowsrequiredfilename

commit_customer_import

Commit Customer Import

Commit a previewed customer import. Pass the same rows and sessionId returned by preview_customer_import. Creates/updates accounts and applies points, stamps, and credit deltas.

ParametersrowsrequiredsessionIdrequired

create_account

Create Account

Create a CRM account/customer with a primary contact. Optionally enroll the account as a member; use enrol_membership later when the account already exists.

ParametersnamerequiredtypeemailnotesphonesourcetierIdaddresslastNameexpiresAtfirstNamelifeStage+1 more

update_account

Update Account

Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.

ParametersnametypeemailnotesphonegendersourcelastNameaccountIdrequiredfirstNamelifeStageassignedTo+3 more

delete_account

Delete Account

Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.

ParametersaccountIdrequired

list_tags

List Tags

List all available tags for the merchant.

Parameterssearch

create_tag

Create Tag

Create a CRM tag for customer segmentation and organization.

Parametersnamerequiredcolor

update_tag

Update Tag

Rename or recolor an existing CRM tag.

ParametersnamecolortagIdrequired

delete_tag

Delete Tag

Delete a CRM tag and remove it from all tagged entities.

ParameterstagIdrequired

attach_tags

Attach Tags

Attach one or more tags to a member/account. Useful for segmenting members after filtering.

ParameterstagIdrequiredaccountIdsrequired

detach_tags

Detach Tags

Detach one tag from one or more member/account records.

ParameterstagIdrequiredaccountIdsrequired

list_tiers

List Tiers

List all membership tiers with member counts and stats.

Takes no parameters.

get_membership_tier

Get Membership Tier

Get a specific membership tier by ID.

ParameterstierIdrequired

issue_rewards

Issue Rewards

Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.

ParametersexpiresAtmemberIdsrequiredgiftOfferIdrequired

enrol_membership

Enrol Membership

Enrol a member into a membership tier. Free tiers enrol immediately; paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Use list_tiers first to find the target tier.

ParameterstierIdaccountIdrequiredexpiresAt

get_loyalty_balance

Get Loyalty Balance

Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.

ParametersaccountIdrequired

earn_loyalty_points

Earn Loyalty Points

Credit loyalty points or stamps to a member. Use field="points" for points, "stamps" for stamps. Server records a transaction with the reason as audit context.

ParametersfieldrequiredamountrequiredreasonaccountIdrequired

get_dashboard_stats

Get Dashboard Stats

Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.

Takes no parameters.

list_bookings

List Bookings

List bookings with filters for date range, status, service, staff, or member.

ParameterslimitdateTostatusstaffIddateFromaccountIdserviceId

get_booking_detail

Get Booking Detail

Get full booking details including line items, status history, and participants.

ParametersbookingIdrequired

get_booking_stats

Get Booking Stats

Get booking counts: today, this week, this month, and breakdown by status.

Takes no parameters.

get_available_slots

Get Available Slots

Find available booking slots for a service on a specific date.

ParametersdaterequiredstaffIdserviceIdrequiredresourceId

list_services

List Services

List booking services with name, price, duration, and status.

Parameterslimitsearchstatus

get_service_detail

Get Service Detail

Get full service details including addons, staff, resources, and tier pricing.

ParametersserviceIdrequired

get_service_tier_pricing

Get Service Tier Pricing

Read every membership-tier pricing configuration for one booking service.

ParametersserviceIdrequired

set_service_tier_pricing

Set Service Tier Pricing

Set the complete pricing and booking-policy configuration for one membership tier on a booking service.

ParameterstierIdrequiredserviceIdrequiredbookingLimitsrequiredpriceOverriderequireddiscountPercentrequiredtimeSlotPricingrequiredadvanceBookingDaysrequired

copy_service_tier_pricing

Copy Service Tier Pricing

Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.

ParametersserviceIdrequiredsourceTierIdrequiredtargetTierIdrequired

create_service

Create Service

Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.

ParametersnamerequiredtypepricestatuscapacitycurrencysortOrdercategoryIdvisibilitydescriptionrequireLoginrequiresStaff+8 more

update_service

Update Service

Update an existing booking service. Pass only the fields you want to change.

ParametersnamepricestatuscapacityserviceIdrequiredcategoryIdvisibilitydescriptionrequireLoginrequiresStaffcommissionTypecommissionValue+5 more

create_service_schedule

Create Service Schedule

Create a bookable schedule window for a service, including recurring weekly/daily availability.

ParametersdaterequirednotesendTimerequiredstaffIdbyWeekdayserviceIdrequiredstartTimerequiredrecurrenceresourceIdmaxCapacityrecurrenceEndDaterecurrenceInterval

list_service_schedules

List Service Schedules

List schedule windows for booking services.

ParameterslimitdateTostaffIddateFromserviceIdisOverrideresourceId

update_service_schedule

Update Service Schedule

Update a service schedule window. Pass only fields to change.

ParametersdatenotesendTimestaffIdbyWeekdaystartTimerecurrenceresourceIdscheduleIdrequiredmaxCapacityrecurrenceEndDaterecurrenceInterval

assign_staff_to_service

Assign Staff To Service

Assign a staff member to a booking service. Pass users.id from list_staff.userId.

ParametersuserIdrequiredserviceIdrequired

list_service_categories

List Service Categories

List service categories (groups for booking services like "Treatments", "Classes").

Takes no parameters.

create_service_category

Create Service Category

Create a service category (e.g. "Treatments", "Classes") to group bookable services.

ParametersnamerequiredsortOrderdescription

create_resource

Create Resource

Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.

Parametersnamerequiredtyperequiredstatuscapacitydescription

set_resource_availability

Set Resource Availability

Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.

ParametersdatetypeendTimerequireddayOfWeekstartTimerequiredresourceIdrequiredisRecurring

set_staff_availability

Set Staff Availability

Add an availability window for a staff member (companyMembers.id). Use day-of-week + recurring for weekly schedules, or a specific date for one-off changes.

ParametersdatetypeendTimerequiredmemberIdrequireddayOfWeekstartTimerequiredisRecurring

get_booking_settings

Get Booking Settings

Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.

Takes no parameters.

update_booking_settings

Update Booking Settings

Update global booking settings. Pass only the fields you want to change.

ParametersshowCouponcalendarStyleshowAccessPasscooldownMessageblockUntilFinishedglobalCooldownDaysaccessPassAfterMinutesbookingReminderEnabledmemberReschedulingModesameDayReminderEnabledaccessPassBeforeMinutesallowMemberCancellation+6 more

list_tickets

List Tickets

List support tickets with optional filters.

ParameterslimitsearchstatuscategorypriorityaccountId

get_ticket_stats

Get Ticket Stats

Get ticket counts grouped by status.

Takes no parameters.

create_ticket

Create Ticket

Create a support ticket for a member issue.

ParameterssourcesubjectrequiredcategorypriorityaccountIdcontactNamedescriptioncontactEmailcontactPhone

update_ticket_status

Update Ticket Status

Update the status of an existing support ticket.

ParametersstatusrequiredticketIdrequired

list_surveys

List Surveys

List surveys with optional status/search filters.

Parameterslimitsearchstatus

create_survey

Create Survey

Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.

ParametersslugtitlerequiredopenAtstatuscloseAtsettingsvisibilitydescriptionquestionBlocksrequired

get_survey

Get Survey

Get survey detail, including blocks, publishing status, visibility, settings, and response count.

ParameterssurveyIdrequired

update_survey

Update Survey

Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.

ParametersslugtitleopenAtstatuscloseAtsettingssurveyIdrequiredvisibilitydescriptionquestionBlocks

archive_survey

Archive Survey

Archive a survey and remove it from active survey lists.

ParameterssurveyIdrequired

get_survey_stats

Get Survey Stats

Get response and invitation metrics for a survey overview dashboard.

ParameterssurveyIdrequired

get_survey_responses

Get Survey Responses

List responses for a survey.

ParameterslimitsurveyIdrequired

list_survey_invitations

List Survey Invitations

List survey invitation history without exposing token hashes or old invitation tokens.

ParameterslimitsurveyIdrequired

create_survey_invitation

Create Survey Invitation

Create a token-auth survey invitation for a specific member/account or contact.

ParameterschannelmetadatasurveyIdrequiredaccountIdcontactIdexpiresAtrecipientNamerecipientEmailrecipientPhone

list_survey_workflows

List Survey Workflows

List automation workflows attached to a survey.

ParameterssurveyIdrequired

upsert_survey_workflow

Upsert Survey Workflow

Create or update a survey automation workflow, usually triggered by survey_response_submitted.

ParametersnamerequiredgraphrequiredstatustriggersurveyIdrequiredworkflowId

list_deals

List Deals

List CRM deals (sales pipeline) with optional filters.

ParameterspagelimitstagesearchdealTypeaccountId

get_deal

Get Deal

Get detailed CRM deal information by ID.

ParametersdealIdrequired

create_deal

Create Deal

Create a CRM sales pipeline deal, optionally linked to a customer account and contact.

ParametersnamerequiredstageamountownerIddealTypeaccountIdcontactIdclosingDatedescriptionprobability

update_deal

Update Deal

Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.

ParametersnamestageamountdealIdrequiredownerIddealTypeaccountIdcontactIdclosingDatedescriptionprobability

delete_deal

Delete Deal

Soft-delete a CRM deal from the sales pipeline.

ParametersdealIdrequired

update_deal_stage

Update Deal Stage

Move a deal to a different pipeline stage.

ParametersstagerequireddealIdrequiredlostReasonprobability

mark_deal_won

Mark Deal Won

Mark a CRM deal as won and set close date.

ParametersdealIdrequiredclosingDate

mark_deal_lost

Mark Deal Lost

Mark a CRM deal as lost. Requires a lost reason.

ParametersdealIdrequiredreasonrequired

convert_lead

Convert Lead

Convert an account: qualify its open lead (creating one if needed) and link exactly one pipeline deal. Also promotes lifeStage lead -> active. Safe to repeat — a second call lands on the same lead and deal. Works on accounts that are already active.

ParametersdealNameaccountIdrequireddealStagelifeStagecreateDealdealAmountdealClosingDate

list_contacts

List Contacts

List contacts (people linked to CRM accounts), optionally filtered by account or search.

ParameterslimitsearchaccountId

get_contact

Get Contact

Fetch a single contact by ID.

ParameterscontactIdrequired

create_contact

Create Contact

Create a contact on an existing CRM account.

ParametersnamerequiredemailphonejobTitleaccountIdrequiredisPrimary

update_contact

Update Contact

Update fields on an existing contact.

ParametersnameemailphonejobTitlecontactIdrequiredisPrimary

set_primary_contact

Set Primary Contact

Set a contact as the primary contact for its CRM account and demote other contacts on that account.

ParameterscontactIdrequired

delete_contact

Delete Contact

Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.

ParameterscontactIdrequired

list_custom_fields

List Custom Fields

List custom field definitions for CRM entities such as account, contact, deal, or booking.

ParametersentityTyperequired

get_custom_field

Get Custom Field

Get a custom field definition by ID.

ParametersdefinitionIdrequired

create_custom_field

Create Custom Field

Create a custom field definition for CRM entities. Use options for select or multiselect fields.

ParametersoptionsfieldNamerequiredfieldTyperequiredsortOrderentityTyperequiredfieldLabelrequiredisRequired

update_custom_field

Update Custom Field

Update a custom field definition label, type, options, required flag, or sort order.

ParametersoptionsfieldTypesortOrderfieldLabelisRequireddefinitionIdrequired

delete_custom_field

Delete Custom Field

Delete a custom field definition and its stored values.

ParametersdefinitionIdrequired

get_custom_field_values

Get Custom Field Values

Get custom field values for a CRM entity such as an account, contact, deal, or booking.

ParametersentityIdrequiredentityTyperequired

set_custom_field_values

Set Custom Field Values

Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.

ParametersvaluesrequiredentityIdrequiredentityTyperequired

list_tasks

List Tasks

List tasks with optional status, assignee, and account filters.

ParameterslimitstatusaccountIdassigneeId

get_task

Get Task

Get detailed task information by ID.

ParameterstaskIdrequired

create_task

Create Task

Create a task. Optionally link to a CRM account or assign to a team member.

ParameterstitlerequiredstatusdueDatepriorityaccountIdassigneeIddescription

update_task

Update Task

Update a task (status, priority, assignee, due date, completion).

ParameterstitlestatustaskIdrequireddueDatepriorityassigneeIddescription

delete_task

Delete Task

Soft-delete a CRM task.

ParameterstaskIdrequired

search_crm

Search Crm

Search across CRM accounts and contacts by name, email, or phone.

Parameterslimitqueryrequired

list_invoices

List Invoices

List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.

Parameterssortlimitordersearchstatus

get_invoice

Get Invoice

Fetch a single invoice with line items, payment history, and customer detail.

ParametersinvoiceIdrequired

create_invoice

Create Invoice

Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.

ParametersnotesdueDatecurrencyaccountIdrequiredlineItems

record_invoice_payment

Record Invoice Payment

Record a manual payment against an invoice (cash, bank transfer, cheque, card terminal). Updates invoice status to PARTIAL or PAID based on the running total.

ParametersnoteamountrequiredmethodrequiredinvoiceIdrequiredreference

mark_invoice_sent

Mark Invoice Sent

Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.

ParametersinvoiceIdrequired

void_invoice

Void Invoice

Void an invoice. Destructive — invoice can no longer be paid or edited; existing payments are preserved as history. Cannot void invoices that are already PAID or VOIDED.

ParametersinvoiceIdrequired

delete_invoice

Delete Invoice

Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.

ParametersinvoiceIdrequired

restore_invoice

Restore Invoice

Restore a previously deleted DRAFT invoice.

ParametersinvoiceIdrequired

get_invoice_stats

Get Invoice Stats

Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.

Takes no parameters.

list_event_registrations

List Event Registrations

List registrations for an event in the active company, including CRM account IDs for campaign exclusions.

ParameterslimitoffseteventIdrequiredstatuses

get_event_campaign_exclusions

Get Event Campaign Exclusions

Resolve pending, confirmed, and paid event registrations into unique CRM account IDs for campaign exclusions. Pass accountIds to audienceExclusions only when ready=true; cancelled registrations are omitted and unmatched guests make the result not ready.

ParameterseventIdrequired

list_subscriptions

List Subscriptions

List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.

Parameterslimitstatus

get_subscription

Get Subscription

Fetch a single subscription with customer, tier, billing cycle, and renewal info.

ParameterssubscriptionIdrequired

create_subscription

Create Subscription

Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.

ParametersamounttierIdcurrencyaccountIdrequiredautoRenewbillingCyclecurrentPeriodEndcurrentPeriodStart

pause_subscription

Pause Subscription

Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.

ParameterssubscriptionIdrequired

resume_subscription

Resume Subscription

Resume a paused subscription back to active.

ParameterssubscriptionIdrequired

cancel_subscription

Cancel Subscription

Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.

ParameterssubscriptionIdrequired

list_campaigns

List Campaigns

List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns.

Parameterssortlimitordersearchchannel

get_campaign

Get Campaign

Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.

ParameterscampaignIdrequired

create_campaign

Create Campaign

Create an email, SMS, WhatsApp, or push campaign in DRAFT. audienceExclusions can omit specific account IDs and recipients of previous campaign IDs. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource="list" is accepted as an alias for "individual".

ParametersnamerequiredstatuschannelrequiredsegmentIdscheduledAtrecipientIdschannelConfigrecipientSourceaudienceExclusions

update_campaign

Update Campaign

Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change.

ParametersnamestatussegmentIdcampaignIdrequiredscheduledAtrecipientIdschannelConfigrecipientSourceaudienceExclusions

delete_campaign

Delete Campaign

Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.

ParameterscampaignIdrequired

restore_campaign

Restore Campaign

Restore a previously deleted campaign.

ParameterscampaignIdrequired

undo_campaign_send

Undo Campaign Send

Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign.

ParameterscampaignIdrequired

validate_campaign

Validate Campaign

Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.

ParameterscampaignIdrequired

list_notification_logs

List Notification Logs

List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.

ParameterslimitdateTostatuschanneldateFromentityIdeventTyperecipient

list_conversations

List Conversations

List messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels. Threads items are public conversations. Shows unread counts and last message time.

ParameterspagelimitsearchstatuschannelassigneeassignedToId

list_audit_logs

List Audit Logs

List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.

ParameterslimitactionsourceuserIdoutcomeresourceresourceIddestructivecreatedAftercreatedBefore

search_audit_logs

Search Audit Logs

Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.

ParameterslimitqueryrequiredcreatedAftercreatedBefore

get_audit_log

Get Audit Log

Fetch a single audit log entry by ID, including before/after snapshots when available.

ParametersauditLogIdrequired

revert_audit_action

Revert Audit Action

Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.

ParametersreasonauditLogIdrequired

clone

Clone

Duplicate an existing record (product, tier, campaign, post, service package, promotion, gift offer). Creates a copy in DRAFT status with "(Copy)" appended to the name.

ParametersnameentityIdrequiredentityTyperequired

list_notes

List Notes

List notes attached to a member/account, booking, or ticket.

ParameterslimitentityIdrequiredentityTyperequired

create_note

Create Note

Add a note to a member/account, booking, ticket, or invoice.

ParametersbodyrequiredentityIdrequiredisPinnedentityTyperequired

confirm_booking

Confirm Booking

Confirm a pending booking.

ParametersbookingIdrequired

cancel_booking

Cancel Booking

Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.

ParametersreasonbookingIdrequiredrefundMethodidempotencyKeyrequired

complete_booking

Complete Booking

Mark a booking as completed. Triggers commission calculation if configured.

ParametersbookingIdrequired

mark_no_show

Mark No Show

Mark a booking as no-show when the customer did not attend.

ParametersbookingIdrequired

list_promotions

List Promotions

List promotion/coupon codes with optional status filter.

Parameterslimitsearchstatus

get_promotion

Get Promotion

Get details of a specific promotion/coupon code.

ParameterspromotionIdrequired

create_promotion

Create Promotion

Create a promotion / discount code. type=percentage or fixed_amount; value is the discount as a string ("10" = 10% or 10 currency units). Codes are uppercased server-side.

ParameterscoderequirednamerequiredtypevaluerequiredendsAtstatusstartsAtposEnableddescriptioneventEnabledminimumAmountonlineEnabled+5 more

update_promotion

Update Promotion

Update an existing promotion. Pass only the fields you want to change.

ParameterscodenametypevalueendsAtstatusstartsAtpromotionIdrequiredusageLimitTotalusageLimitPerCustomer

delete_promotion

Delete Promotion

Delete a promotion. Past usage records are preserved.

ParameterspromotionIdrequired

restore_promotion

Restore Promotion

Restore a previously deleted promotion.

ParameterspromotionIdrequired

validate_promotion

Validate Promotion

Check if a promotion code is valid for a given order. Returns isValid, discount amount, and an error code/message if invalid. Use before applying to a checkout.

ParametersamountrequiredchannelrequiredaccountIdpromotionCoderequired

list_reward_schemes

List Reward Schemes

List loyalty reward schemes (points/stamps programs) configured for this business.

Parameterslimitsearch

list_staff

List Staff

List staff/team members in the business.

Parameterslimit

list_resources

List Resources

List booking resources (rooms, equipment, etc.).

Parameterslimit

list_service_packages

List Service Packages

List service packages/prepaid session bundles with optional search, status, sorting, and pagination.

Parameterssortlimitordersearchstatus

get_service_package

Get Service Package

Get service package detail including applicability and selected booking service/event items.

ParameterspackageIdrequired

create_service_package

Create Service Package

Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.

ParametersnamerequiredpricerequiredstatusvalidDaysrequireddescriptionsessionCountrequiredapplicableTypeapplicableItems

update_service_package

Update Service Package

Update an existing service package. Pass only the fields you want to change.

ParametersnamepricestatuspackageIdrequiredvalidDaysdescriptionsessionCountapplicableTypeapplicableItems

delete_service_package

Delete Service Package

Delete a service package by ID.

ParameterspackageIdrequired

restore_service_package

Restore Service Package

Restore a previously deleted service package by ID.

ParameterspackageIdrequired

get_plan_status

Get Plan Status

Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.

Takes no parameters.

check_plan_operation

Check Plan Operation

Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.

ParametersdeltatoolNamequotaCodemoduleCode

list_plan_options

List Plan Options

List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.

Takes no parameters.

create_team_member_invite

Create Team Member Invite

Invite a team member to this company and return a one-time MCP accept token. The invited user must verify an email code through accept_team_invite_request and accept_team_invite_verify before membership and API key issuance.

ParametersnameroleemailrequiredmodulespermissionsexpiresInHours

accept_team_invite_request

Accept Team Invite — Request Code

Step 1 of agentic team invite acceptance. Validates an invite token and sends a 6-digit verification code to the invited email. Then call accept_team_invite_verify with the code to join and receive an MCP API key.

Parameterstokenrequired

accept_team_invite_verify

Accept Team Invite — Verify Code

Step 2 of agentic team invite acceptance. Verifies the emailed code, joins the invited user to the company, and returns a one-time MCP API key for that user.

Parameterscoderequirednametokenrequired

get_whatsapp_connection_status

Get Whatsapp Connection Status

Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.

Takes no parameters.

list_my_companies

List My Companies

List all companies/organisations the current user has access to. Use this to see available orgs before switching.

Takes no parameters.

switch_company

Switch Company

Issue a new MCP access token scoped to another company/organisation. This does not mutate the current MCP connection: the client must use the returned token on later /mcp requests. Platform operators should prefer explicit-company admin tools when available.

ParameterscompanyIdrequired

list_posts

List Posts

List CMS posts (blog posts and/or pages) with optional filters.

Parameterstypelimitsearchstatus

get_post

Get Post

Get detailed CMS post including content blocks, categories, and tags.

ParameterspostIdrequired

create_post

Create Post

Create a new CMS post (blog_post, page, or any custom post type). The post type must already exist — use list_post_types to discover, create_post_type to add a new one. excerpt = plain-text summary only (auto-derived from blocks if omitted). Structured custom fields go in meta, keyed by the field schema defined with create_post_type_field.

ParametersmetaslugtyperequiredtitlerequiredblocksstatustagIdsexcerptparentIdseoTitlesortOrdervisibility+4 more

update_post

Update Post

Update an existing CMS post (any post type). Only provided fields are changed.

ParametersmetaslugtypetitleblockspostIdrequiredstatustagIdsexcerptparentIdseoTitlesortOrder+5 more

delete_post

Delete Post

Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.

ParameterspostIdrequired

restore_post

Restore Post

Restore a previously deleted CMS post.

ParameterspostIdrequired

list_image_models

List Image Models

List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.

Takes no parameters.

generate_image

Generate Image

Generate an AI image via kie.ai and return its public R2 URL. Use to mint reusable URLs for content blocks (image, gallery), product photos, or any field that takes an image URL — does NOT attach to a post by itself. Costs credits (see list_image_models). On poll timeout the job continues running; pass `jobId` from the response to merchant ai-media APIs to retrieve it later.

ParametersseedpromptrequiredmodelCoderequiredaspectRatiopollTimeoutMsnegativePromptpollIntervalMs

generate_post_cover

Generate Post Cover

Generate an AI image and attach it as a post's featuredImage. Submits a kie.ai job, polls until complete, copies the result into the canonical post-asset R2 folder, and writes the public URL onto the post. Costs credits (see list_image_models). On poll timeout, the job continues — call attach_post_cover_from_job(postId, jobId) once it finishes to attach without paying again.

ParametersseedpostIdrequiredpromptrequiredmodelCoderequiredaspectRatiopollTimeoutMsnegativePromptpollIntervalMs

attach_post_cover_from_job

Attach Post Cover From Job

Attach a previously generated ai-media job's output as the post's featuredImage. Use when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. Verifies the job belongs to your company and succeeded. Does NOT charge credits — credits were charged at submit time.

ParametersjobIdrequiredpostIdrequiredassetIndexpollIfRunningpollTimeoutMs

upload_post_cover_from_url

Upload Post Cover From Url

Download an external image URL into R2 and attach it as the post's featuredImage. Replaces the manual flow of pasting external URLs (which break when the source goes down). Validates content-type starts with `image/` and rejects payloads larger than 20 MB. No AI credits charged — only standard storage.

ParameterspostIdrequiredsourceUrlrequired

list_categories

List Categories

List CMS post categories.

Takes no parameters.

create_category

Create Category

Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.

ParametersnamerequiredslugsortOrderdescription

update_category

Update Category

Update a CMS post category.

ParametersnameslugsortOrdercategoryIdrequireddescription

delete_category

Delete Category

Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.

ParameterscategoryIdrequired

restore_category

Restore Category

Restore a previously deleted CMS post category.

ParameterscategoryIdrequired

list_post_types

List Post Types

List all post types defined for this company (built-in: blog_post, page; plus any custom types).

Takes no parameters.

create_post_type

Create Post Type

Define a new custom post type (e.g. "treatment", "service"). Required before creating posts of that type. After creating a post type, use create_post_type_field to define its structured field schema. Those fields are stored in meta on each post — do not use excerpt for structured data.

ParametersiconslugrequiredlabelrequiredsortOrderlabelPluralrequiredsupportsBlockssupportsExcerptsupportsNestingsupportsCategoriessupportsFeaturedImage

list_post_type_fields

List Post Type Fields

List the custom field schema for a post type. Use this before creating posts to know which keys to pass in meta and what types they expect.

ParameterspostTypeIdrequired

create_post_type_field

Create Post Type Field

Add a custom field to a post type schema. The field key becomes the key in meta when creating/updating posts. Use fieldType="repeater" with fields=[...] for repeatable structured rows. Use this instead of storing structured data in excerpt.

ParameterskeylabelrequiredfieldsoptionshelpTextrequiredfieldTyperequiredsortOrderpostTypeIdrequired

update_post_type

Update Post Type

Update a custom post type. Built-in types (blog_post, page) cannot be modified.

ParametersiconlabelsortOrderpostTypeIdrequiredlabelPluralsupportsBlockssupportsExcerptsupportsNestingsupportsCategoriessupportsFeaturedImage

delete_post_type

Delete Post Type

Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.

ParameterspostTypeIdrequired

restore_post_type

Restore Post Type

Restore a previously deleted custom post type.

ParameterspostTypeIdrequired

update_post_type_field

Update Post Type Field

Update a field on a post type schema. Changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed.

ParametersforcelabelfieldsfieldIdrequiredoptionshelpTextrequiredfieldTypesortOrderpostTypeIdrequired

delete_post_type_field

Delete Post Type Field

Remove a field from a post type schema. Blocked when posts of this type still have data in the field unless force=true is passed (orphans the data).

ParametersforcefieldIdrequiredpostTypeIdrequired

restore_post_type_field

Restore Post Type Field

Restore a previously deleted field on a post type schema.

ParametersfieldIdrequiredpostTypeIdrequired

reorder_post_type_fields

Reorder Post Type Fields

Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.

ParameterspostTypeIdrequiredorderedFieldIdsrequired

append_post_block

Append Post Block

Append one or more blocks to the end of a post. Each block must be a valid block object: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product.

ParametersblocksrequiredpostIdrequired

replace_post_block

Replace Post Block

Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.

ParametersblockrequiredindexrequiredpostIdrequired

remove_post_block

Remove Post Block

Remove the block at the given index (0-based). All subsequent blocks shift up by one.

ParametersindexrequiredpostIdrequired

reorder_post_blocks

Reorder Post Blocks

Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.

ParameterspostIdrequiredorderedBlockIdsrequired

create_booking

Create Booking

Create a new booking for a member. Use get_available_slots first to find valid times, then create the booking with the service, member, date, and time.

ParametersnotesendTimerequiredstaffIdaccountIdrequiredserviceIdrequiredstartTimerequiredresourceIdbookingDaterequired

get_conversation_messages

Get Conversation Messages

Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.

ParameterspagelimitsearchconversationIdrequired

find_or_create_workroom_thread

Find Or Create Workroom Thread

Find or create a Workroom DM thread between a merchant user and an AI colleague. Use this when an inbound event deserves owner attention but no threadId was provided. This only prepares an internal Workroom channel.

ParameterstitleuserIdagentIdrequired

get_attachment_text

Get Attachment Text

Read the text/Markdown content of a file attached to a Workroom thread or sent by a customer (PDF, image, or document). Extracts on first read and caches the result. Returns status "ready" with markdown, or "skipped"/"failed"/"not_found" with a reason. Use when a message references an attachment you need to read.

ParametersattachmentIdrequired

post_workroom_message

Post Workroom Message

Post an internal message from an AI colleague into a Workroom thread. Use this to report findings, ask the owner for approval, or share source links after reading CRM/Inbox data. This does not send anything to customers.

ParametersagentIdrequiredcontentrequiredmetadatathreadIdrequired

create_inbox_reply_suggestion

Create Inbox Reply Suggestion

Create a draft reply suggestion that appears inline in the FavCRM Inbox composer. Use this for message.inbound events with replyPolicy="suggest"; it does not send anything to the customer.

ParametersbodyrequiredagentIdrequiredsubjectmetadataconversationIdrequiredsourceMessageId

request_send_approval

Request Send Approval

Create a merchant-owned Workroom approval request for a customer-facing send. The agent must not call send_message, send_whatsapp_message, send_test_campaign, or send_campaign directly.

ParametersagentIdrequiredpayloadrequiredsummaryrequiredthreadIdrequiredactionTyperequired

list_segments

List Segments

List customer segments. Segments group members by criteria for targeted campaigns.

Parameterslimitsearch

get_segment

Get Segment

Get customer segment details including type, criteria, and live member count.

ParameterssegmentIdrequired

get_segment_members

Get Segment Members

Get the members that belong to a specific segment.

ParameterslimitsegmentIdrequired

create_segment

Create Segment

Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.

ParametersnamerequiredcriteriadescriptionsegmentType

update_segment

Update Segment

Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.

ParametersnamecriteriasegmentIdrequireddescriptionsegmentType

preview_segment_count

Preview Segment Count

Preview how many customers would match dynamic segment criteria before creating or updating a segment.

Parameterscriteria

set_segment_members

Set Segment Members

Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.

ParameterssegmentIdrequiredaccountIdsrequired

delete_segment

Delete Segment

Delete a customer segment.

ParameterssegmentIdrequired

list_templates

List Templates

List the company's WhatsApp message templates with their Meta approval status (PENDING / APPROVED / REJECTED). Check this to see which templates are approved before referencing one in a campaign.

Parameterslimit

create_template

Create Template

Create and submit a WhatsApp message template to Meta for approval. Text templates only (header text, body with {{1}} variables, footer) — add buttons in the app. The template is NOT usable until Meta approves it (check with list_templates). Submitting consumes the store’s Meta template allowance.

ParametersnamerequiredfootermessagerequiredcategoryrequiredlanguageheaderTextvariableSamples

list_outlets

List Outlets

List shop outlets/locations for the company.

ParametersactiveOnly

Version history

1
  1. v1.0.0LatestSep 16, 2026

Score

100% of the applicable checks met

How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.

  • Reached in the last 30 daysRequired25 pts
  • Auth declaredRequired10 pts
  • Tools listedRequired15 pts
  • DescriptionRequired15 pts
  • Logo10 pts
  • Documentation15 pts
  • License10 pts