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

# Tool catalog

> Twenty-seven reads and eighteen writes for scoped workspace access, campaign workflows, and explicitly confirmed inbox replies.

| Tool | Scope | Effect |
| - | - | - |
| `get_connection` | `workspaces:read` | Identify the connected Emailx actor, environment, key grants and expiry. |
| `list_workspaces` | `workspaces:read` | Discover currently accessible customer or agency client workspaces. |
| `get_workspace_capabilities` | `workspaces:read` | Request-level permissions and role, without granting execution authority. |
| `list_members` | `team:read` | One teammate page and a separate owner; internal proxy identities excluded. |
| `get_reply_routing` | `team:read` | Channel-specific notification modes and owner options; no changes. |
| `list_senders` | `senders:read` | Stored account metadata and local blockers, without live provider checks. |
| `get_sender` | `senders:read` | Authorized channel-specific sender details; no credentials. |
| `find_contacts` | `contacts:read` | Find contacts by exact case-insensitive email, or list a bounded page in an explicit workspace. |
| `select_people` | `contacts:read` | Preview local eligibility for explicit contact IDs or allowlisted filters; read-only, requires an idempotency key and does not enroll contacts. |
| `list_campaigns` | `campaigns:read` | List saved campaigns in one explicit workspace and channel. |
| `get_campaign` | `campaigns:read` | Read a campaign and its saved steps before changing it. |
| `get_campaign_configuration` | `campaigns:read` | Saved setup and revision; does not approve content. |
| `configure_campaign` | `campaigns:read`, `campaigns:configure` | Inactive setup with revision protection; no activation by this tool. |
| `create_campaign_draft` | `campaigns:write` | Create an inactive draft for human review. |
| `pause_campaign` | `campaigns:read`, `campaigns:write` | Pause a specifically requested campaign after reading its current state. |
| `list_conversations` | `inbox:read` | Find saved campaign conversations with replies in a specific workspace/channel. |
| `get_conversation` | `inbox:read` | Read saved conversation messages. |
| `get_reply_context` | `inbox:read` | Read up to 40 saved messages with freshness, completeness, sender readiness, and the revision required to reply; never refreshes provider history. |
| `send_inbox_reply` | `inbox:send` | Queue one explicitly confirmed reply using the original sender and thread; requires exact current revision and idempotency key. Unknown outcomes must be reconciled, never automatically resent. |
| `get_workspace_report` | `analytics:read` | Read all-time saved delivery totals for one workspace/channel. |
| `list_templates` | `templates:read` | List saved regular and smart email template summaries. |
| `get_template` | `templates:read` | Read saved template fields and the revision used for editing. |
| `create_template` | `templates:write` | Save regular or smart template settings; does not generate or send email. |
| `update_template` | `templates:write` | Save requested template edits with revision protection. |
| `import_linkedin_profiles` | `campaigns:import`, `campaigns:read` | Queue lookup for 1 to 100 explicit profile URLs. Requires the default-off execution feature and can consume provider quota; no launch or send. |
| `get_operation` | `operations:read`, `campaigns:read` | Read durable import or LinkedIn activation progress and safe results. Requires the execution feature. |
| `list_operation_rows` | `operations:read`, `campaigns:read` | Read paginated outcomes for one import. Requires the execution feature. |
| `cancel_operation` | `operations:write`, `campaigns:read`, original command grant | Requires `campaigns:import` for imports or `campaigns:launch` for activations; cancel only when the server confirms it is safe and does not undo in-flight work. |
| `review_linkedin_campaign` | `campaigns:launch` | Create a short-lived local readiness review. Does not verify provider health, quota or delivery, and does not activate. Requires the execution feature. |
| `launch_linkedin_campaign` | `campaigns:launch` | Explicitly activate a reviewed manual LinkedIn campaign for native scheduled dispatch. Requires `confirm_launch=true` and the execution feature; no immediate batch or delivery verification. |
| `review_linkedin_resume` | `campaigns:launch` | Create a short-lived local review for resuming a paused, previously launched manual LinkedIn campaign. Reports uncertain attempts and other blockers; does not resume. Requires the execution feature. |
| `resume_linkedin_campaign` | `campaigns:launch` | Explicitly resume a reviewed paused LinkedIn campaign for the periodic native scheduler. Requires `confirm_resume=true` and the execution feature; keeps saved progress and never retries uncertain attempts. |
| `get_linkedin_campaign_progress` | `campaigns:read` | Read locally saved status counts and timestamps; saved activity does not prove delivery. |
| `get_linkedin_prospect` | `campaigns:read` | Read one prospect's saved progress under an explicit campaign; no provider lookup. |

