https://clickbase.so/mcp/writer) exposes mutating tools. Every tool writes data and acts only within your current team; a site parameter accepts the site’s domain or id. Deletes cannot be undone.
Some tools additionally enforce a role or ownership check on top of team tenancy (deleting a site, editing another author’s annotation, and so on). Those checks are noted on the tool.
Sites
create-site-tool
Writes.
Create a new site (property) in the current team for the given domain. Returns the created site.Respects the team’s plan quota: if the team cannot create another site (quota reached or a lapsed subscription), the call is rejected with a validation error. Parameters
Returns — a
site object: id, domain, timezone, currency, tracking_mode, is_public, has_data, created_at.
update-site-domain-tool
Writes.
Change a site’s domain. Returns the updated site.Parameters
Returns — the updated
site object.
update-site-timezone-tool
Writes.
Change a site’s reporting timezone. Returns the updated site.Parameters
Returns — the updated
site object.
update-site-currency-tool
Writes.
Change a site’s reporting currency. Rejected while the site has a revenue goal. Returns the updated site.Parameters
Returns — the updated
site object.
update-site-tracking-mode-tool
Writes.
Set a site’s tracking mode to “cookieless” or “cookie”. Returns the updated site.Parameters
Returns — the updated
site object.
update-site-sharing-tool
Writes.
Toggle whether a site’s dashboard is publicly shared. Returns the updated site.Parameters
Returns — the updated
site object.
toggle-site-pin-tool
Writes.
Toggle whether a site is pinned to the top of the team’s site list. Returns the updated site.Parameters
Returns — the updated
site object.
record-payment-tool
Writes.
Record a verified payment for a site. Same Action asRequires workspace Admin or Owner (POST /api/sites/{site}/payments. Idempotent ontransaction_id— a replay returns the existing payment. Amount is integer minor units (cents). Currency must match the site currency.
SitePolicy::manage).
Parameters
Returns —
message, transaction_id, and created (whether a new row was written).
delete-payment-tool
Writes.
Delete an API-recorded payment (and its ClickHouse revenue row) byRequires workspace Admin or Owner (transaction_id. Same Action asDELETE /api/sites/{site}/payments. Only deletes payments withprovider=api— never Stripe-ingested rows.
SitePolicy::manage).
Parameters
Returns —
message and deleted (whether a row was removed).
delete-site-tool
Writes.
Permanently delete one of the current team’s sites and queue removal of its analytics events. This cannot be undone.Requires the Owner or Admin role. A regular team Member is tenancy-valid but is rejected with a permission error. Parameters
Returns —
deleted: true and the deleted site’s domain.
Tracking features
enable-error-tracking-tool
Writes.
Turn on JavaScript error tracking for one of the current team’s sites. Returns the updated site.Parameters
Returns — the updated
site object.
enable-web-vitals-tracking-tool
Writes.
Turn on Core Web Vitals performance tracking for one of the current team’s sites. Returns the updated site.Parameters
Returns — the updated
site object.
enable-session-replay-tracking-tool
Writes.
Turn on session replay recording for one of the current team’s sites. Returns the updated site.Parameters
Returns — the updated
site object.
delete-session-replay-tool
Writes.
Permanently delete one session replay (its blobs and every ClickHouse row) from one of the current team’s sites. This cannot be undone.Parameters
Returns —
deleted: true and the session_id.
Goals
create-goal-tool
Writes.
Create a goal on one of the current team’s sites. Choose a match_type (page, event, scroll, outbound, download, button, form, or copy) and an optional match_value to scope it — e.g. a page path for a page/scroll goal, a custom event name for an event goal, or a link/file/label selector for an autocapture goal. A scroll goal also requires scroll_threshold. Returns the created goal.Parameters
Returns — a
goal object: id, display_name, type, match_value, match_operator, scroll_threshold, currency, custom_props, created_at.
update-goal-tool
Writes.
Update a goal’s full definition on one of the current team’s sites — its match type, match value, match operator, scroll threshold, display name, currency and custom property filters. Metrics recompute live from the new definition. Returns the updated goal.Parameters
Returns — the updated
goal object (same fields as create-goal-tool).
batch-create-event-goals-tool
Writes.
Create one event goal per given name on one of the current team’s sites in a single call, skipping any name that already exists as a goal or otherwise fails validation. Returns the number created and the site’s full goal list.Parameters
Returns —
created (the number of goals created) and a goals array of the site’s full goal list.
delete-goal-tool
Writes.
Delete a goal from one of the current team’s sites. Funnels are unaffected — their steps carry their own inline match definitions. This cannot be undone.Parameters
Returns —
deleted: true and the goal_id.
Funnels
create-funnel-tool
Writes.
Create a funnel on one of the current team’s sites from an ordered list of 2-8 inline steps. Each step is a type + optional value; array position is the step order. Returns the created funnel.Parameters
Returns — a
funnel object: id, name, strict_order, steps, created_at.
update-funnel-tool
Writes.
Update a funnel on one of the current team’s sites. Steps are replaced wholesale from an ordered list of inline step definitions (array position is the step order). Returns the updated funnel.Parameters
Returns — the updated
funnel object.
delete-funnel-tool
Writes.
Delete a funnel from one of the current team’s sites. Its steps are removed with it. This cannot be undone.Parameters
Returns —
deleted: true and the funnel_id.
Annotations
create-annotation-tool
Writes.
Pin a new annotation to one of the current team’s site charts. An annotation marks a date on the charts with a note (e.g. “launched pricing change”, “ran a promo”). Provide the instant to anchor it to (annotated_at) and the note text (body). Returns the created annotation.The token must be associated with a user (the annotation’s author); a user-less token is rejected. Parameters
Returns — the created
annotation object.
update-annotation-tool
Writes.
Edit the note text of an annotation on one of the current team’s site charts. An annotation marks a date on the charts with a note; only the body can change — its anchor date is fixed. Returns the updated annotation.Requires you be the annotation’s author, or a team Admin/Owner; anyone else is rejected with a permission error. Parameters
Returns — the updated
annotation object.
delete-annotation-tool
Writes.
Delete an annotation from one of the current team’s site charts. An annotation marks a date on the charts with a note; removing it clears that chart marker. This cannot be undone.Requires you be the annotation’s author, or a team Admin/Owner; anyone else is rejected with a permission error. Parameters
Returns —
deleted: true and the annotation_id.
Stripe
connect-stripe-integration-tool
Writes.
Connect (or reconnect) one of the current team’s sites to Stripe. The “key” argument must be a Stripe RESTRICTED SECRET KEY (starts with rk_live_, or rk_test_ outside production) — it is stored ENCRYPTED and is never returned by any tool. An invalid key, a wrong prefix (sk_/pk_), or a test key used in production is REJECTED with a validation error. On success this also starts importing the account’s product list. Returns the connection status (never the key).The key is a Stripe restricted secret key (
rk_live_…, or rk_test_… outside production). It is stored encrypted and never returned by any tool. A wrong prefix (sk_/pk_), an invalid key, or a test key in production is rejected. On success the account’s product list starts importing.
Parameters
Returns — an
integration connection-status object. The key is never included.
disconnect-stripe-integration-tool
Writes.
Disconnect one of the current team’s sites’ Stripe integration: wipes Stripe-derived payments, subscriptions, and MRR movements, best-effort deletes the remote webhook, then deletes the local integration row. API/manual payments are kept. This cannot be undone.Parameters
Returns — an
integration object with connected: false.
update-stripe-product-selection-tool
Writes.
Set which Stripe products count as revenue for a site (the ingestion allowlist), then start importing the account’s Stripe history. Pass the full list of product external ids to keep; an empty list is valid and simply stops future ingestion. The allowlist filters ingestion only — it never removes already-imported history. Returns the Stripe connection status including live backfill progress.Parameters
Returns — an
integration object including live backfill progress.
align-site-currency-tool
Writes.
Set a site’s reporting currency to its connected Stripe account’s settlement currency, so the site’s revenue always reconciles with the merchant’s Stripe statement. Pass the three-letter ISO 4217 code (e.g. “EUR”). Returns the Stripe connection status.Parameters
Returns — an
integration connection-status object.
retry-stripe-resource-sync-tool
Writes.
Retry a failed or stranded Stripe backfill resource for a site. This RESUMES the import from where it stopped (its persisted cursor) — it never restarts from the beginning, so it will not re-import everything. Valid resources: products, charges, refunds, disputes, invoices, subscriptions, customers. The resource must already have a sync row. Returns the Stripe connection status including live progress.This resumes the import from its persisted cursor — it never restarts from page zero, so nothing is re-imported. The site must have a Stripe integration connected, and the resource must already have a sync row (otherwise the call is rejected). Parameters
Returns — an
integration object including live sync progress.
