Domain email and webmail: set up domains, mailboxes and aliases, and check DNS verification.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
List tenant audit events. Audit records are never rewritten and never carry recipient PII.
Active organization ID
Opaque cursor
List tenant audit events. Audit records are never rewritten and never carry recipient PII.
| Argument | Type | Description |
|---|---|---|
| cursor | string | Opaque cursor |
| organization_id* | string | Active organization ID |
{
"type": "object",
"required": [
"organization_id"
],
"properties": {
"cursor": {
"type": "string",
"description": "Opaque cursor"
},
"organization_id": {
"type": "string",
"description": "Active organization ID"
}
},
"additionalProperties": false
}Read the monthly Brazil email security report: how many domains of city halls, state and federal government, banks and listed companies reject fake email (DMARC p=reject) and how they end SPF. Totals only, public DNS. Free, no account. Public DNS only, read once a month. The sample is built from Brazil's open company registry (Receita Federal, the email of each active head office) and the CVM register of listed companies. Only totals: no domain is listed. A share is `count / (com_mx - dmarc.nao_lido)`; domains without MX are left out. Only the DMARC policy classifies; SPF is counted but does not change the class. `percent` rounds each group to 100 by the largest remainder, the same rule as the page.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Resolve the active organization identity. Read this before a write when you are not certain which tenant is active. Guessing is how data lands in the wrong organization. An organization API key answers `kind: api_key` with its scopes.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Create an alias to existing mailboxes in this organization. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| domain_id* | string | Domain ID from the workspace, where the alias is created. |
| local_part* | string | Alias name before @. |
| destinations* | array | Existing mailbox addresses in this organization. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"domain_id",
"local_part",
"destinations",
"idempotency_key"
],
"properties": {
"domain_id": {
"type": "string",
"description": "Domain ID from the workspace, where the alias is created."
},
"local_part": {
"type": "string",
"description": "Alias name before @."
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Existing mailbox addresses in this organization."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Restore a suspended alias without changing its destinations. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Suspend an alias without deleting its configuration. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Change the alias destinations within this organization. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| destinations* | array | Existing mailbox addresses. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"destinations",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"destinations": {
"type": "array",
"items": {
"type": "string"
},
"description": "Existing mailbox addresses."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Request assisted DNS setup. The durable request waits for operator activation. It does not change DNS or expose a provider credential. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Register a domain and its ownership challenge. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Exact domain name. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"domain",
"idempotency_key"
],
"properties": {
"domain": {
"type": "string",
"description": "Exact domain name."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read domain setup, DNS records and observed readiness. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read or associate PageAudit and HookPulse with a domain in this organization. Native product access must be enabled. The private email backend confirms domain ownership in this organization. Selected native products must already be enabled. Association is idempotent.
| Argument | Type | Description |
|---|---|---|
| services* | array | At most two unique values: pageaudit and hookpulse. |
| resource_id* | string | Email domain ID |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"services"
],
"properties": {
"services": {
"type": "array",
"items": {
"enum": [
"pageaudit",
"hookpulse"
],
"type": "string"
},
"maxItems": 2,
"description": "At most two unique values: pageaudit and hookpulse.",
"uniqueItems": true
},
"resource_id": {
"type": "string",
"description": "Email domain ID"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read or associate PageAudit and HookPulse with a domain in this organization. Native product access must be enabled. The private email backend confirms domain ownership in this organization. Selected native products must already be enabled. Association is idempotent.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email domain ID |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email domain ID"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Find an existing domain. Return its organization and domain IDs only when this exact caller can open that organization. Otherwise return existing: null. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| domain* | string | |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"domain"
],
"properties": {
"domain": {
"type": "string"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Queue a check of ownership, DNS and certificates. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read authorized Google metadata. This does not prove DNS ownership. Requires the owner's account session; an organization key cannot authorize Google access. Requires an account session in this organization. Reads site metadata only. Google access and refresh tokens remain encrypted on the server.
| Argument | Type | Description |
|---|---|---|
| service* | string | search_console or analytics. Each connection has its own consent. |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"service"
],
"properties": {
"service": {
"enum": [
"search_console",
"analytics"
],
"type": "string",
"description": "search_console or analytics. Each connection has its own consent."
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Start five-minute Google consent with PKCE. Return an authorization URL. Signing in does not grant this access. Requires the owner's account session; an organization key cannot authorize Google access. Requires an account session in this organization. Reads site metadata only. Google access and refresh tokens remain encrypted on the server.
| Argument | Type | Description |
|---|---|---|
| service* | string | search_console or analytics. Each connection has its own consent. |
| language | string | Consent return language. |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"service"
],
"properties": {
"service": {
"enum": [
"search_console",
"analytics"
],
"type": "string",
"description": "search_console or analytics. Each connection has its own consent."
},
"language": {
"enum": [
"en",
"pt"
],
"type": "string",
"description": "Consent return language."
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Remove this product's saved Google connection and pending consent. Existing email and service resources remain intact. Requires the owner's account session; an organization key cannot authorize Google access. Requires an account session in this organization. Reads site metadata only. Google access and refresh tokens remain encrypted on the server.
| Argument | Type | Description |
|---|---|---|
| service* | string | search_console or analytics. Each connection has its own consent. |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"service"
],
"properties": {
"service": {
"enum": [
"search_console",
"analytics"
],
"type": "string",
"description": "search_console or analytics. Each connection has its own consent."
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Resolve website addresses for up to 20 selected Analytics properties. Search Console does not use this route. Requires the owner's account session; an organization key cannot authorize Google access. Requires an account session in this organization. Reads site metadata only. Google access and refresh tokens remain encrypted on the server.
| Argument | Type | Description |
|---|---|---|
| service* | string | search_console or analytics. Each connection has its own consent. |
| properties* | array | Authorized properties/ID values from the catalog, at most 20 unique entries. |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"service",
"properties"
],
"properties": {
"service": {
"enum": [
"search_console",
"analytics"
],
"type": "string",
"description": "search_console or analytics. Each connection has its own consent."
},
"properties": {
"type": "array",
"items": {
"type": "string"
},
"maxItems": 20,
"minItems": 1,
"description": "Authorized properties/ID values from the catalog, at most 20 unique entries.",
"uniqueItems": true
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read one durable job in this organization. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Create a mailbox within the current allowance. Trial mailboxes share 1 GB and cannot send email. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| name* | string | Mailbox display name. |
| domain_id* | string | Domain ID from the workspace. |
| local_part* | string | Mailbox name before @. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"domain_id",
"local_part",
"name",
"idempotency_key"
],
"properties": {
"name": {
"type": "string",
"description": "Mailbox display name."
},
"domain_id": {
"type": "string",
"description": "Domain ID from the workspace."
},
"local_part": {
"type": "string",
"description": "Mailbox name before @."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Set the mailbox password. It is encrypted for the executor and is never returned. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| password* | string | New mailbox password: 14 to 128 characters, with no control characters. |
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"password",
"idempotency_key"
],
"properties": {
"password": {
"type": "string",
"description": "New mailbox password: 14 to 128 characters, with no control characters."
},
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Restore suspended mailbox access. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Suspend access while preserving mailbox data. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| resource_id* | string | Email resource ID |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Change mailbox name or quota within the plan. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| name | string | Display name. |
| quota_mb | integer | Quota in MiB. Must fit the plan and current usage. |
| resource_id* | string | Email resource ID |
| files_quota_mb | integer | File allowance in MiB. The sum of mailbox allowances must fit files_gb in the plan. Zero disables files. Existing files are preserved. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"resource_id",
"idempotency_key"
],
"properties": {
"name": {
"type": "string",
"description": "Display name."
},
"quota_mb": {
"type": "integer",
"description": "Quota in MiB. Must fit the plan and current usage."
},
"resource_id": {
"type": "string",
"description": "Email resource ID"
},
"files_quota_mb": {
"type": "integer",
"description": "File allowance in MiB. The sum of mailbox allowances must fit files_gb in the plan. Zero disables files. Existing files are preserved."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Check whether someone can send email as a domain: SPF, DKIM in common selectors, DMARC, MX, MTA-STS and BIMI, with a 0-100 score and the fixes, most severe first. Public DNS only. Free, no account. The same domain is served from memory for 10 minutes. A network can run 30 new checks per day. DKIM is looked up in common selectors only; `dkim_not_found` does not prove that no key exists. `incomplete: true` means a DNS answer failed and the score can be lower than the real one; `unread` names those parts, and a failed query never becomes a missing finding.
| Argument | Type | Description |
|---|---|---|
| domain* | string | Domain to check, such as example.com |
{
"type": "object",
"required": [
"domain"
],
"properties": {
"domain": {
"type": "string",
"description": "Domain to check, such as example.com"
}
},
"additionalProperties": false
}Request an included service with activation on demand. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| service* | string | Service code from the plan catalog. |
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"service",
"idempotency_key"
],
"properties": {
"service": {
"enum": [
"migration",
"chat",
"meetings",
"documents",
"shared_mailboxes",
"bookings",
"scheduled_send",
"signatures"
],
"type": "string",
"description": "Service code from the plan catalog."
},
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Start the free receive-only Trial for 7 days, once per organization: 1 GB shared storage, unlimited mailboxes and no outgoing SMTP or external filter forwarding. Requires a new workspace and operator-proved native quota. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| idempotency_key* | string | Stable key for this request |
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id",
"idempotency_key"
],
"properties": {
"idempotency_key": {
"type": "string",
"description": "Stable key for this request"
},
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read the email workspace. No guest access. Members can read. Owners, admins and organization keys can manage email. The private service credential stays on the server. Mailbox passwords and message content are never returned.
| Argument | Type | Description |
|---|---|---|
| organization_id* | string | Organization ID |
{
"type": "object",
"required": [
"organization_id"
],
"properties": {
"organization_id": {
"type": "string",
"description": "Organization ID"
}
},
"additionalProperties": false
}Read the current email workspace, DNS progress and recent jobs. The ID must match X-Organization-Id. Membership is checked again for each snapshot and delivered event. Events contain only an opaque change ID. DNS checks run in the private backend, with a 24-hour deadline and a visible resume action after pause.
| Argument | Type | Description |
|---|---|---|
| id* | string | Selected organization ID |
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Selected organization ID"
}
},
"additionalProperties": false
}Read deployment health and build. Smoke tests wait for their own commit to appear here instead of racing edge propagation.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Revoke the current session. Bootstrap/CSRF must belong to this browser and session. Other product sessions remain active.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Read the current account profile and platform role. `user.id` is the shared-account ID. Organizations are not listed here: they live in the shared account, which does not list them inside products yet — open a workspace by its ID with `GET /api/organizations/{organization_id}`.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}Open an organization by id: name, your role and the CommsHarbor plan. This is how a workspace is opened. Name and role come from the shared account (null with an organization API key, which carries neither); the plan is the organization's global entitlement in CommsHarbor.
| Argument | Type | Description |
|---|---|---|
| organization_id* | string | Active organization ID |
{
"type": "object",
"required": [
"organization_id"
],
"properties": {
"organization_id": {
"type": "string",
"description": "Active organization ID"
}
},
"additionalProperties": false
}Confirm the caller's platform role. Tenant ownership grants nothing here: platform access is a separate, explicit grant.
No arguments.
{
"type": "object",
"required": [],
"properties": {},
"additionalProperties": false
}