mcpbeat

FavCRM MCP Server

io.favcrm/favcrm
answering

FavCRM is answering right now. Last checked 2 min ago. It exposes 223 tools. Last commit 26 Jun 2026.

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

Uptime history 39 hours of history
39 hours agonow
100.0%
Uptime 24h
92 of 92 checks
223
Tools
read from the server
367 ms
Response time
average over 24h
0
Stars
last commit 26 Jun 2026

Connect this server

Endpoint below is the one we actually reach during checks — not the one copied from a README. Last verified 2 min ago.

run in your terminal
claude mcp add favcrm --transport http https://api.favcrm.io/mcp
~/Library/Application Support/Claude/claude_desktop_config.json
{
  "mcpServers": {
    "favcrm": {
      "url": "https://api.favcrm.io/mcp"
    }
  }
}
~/.codex/config.toml
[mcp_servers.favcrm]
url = "https://api.favcrm.io/mcp"
.cursor/mcp.json
{
  "mcpServers": {
    "favcrm": {
      "url": "https://api.favcrm.io/mcp"
    }
  }
}
.vscode/mcp.json
{
  "mcpServers": {
    "favcrm": {
      "url": "https://api.favcrm.io/mcp"
    }
  }
}

Available tools 223

Read directly from the server with tools/list, grouped by what they act on. If a tool disappears, we record the date.

