Skip to help content
RightMessage
MCP referenceReference

MCP tools for snippet, data status, previews, and built-in guides

Retrieve installation code, inspect tracking freshness, build audience preview URLs, and request text-only implementation guides.

Available on the Grow, Scale, and Pro plans.

Updated

View as Markdown

Use these MCP tools to get your installation snippet, check when tracking data last arrived, create audience preview links, or request setup guides. None publishes configuration. A preview link is not a sandbox. Opening it can still run forms, redirects, widgets, and flows.

MCP setup access and examples

Snippet and status tools accept an optional string project_id. Preview requires it. Calls follow the shared MCP authorization and project-selection rules. Invalid IDs, unresolved projects, cross-project access, and unavailable MCP access return errors.

The three guide tools do not take a project ID or resolve project data. They return text instructions for clients that cannot use MCP prompts.

Examples are illustrative and were not executed. Requests are tools/call parameters; responses show decoded content or labeled excerpts.

get-snippet-code

Returns the project's complete tracking snippet for installation on the website.

Arguments: optional project_id string.

JSON
{"name":"get-snippet-code","arguments":{"project_id":"123456789"}}

Illustrative response excerpt, showing metadata only:

JSON
{"project_id":"123456789"}

The complete response has three fields: project_id, snippet, and instructions. snippet is the complete script-tag string, including the project ID, loader, cloaking styles, and error timeout. Use the returned string rather than assembling your own loader from this excerpt. The default script host is https://tag.rightmessage.com; the uncloaking timeout is 20,000 milliseconds.

instructions says to install the snippet in the head of every page. It also explains immediate analytics suppression using window.RightMessage.disableAnalytics = true before the snippet or ?__rm_disable_analytics=true in the page URL. Suppression affects reporting and connected analytics providers only. It does not disable form submissions, redirects, widgets, or flow actions.

Analytics suppression is separate from development mode. window.RightMessage.useDraftConfig = true opts into the authenticated draft debugger; it is not a public, analytics-free staging switch. A browser without a debugger token is sent through debugger authorization and may need to sign in. Use disableAnalytics when you only want to suppress tracking without requesting unpublished configuration.

Retrieving code does not install it or prove that it fired. No project identifier returns Unable to determine project identifier for this team. The operation does not edit or publish configuration.

get-data-status

Reports the timestamp of the most recently received tracking data.

Arguments: optional project_id string.

JSON
{"name":"get-data-status","arguments":{"project_id":"123456789"}}
Text
Tracking snippet is active. Last data received: 2026-10-13T12:00:00Z

Data older than seven days returns a stale-data message with the timestamp and elapsed days. No recorded timestamp returns:

Text
No tracking data received yet. The snippet may not be installed or may not have fired yet.

This is not a live browser inspection. A quiet site, removed snippet, blocked request, or reporting failure can prevent an active result. A reporting failure can return the same no-data message as a site with no tracking data, so that message alone does not establish a broken installation.

The first successful check can record that the project has received data. It does not change the website draft or publish configuration.

get-preview-url

Builds a legacy preview URL with a selected audience and analytics suppression. The link alone does not authorize access to draft configuration. Draft loading requires an authorized dashboard session or debugger token.

ArgumentTypeRequiredDefault and behavior
project_idstringYesPublic project ID.
urlstringYesNonempty page URL to preview.
segmentsarrayYesSegment IDs or names; [] requests unmatched audience mode.
emailstringNoSimulated integration email address.
custom_fieldsobjectNoProvider field-ID/key to simulated value; open key-value schema.
tagsarrayNoSimulated provider tag IDs.
listsarrayNoSimulated provider list IDs.

segments, tags, and lists declare string-or-number items. Segment resolution actually uses nonempty strings; nonstring or unresolved entries can produce warnings. IDs match exactly, names case-insensitively. When multiple selected segments belong to one dimension, the last resolved selection wins. Ambiguous names are not a reliable way to identify a segment; prefer IDs.

For a segment preview, the returned payload contains segments, an object keyed by dimension ID with segment-ID values. When simulated provider data is supplied and an active integration exists, it also contains context, keyed by provider, with email, customFields, tags, and lists as applicable. The tool reads draft configuration first for segment resolution but finds the active integration from saved connection state.

