Skip to main content

MCP server

The Webmarketer MCP (Model Context Protocol) server lets you connect an AI assistant to your Webmarketer data. Once connected, the assistant can list your projects, query your marketing performance, analyze your attribution models or diagnose a tracking issue, and update some of your data, in response to a question asked in natural language.

MCP is an open protocol, supported by most AI assistants on the market. Where the API is meant for developers writing an integration, the MCP server is meant for the assistant itself: it describes the available tools to the assistant and how to use them correctly.

Server URLhttps://mcp.webmarketer.io/mcp
TransportHTTP (Streamable HTTP)
AuthenticationOAuth 2.1, with your Webmarketer account
AccessRead, and write for some tools

Connecting an assistant​

Connecting takes two steps:

  1. Declare the server URL in your assistant
  2. On first use, the assistant redirects you to the Webmarketer sign-in page. Sign in and authorize access: the assistant then receives a token that lets it query Webmarketer on your behalf

There is no key or token to copy: the assistant registers and authenticates on its own.

Claude​

From claude.ai or the Claude Desktop app, open Settings > Connectors, click Add custom connector, then enter the server URL:

https://mcp.webmarketer.io/mcp

With Claude Code, add the server from the command line:

claude mcp add --transport http webmarketer https://mcp.webmarketer.io/mcp

ChatGPT​

From chatgpt.com, open Plugins > Add > Add custom MCP server, then enter the server URL. Authentication uses OAuth.

Cursor​

Add the server to the ~/.cursor/mcp.json file (or .cursor/mcp.json at the root of a project):

{
"mcpServers": {
"webmarketer": {
"url": "https://mcp.webmarketer.io/mcp"
}
}
}
Other assistants

Any MCP-compatible assistant that supports the HTTP transport and OAuth authentication can connect, provided its OAuth redirect address is one of those listed above or a local address (localhost). Assistants installed on your computer usually use a local address.

Access rights​

The assistant acts with your own rights: it reaches the same workspaces and projects as you do, and every action is subject to the role you hold. A tool that requires a permission you lack returns an error.

Most tools only read your data. Some change it: they create or update event types, set the states and statistics of events, or record offline interactions (see Writing data). The server flags these tools as writes, so that your assistant can ask for your confirmation before calling them; whether it asks depends on the assistant and its settings. A write also requires the matching edit permission in your role.

The token handed to the assistant is short-lived (15 minutes), and the assistant renews it on its own. The token is only valid for the MCP server.

Available tools​

The server exposes the tools below. The assistant picks the tools to call based on your question: you don't need to name them.

Discovery and context​

ToolRole
whoamiIdentifies the connected account and lists the workspaces and projects it can reach. The entry point of every session
list_workspacesLists the workspaces you can reach (id, name, slug)
list_projectsLists the projects of a workspace (name, domain, currency, creation date)
get_projectDescribes a project: domain, currency, workspace, creation date, setup state and data retention
get_project_earliest_dateGives the earliest date data is available for, based on the project's creation and the workspace's retention
get_project_fieldsLists the project's event fields: key, label, type, entity and business description
list_event_typesLists the tracked event types, with their fields and configuration
get_documentation_indexLists the pages of this documentation (title, description, URL)
get_documentation_pageRetrieves the content of a page of this documentation

Marketing analytics​

ToolRole
query_indexAggregates marketing data from the analytics index: metrics, ad platform dimensions, date range and attribution model
get_event_insightsAggregates event metrics (count, revenue…) over a date range, on the date the events occurred
get_sql_schemaDescribes the data warehouse schema: tables, columns, primary keys and relationships
dry_run_sqlValidates a SQL query without running it and estimates the amount of data processed
run_sqlRuns a SQL query on the data warehouse (100 rows by default, 500 at most)
list_attribution_modelsLists the project's attribution models
get_attribution_pathsDetails how one event was attributed: the interactions of its conversion path and the credit each received, per attribution model
compare_attribution_modelsMeasures the same metrics, over the same date range, under several attribution models side by side
get_non_attributable_reportExplains why conversions were credited to the non-attributable node, cause by cause
list_custom_columnsLists the project's custom columns: the KPIs defined from its metrics (CPL, ROAS, conversion rate…)

Traffic sources and ad platforms​

