Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

FavCRM

REMOTE · API.FAVCRM.IO

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

Available components

0 this week 93 Trust /100

Last scanned (15 hours ago)

Scores higher than 99% of remote servers

Reachable. Last reached 5 Nov 2026.

Category CRM and Sales

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security89
Transport & Reachability100
Schema Quality & AI Usability87
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 20974 tokens (~86/item across 242 items; 237 tools + 5 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
  • Stability check failed: schema churn in the 30 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 8 additions. See how to fix → Fail
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 99% of tool parameters carry a description.Partial
  • Structured output schemas are declared (100% of tools); any adoption earns full credit.Pass
Tool Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 20 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 238 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
What we tested

Checks we ran (13)

  • TLS certificate
  • Authorization
  • HTTPS
  • HSTS header
  • DNSSEC
  • Transport
  • Schema quality
  • Stability
  • Tool coverage
  • Injection markers
  • Destructive annotations
  • Judged manipulation
  • MCP protocol

Does not apply to this hosted endpoint (2)

  • Supply Chain SecurityScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.
  • Provenance & TransparencyScored on package channels only. This is a hosted endpoint, so there is nothing to install or inspect.

The score does not measure everything. What the score does not measure →

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 29 Oct 26 0
    • “update_booking_settings” added an optional parameter “bookingReminderLeadHoursList” cosmetic
    • “update_booking_settings” added an optional parameter “premisePassCode” cosmetic

    2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.

  • 17 Oct 26 0
    • Stability: pass → fail ▼ security
    • A breaking change shipped without a version bump: still 1.0.0 ▼ security
    • Tool “create_broadcast” was removed ▼ security
    • “create_campaign” reworded the description of “channelConfig” cosmetic
  • 10 Oct 26 0
    • Tool “backfill_conversation_summaries” rewrote its description, which is the text the model reads security
    • “backfill_conversation_summaries” reworded the description of “limit” cosmetic
  • 28 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 25 Sept 26 0
    • We updated how we score, so this day's move reflects our rubric, not a change to the server See what changed → functional
  • 12 Sept 26 0
    • Stability: fail → pass ▲ security
  • 5 Sept 26 0
    • “create_broadcast” reworded the description of “recipientFilter” cosmetic

    1 cosmetic change on this day. Switch on “Show cosmetic changes” to see it.

  • 4 Sept 26 0
    • Tool “create_campaign” rewrote its description, which is the text the model reads security
    • Tool “list_campaigns” rewrote its description, which is the text the model reads security
    • Tool “update_campaign” rewrote its description, which is the text the model reads security
    • New tool “get_campaign” functional
    • New tool “get_event_campaign_exclusions” functional
    • New tool “list_event_registrations” functional
    • New tool “undo_campaign_send” functional
    • “create_campaign” added an optional parameter “audienceExclusions” cosmetic
    • “update_campaign” added an optional parameter “audienceExclusions” cosmetic
    • “request_send_approval” reworded the description of “payload” cosmetic
    • “update_campaign” reworded the description of “recipientIds” cosmetic
    • “update_campaign” reworded the description of “recipientSource” cosmetic
    • “update_campaign” reworded the description of “status” cosmetic
Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 5 Nov 2026 · Probed https://api.favcrm.io/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=favcrm.io CN=WE1,O=Google Trust Services,C=US 9 Oct 2026 7 Jan 2027 ECDSA 256 ECDSA-SHA256 b6f4e82481e9d0d10e62053ee69ff893
SANs: favcrm.io, api.favcrm.io, *.api.favcrm.io
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of api.favcrm.io. — Not signed

Zone DS Keys Algorithms Outcome
. Trust anchor 20326, 38696 8, 8 Verified
io. DS published 38690 8 Verified
favcrm.io. No DS Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication Challenged, unverified

The endpoint asked for a token, but we could not retrieve and validate the RFC 9728 metadata that tells a client how to obtain one.

Result Challenged, unverified
Enforced On tool calls
HTTP status 200
Header Value
strict-transport-security max-age=31536000
x-content-type-options nosniff
x-frame-options SAMEORIGIN
referrer-policy no-referrer

Protected resource metadata

Retrieved No
Problem No resource metadata

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://api.favcrm.io/mcp Verified 200
http (plaintext) http://api.favcrm.io/mcp HTTPS enforced 301 https://api.favcrm.io/mcp
MCP tools · 237 exposed · ~20,864 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
accept_team_invite_request ~79

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.

NameTypeReqDescription
tokenstringyesInvite token returned by create_team_member_invite or from the invite link
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

accept_team_invite_verify ~98

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.

NameTypeReqDescription
codestringyes6-digit code from the invite email
namestring–Optional display name when creating a new user
tokenstringyesInvite token returned by create_team_member_invite or from the invite link
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

add_knowledge_text ~82

Add a free-form text document to the knowledge base. Use for pasted policies, FAQs, internal notes, brand voice references — anything the agent should be able to retrieve later. Stored as a single document; agent-side embedding/retrieval happens elsewhere.

NameTypeReqDescription
contentstringyesDocument body text
namestringyesFriendly title for the document
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

append_post_block ~102

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.

NameTypeReqDescription
blocksarrayyesBlock(s) to append
postIdstringyesThe post ID
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

archive_survey ~32

Archive a survey and remove it from active survey lists.

NameTypeReqDescription
surveyIdstringyesSurvey ID to archive
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

assign_staff_to_service ~53

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

NameTypeReqDescription
serviceIdstringyesService ID
userIdstringyesusers.id from list_staff.userId
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

attach_post_cover_from_job ~193

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.

NameTypeReqDescription
assetIndexinteger–Which asset to use when the job produced multiple outputs. Default 0.
jobIdstringyesThe ai-media job ID (from generate_image, generate_post_cover, or POST /v6/merchant/ai-media/generate)
pollIfRunningboolean–When true, advance polling once if the job is still running. Default true.
pollTimeoutMsinteger–When pollIfRunning is true, wait up to this long for terminal state. Default 30000.
postIdstringyesThe post ID
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

attach_tags ~55

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

NameTypeReqDescription
accountIdsarrayyesMember/account IDs to tag (max 100)
tagIdstringyesTag ID to attach
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

backfill_conversation_summaries ~304

Find conversations with no usable cached AI summary (missing or malformed; legacy valid caches are never touched) and generate them, at most limit per call (default 10, max 10). Newest activity first; only conversations you may read are considered. Default dryRun=true lists candidates with no model call, billing or writes. Set dryRun=false to generate; it is billed to company credits and needs company AI summaries enabled. Stops on the first generation failure, missing AI gateway configuration (rejected before any request, not billed), disabled flag, unknown usage or lost access. Cursor rules: use executeCursor from a preview to execute from its frozen window and starting position; eligibility is rechecked. nextCursor only continues the mode that produced it. Scans at most 50 visible rows per call, so hasMore may be true with no candidates in this page.

NameTypeReqDescription
channelstring–Only conversations on this channel
cursorstring–Opaque cursor from an earlier call. Pass the same cursor to the same mode to continue.
daysinteger–Rolling window in days by last message time, 1-90 (default 30)
dryRunboolean–true (default) previews candidates with no model call, billing or writes. false generates summaries.
limitinteger–Max generation attempts in this call, 1-10 (default 10). A remaining time budget can yield fewer.
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

cancel_booking ~95

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

NameTypeReqDescription
bookingIdstringyesThe booking ID to cancel
idempotencyKeystringyesUnique key for this cancellation attempt; reuse it only when retrying the same request
reasonstring–Cancellation reason
refundMethodstring–Refund cash manually or convert refundable cash to member credit
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

cancel_subscription ~44

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

NameTypeReqDescription
subscriptionIdstringyesSubscription ID
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

check_plan_operation ~125

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

NameTypeReqDescription
deltainteger–Planned usage increment. Currently quota checks are single-resource preflights.
moduleCodestring–Module code to check, e.g. whatsapp or crm
quotaCodestring–Quota code to check, e.g. contacts or mcp_calls_per_minute
toolNamestring–MCP tool name to preflight, e.g. create_account
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

clone ~93

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.

NameTypeReqDescription
entityIdstringyesID of the entity to clone
entityTypestringyesType of entity to clone
namestring–Override the name of the cloned entity (defaults to "Original Name (Copy)")
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

commit_customer_import ~65

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.

NameTypeReqDescription
rowsarrayyes–
sessionIdstringyessessionId from preview_customer_import
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

complete_booking ~34

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

NameTypeReqDescription
bookingIdstringyesThe booking ID to complete
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

confirm_booking ~26

Confirm a pending booking.

NameTypeReqDescription
bookingIdstringyesThe booking ID to confirm
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

convert_lead ~161

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.

NameTypeReqDescription
accountIdstringyesLead account ID
createDealboolean–Deprecated and ignored — a convert always links a deal
dealAmountnumber–Optional deal amount
dealClosingDatestring–Optional deal close date
dealNamestring–Optional deal name
dealStagestring–Optional initial deal stage ("lead" is an alias of "discovery")
lifeStagestring–Lifecycle after convert (default active)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

copy_service_tier_pricing ~70

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

NameTypeReqDescription
serviceIdstringyesBooking service ID
sourceTierIdstringyesMembership tier to copy from
targetTierIdstringyesMembership tier to replace
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_account ~205

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.

NameTypeReqDescription
addressobject–Postal address
emailstring–Email address
enrollMembershipboolean–Whether to create an active membership immediately
expiresAtstring–Optional ISO expiry for the membership
firstNamestring–First name for individual accounts
lastNamestring–Last name for individual accounts
lifeStagestring–CRM life stage. Defaults to active.
namestringyesAccount/customer display name
notesstring–Internal notes
phonestring–Phone number
sourcestring–Acquisition source. Defaults to api.
tierIdstring–Membership tier ID to enroll into. If omitted, the company default tier may apply.
typestring–Account type. Defaults to individual.
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_booking ~138

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.

NameTypeReqDescription
accountIdstringyesThe member/account ID
bookingDatestringyesDate in YYYY-MM-DD format
endTimestringyesEnd time in HH:MM format
notesstring–Booking notes
resourceIdstring–Resource ID
serviceIdstringyesThe service ID
staffIdstring–Staff member ID
startTimestringyesStart time in HH:MM format
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_campaign ~282

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".

NameTypeReqDescription
audienceExclusionsobject–Optional exclusions: accountIds contains specific customer account IDs; campaignIds contains previous campaign IDs whose accepted recipients must be omitted. A recipient matching any rule is excluded.
channelstringyesemail | sms | whatsapp | push
channelConfigobject–Channel-specific config: subject + htmlBody + optional plainTextBody for email; body for sms; approved templateId plus required bodyParameters, headerTextParameter, or headerMediaUrl and optional wha…
namestringyesCampaign name (internal)
recipientIdsarray–Required if recipientSource="individual", "list", or "csv"; values are account IDs
recipientSourcestring–Where to source recipients from. "list" is normalized to "individual".
scheduledAt––ISO datetime for scheduled send (status must be SCHEDULED)
segmentId––Required if recipientSource="segment"
statusstring–Default DRAFT
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_category ~84

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

NameTypeReqDescription
descriptionstring–Description
namestringyesCategory name
slugstring–Auto-generated from name if omitted.
sortOrdernumber–Sort order (lower = earlier)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_contact ~76

Create a contact on an existing CRM account.

NameTypeReqDescription
accountIdstringyesOwning account ID
emailstring–Email
isPrimaryboolean–Mark as primary contact
jobTitlestring–Job title
namestringyesContact name
phonestring–Phone
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_crm_task ~187

Create a CRM follow-up task for you or, where your assignment policy allows, another active member. Optionally link it to a CRM account or conversation you can see. dueAt must be an exact datetime with a timezone; resolve relative dates such as "tomorrow" with the user first.

NameTypeReqDescription
descriptionstring–Details
dueAtstring–Exact ISO 8601 datetime with timezone offset or Z. Relative dates like "tomorrow" must be resolved by the user first.
ownerId––Owner users.id. Defaults to you. Null leaves the task unassigned.
prioritystring–Priority (default medium)
relatedIdstring–ID of the account or conversation named by relatedType
relatedTypestring–Link to a CRM account or conversation. Default none.
titlestringyesTask title
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_custom_field ~130

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

NameTypeReqDescription
entityTypestringyesEntity type, e.g. account, contact, deal, booking
fieldLabelstringyesHuman-readable label, e.g. Preferred branch
fieldNamestringyesStable machine name, e.g. preferred_branch
fieldTypestringyesField type
isRequiredboolean–Whether this field is required
optionsarray–Allowed values for select/multiselect fields
sortOrdernumber–Display order
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_deal ~118

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

NameTypeReqDescription
accountId––Linked CRM account ID
amount––Deal amount
closingDate––Expected closing date
contactId––Linked contact ID
dealType––Deal type/category
description––Deal notes or description
namestringyesDeal name
ownerId––Owner user/team member ID
probability––Win probability, e.g. 25
stage––Pipeline stage
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_inbox_reply_suggestion ~135

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.

NameTypeReqDescription
agentIdstringyesAI colleague ID creating the suggestion
bodystringyesDraft reply text for the merchant to review
conversationIdstringyesInbox conversation ID
metadataobject–Optional metadata such as rationale, confidence, or source refs
sourceMessageIdstring–Inbound message ID this draft responds to
subjectstring–Optional email subject suggestion
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_invoice ~106

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

NameTypeReqDescription
accountIdstringyesCustomer accountId (CRM account)
currencystring–ISO currency code (defaults to company default)
dueDatestring–Due date (ISO 8601 date)
lineItemsarray–Line items to bill — totals are computed server-side
notesstring–Free-form notes shown on the invoice
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_note ~68

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

NameTypeReqDescription
bodystringyesNote content
entityIdstringyesThe entity ID
entityTypestringyesType of entity
isPinnedboolean–Pin this note to the top
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_offer_rule ~110

Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.

NameTypeReqDescription
descriptionstring–Rule description
namestringyesRule name
productsarray–Products to suggest with optional discounts
triggerConfigobject–Trigger-specific configuration
triggerTypestringyesWhen the offer triggers
typestringyesRule type: upsell, cross_sell, bundle, or post_purchase
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_outlet ~135

Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.

NameTypeReqDescription
acceptsOrdersboolean–Whether outlet accepts online orders (default true)
address––Street address
idstring–Optional outlet UUID (for legacy migration; non-standard formats accepted)
isActiveboolean–Whether outlet is active (default true)
latitude––Latitude
logoUrl––Logo URL
longitude––Longitude
namestringyesOutlet name
phone––Contact phone
sortOrderinteger–Display sort order (default 0)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_plan_upgrade_link ~141

Create a Stripe Checkout link for a new paid subscription, or a Stripe Billing Portal link for an existing Stripe subscription. Use only after the user explicitly asks to upgrade or fix billing.

NameTypeReqDescription
billingCyclestring––
confirmboolean–Required true to create a Stripe-hosted payment or billing link.
planCodestring–Target plan code, e.g. favcrm-lite. Either planId or planCode is required.
planIdstring–Target plan ID. Use list_plan_options first if unknown.
returnUrlstring–Where Stripe should return after checkout/portal. Defaults to merchant billing settings.
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post ~428

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.

NameTypeReqDescription
blocksarray–Ordered array of content blocks. Each block has { id, version, type, data } where type is one of: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callo…
categoryIdsarray–Category IDs (post types with supportsCategories only)
excerptstring–Plain-text summary only — never JSON. Auto-derived from the first paragraph/heading block if omitted and the post type supports excerpts.
featuredImagestring–Cover image URL
metaobject–Structured custom field values, keyed by field key (see list_post_type_fields). Validated against the post type field schema. Use this for all machine-readable data — never put JSON in excerpt.
parentId––Parent post ID for nested types (e.g. pages).
publishedAt––ISO timestamp; required when status=scheduled.
seoDescriptionstring–SEO meta description
seoTitlestring–SEO title override
slugstring–URL slug. Auto-generated from title if omitted; collisions get -2, -3 suffix.
sortOrdernumber–Sort order (lower = earlier)
statusstring–Status (default draft)
tagIdsarray–Tag IDs to attach to the post
titlestringyesPost title
typestringyesPost type slug (e.g. blog_post, page, treatment). Must exist in post_types for this company.
visibilitystring–Visibility (default public)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post_type ~204

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.

NameTypeReqDescription
icon––Icon name or URL
labelstringyesSingular UI label, e.g. "Treatment"
labelPluralstringyesPlural UI label, e.g. "Treatments"
slugstringyesLowercase identifier, e.g. "treatment". Auto-derived from label if omitted.
sortOrdernumber–Sort order (lower = earlier)
supportsBlocksboolean–Default true
supportsCategoriesboolean–Default true
supportsExcerptboolean–Default true
supportsFeaturedImageboolean–Default true
supportsNestingboolean–Default false
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_post_type_field ~287

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.

NameTypeReqDescription
fieldTypestringyesField type: text | textarea | richtext | number | boolean | date | datetime | select | multiselect | url | email | image | file | gallery | attachments | repeater
fieldsarray–Required for fieldType="repeater". Defines the child fields stored in each row object.
helpTextstring–Optional hint shown in the UI
keystring–snake_case key used in meta. Auto-derived from label if omitted.
labelstringyesHuman-readable field label, e.g. "Tagline"
optionsobject–For select/multiselect: { choices: [{ label, value }] }. For URL fields that should accept merchant uploads, use { uploadable: true } so the UI stores the uploaded file URL instead of asking the merc…
postTypeIdstringyesPost type ID (from list_post_types)
requiredboolean–Whether the field is required on post creation (default false)
sortOrdernumber–Sort order (lower = earlier)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_product ~122

Create a new shop product as DRAFT. Merchant can review and activate from the portal.

NameTypeReqDescription
categoryIdsarray–Category IDs (first is primary)
descriptionstring–Product description
discountPricestring–Discounted price
memberPricestring–Members-only price
namestringyesProduct name
pricestringyesPrice as decimal string (e.g. "29.99")
productTypestring–Product type (default one_time)
skustring–SKU code
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_product_category ~84

Create a product category. Use parentId to create subcategories under an existing category.

NameTypeReqDescription
descriptionstring–Category description
namestringyesCategory name
onlineEnabledboolean–Show in online store (default true)
parentIdnumber–Parent category ID for subcategories
sortOrdernumber–Display sort order
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_promotion ~254

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.

NameTypeReqDescription
bookingEnabledboolean–Allow on bookings
codestringyesCoupon code customers enter at checkout (auto-uppercased)
descriptionstring–Description
endsAt––ISO datetime — when the promo expires
eventEnabledboolean–Allow on event registrations
maximumDiscount––Cap on percentage discounts, decimal string
minimumAmount––Minimum order amount required, decimal string
minimumQuantity––Minimum item count required
namestringyesPromotion name (internal)
onlineEnabledboolean–Allow on online shop orders
posEnabledboolean–Allow at POS
startsAt––ISO datetime — when the promo becomes valid
statusstring–Default active
typestring–Default percentage
usageLimitPerCustomer––Max uses per single customer
usageLimitTotal––Max total uses across all customers
valuestringyesDiscount value as decimal string
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_resource ~98

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

NameTypeReqDescription
capacitynumber–How many concurrent bookings (default 1)
descriptionstring–Description
namestringyesResource name (e.g. "Treatment Room A")
statusstring–Default active
typestringyesFree-form type label, e.g. "room", "equipment"
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_segment ~72

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

NameTypeReqDescription
criteriaobject–Dynamic segment criteria
descriptionstring–Segment description
namestringyesSegment name
segmentTypestring–Segment type (default DYNAMIC)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service ~319

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

NameTypeReqDescription
allowedTierIdsarray–Required when visibility=members_only
capacitynumber–How many participants per slot (default 1)
categoryIdstring–Existing service category ID
commissionCurrency––Commission currency (ISO code)
commissionType––Commission type: "fixed" or "percentage"
commissionValue––Commission amount as decimal string
cooldownMinutesnumber–Minimum gap before bookings can be cancelled (default 0)
currencystring–ISO currency code, default HKD
descriptionstring–Description
durationMinutesnumberyesDuration of one booking in minutes
namestringyesService name
pricestring–Decimal string, e.g. "80.00". Defaults to "0".
requireLoginboolean–Default true — guests cannot book
requiresConfirmationboolean–If true, bookings start as pending and need confirm_booking
requiresResourceboolean–Whether the service requires a resource (room/equipment)
requiresStaffboolean–Whether the service requires staff assignment
sortOrdernumber–Sort order (lower = earlier)
statusstring–Default active
typestring–Default one_on_one
visibilitystring–Visibility: public | members_only | hidden
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_category ~61

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

NameTypeReqDescription
descriptionstring–Description
namestringyesCategory name
sortOrdernumber–Sort order (lower = earlier)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_package ~127

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

NameTypeReqDescription
applicableItemsarray–Items used when applicableType=SELECTED
applicableTypestring–Default ALL
descriptionstring–Description
namestringyesPackage name
pricenumberyesPackage price
sessionCountintegeryesNumber of included sessions
statusstring–Default ACTIVE
validDaysintegeryesValidity window after purchase, in days
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

create_service_schedule ~203

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

NameTypeReqDescription
byWeekdayarray–Weekdays for weekly recurrence: 0=Mon, 1=Tue, ... 6=Sun
datestringyesStart date or one-off date (YYYY-MM-DD)
endTimestringyesHH:MM (24h)
maxCapacitynumber–Max bookings per generated slot
notesstring–Free-form notes
recurrencestring–Default none
recurrenceEndDatestring–YYYY-MM-DD
recurrenceIntervalnumber–Default 1
resourceIdstring–Optional resource ID to bind this schedule to a room/resource
serviceIdstringyesService ID
staffIdstring–Optional companyMembers.id to bind this schedule to staff
startTimestringyesHH:MM (24h)
NameTypeReqDescription
data–yesTool result payload — shape varies per tool, see the tool description
renderTypestringyesUI rendering hint for the result
summarystringyesOne-line human-readable summary of the action

No examples provided.

Install

How do I install the FavCRM MCP server?

FavCRM is a hosted endpoint at https://api.favcrm.io/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · api.favcrm.io

# add to Claude Code
claude mcp add --transport http io-favcrm-favcrm 'https://api.favcrm.io/mcp'
Common questions

What is the FavCRM MCP server?

FavCRM is an MCP server listed in the public MCP registry as io.favcrm/favcrm. Agentic CRM for service businesses, bookings, customers, WhatsApp, loyalty, invoicing. This page covers its hosted endpoint (https://api.favcrm.io/mcp).

Is the FavCRM MCP server safe to use?

FavCRM scores 93 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the FavCRM MCP server expose?

FavCRM exposes 237 tools: search_members, get_member_profile, preview_customer_import, commit_customer_import, create_account, and 232 more. Their descriptions and schemas cost roughly 20,864 tokens of context every time the server is loaded.

Does the FavCRM MCP server require authentication?

Yes. FavCRM asked us for credentials when we connected, so you will need to authorise it in your MCP client before it can do anything.

Is the FavCRM MCP server still maintained?

FavCRM is still listed as active in the MCP registry. We last reached this channel on 5 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What did VerifyMCP test on the FavCRM MCP server?

VerifyMCP ran 13 checks on FavCRM, covering TLS certificate, Authorization, HTTPS, HSTS header and 9 more. Supply Chain Security and Provenance & Transparency do not apply to a hosted endpoint, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.