FavCRM
REMOTE · API.FAVCRM.IO
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Available components
Last scanned (16 hours ago)
Scores higher than 99% of remote servers
Reachable. Last reached 5 Nov 2026.
Category CRM and Sales
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
- The endpoint's TLS certificate is valid, in date, and uses a strong key. View diagnostics → Pass
- Authorisation is enforced on tool calls, but the challenge carries no valid RFC 9728 metadata, so a client cannot discover where to get a token. See how to fix → View diagnostics → Fail
- HTTPS is enforced; there's no plaintext access path. View diagnostics → Pass
- The HSTS (Strict-Transport-Security) header is present. View diagnostics → Pass
- DNSSEC check failed: this domain isn't protected by DNSSEC. See how to fix → View diagnostics → Fail
Transport & Reachability100
- Verified streamable-http transport via a live MCP handshake. View diagnostics → Pass
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
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 →
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
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 |
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 →
create_subscription ~169
Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | Customer accountId |
| amount | number | – | Override amount per cycle (otherwise derived from tier) |
| autoRenew | boolean | – | Manual records cannot auto-renew |
| billingCycle | string | – | Billing cycle (default monthly) |
| currency | string | – | ISO currency code (otherwise derived from tier or company default) |
| currentPeriodEnd | string | – | Period end (ISO 8601). Defaults to start + cycle. |
| currentPeriodStart | string | – | Period start (ISO 8601). Defaults to now. |
| tierId | string | – | Membership tier ID — if set, amount/currency default from the tier |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_survey ~158
Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.
| Name | Type | Req | Description |
|---|---|---|---|
| closeAt | string | – | Optional ISO datetime when the survey closes |
| description | string | – | Optional survey description |
| openAt | string | – | Optional ISO datetime when the survey opens |
| questionBlocks | array | yes | Ordered survey question blocks |
| settings | object | – | Survey settings such as allowMultipleResponses, collectEmail, collectIpAddress, requireAuthentication, showProgress, successMessage |
| slug | string | – | Optional URL slug; generated from title when omitted |
| status | string | – | Initial status |
| title | string | yes | Survey title |
| visibility | string | – | Who can access the survey |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_survey_invitation ~143
Create a token-auth survey invitation for a specific member/account or contact.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | CRM account ID to invite |
| channel | string | – | Intended channel, e.g. email, sms, whatsapp, link |
| contactId | string | – | Contact ID to invite |
| expiresAt | string | – | Optional invitation expiry ISO datetime |
| metadata | object | – | Optional invitation metadata |
| recipientEmail | string | – | Recipient email for link tracking |
| recipientName | string | – | Recipient display name for link tracking |
| recipientPhone | string | – | Recipient phone for link tracking |
| surveyId | string | yes | Survey ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_tag ~45
Create a CRM tag for customer segmentation and organization.
| Name | Type | Req | Description |
|---|---|---|---|
| color | string | – | Optional display color, e.g. #2563eb |
| name | string | yes | Tag name |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_task ~97
Create a task. Optionally link to a CRM account or assign to a team member.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Linked CRM account |
| assigneeId | string | – | company_members.id |
| description | string | – | Description |
| dueDate | string | – | ISO date (YYYY-MM-DD) |
| priority | string | – | Priority |
| status | string | – | Status filter |
| title | string | yes | Task title |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_team_member_invite ~149
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.
| Name | Type | Req | Description |
|---|---|---|---|
| string | yes | Invitee email address | |
| expiresInHours | integer | – | Invite lifetime in hours. Defaults to 72, max 336. |
| modules | array | – | Optional legacy module list to attach to the company member |
| name | string | – | Optional display name for a new user |
| permissions | array | – | Optional structured module permissions to attach to the company member |
| role | string | – | Team member role to grant on acceptance |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_template ~200
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.
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | UTILITY = transactional (order/shipping), MARKETING = promos, AUTHENTICATION = codes. |
| footer | string | – | Optional small footer text. |
| headerText | string | – | Optional short bold header above the body. |
| language | string | – | Language code, default en_US. |
| message | string | yes | Body text. Use {{1}}, {{2}} for personalised values. |
| name | string | yes | Friendly template name (a Meta-safe id is derived from it). |
| variableSamples | object | – | Example values per variable number, e.g. {"1":"Sara"} — Meta reviews with these. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_ticket ~125
Create a support ticket for a member issue.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Member/account ID this ticket is about |
| category | string | – | Ticket category |
| contactEmail | string | – | Contact email if no account ID |
| contactName | string | – | Contact name if no account ID |
| contactPhone | string | – | Contact phone if no account ID |
| description | string | – | Detailed description of the issue |
| priority | string | – | Ticket priority |
| source | string | – | Where the ticket originated |
| subject | string | yes | Ticket subject/title |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_variation ~132
Add a variation (size, color, etc.) to an existing product.
| Name | Type | Req | Description |
|---|---|---|---|
| discountPrice | string | – | Discounted price |
| memberPrice | string | – | Members-only price |
| name | string | – | Variation name |
| price | string | yes | Price as decimal string (e.g. "29.99") |
| productId | number | yes | The product ID |
| selectedOptions | object | – | Option selections e.g. {"Size": "Large"} |
| sku | string | – | Variation SKU |
| stockQuantity | number | – | Stock quantity |
| stockStatus | string | – | Stock status |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
create_whatsapp_connect_link ~96
Create a short-lived browser link for WhatsApp Business Embedded Signup. The user must open the link because Meta requires a browser popup to authorize and choose the WABA/phone number.
| Name | Type | Req | Description |
|---|---|---|---|
| onboardingMode | string | – | Use cloud_api for a new WhatsApp Cloud API connection, or coexistence when connecting a WhatsApp Business App number. |
| ttlMinutes | integer | – | Connect link lifetime in minutes. Defaults to 30. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_account ~44
Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The account ID to soft-delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_campaign ~37
Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Campaign ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_category ~38
Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
| Name | Type | Req | Description |
|---|---|---|---|
| categoryId | string | yes | Category ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_contact ~41
Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | The contact ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_custom_field ~31
Delete a custom field definition and its stored values.
| Name | Type | Req | Description |
|---|---|---|---|
| definitionId | string | yes | Custom field definition ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_deal ~32
Soft-delete a CRM deal from the sales pipeline.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_invoice ~42
Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
| Name | Type | Req | Description |
|---|---|---|---|
| invoiceId | string | yes | Invoice ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_knowledge_document ~45
Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.
| Name | Type | Req | Description |
|---|---|---|---|
| documentId | string | yes | Knowledge document ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_post ~37
Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
| Name | Type | Req | Description |
|---|---|---|---|
| postId | string | yes | The post ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_post_type ~49
Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
| Name | Type | Req | Description |
|---|---|---|---|
| postTypeId | string | yes | Post type ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_post_type_field ~88
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).
| Name | Type | Req | Description |
|---|---|---|---|
| fieldId | string | yes | Field ID |
| force | boolean | – | Delete even if posts have data in this field. Existing meta values become orphaned. |
| postTypeId | string | yes | Post type ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_promotion ~29
Delete a promotion. Past usage records are preserved.
| Name | Type | Req | Description |
|---|---|---|---|
| promotionId | string | yes | Promotion ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_segment ~26
Delete a customer segment.
| Name | Type | Req | Description |
|---|---|---|---|
| segmentId | string | yes | The segment ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_service_package ~29
Delete a service package by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| packageId | string | yes | Service package ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_tag ~33
Delete a CRM tag and remove it from all tagged entities.
| Name | Type | Req | Description |
|---|---|---|---|
| tagId | string | yes | The tag ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
delete_task ~27
Soft-delete a CRM task.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | The task ID to delete |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
detach_tags ~50
Detach one tag from one or more member/account records.
| Name | Type | Req | Description |
|---|---|---|---|
| accountIds | array | yes | Member/account IDs to untag (max 100) |
| tagId | string | yes | Tag ID to detach |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
earn_loyalty_points ~104
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The member/account ID |
| amount | integer | yes | Positive integer amount to credit |
| field | string | yes | Which loyalty unit to credit |
| reason | string | – | Audit-trail reason (e.g. "Booking completed", "Manual adjustment") |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
enrol_membership ~101
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.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | The member/account ID to enrol |
| expiresAt | string | – | Optional ISO date to override the tier-computed expiry. |
| tierId | string | – | The membership tier ID. Omit to enrol on the default no-tier membership. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
execute_tool ~76
Execute an available FavCRM tool by name after discovering it with search_tools. Target tool availability, input schema, module gates, and audit logging are still enforced.
| Name | Type | Req | Description |
|---|---|---|---|
| arguments | object | – | Arguments object for the target tool. Must match the target input schema. |
| toolName | string | yes | Exact target tool name returned by search_tools |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
find_or_create_workroom_thread ~107
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | yes | AI colleague ID for the Workroom DM |
| title | string | – | Optional title if a new thread is created |
| userId | string | – | Merchant user ID to notify. Defaults to the current MCP user when omitted. |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
generate_image ~191
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string | – | Output aspect ratio (e.g. 16:9, 1:1) |
| modelCode | string | yes | Image model code from list_image_models |
| negativePrompt | string | – | Things to exclude from generation |
| pollIntervalMs | integer | – | Default 3000. |
| pollTimeoutMs | integer | – | Default 60000. |
| prompt | string | yes | Generation prompt |
| seed | integer | – | Random seed for reproducible output |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
generate_post_cover ~217
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.
| Name | Type | Req | Description |
|---|---|---|---|
| aspectRatio | string | – | Aspect ratio passed to the model, e.g. "16:9", "1:1" |
| modelCode | string | yes | Image model code from list_image_models (e.g. nano-banana-2) |
| negativePrompt | string | – | Things to exclude from generation |
| pollIntervalMs | integer | – | Default 3000. |
| pollTimeoutMs | integer | – | Default 60000. |
| postId | string | yes | The post ID |
| prompt | string | yes | Image generation prompt |
| seed | integer | – | Random seed for reproducible output |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_attachment_text ~99
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.
| Name | Type | Req | Description |
|---|---|---|---|
| attachmentId | string | yes | The attachment ID from the message attachments list |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_audit_log ~39
Fetch a single audit log entry by ID, including before/after snapshots when available.
| Name | Type | Req | Description |
|---|---|---|---|
| auditLogId | string | yes | Audit log ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_available_slots ~79
Find available booking slots for a service on a specific date.
| Name | Type | Req | Description |
|---|---|---|---|
| date | string | yes | ISO date to check (YYYY-MM-DD) |
| resourceId | string | – | Optional: filter by specific resource |
| serviceId | string | yes | The service to check availability for |
| staffId | string | – | Optional: filter by specific staff member |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_booking_detail ~34
Get full booking details including line items, status history, and participants.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingId | string | yes | The booking ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_booking_settings ~29
Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_booking_stats ~26
Get booking counts: today, this week, this month, and breakdown by status.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_campaign ~39
Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.
| Name | Type | Req | Description |
|---|---|---|---|
| campaignId | string | yes | Campaign ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_contact ~26
Fetch a single contact by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| contactId | string | yes | The contact ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_conversation_messages ~83
Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
| Name | Type | Req | Description |
|---|---|---|---|
| conversationId | string | yes | The conversation ID |
| limit | number | – | Page size (default 20, max 50) |
| page | number | – | Page number, newest first (default 1) |
| search | string | – | Search within messages |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_conversation_summary ~63
Read the cached AI summary of a conversation with freshness information. Read-only: never calls the model, never bills, never writes. Returns summary null when no cache exists. Use refresh_conversation_summary to regenerate.
| Name | Type | Req | Description |
|---|---|---|---|
| conversationId | string | yes | The conversation ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_crm_task ~50
Get one CRM follow-up task you may see, with its UTC due instant and the company timezone. Unseen and missing tasks return not found.
| Name | Type | Req | Description |
|---|---|---|---|
| taskId | string | yes | CRM task ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_custom_field ~29
Get a custom field definition by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| definitionId | string | yes | Custom field definition ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_custom_field_values ~50
Get custom field values for a CRM entity such as an account, contact, deal, or booking.
| Name | Type | Req | Description |
|---|---|---|---|
| entityId | string | yes | Entity ID |
| entityType | string | yes | Entity type |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_customer_brief ~114
Read-only customer brief for one account: details, tags, linked conversations with cached summaries, and open CRM tasks. Only records you may read are included. A section you cannot access is returned as null and listed in availableSections. Does not call the AI model.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | yes | CRM account ID |
| conversationLimit | number | – | Max linked conversations, 1-20 (default 10) |
| taskLimit | number | – | Max open tasks, 1-20 (default 10) |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_dashboard_stats ~40
Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
Input schema present but exposes no named parameters.
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_deal ~28
Get detailed CRM deal information by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
get_event_campaign_exclusions ~64
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.
| Name | Type | Req | Description |
|---|---|---|---|
| eventId | string | yes | Event ID |
| Name | Type | Req | Description |
|---|---|---|---|
| data | – | yes | Tool result payload — shape varies per tool, see the tool description |
| renderType | string | yes | UI rendering hint for the result |
| summary | string | yes | One-line human-readable summary of the action |
No examples provided.
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
claude mcp add --transport http io-favcrm-favcrm 'https://api.favcrm.io/mcp'
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.