Skip to main content
This page lists 13 tools. Each tool shows only to members whose role grants its access. The descriptions are the text that the MCP server sends to AI clients.

List tracking numbers

List tracking numbers with their label, attribution (source, medium, campaign), pool, and updated_at. SMS bodies are never returned. Arguments This tool takes no arguments.

List calls

List the latest 50 calls with their outcome tag, without caller phone numbers. For a recording, call roofkit.communications.recordings.playback_link.get with the call id. Arguments This tool takes no arguments.

Get JobNimbus status

Deprecated: use roofkit.integrations.status with provider jobnimbus. This alias stays for one release. Read JobNimbus connection status. Do not send API keys in the tool body. Arguments This tool takes no arguments.

Get connector status

Read the status of the native integrations: status, connected, last health check, last successful sync, the last sync run, and the last error with a safe error type. Send provider for one, or omit it for all. It never returns credentials. Connect and disconnect stay in Settings: use settings_handoff_url. Arguments
string
jobnimbus, meta_ads, google_ads, microsoft_ads, or google_analytics. Allowed values: jobnimbus, meta_ads, google_ads, microsoft_ads, google_analytics.

List connector sync runs

List the recent sync runs of one integration, newest first, with status, counts, and the error type. limit is 1 to 50, default 20. A status filter reads the newest 200 runs. For google_analytics each run is one conversion event delivery. Arguments
string
required
jobnimbus, meta_ads, google_ads, microsoft_ads, or google_analytics. Allowed values: jobnimbus, meta_ads, google_ads, microsoft_ads, google_analytics.
string
Allowed values: queued, running, succeeded, failed, skipped.
integer
Minimum 1. Maximum 50.

Refresh connector health

Check the saved connection with the provider now, as the Refresh button in Settings does. It calls the provider API, records a connection check, and updates the connection status. It returns the new status. A connector with no saved credential answers refreshed: false. Arguments
string
required
meta_ads, google_ads, microsoft_ads, or google_analytics. Allowed values: meta_ads, google_ads, microsoft_ads, google_analytics.

Retry connector sync run

Retry a failed or skipped sync run, as the Retry button in Settings does. For meta_ads, google_ads, and microsoft_ads it does not replay that one run: it queues a full catalog and insights sync of the connection. For google_analytics it queues that one conversion event again, which sends it to Google Analytics. Requires an idempotency key. Arguments
string
required
meta_ads, google_ads, microsoft_ads, or google_analytics. Allowed values: meta_ads, google_ads, microsoft_ads, google_analytics.
string
required
string
required
A run id from roofkit.integrations.sync_runs.list.

List DNI pools

List the active and paused DNI pools, highest priority first: name, type, status, match rules, fallback, exhaustion mode, numbers, and updated_at. Send updated_at as expected_updated_at to roofkit.communications.pools.save. Forwarding and whisper settings stay in the app. Arguments This tool takes no arguments.

Update tracking number

Update the attribution (source, medium, campaign) or the label of one tracking number. Only the fields sent change, and calls and texts that arrive later carry them. A label alone is the legacy “source / campaign” form. Send expected_updated_at from roofkit.communications.numbers.list to refuse the write over a newer change. The forwarding destination, purchase, and release stay in the app. Arguments
string
required
A number id from roofkit.communications.numbers.list.
string
Where callers see the number, for example google. At most 100 characters.
string
For example cpc or organic. An empty string clears it. At most 100 characters.
string
An empty string clears it. At most 100 characters.
string
Legacy “source / campaign” label. Prefer source and campaign. At most 200 characters.
string

Set number DNI pool

Move one tracking number into an active DNI pool, or out of every pool with pool_id null. A number sits in one pool at most. Website visitors get numbers from the new pools at once. The Phone System plan caps the pool size. Arguments
string
required
A number id from roofkit.communications.numbers.list.
string | null
required
A pool id, or null to leave every pool.

Save DNI pool

Create a DNI pool, or change the rules of one pool: name, type, status, match rules, priority, fallback, exhaustion mode, and numbers. A rule the call leaves out keeps its value. Website visitors get numbers by the new rules at once. Overlapping rules answer CONFLICT. Forwarding and whisper settings stay in the app. Arguments
string
The pool to change. Leave it out to create a pool.
string
At most 120 characters.
string
Allowed values: static, dni_pool, landing, source_campaign, fallback.
string
Allowed values: active, paused.
number
string
Where callers see the number, for example google. At most 100 characters.
string
For example cpc or organic. An empty string clears it. At most 100 characters.
string
An empty string clears it. At most 100 characters.
string
At most 100 characters.
string
At most 200 characters.
boolean
string
string
string
Allowed values: fallback_pool, static_default, keep_original, block.
string[]
Every number of the pool.
number
Minimum 1. Maximum 1440.
string
updated_at of the pool from roofkit.communications.pools.list.

Set call outcome tag

Set “What happened” on one call: booked, quoted, not_a_fit, or spam, or null to clear it. The tag shows at once in the call log and the call reports. Send expected_outcome_tag from roofkit.communications.calls.list to refuse the write with CONFLICT when someone changed the tag first. Arguments
string
required
A call id from roofkit.communications.calls.list.
string | null
required
Allowed values: booked, quoted, not_a_fit, spam, null.
string | null
The tag as you read it. Null means no tag. Allowed values: booked, quoted, not_a_fit, spam, null.
Return a playback link for the recording of one call. The link works for 15 minutes without sign-in, so share it only with people who may hear the call. The request and every play are logged in the recording access log of the workspace. Needs communications.manage too. Arguments
string
A call id from roofkit.communications.calls.list.
string