{"name":"clara-mcp","title":"Clara","version":"0.1.0","serverUrl":"https://mcp.heyitsclara.com/mcp","icons":[{"src":"https://heyitsclara.com/apple-touch-icon.png","mimeType":"image/png","sizes":["180x180"]}],"iconUrl":"https://heyitsclara.com/apple-touch-icon.png","serverInfo":{"name":"clara-mcp","title":"Clara","version":"0.1.0","icons":[{"src":"https://heyitsclara.com/apple-touch-icon.png","mimeType":"image/png","sizes":["180x180"]}]},"description":"Connect an authenticated Clara account to AI assistants and agents. Read calls, messages, customers, and business settings, and manage approved receptionist workflows.","url":"https://mcp.heyitsclara.com/mcp","protocolVersion":"2025-06-18","transport":{"type":"streamable-http"},"capabilities":{"tools":true,"resources":true,"prompts":false},"authentication":{"type":"oauth2","required":true,"authorizationServerMetadata":"https://mcp.heyitsclara.com/.well-known/oauth-authorization-server","protectedResourceMetadata":"https://mcp.heyitsclara.com/.well-known/oauth-protected-resource"},"rateLimits":{"sessionInitialization":{"scope":"per authenticated Clara user","limit":20,"windowSeconds":60,"responseHeaders":["RateLimit-Policy","RateLimit","RateLimit-Limit","RateLimit-Remaining","RateLimit-Reset","Retry-After"]}},"tools":[{"name":"get_account","title":"Account","description":"The signed-in Clara account's profile (email, name) plus a summary of every business on it. Call this first when you don't yet know which business_id to use. For a service-token caller the account profile is unavailable (the token only carries business-scoped access) — expect `account: null` and a `note` explaining the gap.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_businesses","title":"Businesses","description":"Lightweight list of the businesses on this account (id + name only) — no network call. Use get_business for one business's full settings.","inputSchema":{"type":"object","properties":{},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_business","title":"Business profile","description":"Full settings for one business: display name, summary, website, agents (voice/first message), locations, phone numbers, caller IDs, and balance.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_inquiries","title":"Inbox","description":"The messages inbox — every customer inquiry (a thread grouping one or more conversations) for a business. This IS the inbox: use this for anything about messages, unread items, or open/closed threads.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"read":{"type":"boolean","description":"Filter to read (true) or unread (false) inquiries."},"status":{"type":"string","description":"Filter by inquiry status, e.g. \"open\" or \"closed\"."},"urgency":{"type":"string","description":"Filter by urgency level."},"irrelevant":{"type":"string","enum":["spam","error","silence","any"],"description":"Filter by irrelevance category. Omit for \"not irrelevant\" (the default inbox view)."},"archived":{"type":"boolean","description":"Include archived inquiries."},"limit":{"type":"integer","exclusiveMinimum":0},"offset":{"type":"integer","minimum":0}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_inquiry","title":"Conversation","description":"One inquiry (inbox thread) in full: its details plus every call and SMS/text conversation on it — full call transcripts (when available) AND the full text of any follow-up SMS thread Clara sent or received.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["inquiry_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_calls","title":"Call log","description":"Raw call log for a business (inbound and outbound calls), independent of inbox grouping.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"limit":{"type":"integer","exclusiveMinimum":0},"offset":{"type":"integer","minimum":0},"is_pending":{"type":"boolean","description":"Set true to filter to calls still being processed."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_call_statistics","title":"Call statistics","description":"Daily-bucketed completed-inbound-call counts for a business over a date range (defaults to the last 30 days).","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"from":{"type":"string","description":"ISO 8601 start date; defaults to 30 days ago."},"to":{"type":"string","description":"ISO 8601 end date; defaults to now."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_customers","title":"Customers","description":"Every customer on record for a business (name, contact info, business/returning-customer flags).","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"limit":{"type":"integer","exclusiveMinimum":0},"offset":{"type":"integer","minimum":0}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_customer","title":"Customer","description":"One customer in full: contact info and derived flags (important, irrelevant, returning, last called).","inputSchema":{"type":"object","properties":{"customer_id":{"type":"integer"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["customer_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"search","title":"Search","description":"Search across inbox inquiries, conversations, and customers within one business. Each result is exactly one of a customer, inquiry, or conversation match.","inputSchema":{"type":"object","properties":{"query":{"type":"string","minLength":1},"business_id":{"type":"integer","description":"Defaults to the account's first business."},"limit":{"type":"integer","exclusiveMinimum":0},"offset":{"type":"integer","minimum":0}},"required":["query"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_voices","title":"Voices","description":"List the receptionist voices you can choose from (use the slug with update_receptionist / preview_receptionist_voice).","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"preview_receptionist_voice","title":"Preview voice","description":"Synthesize a spoken preview of the receptionist's greeting in a chosen voice — a lightweight stand-in for a live test call, so you can HEAR a greeting/voice before saving it with update_receptionist. Defaults text to the current greeting and voice to the current agent's voice when not provided.","inputSchema":{"type":"object","properties":{"text":{"type":"string","description":"What to speak. Defaults to the current receptionist greeting. Max 500 characters."},"voice":{"type":"string","description":"A voice slug from the configured voice catalog. Defaults to the current agent's voice."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"get_recording","title":"Call recording","description":"Fetch a call's recording and deliver it as a playable link — audio can't play inside the chat, so the result is a clickable URL to open in a browser. Defaults to the first call recording on the given inquiry when conversation_id is omitted.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer","exclusiveMinimum":0},"conversation_id":{"type":"integer","exclusiveMinimum":0,"description":"Defaults to the inquiry’s most recent voice conversation."},"business_id":{"type":"integer","exclusiveMinimum":0,"description":"Defaults to the account's first business."}},"required":["inquiry_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"list_receptionist_rules","title":"Receptionist rules","description":"List every receptionist rule configured for a business: special instructions (behavioural rules), automated follow-up SMS templates, and call-transfer rules. Every item includes its id so it can be edited or removed.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_business","title":"Update business profile","description":"Update this business's public profile: name, business type, specialization, website, or primary address. Only the fields you pass are changed — everything else is preserved exactly as-is. This is a destructive full-profile write: before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"name":{"type":"string","description":"Business display name. An empty string is rejected (required field)."},"business_type":{"type":"string","description":"Primary business type/category. An empty string clears it."},"specialization":{"type":"string","description":"A short description of what the business does. An empty string clears it."},"website":{"type":"string","description":"Website URL — normalized to https://. An empty string clears it."},"address":{"type":"string","description":"Primary location address. An empty string is rejected (required field)."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_receptionist","title":"Update receptionist","description":"Update this business's Clara receptionist agent: the greeting, the voice, and/or the key questions it asks callers. Only the fields you pass are changed. This is a destructive full-agent write: before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"business_id":{"type":"integer","description":"Defaults to the account's first business."},"greeting":{"type":"string","description":"The agent's opening line on a call. Cannot be empty."},"voice":{"type":"string","description":"A voice slug from the configured voice catalog. Unknown slugs are rejected."},"key_questions":{"type":"array","items":{"type":"string"},"description":"\"Name\" and \"Reason for calling\" are always kept even if omitted. Short labels, not full sentences. More than 4 triggers a soft warning in the response."}},"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_customer","title":"Update customer","description":"Update one customer record: their display name, the VIP (\"important\") flag, whether they're a business vs an individual, whether they're excluded (marked as spam so Clara ignores them), and/or append a note. Only the fields you pass are changed — contact info and existing notes history are always preserved, never wiped. This is a destructive customer-record write: before calling, summarize the EXACT change you are about to make (e.g. \"mark Jane Doe as VIP\", \"mark as a business\", \"add a note: <title> — <instructions>\") and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"customer_id":{"type":"integer"},"name":{"type":"string","description":"Display name. An explicit empty string clears it."},"vip":{"type":"boolean","description":"Set the VIP (\"important\") flag."},"is_business":{"type":"boolean","description":"Mark the customer as a business (true) or an individual (false)."},"excluded":{"type":"boolean","description":"Exclude the customer — mark as spam so Clara ignores them (true), or clear that (false)."},"note_title":{"type":"string","description":"Title for a new note to append. Must be provided together with note_instructions."},"note_instructions":{"type":"string","description":"Instructions/body for a new note to append. Must be provided together with note_title."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["customer_id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"mark_inquiry_read","title":"Mark inquiry read/unread","description":"Mark one inbox inquiry as read or unread.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer"},"read":{"type":"boolean"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["inquiry_id","read"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"set_inquiry_status","title":"Set inquiry status","description":"Set one inbox inquiry's status to open or closed. \"Resolve\"/\"resolved\" are accepted and mapped to \"closed\" — there is no separate \"resolved\" state on the backend.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer"},"status":{"type":"string","description":"\"open\", \"closed\", \"resolve\", or \"resolved\". Anything else is rejected."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["inquiry_id","status"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add_special_instruction","title":"Add special instruction","description":"Add a new special instruction — free-text behavioural guidance for the receptionist agent (e.g. \"never quote prices over the phone\"). The title is derived automatically; do not pass one. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"text":{"type":"string"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_special_instruction","title":"Update special instruction","description":"Update the text of one existing special instruction. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"text":{"type":"string"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"remove_special_instruction","title":"Remove special instruction","description":"Delete one special instruction (and its introduced notes) permanently. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add_followup_text","title":"Add follow-up text","description":"Add a new automated follow-up SMS template Clara sends after a call. Channel is always SMS. The title is derived automatically; do not pass one. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"text":{"type":"string"},"url":{"type":"string","description":"Optional link included in the follow-up text."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_followup_text","title":"Update follow-up text","description":"Update the text and/or link of one existing automated follow-up SMS template. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"text":{"type":"string"},"url":{"type":"string"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"remove_followup_text","title":"Remove follow-up text","description":"Delete one automated follow-up SMS template (and its introduced notes) permanently. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"test_followup_text","title":"Send test follow-up text","description":"Simulate a follow-up SMS template and ACTUALLY SEND a real test text to a verified caller ID on this account. This is a destructive, real-world side effect (it sends a live SMS) — before calling, summarize exactly what will be sent and to which number, and get the user's confirmation first. Returns the simulated message text.","inputSchema":{"type":"object","properties":{"text":{"type":"string"},"url":{"type":"string"},"phone":{"type":"string","description":"Must be a verified caller ID (E.164) already on this account — an arbitrary number is rejected."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["text","phone"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"add_transfer_rule","title":"Add transfer rule","description":"Add a new call-transfer rule describing when/where Clara should transfer a caller. The title is derived automatically; do not pass one. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"text":{"type":"string"},"transfer_targets":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"}},"additionalProperties":true},"description":"Transfer targets for this rule (currently the only documented target type is \"business\")."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"update_transfer_rule","title":"Update transfer rule","description":"Update the text and/or transfer targets of one existing transfer rule. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"text":{"type":"string"},"transfer_targets":{"type":"array","items":{"type":"object","properties":{"type":{"type":"string"}},"additionalProperties":true},"description":"Transfer targets for this rule (currently the only documented target type is \"business\")."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id","text"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"remove_transfer_rule","title":"Remove transfer rule","description":"Delete one transfer rule permanently. Before calling, summarize the EXACT change you are about to make and get the user's confirmation first.","inputSchema":{"type":"object","properties":{"id":{"type":"integer"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["id"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"reply_to_customer","title":"Reply to customer","description":"Reply to a customer on an inquiry (inbox thread) by text message. If customer_id isn't given, defaults to the inquiry's first customer. If phone isn't given, defaults to that customer's first phone-type contact info. The recipient phone number MUST be one already on file for the resolved customer — an arbitrary phone number is rejected. This SENDS A REAL TEXT MESSAGE to a customer's phone — before calling, show the user the EXACT message body and the recipient (name and/or phone number), and get their explicit confirmation first.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer","exclusiveMinimum":0},"body":{"type":"string","description":"The exact text message to send."},"customer_id":{"type":"integer","description":"Defaults to the inquiry's first customer."},"phone":{"type":"string","description":"Defaults to that customer's first phone-type contact info."},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["inquiry_id","body"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}},{"name":"mark_sms_read","title":"Mark text read/unread","description":"Mark one text message (on an inquiry's SMS conversation) as read or unread.","inputSchema":{"type":"object","properties":{"inquiry_id":{"type":"integer","exclusiveMinimum":0},"conversation_id":{"type":"integer"},"message_id":{"type":"integer"},"read":{"type":"boolean"},"business_id":{"type":"integer","description":"Defaults to the account's first business."}},"required":["inquiry_id","conversation_id","message_id","read"],"additionalProperties":false,"$schema":"http://json-schema.org/draft-07/schema#"}}]}