post
create_post
Create a new CMS post (blog_post, page, or any custom post type). The post type must already exist — use list_post_types to discover, create_post_type to add a new one. excerpt = plain-text summary only (auto-derived from blocks if omitted). Structured custom fields go in meta, keyed by the field schema defined with create_post_type_field.
create_post_type
Define a new custom post type (e.g. "treatment", "service"). Required before creating posts of that type. After creating a post type, use create_post_type_field to define its structured field schema. Those fields are stored in meta on each post — do not use excerpt for structured data.
create_post_type_field
Add a custom field to a post type schema. The field key becomes the key in meta when creating/updating posts. Use fieldType="repeater" with fields=[...] for repeatable structured rows. Use this instead of storing structured data in excerpt.
delete_post
Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
delete_post_type
Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
delete_post_type_field
Remove a field from a post type schema. Blocked when posts of this type still have data in the field unless force=true is passed (orphans the data).
get_post
Get detailed CMS post including content blocks, categories, and tags.
list_post_type_fields
List the custom field schema for a post type. Use this before creating posts to know which keys to pass in meta and what types they expect.
list_post_types
List all post types defined for this company (built-in: blog_post, page; plus any custom types).
post_workroom_message
Post an internal message from an AI colleague into a Workroom thread. Use this to report findings, ask the owner for approval, or share source links after reading CRM/Inbox data. This does not send anything to customers.
remove_post_block
Remove the block at the given index (0-based). All subsequent blocks shift up by one.
update_post
Update an existing CMS post (any post type). Only provided fields are changed.
update_post_type
Update a custom post type. Built-in types (blog_post, page) cannot be modified.
update_post_type_field
Update a field on a post type schema. Changing fieldType or flipping required=true is blocked when posts already use the field unless force=true is passed.
service
create_service
Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.
create_service_category
Create a service category (e.g. "Treatments", "Classes") to group bookable services.
create_service_package
Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.
create_service_schedule
Create a bookable schedule window for a service, including recurring weekly/daily availability.
delete_service_package
Delete a service package by ID.
get_service_detail
Get full service details including addons, staff, resources, and tier pricing.
get_service_package
Get service package detail including applicability and selected booking service/event items.
list_service_categories
List service categories (groups for booking services like "Treatments", "Classes").
list_service_packages
List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
list_service_schedules
List schedule windows for booking services.
update_service
Update an existing booking service. Pass only the fields you want to change.
update_service_package
Update an existing service package. Pass only the fields you want to change.
update_service_schedule
Update a service schedule window. Pass only fields to change.
restore
restore_campaign
Restore a previously deleted campaign.
restore_category
Restore a previously deleted CMS post category.
restore_invoice
Restore a previously deleted DRAFT invoice.
restore_knowledge_document
Restore a previously deleted knowledge document.
restore_post
Restore a previously deleted CMS post.
restore_post_type
Restore a previously deleted custom post type.
restore_post_type_field
Restore a previously deleted field on a post type schema.
restore_promotion
Restore a previously deleted promotion.
restore_service_package
Restore a previously deleted service package by ID.
survey
create_survey
Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.
create_survey_invitation
Create a token-auth survey invitation for a specific member/account or contact.
get_survey
Get survey detail, including blocks, publishing status, visibility, settings, and response count.
get_survey_responses
List responses for a survey.
get_survey_stats
Get response and invitation metrics for a survey overview dashboard.
list_survey_invitations
List survey invitation history without exposing token hashes or old invitation tokens.
list_survey_workflows
List automation workflows attached to a survey.
update_survey
Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
custom
create_custom_field
Create a custom field definition for CRM entities. Use options for select or multiselect fields.
delete_custom_field
Delete a custom field definition and its stored values.
get_custom_field
Get a custom field definition by ID.
get_custom_field_values
Get custom field values for a CRM entity such as an account, contact, deal, or booking.
list_custom_fields
List custom field definitions for CRM entities such as account, contact, deal, or booking.
set_custom_field_values
Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.
update_custom_field
Update a custom field definition label, type, options, required flag, or sort order.
segment
create_segment
Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.
delete_segment
Delete a customer segment.
get_segment
Get customer segment details including type, criteria, and live member count.
get_segment_members
Get the members that belong to a specific segment.
set_segment_members
Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.
update_segment
Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
booking
create_booking
Create a new booking for a member. Use get_available_slots first to find valid times, then create the booking with the service, member, date, and time.
get_booking_detail
Get full booking details including line items, status history, and participants.
get_booking_settings
Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
get_booking_stats
Get booking counts: today, this week, this month, and breakdown by status.
update_booking_settings
Update global booking settings. Pass only the fields you want to change.
deal
create_deal
Create a CRM sales pipeline deal, optionally linked to a customer account and contact.
delete_deal
Soft-delete a CRM deal from the sales pipeline.
get_deal
Get detailed CRM deal information by ID.
update_deal
Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
update_deal_stage
Move a deal to a different pipeline stage.
product
create_product
Create a new shop product as DRAFT. Merchant can review and activate from the portal.
create_product_category
Create a product category. Use parentId to create subcategories under an existing category.
get_product
Get full product detail including images, options, and variations.
list_product_categories
List all product categories for the shop.
update_product
Update an existing product. Only provided fields are changed.
contact
create_contact
Create a contact on an existing CRM account.
delete_contact
Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
get_contact
Fetch a single contact by ID.
update_contact
Update fields on an existing contact.
invoice
create_invoice
Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.
delete_invoice
Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
get_invoice
Fetch a single invoice with line items, payment history, and customer detail.
get_invoice_stats
Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.
knowledge
add_knowledge_text
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.
delete_knowledge_document
Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.
get_knowledge_document
Fetch a single knowledge document with metadata + extraction/review status. Reviewed content is served via GET /v6/merchant/ai/knowledge/{id}/content; raw/extracted variants are for audit.
list_knowledge_documents
List merchant knowledge base documents (uploads + scraped URLs). Use reviewStatus/syncable to see what is ready for agent retrieval. Pass `updatedAfter` for delta sync. Reviewed content is fetched via GET /v6/merchant/ai/knowledge/{id}/content; source audit text is available with ?variant=extracted.
mark
mark_deal_lost
Mark a CRM deal as lost. Requires a lost reason.
mark_deal_won
Mark a CRM deal as won and set close date.
mark_invoice_sent
Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.
mark_no_show
Mark a booking as no-show when the customer did not attend.
plan
check_plan_operation
Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.
create_plan_upgrade_link
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.
get_plan_status
Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.
list_plan_options
List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.
promotion
create_promotion
Create a promotion / discount code. type=percentage or fixed_amount; value is the discount as a string ("10" = 10% or 10 currency units). Codes are uppercased server-side.
delete_promotion
Delete a promotion. Past usage records are preserved.
get_promotion
Get details of a specific promotion/coupon code.
update_promotion
Update an existing promotion. Pass only the fields you want to change.
task
create_task
Create a task. Optionally link to a CRM account or assign to a team member.
delete_task
Soft-delete a CRM task.
get_task
Get detailed task information by ID.
update_task
Update a task (status, priority, assignee, due date, completion).
account
create_account
Create a CRM account/customer with a primary contact. Optionally enroll the account as a member; use enrol_membership later when the account already exists.
delete_account
Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
update_account
Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
audit
get_audit_log
Fetch a single audit log entry by ID, including before/after snapshots when available.
list_audit_logs
List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.
search_audit_logs
Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
campaign
create_campaign
Create a marketing campaign (email, SMS, or WhatsApp) in DRAFT. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource="list" is accepted as an alias for "individual".
delete_campaign
Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
update_campaign
Update an existing campaign. Channel cannot be changed after creation. Pass only fields to change.
category
create_category
Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.
delete_category
Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
update_category
Update a CMS post category.
offer
create_offer_rule
Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.
get_offer_rule
Get offer rule detail including associated products and discounts.
list_offer_rules
List upsell/cross-sell offer rules with optional filters.
tag
create_tag
Create a CRM tag for customer segmentation and organization.
delete_tag
Delete a CRM tag and remove it from all tagged entities.
update_tag
Rename or recolor an existing CRM tag.
ticket
create_ticket
Create a support ticket for a member issue.
get_ticket_stats
Get ticket counts grouped by status.
update_ticket_status
Update the status of an existing support ticket.
accept
accept_team_invite_request
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.
accept_team_invite_verify
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.
attach
attach_post_cover_from_job
Attach a previously generated ai-media job's output as the post's featuredImage. Use when generate_post_cover timed out (job kept running) or when reusing the same generation across multiple posts. Verifies the job belongs to your company and succeeded. Does NOT charge credits — credits were charged at submit time.
attach_tags
Attach one or more tags to a member/account. Useful for segmenting members after filtering.
cancel
cancel_booking
Cancel a booking. Optionally provide a reason.
cancel_subscription
Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.
generate
generate_image
Generate an AI image via kie.ai and return its public R2 URL. Use to mint reusable URLs for content blocks (image, gallery), product photos, or any field that takes an image URL — does NOT attach to a post by itself. Costs credits (see list_image_models). On poll timeout the job continues running; pass `jobId` from the response to merchant ai-media APIs to retrieve it later.
generate_post_cover
Generate an AI image and attach it as a post's featuredImage. Submits a kie.ai job, polls until complete, copies the result into the canonical post-asset R2 folder, and writes the public URL onto the post. Costs credits (see list_image_models). On poll timeout, the job continues — call attach_post_cover_from_job(postId, jobId) once it finishes to attach without paying again.
order
get_order
Get full order detail including line items.
update_order_status
Update the status of a shop order (e.g. confirm, ship, cancel).
outlet
create_outlet
Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.
update_outlet
Update an existing shop outlet/location by ID.
preview
preview_customer_import
Preview a bulk customer import (max 2000 rows). Matches existing accounts by phone/email and shows create vs update actions plus points/stamps/credit deltas. Use commit_customer_import with the returned sessionId to apply.
preview_segment_count
Preview how many customers would match dynamic segment criteria before creating or updating a segment.
register
register_organisation_request
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.
register_organisation_verify
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.
reorder
reorder_post_blocks
Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.
reorder_post_type_fields
Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.
resource
create_resource
Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.
set_resource_availability
Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.
staff
list_staff
List staff/team members in the business.
set_staff_availability
Add an availability window for a staff member (companyMembers.id). Use day-of-week + recurring for weekly schedules, or a specific date for one-off changes.
subscription
create_subscription
Create a recurring subscription for a member. Bind to a membership tier or set a custom amount + cycle.
get_subscription
Fetch a single subscription with customer, tier, billing cycle, and renewal info.
validate
validate_campaign
Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
validate_promotion
Check if a promotion code is valid for a given order. Returns isValid, discount amount, and an error code/message if invalid. Use before applying to a checkout.
whatsapp
create_whatsapp_connect_link
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.
get_whatsapp_connection_status
Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.
append
append_post_block
Append one or more blocks to the end of a post. Each block must be a valid block object: { id, version, type, data }. Types: paragraph, heading, image, list, quote, code, divider, spacer, embed, html, youtube, file, faq, callout, gallery, cta, accordion, product.
archive
archive_survey
Archive a survey and remove it from active survey lists.
assign
assign_staff_to_service
Assign a staff member to a booking service. Pass users.id from list_staff.userId.
attachment
get_attachment_text
Read the text/Markdown content of a file attached to a Workroom thread or sent by a customer (PDF, image, or document). Extracts on first read and caches the result. Returns status "ready" with markdown, or "skipped"/"failed"/"not_found" with a reason. Use when a message references an attachment you need to read.
available
get_available_slots
Find available booking slots for a service on a specific date.
bookings
list_bookings
List bookings with filters for date range, status, service, staff, or member.
broadcast
create_broadcast
Create a DRAFT WhatsApp or SMS broadcast campaign. The broadcast is NOT sent — admin must review and send it from the Broadcasts page.
campaigns
list_campaigns
List marketing campaigns (email, SMS, WhatsApp) with delivery stats.
categories
list_categories
List CMS post categories.
clone
clone
Duplicate an existing record (product, tier, campaign, post, service package, promotion, gift offer). Creates a copy in DRAFT status with "(Copy)" appended to the name.
commit
commit_customer_import
Commit a previewed customer import. Pass the same rows and sessionId returned by preview_customer_import. Creates/updates accounts and applies points, stamps, and credit deltas.
companies
list_my_companies
List all companies/organisations the current user has access to. Use this to see available orgs before switching.
company
query_company_knowledge
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.
complete
complete_booking
Mark a booking as completed. Triggers commission calculation if configured.
confirm
confirm_booking
Confirm a pending booking.
contacts
list_contacts
List contacts (people linked to CRM accounts), optionally filtered by account or search.
conversation
get_conversation_messages
Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
conversations
list_conversations
List messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels. Threads items are public conversations. Shows unread counts and last message time.
convert
convert_lead
Convert a lead account to an active customer. Optionally create a linked pipeline deal (Salesforce/HubSpot-style convert).
crm
search_crm
Search across CRM accounts and contacts by name, email, or phone.
dashboard
get_dashboard_stats
Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
deals
list_deals
List CRM deals (sales pipeline) with optional filters.
detach
detach_tags
Detach one tag from one or more member/account records.
earn
earn_loyalty_points
Credit loyalty points or stamps to a member. Use field="points" for points, "stamps" for stamps. Server records a transaction with the reason as audit context.
enrol
enrol_membership
Enrol a member into a membership tier. Free tiers enrol immediately; paid tiers return PAYMENT_REQUIRED unless skipPriceCheck is set. Use list_tiers first to find the target tier.
execute
execute_tool
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.
favcrm
query_favcrm_platform
Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.
image
list_image_models
List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.
inbox
create_inbox_reply_suggestion
Create a draft reply suggestion that appears inline in the FavCRM Inbox composer. Use this for message.inbound events with replyPolicy="suggest"; it does not send anything to the customer.
invoices
list_invoices
List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.
issue
issue_rewards
Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.
link
link_resource_to_service
Link a room/resource to a booking service.
loyalty
get_loyalty_balance
Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.
member
get_member_profile
Get detailed profile for a specific member/account by ID.
members
search_members
Search and filter members/accounts. Supports text search, date ranges, booking/activity history, membership tier, tags, and more. Use lastBookingBefore/inactiveDays to find inactive members.
membership
get_membership_tier
Get a specific membership tier by ID.
note
create_note
Add a note to a member/account, booking, ticket, or invoice.
notes
list_notes
List notes attached to a member/account, booking, or ticket.
notification
list_notification_logs
List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.
orders
list_orders
List shop orders with optional status and search filters.
outlets
list_outlets
List shop outlets/locations for the company.
pause
pause_subscription
Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
posts
list_posts
List CMS posts (blog posts and/or pages) with optional filters.
primary
set_primary_contact
Set a contact as the primary contact for its CRM account and demote other contacts on that account.
products
list_products
List shop products with optional filters by name, status, or category.
promotions
list_promotions
List promotion/coupon codes with optional status filter.
record
record_invoice_payment
Record a manual payment against an invoice (cash, bank transfer, cheque, card terminal). Updates invoice status to PARTIAL or PAID based on the running total.
replace
replace_post_block
Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.
report
report_agent_issue
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.
request
request_send_approval
Create a merchant-owned Workroom approval request for a customer-facing send. The agent must not call send_message, send_whatsapp_message, send_test_campaign, or send_campaign directly.
resources
list_resources
List booking resources (rooms, equipment, etc.).
resume
resume_subscription
Resume a paused subscription back to active.
revert
revert_audit_action
Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
reward
list_reward_schemes
List loyalty reward schemes (points/stamps programs) configured for this business.
scrape
scrape_knowledge_url
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.
segments
list_segments
List customer segments. Segments group members by criteria for targeted campaigns.
services
list_services
List booking services with name, price, duration, and status.
shipping
list_shipping_methods
List all shipping methods configured for the shop.
subscriptions
list_subscriptions
List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
surveys
list_surveys
List surveys with optional status/search filters.
switch
switch_company
Switch the current session to a different company/organisation. Returns a new access token scoped to the target company. All subsequent tool calls will operate on the new company.
tags
list_tags
List all available tags for the merchant.
tasks
list_tasks
List tasks with optional status, assignee, and account filters.
team
create_team_member_invite
Invite a team member to this company and return a one-time MCP accept token. The invited user must verify an email code through accept_team_invite_request and accept_team_invite_verify before membership and API key issuance.
template
create_template
Create and submit a WhatsApp message template to Meta for approval. Text templates only (header text, body with {{1}} variables, footer) — add buttons in the app. The template is NOT usable until Meta approves it (check with list_templates). Submitting consumes the store’s Meta template allowance.
templates
list_templates
List the company's WhatsApp message templates with their Meta approval status (PENDING / APPROVED / REJECTED). Check this to see which templates are approved before referencing one in a campaign.
tickets
list_tickets
List support tickets with optional filters.
tiers
list_tiers
List all membership tiers with member counts and stats.
tools
search_tools
Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.
upload
upload_post_cover_from_url
Download an external image URL into R2 and attach it as the post's featuredImage. Replaces the manual flow of pasting external URLs (which break when the source goes down). Validates content-type starts with `image/` and rejects payloads larger than 20 MB. No AI credits charged — only standard storage.
upsert
upsert_survey_workflow
Create or update a survey automation workflow, usually triggered by survey_response_submitted.
variation
create_variation
Add a variation (size, color, etc.) to an existing product.
void
void_invoice
Void an invoice. Destructive — invoice can no longer be paid or edited; existing payments are preserved as history. Cannot void invoices that are already PAID or VOIDED.
workroom
find_or_create_workroom_thread
Find or create a Workroom DM thread between a merchant user and an AI colleague. Use this when an inbound event deserves owner attention but no threadId was provided. This only prepares an internal Workroom channel.

