Endpoints: 28,729MCP servers: 18,413Payout addresses: 2,070Paid calls: 1,526Letters: 13Defects: 1,322counted 3 min ago
teppi

MCP servercom.commsharbor/commsharbor

Transactional e-mail and permission-based campaigns, multi-tenant, with a full audit trail.
UNRATEDActivestreamable-httpcommsharbor.com

Overview

Score?
UNRATED 0.646
of what a free look can see, on 25 looks
Looks
31
last 14 hr ago
Tools
139
changed 8 days ago

More info

URL
commsharbor.com/mcp
streamable-http
Says it is
CommsHarbor b356e3b4
protocol 2025-06-18
In the record since
29 days ago

Among servers18,413 with a card

0median 0.606 · this server 0.646 · highest on record 0.8561

Toolsfrom sha256:b5c1a2ddef…94778a · +0 −0 8 days ago

The tools this server lists, read out of the definition it returned
ToolSchema
commsharbor_audience_create
Create an audience or saved segment. Only allowlisted filter fields are accepted — a saved segment cannot be turned into an arbitrary query over the CRM.
input · no output
commsharbor_audience_delete
Delete an audience and its memberships. Contacts themselves are untouched.
input · no output
commsharbor_audience_get
Read one audience of this organization.
input · no output
commsharbor_audience_member_add
Add a CRM contact to a static audience. Only for `static` audiences: a saved segment's membership comes from its filter, not from this route.
input · no output
commsharbor_audience_member_remove
Remove a contact from a static audience.
input · no output
commsharbor_audience_members
List the contacts currently in one audience.
input · no output
commsharbor_audience_update
Rename an audience or change its saved filter.
input · no output
commsharbor_audiences
List static audiences and saved segments.
input · no output
commsharbor_audit
List tenant audit events. Audit records are never rewritten and never carry recipient PII.
input · no output
commsharbor_billing
Read the organization's plan, limits and global entitlements. Read this before a bulk send: `state.active` says whether sending is allowed and `warning` says when the plan runs out
input · no output
commsharbor_billing_catalog
Read plans, prices and x402 network. Public and unauthenticated: an agent should be able to learn what things cost before deciding whether to sign up at all.
input · no output
commsharbor_billing_purchase
Buy a pass or top-up through the house's payment door (credit or x402); 409 while live checkout is off. While `catalog.checkout_live` is false this answers **409 `checkout_disabled
input · no output
commsharbor_campaign_create
Create a campaign draft. All three must already exist and be usable: a draft cannot be created against an unverified domain or an unpublished template.
input · no output
commsharbor_campaign_get
Read one campaign, without any recipient data.
input · no output
commsharbor_campaign_launch
Freeze and launch or schedule a campaign idempotently. The freeze happens once and never again: consent, suppressions and audience membership are evaluated at this moment, and the
input · no output
commsharbor_campaign_report
Reconcile campaign deliveries and feedback. Counts only. Which specific person opened what is not something this API answers.
input · no output
commsharbor_campaign_update
Edit, pause, resume or cancel a campaign. Content can only change while the campaign is a draft. After launch this route moves state — the frozen recipient set and the frozen templ
input · no output
commsharbor_campaigns
List the campaigns of the organization.
input · no output
commsharbor_contact_file_get
Download a tenant CSV before expiry. Files expire seven days after creation. Durable audit and row-level results survive the file.
input · no output
commsharbor_contact_import_confirm
Confirm an import with a mandatory idempotency key. The idempotency key is mandatory here. Reusing it returns the same import and never creates a second Queue message — which is wh
input · no output
commsharbor_contact_import_errors
List the row-numbered errors of one import, so the source file can be fixed.
input · no output
commsharbor_contact_import_get
Read one durable contact import and its current counts.
input · no output
commsharbor_contact_import_preview
Upload and preview a consent-declared CSV. Nothing is created by this call. The consent declaration is mandatory: an import that cannot say why these people may be emailed is an im
input · no output
commsharbor_contact_imports
List the contact imports of the organization.
input · no output
commsharbor_contact_marketing_get
Read consent and preference for a CRM contact. Being in the CRM is not permission to email. This resource is where permission actually lives.
input · no output
commsharbor_contact_marketing_put
Record permission-based marketing consent. This NEVER restores a previous unsubscribe. If the contact opted out, they stay out and `marketing_enabled` remains false — recording con
input · no output
commsharbor_contacts_export
Create a CSV export of the organization's contacts, retained for seven days.
input · no output
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 organiz
input · no output
commsharbor_crm_activities_create
Creates a activity in the tenant CRM. Required: note. Needs crm:write on the organization. Returns the created resource with its absolute url.
input · no output
commsharbor_crm_activities_delete
Deletes one activity from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_activities_get
Reads one activity from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_activities_list
Lists activities in the tenant CRM — something that happened with a contact, company or deal. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q, deal_
input · no output
commsharbor_crm_activities_update
Updates one activity in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_companies_create
Creates a company in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.
input · no output
commsharbor_crm_companies_delete
Deletes one company from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_companies_get
Reads one company from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_companies_list
Lists companies in the tenant CRM — an organization in the tenant CRM — a customer of the customer. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q.
input · no output
commsharbor_crm_companies_update
Updates one company in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_contacts_create
Creates a contact in the tenant CRM. Required: email, first_name. Needs crm:write on the organization. Returns the created resource with its absolute url. Being in the CRM is not p
input · no output
commsharbor_crm_contacts_delete
Deletes one contact from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404. Being in the CRM is not permission to email: consent lives in the
input · no output
commsharbor_crm_contacts_get
Reads one contact from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404. Being in the CRM is not permission to email: consent lives in the `m
input · no output
commsharbor_crm_contacts_list
Lists contacts in the tenant CRM — a person in the tenant CRM. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q, company_id. Needs crm:read on the or
input · no output
commsharbor_crm_contacts_update
Updates one contact in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404. Being in the CRM is not permission
input · no output
commsharbor_crm_deals_create
Creates a deal in the tenant CRM. Required: title, pipeline_id, stage_id. Needs crm:write on the organization. Returns the created resource with its absolute url. Money is in minor
input · no output
commsharbor_crm_deals_delete
Deletes one deal from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404. Money is in minor units: `value_minor: 10000` with `currency: "USD"`
input · no output
commsharbor_crm_deals_get
Reads one deal from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404. Money is in minor units: `value_minor: 10000` with `currency: "USD"` is
input · no output
commsharbor_crm_deals_list
Lists deals in the tenant CRM — an opportunity moving through a pipeline. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q, pipeline_id, stage_id, st
input · no output
commsharbor_crm_deals_update
Updates one deal in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404. Money is in minor units: `value_minor
input · no output
commsharbor_crm_pipelines_create
Creates a pipeline in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.
input · no output
commsharbor_crm_pipelines_delete
Deletes one pipeline from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_pipelines_get
Reads one pipeline from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_pipelines_list
Lists pipelines in the tenant CRM — a named sequence of stages that deals move through. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q. Needs crm:r
input · no output
commsharbor_crm_pipelines_update
Updates one pipeline in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_stages_create
Creates a stage in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.
input · no output
commsharbor_crm_stages_delete
Deletes one stage from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_stages_get
Reads one stage from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_stages_list
Lists stages in the tenant CRM — one step of a pipeline, addressed under the pipeline it belongs to. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Needs crm:
input · no output
commsharbor_crm_stages_update
Updates one stage in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_tasks_create
Creates a task in the tenant CRM. Required: title. Needs crm:write on the organization. Returns the created resource with its absolute url.
input · no output
commsharbor_crm_tasks_delete
Deletes one task from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_tasks_get
Reads one task from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_crm_tasks_list
Lists tasks in the tenant CRM — work someone still has to do in the tenant CRM. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q, status, deal_id, co
input · no output
commsharbor_crm_tasks_update
Updates one task in the tenant CRM; only the fields you send change. Needs crm:write on the organization. A foreign or missing id answers 404.
input · no output
commsharbor_data_export_create
Create a seven-day tenant JSON export. Scoped to one organization by construction: an export can never contain another tenant's data.
input · no output
commsharbor_data_export_download
Download one tenant-scoped JSON export before it expires.
input · no output
commsharbor_data_exports
List the tenant data exports, which are retained for seven days.
input · no output
commsharbor_dead_letter_replay
Replay one campaign or webhook dead letter. One record at a time, addressed explicitly. There is no "replay everything": a bulk replay of an unknown set is how a bad hour becomes a
input · no output
commsharbor_dead_letters
Inspect nominal dead letters. What ended up here after every retry. Records are addressed by opaque ID and carry no recipient PII.
input · no output
commsharbor_deletion_cancel
Cancel a scheduled tenant erasure. That is what the seven days are for: after they pass, there is nothing left to cancel.
input · no output
commsharbor_deletion_request
Read the latest tenant deletion request. `status: "none"` means no erasure was ever requested — the resource always answers, so a client never has to interpret a 404 as "nothing sc
input · no output
commsharbor_deletion_schedule
Schedule tenant erasure after seven days using the exact confirmation phrase. The confirmation phrase must be exactly `delete <organization_id>` — typing the id is the point, so no
input · no output
commsharbor_deliverability
Read deliverability and backlog aggregates. This is the operator's single view of whether sending is healthy. It carries no recipient PII.
input · no output
commsharbor_delivery_events
List normalized SES feedback events for one delivery. Open and Click are ADDITIVE: they are recorded alongside delivery state and never overwrite it.
input · no output
commsharbor_delivery_get
Read one delivery and its SES MessageId without recipient data. `ses_message_id` is what correlates this record with AWS when you need to chase a message there.
input · no output
commsharbor_domain_create
Register the organization's exact sending domain and queue SES provisioning. Asking twice does not provision twice. Publish the returned DKIM records, then call `verify` to have th
input · no output
commsharbor_domain_deliveries
List a domain's deliveries without recipient addresses.
input · no output
commsharbor_domain_get
Read one stored sending-domain resource. This returns what was stored at the last observation. To look again, call `verify`.
input · no output
commsharbor_domain_report
Read domain delivery and feedback aggregates.
input · no output
commsharbor_domain_smoke
Send one controlled smoke to the server-side recipient secret; never accepts a recipient argument. The request never accepts a recipient: the destination is a server-side secret. T
input · no output
commsharbor_domain_verify
Refresh domain readiness from real SES and DNS observations. This is the ONLY operation that can move a domain to `active`, and only because it actually looked.
input · no output
commsharbor_domains
List sending domains with their last observed state. `status` is what was last OBSERVED at SES and DNS. It does not become `active` because provisioning was requested.
input · no output
commsharbor_health
Read deployment health and build. Smoke tests wait for their own commit to appear here instead of racing edge propagation.
input · no output
commsharbor_inbox_attachment
Get a five-minute signed URL for one attachment, by its index in the message. The URL expires; the stored file does not. Two steps on purpose: the URL is what travels to a browser,
input · no output
commsharbor_inbox_create
Create a receiving address on a verified sending domain. Fails with 422 when the domain is not verified: receiving on an unproven domain is relay. The domain must already be `verif
input · no output
commsharbor_inbox_disable
Stop accepting mail at this address. History stays readable — this disables, it never erases. Disables, never erases: mail already received stays readable, because it is the custom
input · no output
commsharbor_inbox_get
Read one receiving address and whether it is still accepting mail.
input · no output
commsharbor_inbox_message
Read one message: body, chosen headers and `auth`. `from` is text the sender chose; `auth` is the SPF/DKIM/DMARC verdict the receiving edge reached. Decide on `auth`. `auth` is wha
input · no output
commsharbor_inbox_messages
List what arrived at one address, newest first. Summaries only, no body. Summaries only — no body. Read one message to get its text, HTML and headers.
input · no output
commsharbor_inboxes
List the addresses this organization receives on. Up to 100, newest first. A disabled address stays listed: its history is still readable.
input · no output
commsharbor_logout
Revoke the current session. Bootstrap/CSRF must belong to this browser and session. Other product sessions remain active.
input · no output
commsharbor_marketing_smoke
Send one controlled permission-based marketing smoke. Like the transactional smoke, the destination is a server-side secret. `contact_id` must be the CRM contact that matches it —
input · no output
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
input · no output
commsharbor_message_send
Queue one idempotent transactional delivery. Same behaviour and same idempotency as `POST /api/messages`. `X-Organization-Id` is still required with the session and must match the
input · no output
commsharbor_messaging_settings
Read the organization's timezone and whether marketing is currently paused.
input · no output
commsharbor_messaging_settings_update
Update timezone or pause state. Pausing is always allowed. Resuming is not: if the pause came from reputation or SES tenant risk, a healthy observation has to exist first.
input · no output
commsharbor_operations
List current operational alerts without PII. Covers dead letters, backlog, worker and SNS failures, reputation, paused sending, quota and conservative SES/SNS cost capacity — never
input · no output
commsharbor_operations_refresh
Refresh alerts, quota and capacity observations. The GET reads what was last stored; this goes and looks again. Same distinction as domain verification.
input · no output
commsharbor_organization_get
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 k
input · no output
commsharbor_platform_context
Confirm the caller's platform role. Tenant ownership grants nothing here: platform access is a separate, explicit grant.
input · no output
commsharbor_platform_crm_activities_create
Creates a activity in the platform CRM. Required: note. Needs a human session with the platform_admin grant; tenant ownership does not qualify. Returns the created resource with it
input · no output
commsharbor_platform_crm_activities_delete
Deletes one activity from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_activities_get
Reads one activity from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_activities_list
Lists activities in the platform CRM — our note about a prospective tenant. Cursor-paginated: limit 1-100, opaque cursor from the previous page. Filters: q. Needs a human session w
input · no output
commsharbor_platform_crm_activities_update
Updates one activity in the platform CRM; only the fields you send change. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or miss
input · no output
commsharbor_platform_crm_leads_create
Creates a lead in the platform CRM. Required: email, name. Needs a human session with the platform_admin grant; tenant ownership does not qualify. Returns the created resource with
input · no output
commsharbor_platform_crm_leads_delete
Deletes one lead from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_leads_get
Reads one lead from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_leads_list
Lists leads in the platform CRM — a prospective ORGANIZATION in our own funnel — platform CRM is not tenant data. Cursor-paginated: limit 1-100, opaque cursor from the previous pag
input · no output
commsharbor_platform_crm_leads_update
Updates one lead in the platform CRM; only the fields you send change. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing
input · no output
commsharbor_platform_crm_tasks_create
Creates a task in the platform CRM. Required: title. Needs a human session with the platform_admin grant; tenant ownership does not qualify. Returns the created resource with its a
input · no output
commsharbor_platform_crm_tasks_delete
Deletes one task from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_tasks_get
Reads one task from the platform CRM. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing id answers 404.
input · no output
commsharbor_platform_crm_tasks_list
Lists tasks in the platform CRM — work on a platform lead — about a prospective tenant, not about a tenant's customer. Cursor-paginated: limit 1-100, opaque cursor from the previou
input · no output
commsharbor_platform_crm_tasks_update
Updates one task in the platform CRM; only the fields you send change. Needs a human session with the platform_admin grant; tenant ownership does not qualify. A foreign or missing
input · no output
commsharbor_preference_get
Read preference through a signed capability. The token IS the credential. It reveals preference state and nothing else — no email address, no CRM record.
input · no output
commsharbor_preference_token_create
Create signed preference and unsubscribe URLs. The capability is scoped to one organization and one contact, it expires, and it embeds no email address. Put `marketing_headers` in
input · no output
commsharbor_preference_unsubscribe
Apply one-click unsubscribe through a signed capability. This is the endpoint mail clients call from the `List-Unsubscribe-Post` header, which is why the body is form-encoded and f
input · no output
commsharbor_suppression_create
Suppress one recipient inside the active organization.
input · no output
commsharbor_suppressions
List organization suppressions. Global, organization and SES tenant suppressions are all checked BEFORE quota and before any queue work.
input · no output
commsharbor_template_archive
Archive a template and preserve its versions. Deliveries that referenced a version must keep resolving to it, so archiving hides the draft and keeps the history.
input · no output
commsharbor_template_create
Create a canonical block template draft. Creating never publishes. Nothing can send this template until `publish` freezes a version.
input · no output
commsharbor_template_export
Export the latest published HTML, text and MJML.
input · no output
commsharbor_template_get
Read one template draft owned by this organization.
input · no output
commsharbor_template_import_html
Import a safe HTML subset as a draft. Active content, forms and unsafe URLs are rejected, not sanitised-and-kept. What survives is stored as blocks, so an imported template behaves
input · no output
commsharbor_template_preview
Compile and render a safe template preview. `warnings` tells you what was stripped and what would not render — read it before publishing rather than after sending.
input · no output
commsharbor_template_publish
Publish an immutable template version. The version's identity is the hash of its compiled content — publishing identical content does not create a second version.
input · no output
commsharbor_template_update
Update one template draft. Editing a draft can never change what a past delivery rendered: published versions are immutable.
input · no output
commsharbor_template_versions
List the immutable published versions of a template.
input · no output
commsharbor_templates
List the versioned email templates of the organization.
input · no output
commsharbor_tracking_domain
Read the organization's tracking domain, the CNAME it needs and whether the platform actually answers on it. Null when there is none: links then use the shared platform origin. `nu
input · no output
commsharbor_tracking_domain_create
Register the host that will serve this organization's message links. One per organization; registering never activates it. One per organization, and the host is unique across the p
input · no output
commsharbor_tracking_domain_remove
Remove the tracking domain; NEW messages go back to the platform origin. Links already sent keep pointing at the removed host. Links already sent keep pointing at the removed host:
input · no output
commsharbor_tracking_domain_verify
Probe the host now and store what was seen. The ONLY way to reach `active`, and only after reaching this product on that host — DNS resolving is not enough. The only operation that
input · no output
commsharbor_webhook_create
Create a webhook and reveal its secret once. Deliveries are signed with timestamped HMAC-SHA256 and retried with exponential backoff; what still fails lands in the tenant-scoped de
input · no output
commsharbor_webhook_deliveries
List the signed attempts made to one webhook and their retry state.
input · no output
commsharbor_webhook_disable
Disable a webhook without deleting the evidence of what it already delivered.
input · no output
commsharbor_webhook_get
Read one webhook, without its signing secret.
input · no output
commsharbor_webhooks
List the webhook endpoints of the organization, without their signing secrets.
input · no output
pricing
Current public prices and free allowances; no charge.
input · no output
Verify it yourselfnpx teppi-check https://commsharbor.com/mcpcurl -s https://api.teppi.xyz/v1/trust/mcp/mcs_01M1RE4NQ291CBTXGY7VVNPJ10