commsharbor

Domain email and webmail: set up domains, mailboxes and aliases, and check DNS verification.

Should I use this

Quality & Safety

A
Description quality
99%
Schema completeness
87%
Naming quality
68%
Poisoning risk
100%
Permission match
100%
Protocol compliance
100%

Findings (21)

  • LOWTool 'commsharbor_logout' description lacks action verbin commsharbor_logout
  • LOWTool 'commsharbor_email_google_catalog' name length outside 3-30 rangein commsharbor_email_google_catalog
  • LOWTool 'commsharbor_email_google_connect' name length outside 3-30 rangein commsharbor_email_google_connect
  • LOWTool 'commsharbor_email_google_resolve' name length outside 3-30 rangein commsharbor_email_google_resolve
  • LOWTool 'commsharbor_email_google_disconnect' name length outside 3-30 rangein commsharbor_email_google_disconnect
  • LOWTool 'commsharbor_email_domain_products_list' name length outside 3-30 rangein commsharbor_email_domain_products_list
  • LOWTool 'commsharbor_email_domain_products_add' name length outside 3-30 rangein commsharbor_email_domain_products_add
  • LOWTool 'commsharbor_email_workspace_snapshot' name length outside 3-30 rangein commsharbor_email_workspace_snapshot
  • LOWTool 'commsharbor_email_trial_activate' name length outside 3-30 rangein commsharbor_email_trial_activate
  • LOWTool 'commsharbor_email_domain_create' name length outside 3-30 rangein commsharbor_email_domain_create

Based on automated analysis of tool definitions and protocol compliance.

Context Cost

~5,590Tokens (tool definitions)
~882 BTypical response size
Significant attention impact (4.37% of 128k context)

This is the approximate number of tokens consumed each time the server's tools are loaded into a model's context. Higher counts reduce the attention available for other tasks.

Install

One-Click Install

Add this to your `claude_desktop_config.json` file:

{
  "mcpServers": {
    "commsharbor": {
      "url": "https://commsharbor.com/mcp"
    }
  }
}

Remote endpoints

https://commsharbor.com/mcpstreamable-http

What it can do

Tool inventory

Tools (34)

🟢 Read-only🟡 Write🔴 Delete⚪ Unknown
🟢commsharbor_health

Read deployment health and build. Smoke tests wait for their own commit to appear here instead of racing edge propagation.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
⚪commsharbor_logout

