Skip to content
Official MCP RegistryListed

com.commsharbor/commsharbor

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

First seen 2 Oct 2026. Evidence as of 2 Oct 2026.

139
Tools
From an anonymous probe
1
Source listings
Each with its own history
0
Recorded changes
Since first seen

Tools

ToolDescriptionBehaviour
commsharbor_audience_createCreate an audience or saved segment. Only allowlisted filter fields are accepted — a saved segment cannot be turned into an arbitrary query over the CRM.Changes data
commsharbor_audience_deleteDelete an audience and its memberships. Contacts themselves are untouched.Destructive
commsharbor_audience_getRead one audience of this organization.Read-only
commsharbor_audience_member_addAdd a CRM contact to a static audience. Only for `static` audiences: a saved segment's membership comes from its filter, not from this route.Changes data
commsharbor_audience_member_removeRemove a contact from a static audience.Destructive
commsharbor_audience_membersList the contacts currently in one audience.Read-only
commsharbor_audience_updateRename an audience or change its saved filter.Destructive
commsharbor_audiencesList static audiences and saved segments.Read-only
commsharbor_auditList tenant audit events. Audit records are never rewritten and never carry recipient PII.Read-only
commsharbor_billingRead 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. A new organization's trial starts with its first domain or send (`state.started`).Read-only
commsharbor_billing_catalogRead 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.Read-only
commsharbor_billing_purchaseBuy 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`** — nobody is charged by accident; the local dev stack completes it with the house's simulated payment. Otherwise, without payment it answers the standard **402 with `accepts[]`** and both doors (a `cred_…` credit token, or `X-PAYMENT`). What it buys is a global entitlement: a pass runs 30 days (stacked after the current one), a top-up 365 days and needs an active pass. The same payment never grants twice, and the Idempotency-Key makes a credit retry safe.Changes data
commsharbor_campaign_createCreate a campaign draft. All three must already exist and be usable: a draft cannot be created against an unverified domain or an unpublished template.Changes data
commsharbor_campaign_getRead one campaign, without any recipient data.Read-only
commsharbor_campaign_launchFreeze 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 resulting set is what gets sent. Replaying the same Idempotency-Key returns the same campaign and produces no second dispatch.Changes data
commsharbor_campaign_reportReconcile campaign deliveries and feedback. Counts only. Which specific person opened what is not something this API answers.Read-only
commsharbor_campaign_updateEdit, 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 template version do not change.Destructive
commsharbor_campaignsList the campaigns of the organization.Read-only
commsharbor_contact_file_getDownload a tenant CSV before expiry. Files expire seven days after creation. Durable audit and row-level results survive the file.Read-only
commsharbor_contact_import_confirmConfirm 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 what keeps a retry from importing everyone twice.Changes data
commsharbor_contact_import_errorsList the row-numbered errors of one import, so the source file can be fixed.Read-only
commsharbor_contact_import_getRead one durable contact import and its current counts.Read-only
commsharbor_contact_import_previewUpload 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 import that does not happen.Changes data
commsharbor_contact_importsList the contact imports of the organization.Read-only
commsharbor_contact_marketing_getRead consent and preference for a CRM contact. Being in the CRM is not permission to email. This resource is where permission actually lives.Read-only
commsharbor_contact_marketing_putRecord permission-based marketing consent. This NEVER restores a previous unsubscribe. If the contact opted out, they stay out and `marketing_enabled` remains false — recording consent after the fact does not undo their decision.Destructive
commsharbor_contacts_exportCreate a CSV export of the organization's contacts, retained for seven days.Changes data
commsharbor_contextResolve 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.Read-only
commsharbor_crm_activities_createCreates a activity in the tenant CRM. Required: note. Needs crm:write on the organization. Returns the created resource with its absolute url.Changes data
commsharbor_crm_activities_deleteDeletes one activity from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.Destructive
commsharbor_crm_activities_getReads one activity from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.Read-only
commsharbor_crm_activities_listLists 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_id, contact_id, company_id, activity_type. Needs crm:read on the organization. Every item carries an absolute url.Read-only
commsharbor_crm_activities_updateUpdates 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.Destructive
commsharbor_crm_companies_createCreates a company in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.Changes data
commsharbor_crm_companies_deleteDeletes one company from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.Destructive
commsharbor_crm_companies_getReads one company from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.Read-only
commsharbor_crm_companies_listLists 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. Needs crm:read on the organization. Every item carries an absolute url.Read-only
commsharbor_crm_companies_updateUpdates 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.Destructive
commsharbor_crm_contacts_createCreates 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 permission to email: consent lives in the `marketing` sub-resource.Changes data
commsharbor_crm_contacts_deleteDeletes 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 `marketing` sub-resource.Destructive
commsharbor_crm_contacts_getReads 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 `marketing` sub-resource.Read-only
commsharbor_crm_contacts_listLists 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 organization. Every item carries an absolute url. Being in the CRM is not permission to email: consent lives in the `marketing` sub-resource.Read-only
commsharbor_crm_contacts_updateUpdates 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 to email: consent lives in the `marketing` sub-resource.Destructive
commsharbor_crm_deals_createCreates 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 units: `value_minor: 10000` with `currency: "USD"` is $100.00, not $10,000.Changes data
commsharbor_crm_deals_deleteDeletes 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"` is $100.00, not $10,000.Destructive
commsharbor_crm_deals_getReads 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 $100.00, not $10,000.Read-only
commsharbor_crm_deals_listLists 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, status. Needs crm:read on the organization. Every item carries an absolute url. Money is in minor units: `value_minor: 10000` with `currency: "USD"` is $100.00, not $10,000.Read-only
commsharbor_crm_deals_updateUpdates 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: 10000` with `currency: "USD"` is $100.00, not $10,000.Destructive
commsharbor_crm_pipelines_createCreates a pipeline in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.Changes data
commsharbor_crm_pipelines_deleteDeletes one pipeline from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.Destructive
commsharbor_crm_pipelines_getReads one pipeline from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.Read-only
commsharbor_crm_pipelines_listLists 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:read on the organization. Every item carries an absolute url.Read-only
commsharbor_crm_pipelines_updateUpdates 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.Destructive
commsharbor_crm_stages_createCreates a stage in the tenant CRM. Required: name. Needs crm:write on the organization. Returns the created resource with its absolute url.Changes data
commsharbor_crm_stages_deleteDeletes one stage from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.Destructive
commsharbor_crm_stages_getReads one stage from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.Read-only
commsharbor_crm_stages_listLists 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:read on the organization. Every item carries an absolute url.Read-only
commsharbor_crm_stages_updateUpdates 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.Destructive
commsharbor_crm_tasks_createCreates a task in the tenant CRM. Required: title. Needs crm:write on the organization. Returns the created resource with its absolute url.Changes data
commsharbor_crm_tasks_deleteDeletes one task from the tenant CRM. Needs crm:write on the organization. A foreign or missing id answers 404.Destructive
commsharbor_crm_tasks_getReads one task from the tenant CRM. Needs crm:read on the organization. A foreign or missing id answers 404.Read-only
commsharbor_crm_tasks_listLists 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, contact_id, assignee_user_id. Needs crm:read on the organization. Every item carries an absolute url.Read-only
commsharbor_crm_tasks_updateUpdates 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.Destructive
commsharbor_data_export_createCreate a seven-day tenant JSON export. Scoped to one organization by construction: an export can never contain another tenant's data.Changes data
commsharbor_data_export_downloadDownload one tenant-scoped JSON export before it expires.Read-only
commsharbor_data_exportsList the tenant data exports, which are retained for seven days.Read-only
commsharbor_dead_letter_replayReplay 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 bad day.Changes data
commsharbor_dead_lettersInspect nominal dead letters. What ended up here after every retry. Records are addressed by opaque ID and carry no recipient PII.Read-only
commsharbor_deletion_cancelCancel a scheduled tenant erasure. That is what the seven days are for: after they pass, there is nothing left to cancel.Changes data
commsharbor_deletion_requestRead 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 scheduled".Read-only
commsharbor_deletion_scheduleSchedule 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 nobody erases the wrong tenant by clicking. Erasure deletes the workspace data in CommsHarbor; the organization itself and what it bought (global entitlements, payment receipts) live in the shared account and stay, as does the audit trail.Changes data
commsharbor_deliverabilityRead deliverability and backlog aggregates. This is the operator's single view of whether sending is healthy. It carries no recipient PII.Read-only
commsharbor_delivery_eventsList normalized SES feedback events for one delivery. Open and Click are ADDITIVE: they are recorded alongside delivery state and never overwrite it.Read-only
commsharbor_delivery_getRead 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.Read-only
commsharbor_domain_createRegister 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 the state observed.Changes data
commsharbor_domain_deliveriesList a domain's deliveries without recipient addresses.Read-only
commsharbor_domain_getRead one stored sending-domain resource. This returns what was stored at the last observation. To look again, call `verify`.Read-only
commsharbor_domain_reportRead domain delivery and feedback aggregates.Read-only
commsharbor_domain_smokeSend 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. That is what keeps this from becoming a way to send mail to arbitrary addresses through someone else's verified domain.Changes data
commsharbor_domain_verifyRefresh 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.Changes data
commsharbor_domainsList 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.Read-only
commsharbor_healthRead deployment health and build. Smoke tests wait for their own commit to appear here instead of racing edge propagation.Read-only
commsharbor_inbox_attachmentGet 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, an agent or a chat, never your credential. It expires in five minutes; the stored object does not expire at all.Read-only
commsharbor_inbox_createCreate 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 `verified` or `active` here — receiving on an unproven domain is relay. For mail to actually arrive, the domain's MX must point at this platform's inbound; until it does, the address exists and simply receives nothing.Changes data
commsharbor_inbox_disableStop 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 customer's data and losing it is not a cleanup. New mail to the address is dropped and counted.Destructive
commsharbor_inbox_getRead one receiving address and whether it is still accepting mail.Read-only
commsharbor_inbox_messageRead 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 what the receiving edge concluded about SPF, DKIM and DMARC. Treat `from` as text the sender chose: `auth` is the part that was checked.Read-only
commsharbor_inbox_messagesList 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.Read-only
commsharbor_inboxesList the addresses this organization receives on. Up to 100, newest first. A disabled address stays listed: its history is still readable.Read-only
commsharbor_logoutRevoke the current session. Bootstrap/CSRF must belong to this browser and session. Other product sessions remain active.Changes data
commsharbor_marketing_smokeSend 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 — you cannot point this at an arbitrary person.Changes data
commsharbor_meRead 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}`.Read-only
commsharbor_message_sendQueue 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 path. Prefer the canonical route.Changes data
commsharbor_messaging_settingsRead the organization's timezone and whether marketing is currently paused.Read-only
commsharbor_messaging_settings_updateUpdate 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.Destructive
commsharbor_operationsList current operational alerts without PII. Covers dead letters, backlog, worker and SNS failures, reputation, paused sending, quota and conservative SES/SNS cost capacity — never with recipient PII.Read-only
commsharbor_operations_refreshRefresh alerts, quota and capacity observations. The GET reads what was last stored; this goes and looks again. Same distinction as domain verification.Changes data
commsharbor_organization_getOpen 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.Read-only
commsharbor_platform_contextConfirm the caller's platform role. Tenant ownership grants nothing here: platform access is a separate, explicit grant.Read-only
commsharbor_platform_crm_activities_createCreates 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 its absolute url.Changes data
commsharbor_platform_crm_activities_deleteDeletes 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.Destructive
commsharbor_platform_crm_activities_getReads 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.Read-only
commsharbor_platform_crm_activities_listLists 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 with the platform_admin grant; tenant ownership does not qualify. Every item carries an absolute url.Read-only
commsharbor_platform_crm_activities_updateUpdates 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 missing id answers 404.Destructive
commsharbor_platform_crm_leads_createCreates 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 its absolute url.Changes data
commsharbor_platform_crm_leads_deleteDeletes 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.Destructive
commsharbor_platform_crm_leads_getReads 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.Read-only
commsharbor_platform_crm_leads_listLists 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 page. Filters: q, stage. Needs a human session with the platform_admin grant; tenant ownership does not qualify. Every item carries an absolute url.Read-only
commsharbor_platform_crm_leads_updateUpdates 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 id answers 404.Destructive
commsharbor_platform_crm_tasks_createCreates 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 absolute url.Changes data
commsharbor_platform_crm_tasks_deleteDeletes 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.Destructive
commsharbor_platform_crm_tasks_getReads 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.Read-only
commsharbor_platform_crm_tasks_listLists 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 previous page. Filters: q, status, lead_id, assignee_user_id. Needs a human session with the platform_admin grant; tenant ownership does not qualify. Every item carries an absolute url.Read-only
commsharbor_platform_crm_tasks_updateUpdates 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 id answers 404.Destructive
commsharbor_preference_getRead preference through a signed capability. The token IS the credential. It reveals preference state and nothing else — no email address, no CRM record.Read-only
commsharbor_preference_token_createCreate 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 the message and the unsubscribe works without a login.Changes data
commsharbor_preference_unsubscribeApply 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 fixed. Calling it twice is the same as calling it once.Changes data
commsharbor_suppression_createSuppress one recipient inside the active organization.Changes data
commsharbor_suppressionsList organization suppressions. Global, organization and SES tenant suppressions are all checked BEFORE quota and before any queue work.Read-only
commsharbor_template_archiveArchive 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.Destructive
commsharbor_template_createCreate a canonical block template draft. Creating never publishes. Nothing can send this template until `publish` freezes a version.Changes data
commsharbor_template_exportExport the latest published HTML, text and MJML.Read-only
commsharbor_template_getRead one template draft owned by this organization.Read-only
commsharbor_template_import_htmlImport 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 exactly like an authored one.Changes data
commsharbor_template_previewCompile 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.Changes data
commsharbor_template_publishPublish an immutable template version. The version's identity is the hash of its compiled content — publishing identical content does not create a second version.Changes data
commsharbor_template_updateUpdate one template draft. Editing a draft can never change what a past delivery rendered: published versions are immutable.Destructive
commsharbor_template_versionsList the immutable published versions of a template.Read-only
commsharbor_templatesList the versioned email templates of the organization.Read-only
commsharbor_tracking_domainRead 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. `null` when the organization has none — then every link falls back to the platform origin.Read-only
commsharbor_tracking_domain_createRegister 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 platform — two tenants claiming the same name would make link routing ambiguous. Registering does not activate: publish the CNAME, then call `verify`.Changes data
commsharbor_tracking_domain_removeRemove 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: this stops NEW messages, not old ones.Destructive
commsharbor_tracking_domain_verifyProbe 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 can move a tracking domain to `active`, and it does so only after reaching this product's own health endpoint ON that host. A host that used to answer and stopped becomes `failed`, and links go back to the platform origin immediately.Changes data
commsharbor_webhook_createCreate 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 dead-letter queue. Store the secret now — it is never shown again.Changes data
commsharbor_webhook_deliveriesList the signed attempts made to one webhook and their retry state.Read-only
commsharbor_webhook_disableDisable a webhook without deleting the evidence of what it already delivered.Destructive
commsharbor_webhook_getRead one webhook, without its signing secret.Read-only
commsharbor_webhooksList the webhook endpoints of the organization, without their signing secrets.Read-only
pricingCurrent public prices and free allowances; no charge.Read-only

Change history

No changes since the first observation. The first snapshot is the baseline.

Source listings
SourceListingFirst seenLast seenVersions
Official MCP Registrycom.commsharbor/commsharbor2 Oct 20262 Oct 20261