Connect FavCRM and your agent gets 226 tools, among them accept_team_invite_request, accept_team_invite_verify, add_knowledge_text. It answers at https://api.favcrm.io/mcp over streamable HTTP, and it listed its tools to an anonymous client, so no sign-in was needed for that. Our probes reached it 10 of 10 times since 5 September 2026; the last check, on 18 October 2026, succeeded.
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
Description as the publisher wrote it.
| Tool | What it does |
|---|---|
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. Inputs: token |
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. Inputs: token, code, name |
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 ha Inputs: name, content |
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, c |
archive_survey | Archive a survey and remove it from active survey lists. Inputs: surveyId |
assign_staff_to_service | Assign a staff member to a booking service. Pass users.id from list_staff.userId. Inputs: serviceId, userId |
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 a Inputs: postId, jobId, assetIndex, pollIfRunning, pollTimeoutMs |
attach_tags | Attach one or more tags to a member/account. Useful for segmenting members after filtering. Inputs: accountIds, tagId |
cancel_booking | Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided. Inputs: bookingId, reason, refundMethod, idempotencyKey |
cancel_subscription | Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end. Inputs: subscriptionId |
check_plan_operation | Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode. Inputs: toolName, quotaCode, moduleCode, delta |
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. Inputs: entityType, entityId, name |
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. Inputs: sessionId, rows |
complete_booking | Mark a booking as completed. Triggers commission calculation if configured. Inputs: bookingId |
confirm_booking | Confirm a pending booking. Inputs: bookingId |
convert_lead | Convert an account: qualify its open lead (creating one if needed) and link exactly one pipeline deal. Also promotes lifeStage lead -> active. Safe to repeat — a second call lands on the same lead and deal. Works on accounts that are alread Inputs: accountId, createDeal, dealName, dealAmount, dealStage, dealClosingDate |
copy_service_tier_pricing | Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service. Inputs: serviceId, sourceTierId, targetTierId |
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. Inputs: name, firstName, lastName, email, phone, type |
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. Inputs: serviceId, accountId, bookingDate, startTime, endTime, staffId |
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. Inputs: name, channel, templateId, recipientFilter, scheduledAt |
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". Inputs: name, channel, status, recipientSource, segmentId, recipientIds |
create_category | Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat. Inputs: name, slug, description, sortOrder |
create_contact | Create a contact on an existing CRM account. Inputs: accountId, name, email, phone, jobTitle, isPrimary |
create_custom_field | Create a custom field definition for CRM entities. Use options for select or multiselect fields. Inputs: entityType, fieldName, fieldLabel, fieldType, options, isRequired |
create_deal | Create a CRM sales pipeline deal, optionally linked to a customer account and contact. Inputs: name, accountId, contactId, amount, closingDate, stage |
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. Inputs: conversationId, agentId, body, sourceMessageId, subject, metadata |
create_invoice | Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId. Inputs: accountId, currency, dueDate, notes, lineItems |
create_note | Add a note to a member/account, booking, ticket, or invoice. Inputs: entityType, entityId, body, isPinned |
create_offer_rule | Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts. Inputs: name, description, type, triggerType, triggerConfig, products |
create_outlet | Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration. Inputs: id, name, address, phone, latitude, longitude |
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. Inputs: planId, planCode, billingCycle, returnUrl, confirm |
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) |
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 Inputs: slug, label, labelPlural, icon, supportsCategories, supportsFeaturedImage |
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. Inputs: postTypeId, label, fieldType, key, required, helpText |
create_product | Create a new shop product as DRAFT. Merchant can review and activate from the portal. Inputs: name, description, price, discountPrice, memberPrice, sku |
create_product_category | Create a product category. Use parentId to create subcategories under an existing category. Inputs: name, description, parentId, onlineEnabled, sortOrder |
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. Inputs: name, code, value, type, description, maximumDiscount |
create_resource | Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true. Inputs: name, type, description, capacity, status |
create_segment | Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering. Inputs: name, description, segmentType, criteria |
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. Inputs: name, durationMinutes, price, currency, capacity, categoryId |
create_service_category, create_service_package, create_service_schedule, create_subscription, create_survey, create_survey_invitation, create_tag, create_task, create_team_member_invite, create_template, create_ticket, create_variation, create_whatsapp_connect_link, delete_account, delete_campaign, delete_category, delete_contact, delete_custom_field, delete_deal, delete_invoice, delete_knowledge_document, delete_post, delete_post_type, delete_post_type_field, delete_promotion, delete_segment, delete_service_package, delete_tag, delete_task, detach_tags, earn_loyalty_points, enrol_membership, execute_tool, find_or_create_workroom_thread, generate_image, generate_post_cover, get_attachment_text, get_audit_log, get_available_slots, get_booking_detail, get_booking_settings, get_booking_stats, get_contact, get_conversation_messages, get_custom_field, get_custom_field_values, get_dashboard_stats, get_deal, get_invoice, get_invoice_stats, get_knowledge_document, get_loyalty_balance, get_member_profile, get_membership_tier, get_offer_rule, get_order, get_plan_status, get_post, get_product, get_promotion, get_segment, get_segment_members, get_service_detail, get_service_package, get_service_tier_pricing, get_subscription, get_survey, get_survey_responses, get_survey_stats, get_task, get_ticket_stats, get_whatsapp_connection_status, issue_rewards, link_resource_to_service, list_audit_logs, list_bookings, list_campaigns, list_categories, list_contacts, list_conversations, list_custom_fields, list_deals, list_image_models, list_invoices, list_knowledge_documents, list_my_companies, list_notes, list_notification_logs, list_offer_rules, list_orders, list_outlets, list_plan_options, list_post_type_fields, list_post_types, list_posts, list_product_categories, list_products, list_promotions, list_resources, list_reward_schemes, list_segments, list_service_categories, list_service_packages, list_service_schedules, list_services, list_shipping_methods, list_staff, list_subscriptions, list_survey_invitations, list_survey_workflows, list_surveys, list_tags, list_tasks, list_templates, list_tickets, list_tiers, mark_deal_lost, mark_deal_won, mark_invoice_sent, mark_no_show, pause_subscription, post_workroom_message, preview_customer_import, preview_segment_count, query_company_knowledge, query_favcrm_platform, record_invoice_payment, register_organisation_request, register_organisation_verify, remove_post_block, reorder_post_blocks, reorder_post_type_fields, replace_post_block, report_agent_issue, request_send_approval, restore_campaign, restore_category, restore_invoice, restore_knowledge_document, restore_post, restore_post_type, restore_post_type_field, restore_promotion, restore_service_package, resume_subscription, revert_audit_action, scrape_knowledge_url, search_audit_logs, search_crm, search_members, search_tools, set_custom_field_values, set_primary_contact, set_resource_availability, set_segment_members, set_service_tier_pricing, set_staff_availability, switch_company, update_account, update_booking_settings, update_campaign, update_category, update_contact, update_custom_field, update_deal, update_deal_stage, update_order_status, update_outlet, update_post, update_post_type, update_post_type_field, update_product, update_promotion, update_segment, update_service, update_service_package, update_service_schedule, update_survey, update_tag, update_task, update_ticket_status, upload_post_cover_from_url, upsert_survey_workflow, validate_campaign, validate_promotion, void_invoice
Every block below points at https://api.favcrm.io/mcp. Pick your client and copy.
claude mcp add --transport http favcrm https://api.favcrm.io/mcp
{
"mcpServers": {
"favcrm": {
"command": "npx",
"args": ["-y", "mcp-remote", "https://api.favcrm.io/mcp"]
}
}
}{
"mcpServers": {
"favcrm": {
"url": "https://api.favcrm.io/mcp"
}
}
}{
"servers": {
"favcrm": {
"type": "http",
"url": "https://api.favcrm.io/mcp"
}
}
}{
"context_servers": {
"favcrm": {
"url": "https://api.favcrm.io/mcp"
}
}
}{
"mcpServers": {
"favcrm": {
"serverUrl": "https://api.favcrm.io/mcp"
}
}
}{
"mcpServers": {
"favcrm": {
"url": "https://api.favcrm.io/mcp"
}
}
}name: FavCRM
version: 0.0.1
schema: v1
mcpServers:
- name: FavCRM
type: streamable-http
url: https://api.favcrm.io/mcp{
"mcpServers": {
"favcrm": {
"httpUrl": "https://api.favcrm.io/mcp"
}
}
}{
"mcpServers": {
"favcrm": {
"type": "http",
"url": "https://api.favcrm.io/mcp"
}
}
}{
"mcpServers": {
"favcrm": {
"url": "https://api.favcrm.io/mcp"
}
}
}goose://extension?url=https%3A%2F%2Fapi.favcrm.io%2Fmcp&type=streamable_http&id=favcrm&name=FavCRM
It answered our last check on 18 October 2026 in 2311 ms. Over 10 checks since 5 September 2026 it answered 10. Status here comes from Neuronto's own probes, not from the publisher.
Yes. It is published by favcrm.io and served from api.favcrm.io, the vendor's own domain: https://api.favcrm.io/mcp.
226, as returned by the server's own tools/list on 31 August 2026: accept_team_invite_request, accept_team_invite_verify, add_knowledge_text, append_post_block, archive_survey, assign_staff_to_service, attach_post_cover_from_job, attach_tags, and 218 more.
It answered our last check on 18 October 2026 in 2311 ms. Over 10 checks since 5 September 2026 it answered 10.
Put the server under mcpServers in ~/.cursor/mcp.json with the URL https://api.favcrm.io/mcp. The exact JSON is above, with the same setup for Claude Code, Claude Desktop, VS Code, Windsurf, Zed, Gemini CLI and the rest.
It listed its tools to an anonymous client, so reading the tool list needs no key. Individual tools can still ask for credentials in their own inputs.
Publisher: io.favcrm. Endpoint host: api.favcrm.io. ARD identifier: urn:air:io.favcrm:mcp:favcrm.
First indexed 31 August 2026. The tools are exactly what the server returned; nothing on this page
is inferred from its name. Ranking in Neuronto search is never for sale.