> ## Documentation Index
> Fetch the complete documentation index at: https://docs.protodesk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Hosted tool reference

> Operational MCP tools, required scopes, and write safeguards.

Hosted MCP exposes these 30 operational tools. `tools/list` returns only the tools your connection has permission to call, together with their current input schemas.

## Workspace

| Tool | Required scope | Purpose |
| - | - | - |
| `workspace_context` | Any authenticated connection | Read the connected workspace and granted permissions |

## Customers

| Tool | Required scope | Purpose |
| - | - | - |
| `list_customers` | `customers:read` | List or search customers |
| `get_customer` | `customers:read` | Read a customer |
| `list_identities` | `customers:read` | Read a customer's channel identities |
| `create_customer` | `customers:write` | Create a customer |
| `upsert_customer` | `customers:write` | Create or update by external ID |
| `update_customer` | `customers:write` | Update a customer |
| `delete_customer` | `customers:write` | Delete a customer |
| `create_identity` | `customers:write` | Link a channel identity |
| `delete_identity` | `customers:write` | Remove a channel identity |

## Conversations and messages

| Tool | Required scope | Purpose |
| - | - | - |
| `list_conversations` | `conversations:read` | List or filter conversations |
| `get_conversation` | `conversations:read` | Read a conversation |
| `list_statuses` | `conversations:read` | Read workspace statuses |
| `list_priorities` | `conversations:read` | Read workspace priorities |
| `list_assignments` | `conversations:read` | Read conversation assignments |
| `list_messages` | `conversations:read` | Read conversation messages |
| `create_conversation` | `conversations:write` | Create a conversation |
| `update_conversation` | `conversations:write` | Update a conversation |
| `assign_conversation` | `conversations:write` | Assign a conversation |
| `resolve_conversation` | `conversations:write` | Resolve a conversation |
| `create_message` | `messages:write` | Record a message |
| `get_message` | `conversations:read` | Read a message and delivery status |
| `send_message` | `messages:send` | Send an agent reply, schedule email, or add an internal note |
| `cancel_message_send` | `messages:send` | Cancel delivery while it is still pending |

<Warning>
  Recording a message does not send it through email or another connected channel. Use `send_message` for delivery and `get_message` to inspect its status. Queued means the delivery job was committed, not that a provider delivered the message. See [Send replies](/guides/send-replies).
</Warning>

## Webhooks

| Tool | Required scope | Purpose |
| - | - | - |
| `list_webhooks` | `webhooks:manage` | List webhook subscriptions |
| `create_webhook` | `webhooks:manage` | Create a subscription |
| `update_webhook` | `webhooks:manage` | Update a subscription |
| `delete_webhook` | `webhooks:manage` | Delete a subscription |
| `test_webhook` | `webhooks:manage` | Send a test delivery |
| `list_webhook_deliveries` | `webhooks:manage` | Read recent delivery history |

## Inputs and writes

Tool schemas use top-level path and query parameters, and a `body` object for request bodies. The [API reference](/api-reference/overview) describes each operation's resource fields.

Every write requires `expectedWorkspaceId`, matching the result of `workspace_context`. Operations that support idempotent retries also require `idempotencyKey`; the tool's input schema identifies them. Other writes do not promise idempotent retries.

Writes execute immediately. Confirm the user's intended action before calling them. If a result is uncertain, read the resource to reconcile its state. When retrying an idempotent operation, reuse the original arguments and key.

Successful results include `workspaceId`, `status`, `data`, `requestId`, and `replayed`. Failed HTTP operations become MCP tool errors.

## Help Center tools

Eligible API-key connections also expose these tools. Reads require `help:read`; proposals additionally require `help:drafts:write`. OAuth does not grant these permissions.

| Hosted tool | Equivalent local stdio tool |
| - | - |
| `get_authoring_context` | `authoring_context` |
| `list_authoring_articles` | `help_articles_list` |
| `get_authoring_article` | `help_article_get` |
| `create_authoring_proposal` | `help_article_update_propose` |
| `get_authoring_proposal` | `help_proposal_get` |
| `create_authoring_article_set` | `help_article_set_propose` |
| `get_authoring_article_set` | `help_article_set_get` |

Hosted tool inputs follow the REST schemas, including a `body` object for proposal payloads. They are not interchangeable with the local stdio input shapes. Consult `tools/list` and the Help authoring API reference for the current schema.

Both transports retain connection-bound proposal ownership and the [human review workflow](/mcp/review-workflow).


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.