MCP server
Remote MCP server with OAuth sign-in, tool annotations, toolsets and a read-only mode.
Resolido runs a remote Model Context Protocol server. Tools are generated from the same operation registry as the REST API, so both always offer the same capabilities, permissions and safeguards.
| Setting | Value |
|---|---|
| URL | https://mcp.resolido.com/mcp |
| Transport | Streamable HTTP (stateless, JSON responses) |
| Auth | OAuth 2.1 with PKCE and dynamic client registration, or Authorization: Bearer <API key> |
| Discovery | https://mcp.resolido.com/.well-known/oauth-protected-resource |
To connect a specific client, see Connect an AI assistant.
How tools behave
- Acting as you. Every tool runs as the signed-in user inside one organization. Effective permissions are your role in the organization intersected with the granted scopes; tools you are not allowed to use are not listed at all.
- Start with
whoami. It returns the user, organization, role and scopes, so the agent knows what it can do. - Annotations. Read tools have
readOnlyHint, destructive toolsdestructiveHint, and tools that message customersopenWorldHint, so clients can ask before running them. - Destructive tools confirm in two steps. The first call returns a summary and a
confirmationToken; the agent must show the summary and repeat the call with the token only after you agree. See Confirmations. - Errors are returned as tool errors with a
codeand ahintthe agent can act on. See Errors.
Toolsets and read-only mode
By default the server exposes every tool your token allows. Narrow it down with query parameters to keep the agent's context small:
https://mcp.resolido.com/mcp?toolsets=inbox
https://mcp.resolido.com/mcp?toolsets=inbox,agents&readonly=1| Toolset | Contains |
|---|---|
core | whoami – always included |
inbox | Conversations, replies, notes, tags, contacts |
agents | AI agents, prompts, knowledge, skills, chat widget, testing |
channels | Email mailboxes and sending domains, WhatsApp |
admin | Organization, members, inboxes, quick replies, insights, statistics |
readonly=1 hides every tool that changes data.
Tools
core (1)
| Tool | What it does | Risk |
|---|---|---|
whoami | Who am I: user, organization, role and token scopes. | Read |
inbox (36)
| Tool | What it does | Risk |
|---|---|---|
conversations_list | List conversations across chat widget, WhatsApp, Instagram and email (unified inbox). | Read |
conversations_search | Full-text search across chat and email conversations. | Read |
conversations_counts | How many conversations are in each inbox view. | Read |
conversation_get | One conversation with contact, state, AI summary and escalation reason. | Read |
conversation_messages | Messages (or emails) of a conversation, oldest first; returns the latest `limit` items. | Read |
conversation_notes | Internal notes and system events of a conversation (never visible to the customer). | Read |
conversation_reply | Send a reply to the customer (chat widget, WhatsApp or email), optionally then hand the conversation to AI or resolve it. | Customer-facing |
email_compose | Start a new email conversation with a customer and send the first email. | Customer-facing |
conversation_handoff_to_ai | Hand the conversation to the AI agent, optionally with a private instruction it must follow. | Write |
conversation_assign | Assign the conversation to a team member, or unassign it (chat: unassigning hands it back to AI). | Write |
conversation_resolve | Resolve the conversation (nothing is sent to the customer). | Write |
conversation_reopen | Reopen a resolved conversation and assign it to you. | Write |
conversation_snooze | Snooze an open conversation until a time; it comes back as needing a person (or earlier if the customer writes). | Write |
conversation_update | Star, change the workflow state, switch the AI agent or move an email to spam/inbox. | Write |
conversation_tag_add | Add a tag (existing tag casing is reused). | Write |
conversation_tag_remove | Remove a tag (exact name). | Write |
conversation_note | Add an internal note (visible to the team, never to the customer). | Write |
conversation_trash | Move the conversation to trash (can be restored). | Write |
conversation_restore | Restore a conversation from trash. | Write |
conversation_delete | Permanently delete a conversation that is already in trash, with all messages and notes. | Destructive |
conversations_bulk | Apply one action to many conversations: set workflow, switch AI agent, trash, or move emails to spam/inbox. | Write |
conversation_ai_trace | How the AI handled the conversation: recent runs with decision, reply text, knowledge used and every tool call with its arguments and result. | Read |
conversation_full | Everything about one conversation in a single call: detail (contact, state, AI summary), messages, internal notes and the recent AI runs (compact trace). | Read |
conversation_attachment_view | One attachment of a message or email as base64, up to 4 MB: images in images (MCP returns them as images the assistant can see), other files in files. This is the only way to download chat attachments; no permanent links are returned. | Read |
contact_history | All conversations of a customer across chat and email by email address – including resolved, closed and deleted (trash) ones – merged across every contact record with that email. | Read |
contacts_search | List or search contacts (customers). | Read |
contact_get | One contact with conversation history, groups and recently viewed pages. | Read |
contact_update | Update a contact's name, email, phone, order number or internal notes. | Write |
contact_block | Block a contact (by their email and IP) and flag them as risky for the AI. | Write |
contact_unblock | Remove all blocks matching the contact's email or IP. | Write |
contact_groups_create | Create a contact group. | Write |
contact_groups_members | Add or remove contacts in a group (contacts need an email). | Write |
conversation_attachments | Download links for email attachments of a conversation (valid for a short time). | Read |
conversation_rerun_ai | Re-run the AI on the latest customer message as a debug run: nothing is sent; lookup (read) skills run live, action skills (refill, restart…) are only recorded with their arguments, never executed. Review it with conversation_ai_trace and send it with conversation_ai_send. | Write |
conversation_ai_send | Send a finished debug AI reply to the customer, optionally edited. | Customer-facing |
conversation_translate | Translate your draft reply into the customer's language (uses AI credits). | Read |
agents (44)
| Tool | What it does | Risk |
|---|---|---|
agents_list | List the organization's AI support agents. | Read |
agents_get | Get one AI agent with its instructions, settings, skills and knowledge. | Read |
agents_prompt_history | History of the agent's instructions, critical instructions and skill texts (owner/admin). | Read |
agents_prompt_revision_get | One saved version of an agent's instructions (owner/admin). | Read |
critical_instructions_list | Critical instructions of an agent (high-priority rules injected into every reply). | Read |
widget_get | Chat widget appearance, texts and languages of an agent. | Read |
widget_install | Installation snippet, step-by-step prompt for a coding agent, and where the widget was already seen. | Read |
models_list | Response models an agent can use. | Read |
agents_create | Create an AI agent (inactive until you activate it). Owner/admin. | Write |
agents_update | Update an AI agent's name, instructions, model, domains, signature and behaviour. Only sent fields change. Owner/admin. | Write |
agents_activate | Activate an agent: it starts answering customers on its channels. Owner/admin. | Customer-facing |
agents_pause | Pause an agent: it stops answering customers. Owner/admin. | Write |
agents_duplicate | Copy an agent with its instructions, knowledge, skills and widget settings. Owner/admin. | Write |
agents_delete | Delete an agent with its widget settings and prompt history. Conversations stay. Owner/admin. | Destructive |
agents_enable_skill | Enable a skill (system id or custom_<id>) for an agent. Owner/admin. | Write |
agents_disable_skill | Disable a skill for an agent (always-on conversation skills cannot be disabled). Owner/admin. | Write |
knowledge_assign | Let an agent use a knowledge source. Owner/admin. | Write |
knowledge_unassign | Stop an agent from using a knowledge source (the source is kept). Owner/admin. | Write |
agents_prompt_restore | Restore an older version of an agent's instructions, critical instructions and skill texts. Owner/admin. | Write |
critical_instructions_create | Add a critical instruction (high-priority rule) to one or more agents. Owner/admin. | Write |
critical_instructions_update | Change the text of a critical instruction. Owner/admin. | Write |
critical_instructions_delete | Delete a critical instruction (optionally all copies created together for several agents). Owner/admin. | Write |
widget_update | Change the chat widget of an agent: colours, position, texts, languages, suggested questions and FAQ. Owner/admin. | Write |
agents_prompt_edit | Find-and-replace in the instructions (system prompt) of several agents at once, without sending whole prompts. All edits apply to all targeted agents, or nothing changes. Saves a prompt version for each changed agent. Owner/admin. | Write |
agents_prompt_search | Search the agents' instructions for a text and return each match with surrounding context – without downloading whole prompts. | Read |
skills_text_edit | Find-and-replace in custom skills' description, instructions or input-field descriptions, several skills at once. All edits apply or nothing changes. Owner/admin. | Write |
agents_test | Chat with an agent as a test customer (works for inactive agents too) and get its reply, tools and knowledge used. Uses AI credits. | Write |
agents_test_cleanup | Delete all test conversations of the organization. | Write |
knowledge_list | List knowledge sources (websites, texts, Q&A, files) with processing status. | Read |
knowledge_get | One knowledge source including text content and selected website pages. | Read |
knowledge_add | Add knowledge: plain text, a Q&A pair, a website (pages are mapped automatically) or a file from a URL. Owner/admin. | Write |
knowledge_update | Rename a source or replace the text of a text/Q&A source (re-indexes it). Owner/admin. | Write |
knowledge_select_pages | Choose which discovered pages of a website source are used (max 30) and re-index. Owner/admin. | Write |
knowledge_refresh | Re-read a website source (only changed pages are re-indexed) or re-process a failed text/file source. Owner/admin. | Write |
knowledge_delete | Delete a knowledge source with its indexed content and stored file, for all agents. Owner/admin. | Destructive |
knowledge_search | Search an agent's knowledge the same way the agent does when answering. | Read |
skills_list | System and custom skills (actions) available to AI agents. | Read |
skills_create | Create a custom API skill (e.g. order status lookup) and optionally enable it for agents. Owner/admin. | Write |
skills_update | Update a custom skill. Only sent fields change; empty header values keep the stored secret. Owner/admin. | Write |
skills_delete | Delete a custom skill and remove it from all agents. Owner/admin. | Destructive |
skills_test | Call an API endpoint with a draft skill configuration and sample inputs, without saving anything. | Write |
skills_test_saved | Run a saved read-only (lookup) API skill with the given inputs exactly as the AI agent would and return what the agent would see. Action skills are refused – use skills.runAction. Owner/admin. | Write |
skills_run_action | Run a saved action API skill (refill, restart, refund…) for real, exactly as the AI agent would. Two-step confirmation: the first call returns a summary, repeat with confirmationToken after the user agreed. Owner/admin. | Destructive |
widget_avatar | Set the agent's avatar/logo in the chat widget from an image URL (max 2 MB). Owner/admin. | Write |
channels (13)
| Tool | What it does | Risk |
|---|---|---|
channels_status | Overview of connected channels: email mailboxes, WhatsApp and the chat widget. | Read |
agents_email_get | Mailbox assigned to an agent and its automatic-reply settings. | Read |
blocked_senders_add | Block an email address or a whole domain (`@example.com`). For an exact address, existing conversations from it move to spam. | Write |
email_mailbox_connect | Connect a support mailbox. provider=google returns a connectUrl for Gmail sign-in; other providers get a private forwarding address. Owner/admin. | Write |
email_mailbox_verify | Check whether forwarded email from the mailbox is arriving. | Write |
email_mailbox_disconnect | Disconnect a mailbox: its forwarding address stops working. Conversations stay. Owner/admin. | Destructive |
agents_email_assign | Let an agent handle a mailbox (one mailbox per agent). Owner/admin. | Write |
email_automation_set | Turn automatic email replies by the agent on or off. When on, the AI emails customers without review. Owner/admin. | Customer-facing |
email_sending_domain_setup | Start verifying a domain for sending email from your own address; returns DNS records to publish. Owner/admin. | Write |
email_sending_domain_verify | Check DNS records and refresh the verification status of a sending domain. | Write |
whatsapp_connect | Get the link where the user connects WhatsApp Business (Meta sign-in has to happen in their browser). | Write |
whatsapp_assign | Let an agent answer WhatsApp (one WhatsApp number per organization). Owner/admin. | Write |
whatsapp_disconnect | Disconnect WhatsApp from the organization. Reconnecting needs the Meta sign-in again. Owner/admin. | Destructive |
admin (26)
| Tool | What it does | Risk |
|---|---|---|
members_list | Members (human operators) of the organization. | Read |
members_invite | Invite a person by email (they get an invitation email). Owners invite admins/operators, admins invite operators. | Customer-facing |
members_update | Change a member's role or display name (owner only). | Write |
members_remove | Remove a member from the organization (owners remove anyone but the owner, admins remove operators). | Destructive |
inboxes_list | Inboxes (routing queues) that sort conversations by website or email domain. | Read |
quick_replies_list | Saved quick replies the team can insert into conversations. | Read |
inboxes_create | Create an inbox (routing queue). Owner/admin. | Write |
inboxes_update | Update an inbox. Only the fields you send change. Owner/admin. | Write |
inboxes_delete | Delete an inbox; its conversations stay, unrouted. Owner/admin. | Write |
quick_replies_create | Create a quick reply. Owner/admin. | Write |
quick_replies_update | Update a quick reply. Only the fields you send change. Owner/admin. | Write |
quick_replies_delete | Delete a quick reply. Owner/admin. | Write |
insights_list | Recurring customer problems, bugs and feature requests extracted from conversations by AI. | Read |
insights_update | Change the status of an insight (open, in_progress, resolved, dismissed). | Write |
stats_overview | Response and resolution times, how conversations were handled (AI vs. people) and channel mix. | Read |
stats_topics | What customers write about: topic and category breakdown. | Read |
stats_ai | AI agent decisions, tool success rate and breakdown by agent and channel. | Read |
stats_operators | Team performance per human operator: replies, resolved, open assigned, first response time. | Read |
stats_usage | AI usage and cost by feature, model and agent (owner/admin). | Read |
stats_activity | When customers write (per day, hour and weekday) and from which devices. | Read |
webhooks_list | Webhook endpoints of the organization. Owner/admin. | Read |
webhooks_create | Create a webhook endpoint. Returns the signing secret once – store it to verify the `webhook-signature` header. Owner/admin, max 10 per organization. | Write |
webhooks_update | Change the URL, events or description, or turn the endpoint on/off. Turning it on resets the failure count. Owner/admin. | Write |
webhooks_delete | Delete a webhook endpoint and its delivery log. Owner/admin. | Destructive |
webhooks_test | Send a `webhook.test` event to the endpoint now (also to a disabled one). Check the result in the delivery log. | Write |
webhooks_deliveries | Recent deliveries of the endpoint (newest first) with status, attempts and the HTTP response code. Kept 30 days. | Read |