commsharbor
Domain email and webmail: set up domains, mailboxes and aliases, and check DNS verification.
Should I use this
Quality & Safety
Findings (21)
- LOWin commsharbor_logout
- LOWin commsharbor_email_google_catalog
- LOWin commsharbor_email_google_connect
- LOWin commsharbor_email_google_resolve
- LOWin commsharbor_email_google_disconnect
- LOWin commsharbor_email_domain_products_list
- LOWin commsharbor_email_domain_products_add
- LOWin commsharbor_email_workspace_snapshot
- LOWin commsharbor_email_trial_activate
- LOWin commsharbor_email_domain_create
Based on automated analysis of tool definitions and protocol compliance.
Context Cost
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-httpWhat it can do
Tool inventory
Tools (34)
🟢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
Evidence