Overview
The Commerce Grid Audience Briefs MCP lets your AI application or agent work with Commerce Grid audience planning briefs. Your agent can research AI-recommended audience segments, review audience insights, create briefs, find existing briefs, and share them through a link. This is the MCP surface of the Commerce Grid Audience Planner — the planning tool in the Commerce Grid UI (Data tab) that turns a campaign brief into recommended audiences. It lets your agent create and review audience planning briefs programmatically instead of through the UI. Typical uses include:- Researching audiences for a campaign before committing to a brief
- Creating audience planning briefs from campaign details in natural language
- Reviewing and sharing existing briefs with stakeholders
Add the endpoint
Add the Audience Briefs MCP as an MCP server in your MCP-compatible client or agent environment:Access to the Commerce Grid Audience Briefs MCP is set up by Criteo. Please reach out to your Criteo representative to get credentials for your use case before connecting.
Client selection
Most tools operate under a single Commerce Grid client (contract) and require aclientId parameter.
- Call
get_available_clientsfirst to list the clients available to the connected credentials. - If more than one client is returned, the agent asks you which one to use.
- The selected client ID is then passed as
clientIdto every client-scoped tool.
Results are limited to the clients accessible to the credentials used by the MCP client. A brief can only be retrieved or shared under the client it belongs to.
Tools
The Audience Briefs MCP exposes eight tools:| Tool | Type | Description |
|---|---|---|
get_available_clients | Read | Lists the clients (contracts) available to you. |
get_recommended_segments | Read | Returns AI-recommended audience segments for campaign parameters, without creating a brief. |
get_segment_insights | Read | Returns audience insights for a list of segments. |
create_brief | Write | Creates and processes a brief, then returns recommended segments. |
create_brief_with_segments | Write | Creates a brief with pre-selected segments. |
query_briefs | Read | Searches existing briefs for a client. |
get_brief_by_id | Read | Returns the details of one brief. |
share_brief | Write | Creates a shareable link for a brief. |
Client discovery
get_available_clients
Returns the clients (contracts) available to you. If more than one client is returned, choose the one to use; its ID must then be passed as clientId to client-scoped tools.
This tool takes no parameters.
Segment research
These tools are read-only and do not persist anything. Use them to explore segments before deciding whether to create a brief.get_recommended_segments
Returns AI-recommended audience segments based on campaign parameters, without creating a brief. Returns up to 30 recommended segments with relevance scores, audience sizes, and targeting details.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
brand | string | Yes | — | Brand name for the campaign. |
countryCode | string | Yes | — | Country code, e.g. US, GB, FR, DE. |
description | string | Yes | — | Description of the campaign goals and target audience. |
products | string | No | null | Comma-separated product keywords to narrow segment matching. |
get_segment_insights
Returns audience insights for a list of segments across five dimensions: product categories (UCs, from the Universal Catalog), brands, publisher content categories (PCAs), gender, and buying power. Each insight is benchmarked against a country baseline with an affinity score. Use it to analyze segments before deciding which ones to include in a brief.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
countryCode | string | Yes | — | Country code, e.g. US, GB, FR, DE. |
segmentsJson | string | Yes | — | JSON array of segments. Each segment must include skuKeywords (string) and segmentSize (number). |
segmentsJson value:
Brief creation
Both tools persist a new brief under the selected client and return it, including the generatedbriefId (UUID) that get_brief_by_id and share_brief require. Use parameter values exactly as provided by the user — if a required value is missing, the agent should ask for it rather than infer it.
create_brief
Creates and processes an audience planning brief from campaign details, then returns AI-recommended audience segments.
Processing may take 10–30 seconds.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
name | string | Yes | — | Name of the brief. |
brand | string | Yes | — | Brand name for the campaign. |
brief | string | Yes | — | Description of the campaign goals and target audience. |
budget | number | Yes | — | Campaign budget in US dollars, e.g. 50000.00. Always USD, regardless of countryCode — there is no currency parameter. |
countryCode | string | Yes | — | Country code, e.g. US, GB, FR, DE. |
startDate | string | Yes | — | Campaign start date in YYYY-MM-DD format. |
endDate | string | Yes | — | Campaign end date in YYYY-MM-DD format. |
advancedSettings | boolean | No | false | Enables advanced targeting settings. |
keywords | string | No | null | Comma-separated targeting keywords. |
products | string | No | null | Comma-separated product keywords for targeting. |
excludeTerms | string | No | null | Comma-separated terms to exclude from targeting. |
create_brief_with_segments
Creates a brief with pre-selected segments, typically taken from get_recommended_segments output. Unlike create_brief, it skips the segment recommendation step: it fetches insights for the provided segments and persists everything.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
name | string | Yes | — | Name of the brief. |
brand | string | Yes | — | Brand name for the campaign. |
description | string | Yes | — | Description of the campaign goals and target audience. |
budget | number | Yes | — | Campaign budget in US dollars, e.g. 50000.00. Always USD, regardless of countryCode — there is no currency parameter. |
countryCode | string | Yes | — | Country code, e.g. US, GB, FR, DE. |
startDate | string | Yes | — | Campaign start date in YYYY-MM-DD format. |
endDate | string | Yes | — | Campaign end date in YYYY-MM-DD format. |
segmentsJson | string | Yes | — | JSON array of segments to include. See Segment format. |
keywords | string | No | null | Comma-separated targeting keywords. |
products | string | No | null | Comma-separated product keywords. |
excludeTerms | string | No | null | Comma-separated terms to exclude. |
segmentsJson contains:
- Required:
skuKeywords,segmentSize,segmentType,description,relevanceScore - Optional:
dataProviderId,externalSegmentId,alreadyCreated
Other segment types do not require a configuration.
Brief management
query_briefs
Searches existing briefs for the selected client.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
searchTerm | string | No | null | Filters by brief name or brand. |
brand | string | No | null | Filters by brand name. |
country | string | No | null | Filters by ISO country code, e.g. US. |
status | string | No | null | Filters by brief status: SUBMITTED, PROCESSING, PROCESSED, or ARCHIVED. |
page | integer | No | 1 | Page number, 1-based. |
pageSize | integer | No | 10 | Results per page, maximum 100. |
get_brief_by_id
Returns detailed information about one brief. The brief must belong to the selected client.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
briefId | string (UUID) | Yes | — | Unique identifier of the brief. |
share_brief
Creates a shareable link for a brief. If the brief is already shared, returns the existing share link with the brief details.
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
clientId | string | Yes | — | Client ID returned by get_available_clients. |
briefId | string (UUID) | Yes | — | Unique identifier of the brief. |
email | string | No | null | Email address of the recipient. |
expirationDays | integer | No | 30 | Number of days from now until the link expires. |
Typical workflow
1
Select the client
Call
get_available_clients to get the clientId. If several clients are available, pick the right one.2
Research segments
Call
get_recommended_segments, then get_segment_insights to explore and compare segments. Nothing is saved at this stage.3
Create the brief
Call
create_brief_with_segments with the segments you selected, or create_brief to let the MCP recommend segments for you. The response includes the new brief’s briefId — keep it for the next steps.4
Review the brief
Call
get_brief_by_id with the briefId from the previous step to review the full brief, or query_briefs to search by name, brand, country, or status when you do not have the ID.5
Share the brief
Call
share_brief to get a shareable link.Example questions
- “Which Commerce Grid clients can I access through this connection?”
- “Recommend audience segments for a running shoes campaign by Acme in the US targeting active millennials.”
- “Show me audience insights for the top five recommended segments.”
- “Create a brief named ‘Acme Spring Running’ for Acme in the US, budget $50,000, from 2026-03-01 to 2026-04-30, using the segments we selected.”
- “List my processed briefs for Acme in the US.”
- “Share the ‘Acme Spring Running’ brief with jane.doe@example.com for 14 days.”