FavCRM
REMOTE · API.FAVCRM.IO · SCANNED SEP 20
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Available components
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 19709 tokens (~83/item across 235 items; 230 tools + 5 resources), lean.Pass
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management100
- No destabilizing schema changes in the last 30 days.Pass
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 231 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
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'
{
"mcpServers": {
"io-favcrm-favcrm": {
"url": "https://api.favcrm.io/mcp"
}
}
} {
"servers": {
"io-favcrm-favcrm": {
"type": "http",
"url": "https://api.favcrm.io/mcp"
}
}
} [mcp_servers.io-favcrm-favcrm] url = "https://api.favcrm.io/mcp"
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"io-favcrm-favcrm": {
"type": "remote",
"url": "https://api.favcrm.io/mcp",
"enabled": true
}
}
} openclaw mcp add io-favcrm-favcrm --url 'https://api.favcrm.io/mcp' --transport streamable-http
mcp_servers:
io-favcrm-favcrm:
url: "https://api.favcrm.io/mcp" {
"McpServers": {
"io-favcrm-favcrm": {
"Transport": "http",
"Url": "https://api.favcrm.io/mcp"
}
}
} assistant mcp add io-favcrm-favcrm -t streamable-http -u 'https://api.favcrm.io/mcp'
{
"mcpServers": {
"io-favcrm-favcrm": {
"type": "http",
"url": "https://api.favcrm.io/mcp"
}
}
} The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.
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.
- 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
- 29 Aug 26 0
- Tool “switch_company” rewrote its description, which is the text the model reads security
- New tool “copy_service_tier_pricing” functional
- New tool “get_service_tier_pricing” functional
- New tool “set_service_tier_pricing” functional
- 26 Aug 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 Aug 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 96 to 100.
- 19 Aug 26 0
- “update_booking_settings” added an optional parameter “accessPassAfterMinutes” cosmetic
- “update_booking_settings” added an optional parameter “accessPassBeforeMinutes” cosmetic
2 cosmetic changes on this day. Switch on “Show cosmetic changes” to see them.
- 17 Aug 26 0
- Tool “convert_lead” rewrote its description, which is the text the model reads security
- “convert_lead” reworded the description of “createDeal” cosmetic
- “convert_lead” reworded the description of “dealStage” cosmetic
- “update_deal_stage” reworded the description of “stage” 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 20 Sept 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 | 11 Aug 2026 | 9 Nov 2026 | ECDSA 256 | ECDSA-SHA256 | 1a2258781be3bc150e2b980c2873f303 |
| 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. | present | 57355 | 8 | Verified |
| favcrm.io. | absent | 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 →
list_service_categories ~25
List service categories (groups for booking services like "Treatments", "Classes").
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.
list_service_packages ~87
List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| order | string | – | Sort order |
| search | string | – | Search package name |
| sort | string | – | Sort column: name, price, or createdAt |
| status | string | – | Filter by package 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.
list_service_schedules ~100
List schedule windows for booking services.
| Name | Type | Req | Description |
|---|---|---|---|
| dateFrom | string | – | YYYY-MM-DD |
| dateTo | string | – | YYYY-MM-DD |
| isOverride | boolean | – | Filter to override entries only |
| limit | number | – | Max results (default 20) |
| resourceId | string | – | Resource ID (room/equipment) |
| serviceId | string | – | Service ID |
| staffId | string | – | Staff member 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.
list_services ~54
List booking services with name, price, duration, and status.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| search | string | – | Search by name |
| status | string | – | Filter by 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.
list_shipping_methods ~18
List all shipping methods configured for the shop.
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.
list_staff ~29
List staff/team members in the business.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| 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.
list_subscriptions ~52
List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| status | string | – | Filter by subscription 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.
list_survey_invitations ~48
List survey invitation history without exposing token hashes or old invitation tokens.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max invitations (default 50) |
| 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.
list_survey_workflows ~29
List automation workflows attached to a survey.
| Name | Type | Req | Description |
|---|---|---|---|
| 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.
list_surveys ~53
List surveys with optional status/search filters.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max results (default 20) |
| search | string | – | Search survey title or description |
| status | string | – | Filter by survey 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.
list_tags ~27
List all available tags for the merchant.
| Name | Type | Req | Description |
|---|---|---|---|
| search | string | – | Search tags by 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.
list_tasks ~74
List tasks with optional status, assignee, and account filters.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Filter by related CRM account |
| assigneeId | string | – | Filter by assignee company_members.id |
| limit | number | – | Max results (default 20) |
| status | string | – | Filter by task 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.
list_templates ~61
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.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Max templates to return (default 20) |
| 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.
list_tickets ~82
List support tickets with optional filters.
| Name | Type | Req | Description |
|---|---|---|---|
| accountId | string | – | Filter by CRM account ID |
| category | string | – | Filter by category |
| limit | number | – | Max results (default 20) |
| priority | string | – | Filter by priority |
| search | string | – | Search by subject |
| status | string | – | Filter by 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.
list_tiers ~19
List all membership tiers with member counts and stats.
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.
mark_deal_lost ~46
Mark a CRM deal as lost. Requires a lost reason.
| Name | Type | Req | Description |
|---|---|---|---|
| dealId | string | yes | The deal ID |
| reason | string | yes | Why the deal was lost |
| 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.
mark_deal_won ~48
Mark a CRM deal as won and set close date.
| Name | Type | Req | Description |
|---|---|---|---|
| closingDate | string | – | Optional close date (YYYY-MM-DD) |
| 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.
mark_invoice_sent ~50
Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.
| Name | Type | Req | Description |
|---|---|---|---|
| invoiceId | string | yes | Invoice 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.
mark_no_show ~38
Mark a booking as no-show when the customer did not attend.
| Name | Type | Req | Description |
|---|---|---|---|
| bookingId | string | yes | The booking ID to mark as no-show |
| 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.
pause_subscription ~41
Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
| Name | Type | Req | Description |
|---|---|---|---|
| subscriptionId | string | yes | Subscription 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.
post_workroom_message ~132
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.
| Name | Type | Req | Description |
|---|---|---|---|
| agentId | string | yes | AI colleague ID that is a participant in the thread |
| content | string | yes | Message to show in Workroom. Markdown is allowed. |
| metadata | object | – | Optional generic metadata, e.g. {sourceRefs:[{type:"inbox_conversation",id:"..."}]} |
| threadId | string | yes | Workroom thread 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.
preview_customer_import ~72
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.
| Name | Type | Req | Description |
|---|---|---|---|
| filename | string | – | Original filename for audit |
| rows | array | yes | – |
| 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.
preview_segment_count ~44
Preview how many customers would match dynamic segment criteria before creating or updating a segment.
| Name | Type | Req | Description |
|---|---|---|---|
| criteria | – | – | Dynamic criteria to preview. Omit or null to count all active customers. |
| 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.
query_company_knowledge ~90
Search this company's reviewed knowledge base and return grounded snippets with source document IDs. Use for merchant policies, FAQs, pricing notes, brand guidance, and other uploaded references.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | integer | – | Maximum matching snippets (default 5) |
| maxSnippetChars | integer | – | Maximum characters per snippet (default 600) |
| query | string | yes | Question or keywords to search for in company knowledge |
| 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.
query_favcrm_platform ~92
Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.
| Name | Type | Req | Description |
|---|---|---|---|
| area | string | – | Restrict search area (default all) |
| limit | integer | – | Maximum results (default 8) |
| query | string | yes | Plain-language capability question, e.g. "create a booking" or "send a campaign safely" |
| 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.
record_invoice_payment ~114
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.
| Name | Type | Req | Description |
|---|---|---|---|
| amount | string | yes | Payment amount as decimal string, e.g. "100.00" |
| invoiceId | string | yes | Invoice ID to record payment against |
| method | string | yes | Payment method |
| note | string | – | Internal note about this payment |
| reference | string | – | External reference (cheque number, bank transfer 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.
register_organisation_request ~172
Step 1 of agentic signup. Sends a 6-digit verification code to the email. After the user reads the code, call register_organisation_verify with it to finish and receive an API key. Use this when a user wants to create a new FavCRM workspace from inside an MCP client.
| Name | Type | Req | Description |
|---|---|---|---|
| country | string | – | ISO 3166-1 alpha-2 country code (HK, US, GB, ...) |
| string | yes | Owner email — receives a 6-digit code (10 min TTL) | |
| industry | string | – | Vertical — drives default templates |
| organisationName | string | yes | Business / brand name (used as the first company name too) |
| timezone | string | – | IANA timezone (e.g. Asia/Hong_Kong); falls back to country default |
| 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.
register_organisation_verify ~86
Step 2 of agentic signup. Confirms the 6-digit code and creates the workspace. Returns an API key the agent should set as Authorization: Bearer <apiKey> for all subsequent FavCRM MCP calls in this session.
| Name | Type | Req | Description |
|---|---|---|---|
| code | string | yes | 6-digit code from the verification email |
| requestId | string | yes | From register_organisation_request |
| 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.
remove_post_block ~55
Remove the block at the given index (0-based). All subsequent blocks shift up by one.
| Name | Type | Req | Description |
|---|---|---|---|
| index | integer | yes | 0-based index of the block to remove |
| 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.
reorder_post_blocks ~66
Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.
| Name | Type | Req | Description |
|---|---|---|---|
| orderedBlockIds | array | yes | Block IDs in the desired order; must match the existing set exactly |
| 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.
reorder_post_type_fields ~61
Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.
| Name | Type | Req | Description |
|---|---|---|---|
| orderedFieldIds | array | yes | Field IDs in the desired order |
| 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.
replace_post_block ~71
Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.
| Name | Type | Req | Description |
|---|---|---|---|
| block | – | yes | Replacement block |
| index | integer | yes | 0-based index of the block to replace |
| 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.
report_agent_issue ~264
Report a FavCRM platform issue when an agent finds a missing MCP path, tool failure, confusing schema, CLI/docs issue, or SDK fallback. Include logs, AI analysis, references, and clarification questions so the platform team can follow up.
| Name | Type | Req | Description |
|---|---|---|---|
| actualBehavior | string | yes | What actually happened |
| aiAnalysis | string | yes | Agent analysis of likely root cause and impact |
| area | string | yes | Issue area |
| clarificationQuestions | array | – | Questions the platform team should ask the agent/user to resolve ambiguity |
| environment | object | – | Runtime context such as MCP URL, CLI version, token type, client, sandbox, model, OS |
| expectedBehavior | string | yes | What the agent or user expected to happen |
| logs | array | – | Relevant error messages, command output, or stack traces |
| references | array | – | Source links, file paths, docs, screenshots, or IDs that support the report |
| severity | string | yes | Impact level |
| stepsTried | array | yes | Concrete steps the agent tried before reporting |
| title | string | yes | Short issue title |
| toolCalls | array | – | Relevant MCP/CLI/SDK calls, arguments, and outcomes |
| workaround | string | – | Temporary workaround used, if any |
| 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.
request_send_approval ~161
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.
| Name | Type | Req | Description |
|---|---|---|---|
| actionType | string | yes | The customer-facing action to execute only after merchant approval |
| agentId | string | yes | AI colleague ID that is a participant in the thread |
| payload | object | yes | Exact tool payload to execute if the merchant approves. For send_test_campaign use { campaignId, to }, with an email address or international WhatsApp number matching the campaign channel. |
| summary | string | yes | Human-readable draft/recipient/campaign summary shown above the approval buttons |
| threadId | string | yes | Workroom thread ID where the approval button should appear |
| 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.
restore_campaign ~24
Restore a previously deleted campaign.
| 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.
restore_category ~26
Restore a previously deleted CMS post category.
| 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.
restore_invoice ~28
Restore a previously deleted DRAFT invoice.
| Name | Type | Req | Description |
|---|---|---|---|
| invoiceId | string | yes | Invoice ID to restore |
| 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.
restore_knowledge_document ~28
Restore a previously deleted 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.
restore_post ~26
Restore a previously deleted CMS 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.
restore_post_type ~29
Restore a previously deleted custom post type.
| 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.
restore_post_type_field ~43
Restore a previously deleted field on a post type schema.
| Name | Type | Req | Description |
|---|---|---|---|
| fieldId | string | yes | Field ID |
| 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.
restore_promotion ~25
Restore a previously deleted promotion.
| 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.
restore_service_package ~31
Restore a previously deleted service package by ID.
| Name | Type | Req | Description |
|---|---|---|---|
| packageId | string | yes | Service package ID to restore |
| 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.
resume_subscription ~26
Resume a paused subscription back to active.
| Name | Type | Req | Description |
|---|---|---|---|
| subscriptionId | string | yes | Subscription 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.
revert_audit_action ~63
Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
| Name | Type | Req | Description |
|---|---|---|---|
| auditLogId | string | yes | Audit log ID to revert |
| reason | string | – | Reason for reverting this action |
| 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.
scrape_knowledge_url ~88
Fetch a URL's content into the knowledge base. Server crawls the URL, stores the response body in R2, returns the new document ID. Failures store the row with status='failed'. Use for adding marketing pages, FAQ docs, or external references the agent should be aware of.
| Name | Type | Req | Description |
|---|---|---|---|
| url | string | yes | URL to fetch (must be https / http and publicly reachable) |
| 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.
search_audit_logs ~77
Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
| Name | Type | Req | Description |
|---|---|---|---|
| createdAfter | string | – | ISO timestamp lower bound |
| createdBefore | string | – | ISO timestamp upper bound |
| limit | integer | – | Maximum rows to return |
| query | string | yes | Text to search for |
| 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.
search_crm ~46
Search across CRM accounts and contacts by name, email, or phone.
| Name | Type | Req | Description |
|---|---|---|---|
| limit | number | – | Max per entity (default 10) |
| query | string | yes | Search string |
| 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.
search_members ~320
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.
| Name | Type | Req | Description |
|---|---|---|---|
| createdAfter | string | – | ISO date — accounts created after this date |
| createdBefore | string | – | ISO date — accounts created before this date |
| hasBooking | boolean | – | Filter to members with/without any booking |
| hasMembership | boolean | – | Filter to members with active membership |
| inactiveDays | number | – | Members with no activity in the last N days |
| lastActivityAfter | string | – | ISO date — members with activity after this date |
| lastActivityBefore | string | – | ISO date — members with no activity since this date |
| lastBookingAfter | string | – | ISO date — members who have a booking after this date |
| lastBookingBefore | string | – | ISO date — members whose last booking is before this date (or have no bookings) |
| lifeStage | string | – | Filter by life stage |
| limit | number | – | Max results (default 20) |
| membershipStatus | string | – | Filter by membership status |
| order | string | – | Sort order |
| search | string | – | Name, email, or phone to search |
| sort | string | – | Sort column: name, email, or createdAt |
| source | string | – | Filter by account source |
| tagIds | array | – | Filter by tag IDs |
| tierId | string | – | Filter by membership tier 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.
search_tools ~144
Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.
| Name | Type | Req | Description |
|---|---|---|---|
| includeInputSchema | boolean | – | Include full JSON input schemas for returned tools. Defaults to false to keep context small. |
| limit | integer | – | Maximum results (default 8, max 20) |
| query | string | – | Plain-language tool search, e.g. "delete a segment" or "set custom field values" |
| scope | string | – | Optional exact scope filter, e.g. contacts, customer_segments, invoices |
| write | boolean | – | Filter to write tools (true) or read-only tools (false) |
| 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.
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 230 tools: search_members, get_member_profile, preview_customer_import, commit_customer_import, create_account, and 225 more. Their descriptions and schemas cost roughly 19,599 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 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.