FavCRM
by favcrm.io · remote · no sign-in to list tools · v1.0.0 · published by io.favcrm
Agentic CRM for service businesses — bookings, customers, WhatsApp, loyalty, invoicing.
237 tools: 24 can delete or cancel things, 8 do something that can't be undone, 111 change things and 94 only read.
Scanned Oct 21, 2026
- Deletes or cancels24Claude Code: deny: see these tools
- Can't be undone8Claude Code: ask: see these tools
- Changes things111Claude Code: ask: see these tools
- Only reads94Claude Code: allow: see these tools
6 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.
claude mcp add --transport http favcrm https://api.favcrm.io/mcpFindings
Matches of fixed checks, with the text they matched.
The server marks "preview_customer_import" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_customer_import" says "preview": a word for reading.
The server marks "find_or_create_workroom_thread" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "find_or_create_workroom_thread" says "find": a word for reading.
The server marks "scrape_knowledge_url" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "fetch": a word for reading.
The input schema at properties.area.enum[0] names a tool "missing" that this server does not list.
What this check looks forMatched text
inputSchema.properties.area.enum[0]: "mcp_tool_missing"
The input schema at properties.area.enum[1] names a tool "error" that this server does not list.
What this check looks forMatched text
inputSchema.properties.area.enum[1]: "mcp_tool_error"
The server marks "backfill_conversation_summaries" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "find": a word for reading.
Tools
Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.
237 tools
Deletes or cancels 24Claude Code: deny
archive_surveyArchive a survey and remove it from active survey lists.No findings
Why it is in this group
- The name "archive_survey" says "archive": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Archive a survey and remove it from active survey lists.
Annotations the server declares
- title: Archive Survey
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: true
- openWorldHint: false
cancel_bookingCancel a booking and create a durable refund receipt.No findings
Why it is in this group
- The name "cancel_booking" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a booking and create a durable refund receipt. Uses the merchant refund setting unless refundMethod is provided.
Annotations the server declares
- title: Cancel Booking
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
cancel_subscriptionCancel a subscription.No findings
Why it is in this group
- The name "cancel_subscription" says "cancel": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Cancel a subscription. Destructive — turns off auto-renew and prevents further billing cycles. Existing paid periods stay valid until end.
Annotations the server declares
- title: Cancel Subscription
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_accountSoft-delete a CRM account/customer.No findings
Why it is in this group
- The name "delete_account" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Soft-delete a CRM account/customer. This releases the primary phone for future reuse while keeping account history for audit.
Annotations the server declares
- title: Delete Account
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_campaignDelete a campaign.No findings
Why it is in this group
- The name "delete_campaign" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a campaign. Only allowed in DRAFT status; sent campaigns are kept for audit history.
Annotations the server declares
- title: Delete Campaign
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_categoryDelete a CMS post category.No findings
Why it is in this group
- The name "delete_category" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a CMS post category. Posts in the category are not deleted; they are simply unlinked.
Annotations the server declares
- title: Delete Category
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_contactDelete a secondary contact.No findings
Why it is in this group
- The name "delete_contact" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a secondary contact. Primary contacts are protected; set another primary contact or delete the account instead.
Annotations the server declares
- title: Delete Contact
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_custom_fieldDelete a custom field definition and its stored values.No findings
Why it is in this group
- The name "delete_custom_field" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a custom field definition and its stored values.
Annotations the server declares
- title: Delete Custom Field
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_dealSoft-delete a CRM deal from the sales pipeline.No findings
Why it is in this group
- The name "delete_deal" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Soft-delete a CRM deal from the sales pipeline.
Annotations the server declares
- title: Delete Deal
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_invoiceDelete a DRAFT invoice.No findings
Why it is in this group
- The name "delete_invoice" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a DRAFT invoice. Only invoices that have never been sent can be deleted; otherwise use void_invoice.
Annotations the server declares
- title: Delete Invoice
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_knowledge_documentSoft-delete a knowledge document.No findings
Why it is in this group
- The name "delete_knowledge_document" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Soft-delete a knowledge document. The agent loses access immediately, but the document can be restored with restore_knowledge_document.
Annotations the server declares
- title: Delete Knowledge Document
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_postDelete a CMS post by ID.No findings
Why it is in this group
- The name "delete_post" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a CMS post by ID. Soft-deleted posts can be restored with restore_post.
Annotations the server declares
- title: Delete Post
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_post_typeDelete a custom post type.No findings
Why it is in this group
- The name "delete_post_type" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a custom post type. Built-in types cannot be deleted. Fails if any posts of this type still exist — delete those first.
Annotations the server declares
- title: Delete Post Type
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_post_type_fieldRemove a field from a post type schema.No findings
Why it is in this group
- The name "delete_post_type_field" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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).
Annotations the server declares
- title: Delete Post Type Field
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_promotionDelete a promotion.No findings
Why it is in this group
- The name "delete_promotion" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a promotion. Past usage records are preserved.
Annotations the server declares
- title: Delete Promotion
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_segmentDelete a customer segment.No findings
Why it is in this group
- The name "delete_segment" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a customer segment.
Annotations the server declares
- title: Delete Segment
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_service_packageDelete a service package by ID.No findings
Why it is in this group
- The name "delete_service_package" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a service package by ID.
Annotations the server declares
- title: Delete Service Package
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_tagDelete a CRM tag and remove it from all tagged entities.No findings
Why it is in this group
- The name "delete_tag" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Delete a CRM tag and remove it from all tagged entities.
Annotations the server declares
- title: Delete Tag
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
delete_taskSoft-delete a CRM task.No findings
Why it is in this group
- The name "delete_task" says "delete": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Soft-delete a CRM task.
Annotations the server declares
- title: Delete Task
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
detach_tagsDetach one tag from one or more member/account records.No findings
Why it is in this group
- The name "detach_tags" says "detach": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Detach one tag from one or more member/account records.
Annotations the server declares
- title: Detach Tags
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
execute_toolExecute an available FavCRM tool by name after discovering it with search_tools.No findings
Why it is in this group
- The name "execute_tool" says "execute": a word for a change.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Execute Tool
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: true
remove_post_blockRemove the block at the given index (0-based).No findings
Why it is in this group
- The name "remove_post_block" says "remove": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Remove the block at the given index (0-based). All subsequent blocks shift up by one.
Annotations the server declares
- title: Remove Post Block
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
revert_audit_actionRevert an audited action by restoring the captured before snapshot.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it Revert an audited action by restoring the captured before snapshot. Only works for allowlisted target tables with full before/after audit snapshots.
Annotations the server declares
- title: Revert Audit Action
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
void_invoiceVoid an invoice.No findings
Why it is in this group
- The name "void_invoice" says "void": a word for removing or ending something.
- The server marks it destructive (destructiveHint: true).
Description, as the server wrote it 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.
Annotations the server declares
- title: Void Invoice
- readOnlyHint: false
- destructiveHint: true
- idempotentHint: false
- openWorldHint: false
Can't be undone 8Claude Code: ask
accept_team_invite_requestStep 1 of agentic team invite acceptance.No findings
Why it is in this group
- The name "accept_team_invite_request" says "invite": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Accept Team Invite — Request Code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
accept_team_invite_verifyStep 2 of agentic team invite acceptance.No findings
Why it is in this group
- The name "accept_team_invite_verify" says "invite": a word for sending, and what is sent cannot be taken back.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it 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.
Annotations the server declares
- title: Accept Team Invite — Verify Code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_subscriptionCreate a manual, non-renewing subscription record for a member.No findings
Why it is in this group
- The name "create_subscription" says "create": a word for a change.
- The input carries an amount (input.amount) and a currency, so it moves money.
Description, as the server wrote it Create a manual, non-renewing subscription record for a member. Use a subscription action link for provider-backed recurring billing.
Annotations the server declares
- title: Create Subscription
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_team_member_inviteInvite a team member to this company and return a one-time MCP accept token.No findings
Why it is in this group
- The name "create_team_member_invite" says "create": a word for a change.
- The description's first verb is "invite": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Team Member Invite
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
post_workroom_messagePost an internal message from an AI colleague into a Workroom thread.No findings
Why it is in this group
- The name "post_workroom_message" says "post" and "message": it sends a message, which cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Post Workroom Message
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
record_invoice_paymentRecord a manual payment against an invoice (cash, bank transfer, cheque, card terminal).No findings
Why it is in this group
- The name "record_invoice_payment" says "payment": a word that usually means money moves, which cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Record Invoice Payment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
request_send_approvalCreate a merchant-owned Workroom approval request for a customer-facing send.No findings
Why it is in this group
- The name "request_send_approval" says "request": a word for a change.
- The name "request_send_approval" also says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it 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.
Annotations the server declares
- title: Request Send Approval
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
undo_campaign_sendUndo a campaign send during its one-minute safety buffer.No findings
Why it is in this group
- The name "undo_campaign_send" says "send": a word for sending, and what is sent cannot be taken back.
Description, as the server wrote it Undo a campaign send during its one-minute safety buffer. Use immediately when the merchant says to stop or undo a submitted campaign.
Annotations the server declares
- title: Undo Campaign Send
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
Changes things 111Claude Code: ask
add_knowledge_textAdd a free-form text document to the knowledge base.No findings
Why it is in this group
- The name "add_knowledge_text" says "add": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Add Knowledge Text
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
append_post_blockAppend one or more blocks to the end of a post.No findings
Why it is in this group
- The name "append_post_block" says "post": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Append Post Block
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
assign_staff_to_serviceAssign a staff member to a booking service.No findings
Why it is in this group
- The name "assign_staff_to_service" says "assign": a word for a change.
Description, as the server wrote it Assign a staff member to a booking service. Pass users.id from list_staff.userId.
Annotations the server declares
- title: Assign Staff To Service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
attach_post_cover_from_jobAttach a previously generated ai-media job's output as the post's featuredImage.No findings
Why it is in this group
- The name "attach_post_cover_from_job" says "attach": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Attach Post Cover From Job
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
attach_tagsAttach one or more tags to a member/account.No findings
Why it is in this group
- The name "attach_tags" says "attach": a word for a change.
Description, as the server wrote it Attach one or more tags to a member/account. Useful for segmenting members after filtering.
Annotations the server declares
- title: Attach Tags
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
backfill_conversation_summariesFind conversations with no usable cached AI summary (missing or malformed; legacy valid caches are never touched) and generate them, at most limit per call (default 10, max 10).1 finding
Why it is in this group
- The description's first verb is "find": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "backfill_conversation_summaries" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "find": a word for reading.
Description, as the server wrote it Find conversations with no usable cached AI summary (missing or malformed; legacy valid caches are never touched) and generate them, at most limit per call (default 10, max 10). Newest activity first; only conversations you may read are considered. Default dryRun=true lists candidates with no model call, billing or writes. Set dryRun=false to generate; it is billed to company credits and needs company AI summaries enabled. Stops on the first generation failure, missing AI gateway configuration (rejected before any request, not billed), disabled flag, unknown usage or lost access. Cursor rules: use executeCursor from a preview to execute from its frozen window and starting position; eligibility is rechecked. nextCursor only continues the mode that produced it. Scans at most 50 visible rows per call, so hasMore may be true with no candidates in this page.
Annotations the server declares
- title: Backfill Conversation Summaries
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
check_plan_operationPreflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
- The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
Description, as the server wrote it Preflight whether an intended operation is allowed by token scopes, enabled modules, subscription state, and quota. Provide toolName, quotaCode, or moduleCode.
Annotations the server declares
- title: Check Plan Operation
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
cloneDuplicate an existing record (product, tier, campaign, post, service package, promotion, gift offer).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Clone
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
commit_customer_importCommit a previewed customer import.No findings
Why it is in this group
- The name "commit_customer_import" says "commit": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Commit Customer Import
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
complete_bookingMark a booking as completed.No findings
Why it is in this group
- The description's first verb is "mark": a word for a change.
Description, as the server wrote it Mark a booking as completed. Triggers commission calculation if configured.
Annotations the server declares
- title: Complete Booking
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
confirm_bookingConfirm a pending booking.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Confirm a pending booking.
Annotations the server declares
- title: Confirm Booking
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
convert_leadConvert an account: qualify its open lead (creating one if needed) and link exactly one pipeline deal.No findings
Why it is in this group
- The name "convert_lead" says "convert": a word for a change.
Description, as the server wrote it Convert an account: qualify its open lead (creating one if needed) and link exactly one pipeline deal. Also promotes lifeStage lead -> active. Safe to repeat — a second call lands on the same lead and deal. Works on accounts that are already active.
Annotations the server declares
- title: Convert Lead
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
copy_service_tier_pricingCopy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.No findings
Why it is in this group
- The name "copy_service_tier_pricing" says "copy": a word for a change.
Description, as the server wrote it Copy the complete pricing and booking-policy configuration from one membership tier to another on the same booking service.
Annotations the server declares
- title: Copy Service Tier Pricing
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_accountCreate a CRM account/customer with a primary contact.No findings
Why it is in this group
- The name "create_account" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Account
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_bookingCreate a new booking for a member.No findings
Why it is in this group
- The name "create_booking" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Booking
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_campaignCreate an email, SMS, WhatsApp, or push campaign in DRAFT.No findings
Why it is in this group
- The name "create_campaign" says "create": a word for a change.
Description, as the server wrote it Create an email, SMS, WhatsApp, or push campaign in DRAFT. audienceExclusions can omit specific account IDs and recipients of previous campaign IDs. For email channelConfig, use subject + htmlBody + optional plainTextBody. recipientSource="list" is accepted as an alias for "individual".
Annotations the server declares
- title: Create Campaign
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_categoryCreate a CMS post category (e.g.No findings
Why it is in this group
- The name "create_category" says "create": a word for a change.
Description, as the server wrote it Create a CMS post category (e.g. "Equipment", "Injection — Botox"). For sub-categories, use namespaced names — the table is flat.
Annotations the server declares
- title: Create Category
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_contactCreate a contact on an existing CRM account.No findings
Why it is in this group
- The name "create_contact" says "create": a word for a change.
Description, as the server wrote it Create a contact on an existing CRM account.
Annotations the server declares
- title: Create Contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_crm_taskCreate a CRM follow-up task for you or, where your assignment policy allows, another active member.No findings
Why it is in this group
- The name "create_crm_task" says "create": a word for a change.
Description, as the server wrote it Create a CRM follow-up task for you or, where your assignment policy allows, another active member. Optionally link it to a CRM account or conversation you can see. dueAt must be an exact datetime with a timezone; resolve relative dates such as "tomorrow" with the user first.
Annotations the server declares
- title: Create Crm Task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_custom_fieldCreate a custom field definition for CRM entities.No findings
Why it is in this group
- The name "create_custom_field" says "create": a word for a change.
Description, as the server wrote it Create a custom field definition for CRM entities. Use options for select or multiselect fields.
Annotations the server declares
- title: Create Custom Field
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_dealCreate a CRM sales pipeline deal, optionally linked to a customer account and contact.No findings
Why it is in this group
- The name "create_deal" says "create": a word for a change.
Description, as the server wrote it Create a CRM sales pipeline deal, optionally linked to a customer account and contact.
Annotations the server declares
- title: Create Deal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_inbox_reply_suggestionCreate a draft reply suggestion that appears inline in the FavCRM Inbox composer.No findings
Why it is in this group
- The name "create_inbox_reply_suggestion" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Inbox Reply Suggestion
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_invoiceCreate a new invoice for a customer.No findings
Why it is in this group
- The name "create_invoice" says "create": a word for a change.
Description, as the server wrote it Create a new invoice for a customer. Optionally include line items inline. Returns the new invoiceId.
Annotations the server declares
- title: Create Invoice
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_noteAdd a note to a member/account, booking, ticket, or invoice.No findings
Why it is in this group
- The name "create_note" says "create": a word for a change.
Description, as the server wrote it Add a note to a member/account, booking, ticket, or invoice.
Annotations the server declares
- title: Create Note
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_offer_ruleCreate an upsell/cross-sell offer rule as draft.No findings
Why it is in this group
- The name "create_offer_rule" says "create": a word for a change.
Description, as the server wrote it Create an upsell/cross-sell offer rule as draft. Specify trigger type, conditions, and suggested products with optional discounts.
Annotations the server declares
- title: Create Offer Rule
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_outletCreate a shop outlet/location.No findings
Why it is in this group
- The name "create_outlet" says "create": a word for a change.
Description, as the server wrote it Create a shop outlet/location. Optionally pass id to preserve a legacy UUID during migration.
Annotations the server declares
- title: Create Outlet
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_plan_upgrade_linkCreate a Stripe Checkout link for a new paid subscription, or a Stripe Billing Portal link for an existing Stripe subscription.No findings
Why it is in this group
- The name "create_plan_upgrade_link" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Plan Upgrade Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
create_postCreate a new CMS post (blog_post, page, or any custom post type).No findings
Why it is in this group
- The name "create_post" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Post
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_post_typeDefine a new custom post type (e.g.No findings
Why it is in this group
- The name "create_post_type" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Post Type
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_post_type_fieldAdd a custom field to a post type schema.No findings
Why it is in this group
- The name "create_post_type_field" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Post Type Field
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_productCreate a new shop product as DRAFT.No findings
Why it is in this group
- The name "create_product" says "create": a word for a change.
Description, as the server wrote it Create a new shop product as DRAFT. Merchant can review and activate from the portal.
Annotations the server declares
- title: Create Product
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_product_categoryCreate a product category.No findings
Why it is in this group
- The name "create_product_category" says "create": a word for a change.
Description, as the server wrote it Create a product category. Use parentId to create subcategories under an existing category.
Annotations the server declares
- title: Create Product Category
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_promotionCreate a promotion / discount code.No findings
Why it is in this group
- The name "create_promotion" says "create": a word for a change.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Promotion
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_resourceCreate a bookable resource (room, equipment, vehicle).No findings
Why it is in this group
- The name "create_resource" says "create": a word for a change.
Description, as the server wrote it Create a bookable resource (room, equipment, vehicle). Used by services that have requiresResource=true.
Annotations the server declares
- title: Create Resource
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_segmentCreate a new customer segment.No findings
Why it is in this group
- The name "create_segment" says "create": a word for a change.
Description, as the server wrote it Create a new customer segment. Use STATIC for manual member lists, DYNAMIC for criteria-based auto-filtering.
Annotations the server declares
- title: Create Segment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_serviceCreate a bookable service.No findings
Why it is in this group
- The name "create_service" says "create": a word for a change.
Description, as the server wrote it Create a bookable service. Sets duration, price, capacity, and policies. Use list_service_categories first if you want to attach to an existing category.
Annotations the server declares
- title: Create Service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_service_categoryCreate a service category (e.g.No findings
Why it is in this group
- The name "create_service_category" says "create": a word for a change.
Description, as the server wrote it Create a service category (e.g. "Treatments", "Classes") to group bookable services.
Annotations the server declares
- title: Create Service Category
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_service_packageCreate a service package/prepaid session bundle.No findings
Why it is in this group
- The name "create_service_package" says "create": a word for a change.
Description, as the server wrote it Create a service package/prepaid session bundle. Use applicableType=SELECTED with applicableItems to limit the package to specific booking services or events.
Annotations the server declares
- title: Create Service Package
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_service_scheduleCreate a bookable schedule window for a service, including recurring weekly/daily availability.No findings
Why it is in this group
- The name "create_service_schedule" says "create": a word for a change.
Description, as the server wrote it Create a bookable schedule window for a service, including recurring weekly/daily availability.
Annotations the server declares
- title: Create Service Schedule
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_surveyCreate a survey with custom question blocks.No findings
Why it is in this group
- The name "create_survey" says "create": a word for a change.
Description, as the server wrote it Create a survey with custom question blocks. Publish it later or set status to published for immediate portal access.
Annotations the server declares
- title: Create Survey
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_survey_invitationCreate a token-auth survey invitation for a specific member/account or contact.No findings
Why it is in this group
- The name "create_survey_invitation" says "create": a word for a change.
Description, as the server wrote it Create a token-auth survey invitation for a specific member/account or contact.
Annotations the server declares
- title: Create Survey Invitation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_tagCreate a CRM tag for customer segmentation and organization.No findings
Why it is in this group
- The name "create_tag" says "create": a word for a change.
Description, as the server wrote it Create a CRM tag for customer segmentation and organization.
Annotations the server declares
- title: Create Tag
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_taskCreate a task.No findings
Why it is in this group
- The name "create_task" says "create": a word for a change.
Description, as the server wrote it Create a task. Optionally link to a CRM account or assign to a team member.
Annotations the server declares
- title: Create Task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_templateCreate and submit a WhatsApp message template to Meta for approval.No findings
Why it is in this group
- The name "create_template" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create Template
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_ticketCreate a support ticket for a member issue.No findings
Why it is in this group
- The name "create_ticket" says "create": a word for a change.
Description, as the server wrote it Create a support ticket for a member issue.
Annotations the server declares
- title: Create Ticket
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_variationAdd a variation (size, color, etc.) to an existing product.No findings
Why it is in this group
- The name "create_variation" says "create": a word for a change.
Description, as the server wrote it Add a variation (size, color, etc.) to an existing product.
Annotations the server declares
- title: Create Variation
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
create_whatsapp_connect_linkCreate a short-lived browser link for WhatsApp Business Embedded Signup.No findings
Why it is in this group
- The name "create_whatsapp_connect_link" says "create": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Create WhatsApp Connect Link
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
earn_loyalty_pointsCredit loyalty points or stamps to a member.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Earn Loyalty Points
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
enrol_membershipEnrol a member into a membership tier.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it 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.
Annotations the server declares
- title: Enrol Membership
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
find_or_create_workroom_threadFind or create a Workroom DM thread between a merchant user and an AI colleague.1 finding
Why it is in this group
- The name "find_or_create_workroom_thread" says "find": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "find_or_create_workroom_thread" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "find_or_create_workroom_thread" says "find": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Find Or Create Workroom Thread
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
generate_imageGenerate an AI image via kie.ai and return its public R2 URL.No findings
Why it is in this group
- The name "generate_image" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Generate Image
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
generate_post_coverGenerate an AI image and attach it as a post's featuredImage.No findings
Why it is in this group
- The name "generate_post_cover" says "generate": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Generate Post Cover
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
issue_rewardsIssue a gift/reward to multiple members.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Issue a gift/reward to multiple members. Requires a gift offer ID and member IDs.
Annotations the server declares
- title: Issue Rewards
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
link_resource_to_serviceLink a room/resource to a booking service.No findings
Why it is in this group
- The name "link_resource_to_service" says "link": a word for a change.
Description, as the server wrote it Link a room/resource to a booking service.
Annotations the server declares
- title: Link Resource To Service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mark_deal_lostMark a CRM deal as lost.No findings
Why it is in this group
- The name "mark_deal_lost" says "mark": a word for a change.
Description, as the server wrote it Mark a CRM deal as lost. Requires a lost reason.
Annotations the server declares
- title: Mark Deal Lost
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mark_deal_wonMark a CRM deal as won and set close date.No findings
Why it is in this group
- The name "mark_deal_won" says "mark": a word for a change.
Description, as the server wrote it Mark a CRM deal as won and set close date.
Annotations the server declares
- title: Mark Deal Won
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mark_invoice_sentMark an invoice as sent to the customer (transitions DRAFT → OPEN).No findings
Why it is in this group
- The name "mark_invoice_sent" says "mark": a word for a change.
Description, as the server wrote it Mark an invoice as sent to the customer (transitions DRAFT → OPEN). Use after delivering the invoice via email or share link. Idempotent.
Annotations the server declares
- title: Mark Invoice Sent
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
mark_no_showMark a booking as no-show when the customer did not attend.No findings
Why it is in this group
- The name "mark_no_show" says "mark": a word for a change.
Description, as the server wrote it Mark a booking as no-show when the customer did not attend.
Annotations the server declares
- title: Mark No Show
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
pause_subscriptionPause an active subscription (status → past_due, no further auto-renew).No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Pause an active subscription (status → past_due, no further auto-renew). Use resume_subscription to reactivate.
Annotations the server declares
- title: Pause Subscription
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
preview_customer_importPreview a bulk customer import (max 2000 rows).1 finding
Why it is in this group
- The name "preview_customer_import" says "preview": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "preview_customer_import" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The name "preview_customer_import" says "preview": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Preview Customer Import
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
refresh_conversation_summaryRegenerate the AI summary of one conversation on explicit user request.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Regenerate the AI summary of one conversation on explicit user request. Uses the model and is billed to company credits. Respects the cooldown and quiet-period rules, so it may return the current cache instead. Never sends a message or changes tags or tasks.
Annotations the server declares
- title: Refresh Conversation Summary
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
register_organisation_requestStep 1 of agentic signup.No findings
Why it is in this group
- The name "register_organisation_request" says "request": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Register Organisation — Request Code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: true
register_organisation_verifyStep 2 of agentic signup.No findings
Why it is in this group
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it 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.
Annotations the server declares
- title: Register Organisation — Verify Code
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
reorder_post_blocksReorder blocks by passing block IDs in the desired order.No findings
Why it is in this group
- The name "reorder_post_blocks" says "post": a word for a change.
Description, as the server wrote it Reorder blocks by passing block IDs in the desired order. The id list must contain every existing block id exactly once.
Annotations the server declares
- title: Reorder Post Blocks
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
reorder_post_type_fieldsReorder fields on a post type.No findings
Why it is in this group
- The name "reorder_post_type_fields" says "post": a word for a change.
Description, as the server wrote it Reorder fields on a post type. Pass field IDs in the desired display order; sortOrder is updated to match.
Annotations the server declares
- title: Reorder Post Type Fields
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
replace_post_blockReplace a single block at the given index (0-based).No findings
Why it is in this group
- The name "replace_post_block" says "replace": a word for a change.
Description, as the server wrote it Replace a single block at the given index (0-based). Avoids fetching the full post and re-sending all blocks via update_post.
Annotations the server declares
- title: Replace Post Block
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
report_agent_issueReport a FavCRM platform issue when an agent finds a missing MCP path, tool failure, confusing schema, CLI/docs issue, or SDK fallback.2 findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Findings
- Warn
The input schema at properties.area.enum[0] names a tool "missing" that this server does not list.
What this check looks forMatched text
inputSchema.properties.area.enum[0]: "mcp_tool_missing"
- Warn
The input schema at properties.area.enum[1] names a tool "error" that this server does not list.
What this check looks forMatched text
inputSchema.properties.area.enum[1]: "mcp_tool_error"
Description, as the server wrote it 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.
Annotations the server declares
- title: Report Agent Issue
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_campaignRestore a previously deleted campaign.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted campaign.
Annotations the server declares
- title: Restore Campaign
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_categoryRestore a previously deleted CMS post category.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted CMS post category.
Annotations the server declares
- title: Restore Category
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_invoiceRestore a previously deleted DRAFT invoice.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted DRAFT invoice.
Annotations the server declares
- title: Restore Invoice
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_knowledge_documentRestore a previously deleted knowledge document.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted knowledge document.
Annotations the server declares
- title: Restore Knowledge Document
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_postRestore a previously deleted CMS post.No findings
Why it is in this group
- The name "restore_post" says "post": a word for a change.
Description, as the server wrote it Restore a previously deleted CMS post.
Annotations the server declares
- title: Restore Post
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_post_typeRestore a previously deleted custom post type.No findings
Why it is in this group
- The name "restore_post_type" says "post": a word for a change.
Description, as the server wrote it Restore a previously deleted custom post type.
Annotations the server declares
- title: Restore Post Type
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_post_type_fieldRestore a previously deleted field on a post type schema.No findings
Why it is in this group
- The name "restore_post_type_field" says "post": a word for a change.
Description, as the server wrote it Restore a previously deleted field on a post type schema.
Annotations the server declares
- title: Restore Post Type Field
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_promotionRestore a previously deleted promotion.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted promotion.
Annotations the server declares
- title: Restore Promotion
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
restore_service_packageRestore a previously deleted service package by ID.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Restore a previously deleted service package by ID.
Annotations the server declares
- title: Restore Service Package
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
resume_subscriptionResume a paused subscription back to active.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Resume a paused subscription back to active.
Annotations the server declares
- title: Resume Subscription
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
scrape_knowledge_urlFetch a URL's content into the knowledge base.1 finding
Why it is in this group
- The description's first verb is "fetch": a word for reading.
- The server marks it as not read-only (readOnlyHint: false).
Findings
- Warn
The server marks "scrape_knowledge_url" as not read-only (readOnlyHint: false), and its words say it reads.
What this check looks forMatched text
annotations: {"readOnlyHint":false,"destructiveHint":false,"idempotentHint":false,"openWorldHint":false}; The description's first verb is "fetch": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Scrape Knowledge Url
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
set_custom_field_valuesSet or clear custom field values for a CRM entity.No findings
Why it is in this group
- The name "set_custom_field_values" says "set": a word for a change.
Description, as the server wrote it Set or clear custom field values for a CRM entity. Values are stored as strings; pass null to clear a value.
Annotations the server declares
- title: Set Custom Field Values
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_primary_contactSet a contact as the primary contact for its CRM account and demote other contacts on that account.No findings
Why it is in this group
- The name "set_primary_contact" says "set": a word for a change.
Description, as the server wrote it Set a contact as the primary contact for its CRM account and demote other contacts on that account.
Annotations the server declares
- title: Set Primary Contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_resource_availabilityAdd an availability window for a resource.No findings
Why it is in this group
- The name "set_resource_availability" says "set": a word for a change.
Description, as the server wrote it Add an availability window for a resource. Use day-of-week + recurring=true for weekly schedules, or a specific date for one-off blocks.
Annotations the server declares
- title: Set Resource Availability
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_segment_membersReplace the members of a STATIC customer segment with the given account IDs.No findings
Why it is in this group
- The name "set_segment_members" says "set": a word for a change.
Description, as the server wrote it Replace the members of a STATIC customer segment with the given account IDs. The segment is converted to STATIC.
Annotations the server declares
- title: Set Segment Members
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_service_tier_pricingSet the complete pricing and booking-policy configuration for one membership tier on a booking service.No findings
Why it is in this group
- The name "set_service_tier_pricing" says "set": a word for a change.
Description, as the server wrote it Set the complete pricing and booking-policy configuration for one membership tier on a booking service.
Annotations the server declares
- title: Set Service Tier Pricing
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
set_staff_availabilityAdd an availability window for a staff member (companyMembers.id).No findings
Why it is in this group
- The name "set_staff_availability" says "set": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Set Staff Availability
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
switch_companyIssue a new MCP access token scoped to another company/organisation.No findings
Why it is in this group
- Nothing in its name or description says what it does, so it is counted as a write.
Description, as the server wrote it Issue a new MCP access token scoped to another company/organisation. This does not mutate the current MCP connection: the client must use the returned token on later /mcp requests. Platform operators should prefer explicit-company admin tools when available.
Annotations the server declares
- title: Switch Company
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
update_accountUpdate CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.No findings
Why it is in this group
- The name "update_account" says "update": a word for a change.
Description, as the server wrote it Update CRM account/customer profile fields such as name, phone, email, life stage, owner, notes, or member code.
Annotations the server declares
- title: Update Account
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_booking_settingsUpdate global booking settings.No findings
Why it is in this group
- The name "update_booking_settings" says "update": a word for a change.
Description, as the server wrote it Update global booking settings. Pass only the fields you want to change.
Annotations the server declares
- title: Update Booking Settings
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_campaignUpdate an existing campaign, including audience exclusions.No findings
Why it is in this group
- The name "update_campaign" says "update": a word for a change.
Description, as the server wrote it Update an existing campaign, including audience exclusions. Channel cannot be changed after creation. Pass only fields to change.
Annotations the server declares
- title: Update Campaign
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_categoryUpdate a CMS post category.No findings
Why it is in this group
- The name "update_category" says "update": a word for a change.
Description, as the server wrote it Update a CMS post category.
Annotations the server declares
- title: Update Category
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_contactUpdate fields on an existing contact.No findings
Why it is in this group
- The name "update_contact" says "update": a word for a change.
Description, as the server wrote it Update fields on an existing contact.
Annotations the server declares
- title: Update Contact
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_crm_taskUpdate a CRM follow-up task you can work: title, description, dueAt (exact datetime, or null to clear), owner (users.id, or null to unassign), status (done sets completion) or prio…No findings
Why it is in this group
- The name "update_crm_task" says "update": a word for a change.
Description, as the server wrote it Update a CRM follow-up task you can work: title, description, dueAt (exact datetime, or null to clear), owner (users.id, or null to unassign), status (done sets completion) or priority. Changing the linked account or conversation is not supported; create a new task instead.
Annotations the server declares
- title: Update Crm Task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_custom_fieldUpdate a custom field definition label, type, options, required flag, or sort order.No findings
Why it is in this group
- The name "update_custom_field" says "update": a word for a change.
Description, as the server wrote it Update a custom field definition label, type, options, required flag, or sort order.
Annotations the server declares
- title: Update Custom Field
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_dealUpdate a CRM deal.No findings
Why it is in this group
- The name "update_deal" says "update": a word for a change.
Description, as the server wrote it Update a CRM deal. Pass only fields to change; use null for nullable links/fields to clear them.
Annotations the server declares
- title: Update Deal
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_deal_stageMove a deal to a different pipeline stage.No findings
Why it is in this group
- The name "update_deal_stage" says "update": a word for a change.
Description, as the server wrote it Move a deal to a different pipeline stage.
Annotations the server declares
- title: Update Deal Stage
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_order_statusUpdate the status of a shop order (e.g.No findings
Why it is in this group
- The name "update_order_status" says "update": a word for a change.
Description, as the server wrote it Update the status of a shop order (e.g. confirm, ship, cancel).
Annotations the server declares
- title: Update Order Status
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_outletUpdate an existing shop outlet/location by ID.No findings
Why it is in this group
- The name "update_outlet" says "update": a word for a change.
Description, as the server wrote it Update an existing shop outlet/location by ID.
Annotations the server declares
- title: Update Outlet
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_postUpdate an existing CMS post (any post type).No findings
Why it is in this group
- The name "update_post" says "update": a word for a change.
Description, as the server wrote it Update an existing CMS post (any post type). Only provided fields are changed.
Annotations the server declares
- title: Update Post
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_post_typeUpdate a custom post type.No findings
Why it is in this group
- The name "update_post_type" says "update": a word for a change.
Description, as the server wrote it Update a custom post type. Built-in types (blog_post, page) cannot be modified.
Annotations the server declares
- title: Update Post Type
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_post_type_fieldUpdate a field on a post type schema.No findings
Why it is in this group
- The name "update_post_type_field" says "update": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Update Post Type Field
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_productUpdate an existing product.No findings
Why it is in this group
- The name "update_product" says "update": a word for a change.
Description, as the server wrote it Update an existing product. Only provided fields are changed.
Annotations the server declares
- title: Update Product
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_promotionUpdate an existing promotion.No findings
Why it is in this group
- The name "update_promotion" says "update": a word for a change.
- The input takes a statement or command to run (input.code), which can change anything it can reach.
Description, as the server wrote it Update an existing promotion. Pass only the fields you want to change.
Annotations the server declares
- title: Update Promotion
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_segmentUpdate an existing customer segment by id.No findings
Why it is in this group
- The name "update_segment" says "update": a word for a change.
Description, as the server wrote it Update an existing customer segment by id. Pass only the fields to change; criteria replaces the existing rules.
Annotations the server declares
- title: Update Segment
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_serviceUpdate an existing booking service.No findings
Why it is in this group
- The name "update_service" says "update": a word for a change.
Description, as the server wrote it Update an existing booking service. Pass only the fields you want to change.
Annotations the server declares
- title: Update Service
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_service_packageUpdate an existing service package.No findings
Why it is in this group
- The name "update_service_package" says "update": a word for a change.
Description, as the server wrote it Update an existing service package. Pass only the fields you want to change.
Annotations the server declares
- title: Update Service Package
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_service_scheduleUpdate a service schedule window.No findings
Why it is in this group
- The name "update_service_schedule" says "update": a word for a change.
Description, as the server wrote it Update a service schedule window. Pass only fields to change.
Annotations the server declares
- title: Update Service Schedule
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_surveyUpdate a survey draft or publishing configuration.No findings
Why it is in this group
- The name "update_survey" says "update": a word for a change.
Description, as the server wrote it Update a survey draft or publishing configuration. Use questionBlocks to replace the ordered form block list.
Annotations the server declares
- title: Update Survey
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_tagRename or recolor an existing CRM tag.No findings
Why it is in this group
- The name "update_tag" says "update": a word for a change.
Description, as the server wrote it Rename or recolor an existing CRM tag.
Annotations the server declares
- title: Update Tag
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_taskUpdate a task (status, priority, assignee, due date, completion).No findings
Why it is in this group
- The name "update_task" says "update": a word for a change.
Description, as the server wrote it Update a task (status, priority, assignee, due date, completion).
Annotations the server declares
- title: Update Task
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
update_ticket_statusUpdate the status of an existing support ticket.No findings
Why it is in this group
- The name "update_ticket_status" says "update": a word for a change.
Description, as the server wrote it Update the status of an existing support ticket.
Annotations the server declares
- title: Update Ticket Status
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
upload_post_cover_from_urlDownload an external image URL into R2 and attach it as the post's featuredImage.No findings
Why it is in this group
- The name "upload_post_cover_from_url" says "upload": a word for a change.
Description, as the server wrote it 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.
Annotations the server declares
- title: Upload Post Cover From Url
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: false
- openWorldHint: false
upsert_survey_workflowCreate or update a survey automation workflow, usually triggered by survey_response_submitted.No findings
Why it is in this group
- The name "upsert_survey_workflow" says "upsert": a word for a change.
Description, as the server wrote it Create or update a survey automation workflow, usually triggered by survey_response_submitted.
Annotations the server declares
- title: Upsert Survey Workflow
- readOnlyHint: false
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
Only reads 94Claude Code: allow
get_attachment_textRead the text/Markdown content of a file attached to a Workroom thread or sent by a customer (PDF, image, or document).No findings
Why it is in this group
- The name "get_attachment_text" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Attachment Text
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_audit_logFetch a single audit log entry by ID, including before/after snapshots when available.No findings
Why it is in this group
- The name "get_audit_log" says "get": a word for reading.
Description, as the server wrote it Fetch a single audit log entry by ID, including before/after snapshots when available.
Annotations the server declares
- title: Get Audit Log
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_available_slotsFind available booking slots for a service on a specific date.No findings
Why it is in this group
- The name "get_available_slots" says "get": a word for reading.
Description, as the server wrote it Find available booking slots for a service on a specific date.
Annotations the server declares
- title: Get Available Slots
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_booking_detailGet full booking details including line items, status history, and participants.No findings
Why it is in this group
- The name "get_booking_detail" says "get": a word for reading.
Description, as the server wrote it Get full booking details including line items, status history, and participants.
Annotations the server declares
- title: Get Booking Detail
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_booking_settingsGet global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.No findings
Why it is in this group
- The name "get_booking_settings" says "get": a word for reading.
Description, as the server wrote it Get global booking settings for the customer booking flow, cancellation rules, visibility options, and confirmation requirements.
Annotations the server declares
- title: Get Booking Settings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_booking_statsGet booking counts: today, this week, this month, and breakdown by status.No findings
Why it is in this group
- The name "get_booking_stats" says "get": a word for reading.
Description, as the server wrote it Get booking counts: today, this week, this month, and breakdown by status.
Annotations the server declares
- title: Get Booking Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_campaignGet a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.No findings
Why it is in this group
- The name "get_campaign" says "get": a word for reading.
Description, as the server wrote it Get a campaign by ID, including its recipient source, audience exclusions, channel configuration, and delivery stats.
Annotations the server declares
- title: Get Campaign
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_contactFetch a single contact by ID.No findings
Why it is in this group
- The name "get_contact" says "get": a word for reading.
Description, as the server wrote it Fetch a single contact by ID.
Annotations the server declares
- title: Get Contact
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_conversation_messagesGet messages from a specific conversation thread.No findings
Why it is in this group
- The name "get_conversation_messages" says "get": a word for reading.
Description, as the server wrote it Get messages from a specific conversation thread. Shows the chat history between the merchant and a contact.
Annotations the server declares
- title: Get Conversation Messages
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_conversation_summaryRead the cached AI summary of a conversation with freshness information.No findings
Why it is in this group
- The name "get_conversation_summary" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Conversation Summary
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_crm_taskGet one CRM follow-up task you may see, with its UTC due instant and the company timezone.No findings
Why it is in this group
- The name "get_crm_task" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Crm Task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_custom_fieldGet a custom field definition by ID.No findings
Why it is in this group
- The name "get_custom_field" says "get": a word for reading.
Description, as the server wrote it Get a custom field definition by ID.
Annotations the server declares
- title: Get Custom Field
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_custom_field_valuesGet custom field values for a CRM entity such as an account, contact, deal, or booking.No findings
Why it is in this group
- The name "get_custom_field_values" says "get": a word for reading.
Description, as the server wrote it Get custom field values for a CRM entity such as an account, contact, deal, or booking.
Annotations the server declares
- title: Get Custom Field Values
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_customer_briefRead-only customer brief for one account: details, tags, linked conversations with cached summaries, and open CRM tasks.No findings
Why it is in this group
- The name "get_customer_brief" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Customer Brief
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_dashboard_statsGet high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.No findings
Why it is in this group
- The name "get_dashboard_stats" says "get": a word for reading.
Description, as the server wrote it Get high-level business KPIs: member count, new members this week, active subscriptions, total points issued, active promotions, rewards redeemed, messages sent.
Annotations the server declares
- title: Get Dashboard Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_dealGet detailed CRM deal information by ID.No findings
Why it is in this group
- The name "get_deal" says "get": a word for reading.
Description, as the server wrote it Get detailed CRM deal information by ID.
Annotations the server declares
- title: Get Deal
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_event_campaign_exclusionsResolve pending, confirmed, and paid event registrations into unique CRM account IDs for campaign exclusions.No findings
Why it is in this group
- The name "get_event_campaign_exclusions" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Event Campaign Exclusions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_invoiceFetch a single invoice with line items, payment history, and customer detail.No findings
Why it is in this group
- The name "get_invoice" says "get": a word for reading.
Description, as the server wrote it Fetch a single invoice with line items, payment history, and customer detail.
Annotations the server declares
- title: Get Invoice
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_invoice_statsOutstanding totals, overdue counts, and revenue this period.No findings
Why it is in this group
- The name "get_invoice_stats" says "get": a word for reading.
Description, as the server wrote it Outstanding totals, overdue counts, and revenue this period. Used by the weekly-snapshot playbook.
Annotations the server declares
- title: Get Invoice Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_knowledge_documentFetch a single knowledge document with metadata + extraction/review status.No findings
Why it is in this group
- The name "get_knowledge_document" says "get": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Get Knowledge Document
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_loyalty_balanceGet a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier.No findings
Why it is in this group
- The name "get_loyalty_balance" says "get": a word for reading.
Description, as the server wrote it Get a member's current loyalty balance — points, stamps, credits, lifetime totals, and active membership tier. Returns null if the member is not enrolled.
Annotations the server declares
- title: Get Loyalty Balance
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_member_profileGet detailed profile for a specific member/account by ID.No findings
Why it is in this group
- The name "get_member_profile" says "get": a word for reading.
Description, as the server wrote it Get detailed profile for a specific member/account by ID.
Annotations the server declares
- title: Get Member Profile
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_membership_tierGet a specific membership tier by ID.No findings
Why it is in this group
- The name "get_membership_tier" says "get": a word for reading.
Description, as the server wrote it Get a specific membership tier by ID.
Annotations the server declares
- title: Get Membership Tier
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
get_offer_ruleGet offer rule detail including associated products and discounts.No findings
Why it is in this group
- The name "get_offer_rule" says "get": a word for reading.
Description, as the server wrote it Get offer rule detail including associated products and discounts.
Annotations the server declares
- title: Get Offer Rule
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_orderGet full order detail including line items.No findings
Why it is in this group
- The name "get_order" says "get": a word for reading.
Description, as the server wrote it Get full order detail including line items.
Annotations the server declares
- title: Get Order
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_plan_statusShow the current organisation plan, subscription/payment state, enabled modules, and quota usage.No findings
Why it is in this group
- The name "get_plan_status" says "get": a word for reading.
Description, as the server wrote it Show the current organisation plan, subscription/payment state, enabled modules, and quota usage. Use before deciding whether an agentic operation is allowed.
Annotations the server declares
- title: Get Plan Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_postGet detailed CMS post including content blocks, categories, and tags.No findings
Why it is in this group
- The name "get_post" says "get": a word for reading.
Description, as the server wrote it Get detailed CMS post including content blocks, categories, and tags.
Annotations the server declares
- title: Get Post
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_productGet full product detail including images, options, and variations.No findings
Why it is in this group
- The name "get_product" says "get": a word for reading.
Description, as the server wrote it Get full product detail including images, options, and variations.
Annotations the server declares
- title: Get Product
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_promotionGet details of a specific promotion/coupon code.No findings
Why it is in this group
- The name "get_promotion" says "get": a word for reading.
Description, as the server wrote it Get details of a specific promotion/coupon code.
Annotations the server declares
- title: Get Promotion
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_segmentGet customer segment details including type, criteria, and live member count.No findings
Why it is in this group
- The name "get_segment" says "get": a word for reading.
Description, as the server wrote it Get customer segment details including type, criteria, and live member count.
Annotations the server declares
- title: Get Segment
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_segment_membersGet the members that belong to a specific segment.No findings
Why it is in this group
- The name "get_segment_members" says "get": a word for reading.
Description, as the server wrote it Get the members that belong to a specific segment.
Annotations the server declares
- title: Get Segment Members
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_service_detailGet full service details including addons, staff, resources, and tier pricing.No findings
Why it is in this group
- The name "get_service_detail" says "get": a word for reading.
Description, as the server wrote it Get full service details including addons, staff, resources, and tier pricing.
Annotations the server declares
- title: Get Service Detail
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_service_packageGet service package detail including applicability and selected booking service/event items.No findings
Why it is in this group
- The name "get_service_package" says "get": a word for reading.
Description, as the server wrote it Get service package detail including applicability and selected booking service/event items.
Annotations the server declares
- title: Get Service Package
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_service_tier_pricingRead every membership-tier pricing configuration for one booking service.No findings
Why it is in this group
- The name "get_service_tier_pricing" says "get": a word for reading.
Description, as the server wrote it Read every membership-tier pricing configuration for one booking service.
Annotations the server declares
- title: Get Service Tier Pricing
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_subscriptionFetch a single subscription with customer, tier, billing cycle, and renewal info.No findings
Why it is in this group
- The name "get_subscription" says "get": a word for reading.
Description, as the server wrote it Fetch a single subscription with customer, tier, billing cycle, and renewal info.
Annotations the server declares
- title: Get Subscription
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_surveyGet survey detail, including blocks, publishing status, visibility, settings, and response count.No findings
Why it is in this group
- The name "get_survey" says "get": a word for reading.
Description, as the server wrote it Get survey detail, including blocks, publishing status, visibility, settings, and response count.
Annotations the server declares
- title: Get Survey
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_survey_responsesList responses for a survey.No findings
Why it is in this group
- The name "get_survey_responses" says "get": a word for reading.
Description, as the server wrote it List responses for a survey.
Annotations the server declares
- title: Get Survey Responses
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_survey_statsGet response and invitation metrics for a survey overview dashboard.No findings
Why it is in this group
- The name "get_survey_stats" says "get": a word for reading.
Description, as the server wrote it Get response and invitation metrics for a survey overview dashboard.
Annotations the server declares
- title: Get Survey Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_taskGet detailed task information by ID.No findings
Why it is in this group
- The name "get_task" says "get": a word for reading.
Description, as the server wrote it Get detailed task information by ID.
Annotations the server declares
- title: Get Task
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_ticket_statsGet ticket counts grouped by status.No findings
Why it is in this group
- The name "get_ticket_stats" says "get": a word for reading.
Description, as the server wrote it Get ticket counts grouped by status.
Annotations the server declares
- title: Get Ticket Stats
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
get_whatsapp_connection_statusCheck whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.No findings
Why it is in this group
- The name "get_whatsapp_connection_status" says "get": a word for reading.
Description, as the server wrote it Check whether WhatsApp Business is connected for this company, including WABA/phone metadata and the latest agentic connect session state.
Annotations the server declares
- title: Get Whatsapp Connection Status
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: true
list_audit_logsList recent audit log entries for this company.No findings
Why it is in this group
- The name "list_audit_logs" says "list": a word for reading.
Description, as the server wrote it List recent audit log entries for this company. Filter by action, resource, resourceId, user, source, outcome, destructive flag, and created date range.
Annotations the server declares
- title: List Audit Logs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_bookingsList bookings with filters for date range, status, service, staff, or member.No findings
Why it is in this group
- The name "list_bookings" says "list": a word for reading.
Description, as the server wrote it List bookings with filters for date range, status, service, staff, or member.
Annotations the server declares
- title: List Bookings
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_campaignsList marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats.No findings
Why it is in this group
- The name "list_campaigns" says "list": a word for reading.
Description, as the server wrote it List marketing campaigns (email, SMS, WhatsApp, or push) with delivery stats. Use the returned IDs when excluding recipients of previous campaigns.
Annotations the server declares
- title: List Campaigns
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_categoriesList CMS post categories.No findings
Why it is in this group
- The name "list_categories" says "list": a word for reading.
Description, as the server wrote it List CMS post categories.
Annotations the server declares
- title: List Categories
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_contactsList contacts (people linked to CRM accounts), optionally filtered by account or search.No findings
Why it is in this group
- The name "list_contacts" says "list": a word for reading.
Description, as the server wrote it List contacts (people linked to CRM accounts), optionally filtered by account or search.
Annotations the server declares
- title: List Contacts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_conversationsList messaging conversations across WhatsApp, Messenger, Instagram, Threads, SMS, email, and other enabled channels.No findings
Why it is in this group
- The name "list_conversations" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Conversations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_crm_tasksList CRM follow-up tasks you may see (portal tasks, owned by users).No findings
Why it is in this group
- The name "list_crm_tasks" says "list": a word for reading.
Description, as the server wrote it List CRM follow-up tasks you may see (portal tasks, owned by users). Filter by status, owner ("mine" or ownerId), linked account, dueWindow overdue or today (company timezone), or exact dueAfter/dueBefore datetimes with a zone. Returns the true total and pages. Unassigned tasks cannot be filtered here.
Annotations the server declares
- title: List Crm Tasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_custom_fieldsList custom field definitions for CRM entities such as account, contact, deal, or booking.No findings
Why it is in this group
- The name "list_custom_fields" says "list": a word for reading.
Description, as the server wrote it List custom field definitions for CRM entities such as account, contact, deal, or booking.
Annotations the server declares
- title: List Custom Fields
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_dealsList CRM deals (sales pipeline) with optional filters.No findings
Why it is in this group
- The name "list_deals" says "list": a word for reading.
Description, as the server wrote it List CRM deals (sales pipeline) with optional filters.
Annotations the server declares
- title: List Deals
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_event_registrationsList registrations for an event in the active company, including CRM account IDs for campaign exclusions.No findings
Why it is in this group
- The name "list_event_registrations" says "list": a word for reading.
Description, as the server wrote it List registrations for an event in the active company, including CRM account IDs for campaign exclusions.
Annotations the server declares
- title: List Event Registrations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_image_modelsList AI image-generation models exposed to merchants (sanitized — provider/cost details hidden).No findings
Why it is in this group
- The name "list_image_models" says "list": a word for reading.
Description, as the server wrote it List AI image-generation models exposed to merchants (sanitized — provider/cost details hidden). Use to pick a `modelCode` for `generate_post_cover`.
Annotations the server declares
- title: List Image Models
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_invoicesList invoices with optional filters.No findings
Why it is in this group
- The name "list_invoices" says "list": a word for reading.
Description, as the server wrote it List invoices with optional filters. Use status "OVERDUE" to find unpaid invoices past due date.
Annotations the server declares
- title: List Invoices
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_knowledge_documentsList merchant knowledge base documents (uploads + scraped URLs).No findings
Why it is in this group
- The name "list_knowledge_documents" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Knowledge Documents
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_my_companiesList all companies/organisations the current user has access to.No findings
Why it is in this group
- The name "list_my_companies" says "list": a word for reading.
Description, as the server wrote it List all companies/organisations the current user has access to. Use this to see available orgs before switching.
Annotations the server declares
- title: List My Companies
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_notesList notes attached to a member/account, booking, or ticket.No findings
Why it is in this group
- The name "list_notes" says "list": a word for reading.
Description, as the server wrote it List notes attached to a member/account, booking, or ticket.
Annotations the server declares
- title: List Notes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_notification_logsList notification delivery logs for the current company.No findings
Why it is in this group
- The name "list_notification_logs" says "list": a word for reading.
Description, as the server wrote it List notification delivery logs for the current company. Recipients are masked by default for incident-response safety.
Annotations the server declares
- title: List Notification Logs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_offer_rulesList upsell/cross-sell offer rules with optional filters.No findings
Why it is in this group
- The name "list_offer_rules" says "list": a word for reading.
Description, as the server wrote it List upsell/cross-sell offer rules with optional filters.
Annotations the server declares
- title: List Offer Rules
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_ordersList shop orders with optional status and search filters.No findings
Why it is in this group
- The name "list_orders" says "list": a word for reading.
Description, as the server wrote it List shop orders with optional status and search filters.
Annotations the server declares
- title: List Orders
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_outletsList shop outlets/locations for the company.No findings
Why it is in this group
- The name "list_outlets" says "list": a word for reading.
Description, as the server wrote it List shop outlets/locations for the company.
Annotations the server declares
- title: List Outlets
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_plan_optionsList active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.No findings
Why it is in this group
- The name "list_plan_options" says "list": a word for reading.
Description, as the server wrote it List active FavCRM plans with prices, quotas, included modules, and whether each is the current plan.
Annotations the server declares
- title: List Plan Options
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_post_type_fieldsList the custom field schema for a post type.No findings
Why it is in this group
- The name "list_post_type_fields" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Post Type Fields
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_post_typesList all post types defined for this company (built-in: blog_post, page; plus any custom types).No findings
Why it is in this group
- The name "list_post_types" says "list": a word for reading.
Description, as the server wrote it List all post types defined for this company (built-in: blog_post, page; plus any custom types).
Annotations the server declares
- title: List Post Types
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_postsList CMS posts (blog posts and/or pages) with optional filters.No findings
Why it is in this group
- The name "list_posts" says "list": a word for reading.
Description, as the server wrote it List CMS posts (blog posts and/or pages) with optional filters.
Annotations the server declares
- title: List Posts
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_product_categoriesList all product categories for the shop.No findings
Why it is in this group
- The name "list_product_categories" says "list": a word for reading.
Description, as the server wrote it List all product categories for the shop.
Annotations the server declares
- title: List Product Categories
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_productsList shop products with optional filters by name, status, or category.No findings
Why it is in this group
- The name "list_products" says "list": a word for reading.
Description, as the server wrote it List shop products with optional filters by name, status, or category.
Annotations the server declares
- title: List Products
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_promotionsList promotion/coupon codes with optional status filter.No findings
Why it is in this group
- The name "list_promotions" says "list": a word for reading.
Description, as the server wrote it List promotion/coupon codes with optional status filter.
Annotations the server declares
- title: List Promotions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_resourcesList booking resources (rooms, equipment, etc.).No findings
Why it is in this group
- The name "list_resources" says "list": a word for reading.
Description, as the server wrote it List booking resources (rooms, equipment, etc.).
Annotations the server declares
- title: List Resources
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_reward_schemesList loyalty reward schemes (points/stamps programs) configured for this business.No findings
Why it is in this group
- The name "list_reward_schemes" says "list": a word for reading.
Description, as the server wrote it List loyalty reward schemes (points/stamps programs) configured for this business.
Annotations the server declares
- title: List Reward Schemes
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_segmentsList customer segments.No findings
Why it is in this group
- The name "list_segments" says "list": a word for reading.
Description, as the server wrote it List customer segments. Segments group members by criteria for targeted campaigns.
Annotations the server declares
- title: List Segments
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_service_categoriesList service categories (groups for booking services like "Treatments", "Classes").No findings
Why it is in this group
- The name "list_service_categories" says "list": a word for reading.
Description, as the server wrote it List service categories (groups for booking services like "Treatments", "Classes").
Annotations the server declares
- title: List Service Categories
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_service_packagesList service packages/prepaid session bundles with optional search, status, sorting, and pagination.No findings
Why it is in this group
- The name "list_service_packages" says "list": a word for reading.
Description, as the server wrote it List service packages/prepaid session bundles with optional search, status, sorting, and pagination.
Annotations the server declares
- title: List Service Packages
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_service_schedulesList schedule windows for booking services.No findings
Why it is in this group
- The name "list_service_schedules" says "list": a word for reading.
Description, as the server wrote it List schedule windows for booking services.
Annotations the server declares
- title: List Service Schedules
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_servicesList booking services with name, price, duration, and status.No findings
Why it is in this group
- The name "list_services" says "list": a word for reading.
Description, as the server wrote it List booking services with name, price, duration, and status.
Annotations the server declares
- title: List Services
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_shipping_methodsList all shipping methods configured for the shop.No findings
Why it is in this group
- The name "list_shipping_methods" says "list": a word for reading.
Description, as the server wrote it List all shipping methods configured for the shop.
Annotations the server declares
- title: List Shipping Methods
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_staffList staff/team members in the business.No findings
Why it is in this group
- The name "list_staff" says "list": a word for reading.
Description, as the server wrote it List staff/team members in the business.
Annotations the server declares
- title: List Staff
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_subscriptionsList member subscriptions.No findings
Why it is in this group
- The name "list_subscriptions" says "list": a word for reading.
Description, as the server wrote it List member subscriptions. Filter by status to find active, cancelled, or past-due subscriptions.
Annotations the server declares
- title: List Subscriptions
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_survey_invitationsList survey invitation history without exposing token hashes or old invitation tokens.No findings
Why it is in this group
- The name "list_survey_invitations" says "list": a word for reading.
Description, as the server wrote it List survey invitation history without exposing token hashes or old invitation tokens.
Annotations the server declares
- title: List Survey Invitations
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_survey_workflowsList automation workflows attached to a survey.No findings
Why it is in this group
- The name "list_survey_workflows" says "list": a word for reading.
Description, as the server wrote it List automation workflows attached to a survey.
Annotations the server declares
- title: List Survey Workflows
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_surveysList surveys with optional status/search filters.No findings
Why it is in this group
- The name "list_surveys" says "list": a word for reading.
Description, as the server wrote it List surveys with optional status/search filters.
Annotations the server declares
- title: List Surveys
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tagsList all available tags for the merchant.No findings
Why it is in this group
- The name "list_tags" says "list": a word for reading.
Description, as the server wrote it List all available tags for the merchant.
Annotations the server declares
- title: List Tags
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tasksList tasks with optional status, assignee, and account filters.No findings
Why it is in this group
- The name "list_tasks" says "list": a word for reading.
Description, as the server wrote it List tasks with optional status, assignee, and account filters.
Annotations the server declares
- title: List Tasks
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_templatesList the company's WhatsApp message templates with their Meta approval status (PENDING / APPROVED / REJECTED).No findings
Why it is in this group
- The name "list_templates" says "list": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: List Templates
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_ticketsList support tickets with optional filters.No findings
Why it is in this group
- The name "list_tickets" says "list": a word for reading.
Description, as the server wrote it List support tickets with optional filters.
Annotations the server declares
- title: List Tickets
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
list_tiersList all membership tiers with member counts and stats.No findings
Why it is in this group
- The name "list_tiers" says "list": a word for reading.
Description, as the server wrote it List all membership tiers with member counts and stats.
Annotations the server declares
- title: List Tiers
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
preview_segment_countPreview how many customers would match dynamic segment criteria before creating or updating a segment.No findings
Why it is in this group
- The name "preview_segment_count" says "preview": a word for reading.
Description, as the server wrote it Preview how many customers would match dynamic segment criteria before creating or updating a segment.
Annotations the server declares
- title: Preview Segment Count
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
query_company_knowledgeSearch this company's reviewed knowledge base and return grounded snippets with source document IDs.No findings
Why it is in this group
- The name "query_company_knowledge" says "query": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Query Company Knowledge
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
query_favcrm_platformSearch FavCRM MCP tools, enabled skills, and feature areas for how to use the platform.No findings
Why it is in this group
- The name "query_favcrm_platform" says "query": a word for reading.
Description, as the server wrote it Search FavCRM MCP tools, enabled skills, and feature areas for how to use the platform. Use before guessing tool names or JSON arguments.
Annotations the server declares
- title: Query Favcrm Platform
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_audit_logsSearch audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.No findings
Why it is in this group
- The name "search_audit_logs" says "search": a word for reading.
Description, as the server wrote it Search audit logs by free text across action, resource, resource ID, changes JSON, and metadata JSON.
Annotations the server declares
- title: Search Audit Logs
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_crmSearch across CRM accounts and contacts by name, email, or phone.No findings
Why it is in this group
- The name "search_crm" says "search": a word for reading.
Description, as the server wrote it Search across CRM accounts and contacts by name, email, or phone.
Annotations the server declares
- title: Search Crm
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_membersSearch and filter members/accounts.No findings
Why it is in this group
- The name "search_members" says "search": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Search Members
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
search_toolsSearch the available FavCRM tool catalog for relevant operations.No findings
Why it is in this group
- The name "search_tools" says "search": a word for reading.
Description, as the server wrote it Search the available FavCRM tool catalog for relevant operations. Use this when the curated direct tool list does not contain the operation you need.
Annotations the server declares
- title: Search Tools
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
validate_campaignValidate a campaign before sending.No findings
Why it is in this group
- The name "validate_campaign" says "validate": a word for reading.
Description, as the server wrote it Validate a campaign before sending. Resolves contactable recipient count and previews the final email subject/body without sending.
Annotations the server declares
- title: Validate Campaign
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
validate_promotionCheck if a promotion code is valid for a given order.No findings
Why it is in this group
- The name "validate_promotion" says "validate": a word for reading.
Description, as the server wrote it 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.
Annotations the server declares
- title: Validate Promotion
- readOnlyHint: true
- destructiveHint: false
- idempotentHint: true
- openWorldHint: false
This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.
Install
Pinned to version 1.0.0. Values in angle brackets are yours to fill in.
claude mcp add --transport http favcrm https://api.favcrm.io/mcpRun in a terminal.
Claude Code permissions
Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.
{
"permissions": {
"allow": [
"mcp__favcrm__search_members",
"mcp__favcrm__get_member_profile",
"mcp__favcrm__list_tags",
"mcp__favcrm__list_tiers",
"mcp__favcrm__get_membership_tier",
"mcp__favcrm__get_loyalty_balance",
"mcp__favcrm__get_dashboard_stats",
"mcp__favcrm__list_bookings",
"mcp__favcrm__get_booking_detail",
"mcp__favcrm__get_booking_stats",
"mcp__favcrm__get_available_slots",
"mcp__favcrm__list_services",
"mcp__favcrm__get_service_detail",
"mcp__favcrm__get_service_tier_pricing",
"mcp__favcrm__list_service_schedules",
"mcp__favcrm__list_service_categories",
"mcp__favcrm__get_booking_settings",
"mcp__favcrm__list_tickets",
"mcp__favcrm__get_ticket_stats",
"mcp__favcrm__list_surveys",
"mcp__favcrm__get_survey",
"mcp__favcrm__get_survey_stats",
"mcp__favcrm__get_survey_responses",
"mcp__favcrm__list_survey_invitations",
"mcp__favcrm__list_survey_workflows",
"mcp__favcrm__list_deals",
"mcp__favcrm__get_deal",
"mcp__favcrm__list_contacts",
"mcp__favcrm__get_contact",
"mcp__favcrm__list_custom_fields",
"mcp__favcrm__get_custom_field",
"mcp__favcrm__get_custom_field_values",
"mcp__favcrm__list_tasks",
"mcp__favcrm__get_task",
"mcp__favcrm__search_crm",
"mcp__favcrm__list_invoices",
"mcp__favcrm__get_invoice",
"mcp__favcrm__get_invoice_stats",
"mcp__favcrm__list_event_registrations",
"mcp__favcrm__get_event_campaign_exclusions",
"mcp__favcrm__list_subscriptions",
"mcp__favcrm__get_subscription",
"mcp__favcrm__list_campaigns",
"mcp__favcrm__get_campaign",
"mcp__favcrm__validate_campaign",
"mcp__favcrm__list_notification_logs",
"mcp__favcrm__list_conversations",
"mcp__favcrm__list_audit_logs",
"mcp__favcrm__search_audit_logs",
"mcp__favcrm__get_audit_log",
"mcp__favcrm__list_notes",
"mcp__favcrm__list_promotions",
"mcp__favcrm__get_promotion",
"mcp__favcrm__validate_promotion",
"mcp__favcrm__list_reward_schemes",
"mcp__favcrm__list_staff",
"mcp__favcrm__list_resources",
"mcp__favcrm__list_service_packages",
"mcp__favcrm__get_service_package",
"mcp__favcrm__get_plan_status",
"mcp__favcrm__list_plan_options",
"mcp__favcrm__get_whatsapp_connection_status",
"mcp__favcrm__list_my_companies",
"mcp__favcrm__list_posts",
"mcp__favcrm__get_post",
"mcp__favcrm__list_image_models",
"mcp__favcrm__list_categories",
"mcp__favcrm__list_post_types",
"mcp__favcrm__list_post_type_fields",
"mcp__favcrm__get_conversation_messages",
"mcp__favcrm__get_attachment_text",
"mcp__favcrm__list_segments",
"mcp__favcrm__get_segment",
"mcp__favcrm__get_segment_members",
"mcp__favcrm__preview_segment_count",
"mcp__favcrm__list_templates",
"mcp__favcrm__list_outlets",
"mcp__favcrm__list_products",
"mcp__favcrm__get_product",
"mcp__favcrm__list_product_categories",
"mcp__favcrm__list_orders",
"mcp__favcrm__get_order",
"mcp__favcrm__list_offer_rules",
"mcp__favcrm__get_offer_rule",
"mcp__favcrm__query_favcrm_platform",
"mcp__favcrm__search_tools",
"mcp__favcrm__query_company_knowledge",
"mcp__favcrm__list_knowledge_documents",
"mcp__favcrm__get_knowledge_document",
"mcp__favcrm__list_shipping_methods",
"mcp__favcrm__get_customer_brief",
"mcp__favcrm__get_conversation_summary",
"mcp__favcrm__list_crm_tasks",
"mcp__favcrm__get_crm_task"
],
"ask": [
"mcp__favcrm__preview_customer_import",
"mcp__favcrm__commit_customer_import",
"mcp__favcrm__create_account",
"mcp__favcrm__update_account",
"mcp__favcrm__create_tag",
"mcp__favcrm__update_tag",
"mcp__favcrm__attach_tags",
"mcp__favcrm__issue_rewards",
"mcp__favcrm__enrol_membership",
"mcp__favcrm__earn_loyalty_points",
"mcp__favcrm__set_service_tier_pricing",
"mcp__favcrm__copy_service_tier_pricing",
"mcp__favcrm__create_service",
"mcp__favcrm__update_service",
"mcp__favcrm__create_service_schedule",
"mcp__favcrm__update_service_schedule",
"mcp__favcrm__assign_staff_to_service",
"mcp__favcrm__link_resource_to_service",
"mcp__favcrm__create_service_category",
"mcp__favcrm__create_resource",
"mcp__favcrm__set_resource_availability",
"mcp__favcrm__set_staff_availability",
"mcp__favcrm__update_booking_settings",
"mcp__favcrm__create_ticket",
"mcp__favcrm__update_ticket_status",
"mcp__favcrm__create_survey",
"mcp__favcrm__update_survey",
"mcp__favcrm__create_survey_invitation",
"mcp__favcrm__upsert_survey_workflow",
"mcp__favcrm__create_deal",
"mcp__favcrm__update_deal",
"mcp__favcrm__update_deal_stage",
"mcp__favcrm__mark_deal_won",
"mcp__favcrm__mark_deal_lost",
"mcp__favcrm__convert_lead",
"mcp__favcrm__create_contact",
"mcp__favcrm__update_contact",
"mcp__favcrm__set_primary_contact",
"mcp__favcrm__create_custom_field",
"mcp__favcrm__update_custom_field",
"mcp__favcrm__set_custom_field_values",
"mcp__favcrm__create_task",
"mcp__favcrm__update_task",
"mcp__favcrm__create_invoice",
"mcp__favcrm__record_invoice_payment",
"mcp__favcrm__mark_invoice_sent",
"mcp__favcrm__restore_invoice",
"mcp__favcrm__create_subscription",
"mcp__favcrm__pause_subscription",
"mcp__favcrm__resume_subscription",
"mcp__favcrm__create_campaign",
"mcp__favcrm__update_campaign",
"mcp__favcrm__restore_campaign",
"mcp__favcrm__undo_campaign_send",
"mcp__favcrm__clone",
"mcp__favcrm__create_note",
"mcp__favcrm__confirm_booking",
"mcp__favcrm__complete_booking",
"mcp__favcrm__mark_no_show",
"mcp__favcrm__create_promotion",
"mcp__favcrm__update_promotion",
"mcp__favcrm__restore_promotion",
"mcp__favcrm__create_service_package",
"mcp__favcrm__update_service_package",
"mcp__favcrm__restore_service_package",
"mcp__favcrm__check_plan_operation",
"mcp__favcrm__create_plan_upgrade_link",
"mcp__favcrm__create_team_member_invite",
"mcp__favcrm__accept_team_invite_request",
"mcp__favcrm__accept_team_invite_verify",
"mcp__favcrm__create_whatsapp_connect_link",
"mcp__favcrm__switch_company",
"mcp__favcrm__create_post",
"mcp__favcrm__update_post",
"mcp__favcrm__restore_post",
"mcp__favcrm__generate_image",
"mcp__favcrm__generate_post_cover",
"mcp__favcrm__attach_post_cover_from_job",
"mcp__favcrm__upload_post_cover_from_url",
"mcp__favcrm__create_category",
"mcp__favcrm__update_category",
"mcp__favcrm__restore_category",
"mcp__favcrm__create_post_type",
"mcp__favcrm__create_post_type_field",
"mcp__favcrm__update_post_type",
"mcp__favcrm__restore_post_type",
"mcp__favcrm__update_post_type_field",
"mcp__favcrm__restore_post_type_field",
"mcp__favcrm__reorder_post_type_fields",
"mcp__favcrm__append_post_block",
"mcp__favcrm__replace_post_block",
"mcp__favcrm__reorder_post_blocks",
"mcp__favcrm__create_booking",
"mcp__favcrm__find_or_create_workroom_thread",
"mcp__favcrm__post_workroom_message",
"mcp__favcrm__create_inbox_reply_suggestion",
"mcp__favcrm__request_send_approval",
"mcp__favcrm__create_segment",
"mcp__favcrm__update_segment",
"mcp__favcrm__set_segment_members",
"mcp__favcrm__create_template",
"mcp__favcrm__create_outlet",
"mcp__favcrm__update_outlet",
"mcp__favcrm__create_product",
"mcp__favcrm__update_product",
"mcp__favcrm__create_product_category",
"mcp__favcrm__create_variation",
"mcp__favcrm__update_order_status",
"mcp__favcrm__create_offer_rule",
"mcp__favcrm__scrape_knowledge_url",
"mcp__favcrm__add_knowledge_text",
"mcp__favcrm__restore_knowledge_document",
"mcp__favcrm__report_agent_issue",
"mcp__favcrm__register_organisation_request",
"mcp__favcrm__register_organisation_verify",
"mcp__favcrm__refresh_conversation_summary",
"mcp__favcrm__create_crm_task",
"mcp__favcrm__update_crm_task",
"mcp__favcrm__backfill_conversation_summaries"
],
"deny": [
"mcp__favcrm__delete_account",
"mcp__favcrm__delete_tag",
"mcp__favcrm__detach_tags",
"mcp__favcrm__archive_survey",
"mcp__favcrm__delete_deal",
"mcp__favcrm__delete_contact",
"mcp__favcrm__delete_custom_field",
"mcp__favcrm__delete_task",
"mcp__favcrm__void_invoice",
"mcp__favcrm__delete_invoice",
"mcp__favcrm__cancel_subscription",
"mcp__favcrm__delete_campaign",
"mcp__favcrm__revert_audit_action",
"mcp__favcrm__cancel_booking",
"mcp__favcrm__delete_promotion",
"mcp__favcrm__delete_service_package",
"mcp__favcrm__delete_post",
"mcp__favcrm__delete_category",
"mcp__favcrm__delete_post_type",
"mcp__favcrm__delete_post_type_field",
"mcp__favcrm__remove_post_block",
"mcp__favcrm__delete_segment",
"mcp__favcrm__execute_tool",
"mcp__favcrm__delete_knowledge_document"
]
}
}Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as favcrm. Review it before you use it.