Endpoints

URLTransportStateLatencyChecked
https://api.favcrm.io/mcp streamable-http answering 202 ms 2 min ago

FavCRM — questions

Answers built from our own checks of this server.

What can FavCRM do?
It exposes 223 tools, read directly from the server on our last check. Among them: accept_team_invite_request, accept_team_invite_verify, add_knowledge_text, append_post_block, archive_survey, assign_staff_to_service and 217 more. The full list with descriptions is on this page — we take it from the server itself via tools/list, not from a README. How MCP servers expose tools in the first place →
What is FavCRM mostly used for?
Its tools cluster around post, service and restore. That is what this server is built to work with — the grouping comes from the actual tool names, not from a category we assigned.
Is FavCRM working right now?
We send a real MCP handshake every 15 minutes. Over the last 24 hours 92 of 92 checks got a reply (100.0%), average response time 367 ms. The bar chart above shows every period we have measured.
How do I connect FavCRM?
Copy the ready config from this page — we generate it for Claude Code, Claude Desktop, Codex, Cursor and VS Code, each with the file path that client actually reads. It is a remote server, so there is nothing to install — the client connects to the address.
Does FavCRM need an API key?
No. FavCRM completed a full MCP handshake with us as an anonymous client and listed its tools without asking for anything. All 223 of them are readable on this page. This is what we observed, not what the docs claim.
How fast is FavCRM?
It answers our handshake in 367 ms on average, which is faster than 38% of all working MCP servers we measure. The comparison comes from our own checks across the whole registry, every 15 minutes.
Is FavCRM open source?
Yes — it is published under the MIT licence and 0 stars on GitHub. The source link is on this page, so you can read exactly what it does with your data before you connect it.