Revoke the current session. Bootstrap/CSRF must belong to this browser and session. Other product sessions remain active.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢commsharbor_me

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}`.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢commsharbor_context

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢commsharbor_organization_get(organization_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Active organization ID"
    }
  },
  "required": [
    "organization_id"
  ],
  "additionalProperties": false
}
🟢commsharbor_audit(organization_id, cursor)

List tenant audit events. Audit records are never rewritten and never carry recipient PII.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Active organization ID"
    },
    "cursor": {
      "type": "string",
      "description": "Opaque cursor"
    }
  },
  "required": [
    "organization_id"
  ],
  "additionalProperties": false
}
🟢commsharbor_platform_context

Confirm the caller's platform role. Tenant ownership grants nothing here: platform access is a separate, explicit grant.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}
🟢commsharbor_email_google_catalog(organization_id, service)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "service": {
      "type": "string",
      "enum": [
        "search_console",
        "analytics"
      ],
      "description": "search_console or analytics. Each connection has its own consent."
    }
  },
  "required": [
    "organization_id",
    "service"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_google_connect(organization_id, service, language)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "service": {
      "type": "string",
      "enum": [
        "search_console",
        "analytics"
      ],
      "description": "search_console or analytics. Each connection has its own consent."
    },
    "language": {
      "type": "string",
      "enum": [
        "en",
        "pt"
      ],
      "description": "Consent return language."
    }
  },
  "required": [
    "organization_id",
    "service"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_google_resolve(organization_id, service, properties)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "service": {
      "type": "string",
      "enum": [
        "search_console",
        "analytics"
      ],
      "description": "search_console or analytics. Each connection has its own consent."
    },
    "properties": {
      "type": "array",
      "items": {
        "type": "string"
      },
      "minItems": 1,
      "maxItems": 20,
      "uniqueItems": true,
      "description": "Authorized properties/ID values from the catalog, at most 20 unique entries."
    }
  },
  "required": [
    "organization_id",
    "service",
    "properties"
  ],
  "additionalProperties": false
}
🔴commsharbor_email_google_disconnect(organization_id, service)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "service": {
      "type": "string",
      "enum": [
        "search_console",
        "analytics"
      ],
      "description": "search_console or analytics. Each connection has its own consent."
    }
  },
  "required": [
    "organization_id",
    "service"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_domain_products_list(organization_id, resource_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email domain ID"
    }
  },
  "required": [
    "organization_id",
    "resource_id"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_domain_products_add(organization_id, resource_id, services)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email domain ID"
    },
    "services": {
      "type": "array",
      "items": {
        "type": "string",
        "enum": [
          "pageaudit",
          "hookpulse"
        ]
      },
      "maxItems": 2,
      "uniqueItems": true,
      "description": "At most two unique values: pageaudit and hookpulse."
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "services"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_workspace_snapshot(id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "id": {
      "type": "string",
      "description": "Selected organization ID"
    }
  },
  "required": [
    "id"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_workspace(organization_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    }
  },
  "required": [
    "organization_id"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_trial_activate(organization_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_domain_setup(organization_id, domain)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "domain": {
      "type": "string"
    }
  },
  "required": [
    "organization_id",
    "domain"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_domain_create(organization_id, domain, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "domain": {
      "type": "string",
      "description": "Exact domain name."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "domain",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_domain_get(organization_id, resource_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    }
  },
  "required": [
    "organization_id",
    "resource_id"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_domain_verify(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_domain_assistance(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_mailbox_create(organization_id, domain_id, local_part, name, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "domain_id": {
      "type": "string",
      "description": "Domain ID from the workspace."
    },
    "local_part": {
      "type": "string",
      "description": "Mailbox name before @."
    },
    "name": {
      "type": "string",
      "description": "Mailbox display name."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "domain_id",
    "local_part",
    "name",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🔴commsharbor_email_mailbox_update(organization_id, resource_id, name, quota_mb, files_quota_mb, ...)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "name": {
      "type": "string",
      "description": "Display name."
    },
    "quota_mb": {
      "type": "integer",
      "description": "Quota in MiB. Must fit the plan and current usage."
    },
    "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"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_mailbox_password(organization_id, resource_id, password, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "password": {
      "type": "string",
      "description": "New mailbox password: 14 to 128 characters, with no control characters."
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "password",
    "idempotency_key"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_mailbox_suspend(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_mailbox_resume(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟡commsharbor_email_alias_create(organization_id, domain_id, local_part, destinations, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "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"
    }
  },
  "required": [
    "organization_id",
    "domain_id",
    "local_part",
    "destinations",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🔴commsharbor_email_alias_update(organization_id, resource_id, destinations, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "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"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "destinations",
    "idempotency_key"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_alias_suspend(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_alias_resume(organization_id, resource_id, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "resource_id",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_job_get(organization_id, resource_id)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "resource_id": {
      "type": "string",
      "description": "Email resource ID"
    }
  },
  "required": [
    "organization_id",
    "resource_id"
  ],
  "additionalProperties": false
}
⚪commsharbor_email_service_request(organization_id, service, idempotency_key)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "organization_id": {
      "type": "string",
      "description": "Organization ID"
    },
    "service": {
      "type": "string",
      "description": "Service code from the plan catalog.",
      "enum": [
        "migration",
        "chat",
        "meetings",
        "documents",
        "shared_mailboxes",
        "bookings",
        "scheduled_send",
        "signatures"
      ]
    },
    "idempotency_key": {
      "type": "string",
      "description": "Stable key for this request"
    }
  },
  "required": [
    "organization_id",
    "service",
    "idempotency_key"
  ],
  "additionalProperties": false
}
🟢commsharbor_email_security_check(domain)

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.

Input Schema

{
  "type": "object",
  "properties": {
    "domain": {
      "type": "string",
      "description": "Domain to check, such as example.com"
    }
  },
  "required": [
    "domain"
  ],
  "additionalProperties": false
}
🟢commsharbor_brazil_email_report

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.

Input Schema

{
  "type": "object",
  "properties": {},
  "required": [],
  "additionalProperties": false
}

Community

Rate this Server

Evidence

Recent observations

verifiedversion not recorded34 tools
verifiedversion not recorded34 tools
failed observationversion not recorded—
failed observationversion not recorded—
failed observationversion not recorded—