\| `preview_people_import` | `contacts:read` | Read-only CSV/XLSX preview with explicit mapping and fingerprint. |
\| `import_people` | `contacts:write` | Queue a confirmed import after preview; no campaign enrollment. |
\| `list_people_import_rows` | `contacts:read`, `operations:read` | Read bounded row outcomes and contact IDs; not the uploaded file. |
\| `prepare_email_campaign` | `campaigns:generate` | Create at most 500 isolated `api_prepared` contact-step tasks; no AI or sending. |
\| `generate_email_previews` | `campaigns:generate` | Generate content for 1–10 selected tasks with explicit AI-credit confirmation. |
\| `list_email_messages` | `messages:read` | Read a bounded page of saved message task metadata. |
\| `get_email_message` | `messages:read` | Read one exact saved message preview. |
\| `edit_email_message` | `messages:write` | Edit the exact preview using its ID and revision. |
\| `approve_email_message` | `messages:approve` | Approve one exact preview; approval does not launch. |
\| `reject_email_message` | `messages:write` | Reject one exact preview; later draft steps may be cancelled. |
\| `review_email_campaign` | `campaigns:launch-email` | Create a local readiness review; does not launch. |
\| `launch_email_campaign` | `campaigns:launch-email` | Explicitly schedule approved email messages within configured windows. |
\| `get_email_campaign_progress` | `campaigns:read` | Read saved task statuses; does not verify delivery. |

## Inputs that matter

Every workspace operation requires `workspace_id`. Campaigns, inbox and reporting require `channel`: `email` or `linkedin`. Lists default to 25 records and accept `limit` from 1 to 100 plus an opaque `cursor`. All 18 write tools require an `idempotency_key`.

An email draft accepts a name only. LinkedIn drafts support audience and existing step fields. `pause_campaign` reads current state first and cannot recall in-flight activity. The LinkedIn URL import accepts explicit HTTPS LinkedIn profile URLs for an eligible inactive manual draft; it is not a broad search and can use provider lookup quota. People import separately previews CSV/XLSX and saves contacts without enrollment. Email preparation, credit-confirmed generation, exact-message approval, reviewed launch, and confirmed inbox replies are separate actions. Email launch schedules within configured windows; it does not verify delivery. Inbox context may be incomplete or stale and does not refresh provider history. Unknown reply outcomes require reading the original operation; never retry automatically. See [email execution](https://docs.emailx.ai/en/overview/email-execution.md), [inbox replies](https://docs.emailx.ai/en/overview/inbox-replies.md), [People import](https://docs.emailx.ai/en/overview/people-import.md), and [LinkedIn review and launch](https://docs.emailx.ai/en/overview/review-and-launch-linkedin.md). Resume, reply drafts, deletion and broad inbox history refresh remain unavailable.

## Typed results

Successful calls return typed `data` and `meta`, including request ID, HTTP status and replay status. Lists retain pagination. Errors have `isError=true` and a structured `error`; they are never simulated success. Results are capped at 512 KiB, and unexpected API fields fail contract validation rather than leaking through.

Download the [machine-readable tool catalog](https://app.emailx.ai/api/mcp-tools.json) for exact schemas. Tool annotations describe effects; they do not replace a user's authorization or live API permission checks.


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