ToolRole
list_integrationsLists the ad platform accounts configured on the project (one Google Ads account, one Meta account…)
get_integrations_descriptionDescribes the project's ad platform types (Google Ads, Meta…) and the hierarchy of their nodes
get_ads_filtersLists the filters available to target ad platform nodes
search_ads_nodesSearches the ad platform nodes (campaigns, ads…) matching a filter
get_ads_nodesReads ad platform nodes you know by id, or the children of a node
get_integration_sync_statusReports whether an ad platform account's spend and clicks were imported over a period, and which ads fail their tracking URL checks
get_credentials_statusReports the state of the ad platform connections: validity, expiry, failed refreshes
list_custom_ads_campaignsLists the campaigns of a custom connector
list_custom_ads_outlaysLists the spend declared on a campaign of a custom connector
list_custom_interaction_rulesLists the custom interaction rules, in the order they are evaluated
simulate_interaction_rule (coming soon)Measures which sessions a custom interaction rule would attach, before it is saved
get_interaction_rules_recompute_status (coming soon)Tells whether historical figures already reflect the last change to the interaction rules

Events​

ToolRole
search_eventsSearches the project's individual events (orders, leads, calls…), most recent first, with their fields and metrics
get_eventReads one processed event: its type, fields, states, statistics and user
get_raw_eventReads an event exactly as it was received, before processing, to check what was sent

Interactions and users​

ToolRole
search_usersSearches users with filters on their fields, events and metrics
get_user_metricsLists the states and statistics recorded on a user's events
get_customer_journeyReturns a user's profile and customer journey: sessions and offline interactions, across devices
search_interactionsSearches a project's interactions: sessions and offline interactions
list_traffic_filtersLists the project's traffic filters and their rule
list_excluded_sessionsCounts, over time, the sessions excluded by traffic filters

Diagnostics and data quality​

ToolRole
search_trash_eventsSearches rejected events and the reason they were rejected
get_trash_events_count_by_dateCounts rejected events per day, to spot a spike
get_alertsLists a project's alerts: credentials, ad platform sync, tracking, rejected event limits
get_tracking_statusGives the result of the last check of the tracking subdomain (DNS, SSL certificate)
get_tracking_scriptGives the exact tracking script to install on the project's website
get_workspace_alertsLists a workspace's alerts: invoice issues, subscription status changes, quota limits
list_uptime_checksReports the availability and response time of your ads' landing pages

Billing and plan limits​

ToolRole
get_workspace_billingGives the workspace's plan, subscription status and upcoming invoice
get_billing_usageGives the plan's limits (projects, integrations, monthly interactions…) and the current usage
get_workspace_limitationsGives the functional limits of the workspace's plan
get_project_limitationsGives the functional limits of the plan a project is on

Dashboards and audiences​

ToolRole
list_dashboardsLists the project's dashboards
list_widgetsLists the widgets of a dashboard and their configuration
get_widget_data (coming soon)Returns the data a dashboard widget displays
list_audiencesLists the project's saved audiences, with their definition and size
get_audienceDetails a saved audience: full definition, last known size and size history
preview_audienceValidates an audience definition and returns its size and a sample of users

Writing data​

These tools change your data. Your assistant can ask for your confirmation before calling them (see Access rights).

ToolRole
create_event_typeCreates an event type and the fields its events carry
update_event_typeChanges an event type: its name, its fields (added, changed or removed one by one) or whether it is attributable
update_event_stateSets a state on an event, such as a qualified lead or a signed deal
update_event_statisticSets a statistic of an event, such as a quote amount or a CRM revenue
ingest_offline_interactionRecords an offline interaction (phone call, store visit, CRM lead) on a campaign of a custom connector
ingest_event (coming soon)Sends an event and returns its id, or the reason it was refused
upsert_custom_ads_campaign (coming soon)Creates or updates a campaign of a custom connector
upsert_custom_ads_outlay (coming soon)Declares the spend of a campaign of a custom connector
create_interaction_rule (coming soon)Creates a custom interaction rule
update_interaction_rule (coming soon)Changes a custom interaction rule
delete_interaction_rule (coming soon)Deletes a custom interaction rule
reorder_interaction_rules (coming soon)Changes the order in which the custom interaction rules are evaluated
trigger_interaction_rules_recompute (coming soon)Reapplies the custom interaction rules to the project's history
Interaction rules

A change to the custom interaction rules applies retroactively: the project's whole history is recomputed, and the figures attributed to your campaigns change accordingly.

Reading the answers right​

Two Webmarketer-specific notions determine whether an answer is right. The assistant is told about them, but keeping them in mind helps you phrase your questions and check its answers.

The attributed date. query_index filters on the date of the marketing interaction, not the date of the conversion: a purchase made on February 15 and attributed to a click on February 10 shows up on February 10. get_event_insights, on the other hand, filters on the date the event occurred. See Attribution dates.

Attribution credits. Attributed values are credits, split across the touchpoints of each conversion path, not counts: 4,866.39 attributed orders means 4,866.39 credits, not 4,866 orders. See Attribution models.

Example questions
  • Which Google Ads campaigns generated the most sales last month, with linear attribution?
  • Compare the first-click and last-click attribution models on my September leads.
  • Why didn't I receive any events yesterday on my project?