JSON
{"name":"get-preview-url","arguments":{"project_id":"123456789","url":"https://example.com/","segments":[]}}

Illustrative response excerpt:

JSON
{"preview_url":"https://example.com/?rmpreview=1&__rm_disable_analytics=true","audience":"unmatched","resolved_segments":[]}

Unmatched responses also include audience_note. They do not contain an encoded audience payload. Use a fresh private browser session when testing an unmatched audience; the link is not a promise to erase an existing browser's identity or segment state. Empty-segment mode rejects supplied visitor context rather than silently creating an identified audience.

For a resolved segment audience, the response contains preview_url, payload, and resolved_segments, an array of human-readable Dimension = Segment descriptions. It adds warnings when needed. The URL encodes the payload using base64, not encryption. Avoid real addresses or private field values in shareable links. Provider context without a connected integration is omitted with a warning.

Missing required inputs, unresolved audience choices, or invalid combinations return errors. The handler only requires a nonempty URL; it does not prove the destination belongs to the project or that the snippet is installed there.

Creating a link has no website effect. Opening it runs the destination page and opts into the draft debugger. The returned rmpreview=1 flag contains no signed debugger credential. A browser without a token is sent through debugger authorization and may need to sign in. A failed draft request can fall back to published configuration, but the browser may still redirect for authorization. Use the dashboard's authorized preview and debugger workflow to verify unpublished changes. This link alone does not prove that the draft loaded.

The runtime also limits the encoded test payload to 10,000 characters and validates dimension/segment ID prefixes and provider context keys. The URL tool does not enforce all those runtime checks. Analytics suppression is not suppression of forms, redirects, or provider-affecting flow actions. Confirm those effects before interacting with the preview.

get-survey-builder-guide

Returns the built-in survey methodology and five-phase workflow as plain text.

Arguments: optional goal string, default build a survey to segment visitors. No project ID.

JSON
{"name":"get-survey-builder-guide","arguments":{"goal":"Learn what WorkForge visitors need before recommending a service"}}

Illustrative response excerpt:

Text
Your goal is to help the user: Learn what WorkForge visitors need before recommending a service

The text covers context gathering, an interview, strategy approval, resource creation order, and draft handoff. It includes branching, scoring, and outcome guidance. The tool does not run those steps, create a survey, query a provider, or publish anything. There are no configuration validation errors because the request supplies a goal, not a survey definition.

get-smart-cta-builder-guide

Returns instructions for building targeted CTA flows from existing visitor data.

Arguments: optional goal string, default show targeted CTAs based on visitor data. No project ID.

JSON
{"name":"get-smart-cta-builder-guide","arguments":{"goal":"Route WorkForge customers to onboarding and prospects to a trial"}}

Illustrative response excerpt:

Text
Route on EXISTING DATA first. Only add questions for genuine data gaps.

The text discusses audience conditions, offers, widget placement, approval, and keeping implementation in draft. It does not inspect your current integration or create a CTA. Use actual tool schemas for implementation rather than treating every illustrative condition in the guide as executable hosted-MCP syntax.

get-quiz-results-page-guide

Returns a quiz-results-page implementation guide with supplied details substituted into the text.

ArgumentTypeRequiredDefault
quiz_segment_group_idstringNoEmpty; the guide tells the assistant to discover it.
page_urlstringNoEmpty; the guide tells the assistant to ask or propose a destination.
cta_typestringNoEmpty; suggested values are book_call, free_trial, download, and custom.
page_builderstringNohtml; suggestions also include wordpress, webflow, and other.

The suggested values are not enforced enums. No nested schema or project selection is accepted.

JSON
{"name":"get-quiz-results-page-guide","arguments":{"quiz_segment_group_id":"dim_example","page_url":"https://example.com/results","cta_type":"free_trial","page_builder":"html"}}

Illustrative response excerpt showing the substituted page URL:

Text
https://example.com/results

The returned text is not a created page, deployable artifact, or verified runtime integration. The tool does not visit the URL, modify a CMS, or execute the guide's code examples. Use the current runtime and tool references before implementation. All three guide tools are instruction retrievals, not approval to perform the described actions.

Still need a hand?

Tell us what you’re trying to do and where you’re getting stuck.

support@rightmessage.com