Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Adobe Marketing Agent MCP connector

OAuth 2.1/DCRMarketingAnalyticsAI

Connect to Adobe Marketing Cloud. Manage campaigns, analytics, and journeys using a natural-language AI assistant.

Adobe Marketing Agent MCP connector

  1. Terminal window
    npm install @scalekit-sdk/node

    Full SDK reference: Node.js | Python

  2. Add your Scalekit credentials to your .env file. Find values in app.scalekit.com > Developers > API Credentials.

    .env
    SCALEKIT_ENVIRONMENT_URL=<your-environment-url>
    SCALEKIT_CLIENT_ID=<your-client-id>
    SCALEKIT_CLIENT_SECRET=<your-client-secret>
  3. Register your Adobe Marketing Agent MCP credentials with Scalekit so it handles the token lifecycle. You do this once per environment.

    Dashboard setup steps

    Adobe Marketing Agent MCP uses Dynamic Client Registration (DCR) — no client ID or secret is required. The only step is creating a connection in Scalekit and authorizing your Adobe account.

    1. Create a connection in Scalekit

      • In the Scalekit dashboard, go to AgentKitConnectionsCreate Connection.
      • Search for Adobe Marketing Agent MCP and click Create.
      • Note the Connection name — use this as connection_name in your code (e.g., adobemarketingagentmcp).
    2. Authorize your Adobe account

      Generate an authorization link and open it in a browser to complete the Adobe OAuth flow.

      The user is redirected to Adobe to sign in and grant access. Scalekit stores the token and injects it automatically into every tool call — no further configuration is needed.

  4. quickstart.ts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENV_URL,
    process.env.SCALEKIT_CLIENT_ID,
    process.env.SCALEKIT_CLIENT_SECRET,
    )
    const actions = scalekit.actions
    const connector = 'adobemarketingagentmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Adobe Marketing Agent MCP:', link)
    process.stdout.write('Press Enter after authorizing...')
    await new Promise(r => process.stdin.once('data', r))
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'adobemarketingagentmcp_core-context-management-widget',
    toolInput: {},
    })
    console.log(result)

Connect this agent connector to let your agent:

  • Preferences core-user — Read or clear the user’s persisted preferences including sandbox, dataview, org, and region settings
  • Dataview core-switch sandbox, core-set — Update the active sandbox and/or dataview for the session in a single call
  • Org core-switch — Switch to a different Adobe organization by exchanging the current IMS token
  • Sandbox core-set — Set the active Adobe Experience Platform sandbox for the current session
  • Feedback core-provide — Submit user feedback about the AI assistant experience; automatically classifies sentiment and calls the feedback API
  • Decision core-plan completion — Submit the user’s approval or rejection for a pending plan before it is executed

Send a query to the Adobe Marketing AI assistant

Use adobemarketingagentmcp_adobe-marketing-agent-mcp-widget to ask questions about your campaigns, audiences, journeys, and Analytics data in plain English.

const result = await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_adobe-marketing-agent-mcp-widget',
toolInput: {
query: 'What are my top performing audience segments this month?',
},
});
console.log(result);

Switch sandbox and dataview

Use adobemarketingagentmcp_core-switch_sandbox_dataview to update the active Adobe Experience Platform sandbox and Customer Journey Analytics dataview in a single call.

const result = await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-switch_sandbox_dataview',
toolInput: {
sandboxName: 'prod',
dataviewName: 'My Analytics View',
},
});
console.log(result);

Poll an async task

Some Adobe Marketing operations run asynchronously. Submit a query with execution_mode: "async", then poll with adobemarketingagentmcp_core-get_task until the task completes.

// Step 1 — submit async query
const submitted = await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_adobe-marketing-agent-mcp-widget',
toolInput: {
query: 'Generate a full audience overlap report',
execution_mode: 'async',
},
});
const taskId = submitted.data?.task_id;
// Step 2 — poll until complete
let cursor = 0;
while (true) {
const status = await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-get_task',
toolInput: { task_id: taskId, cursor },
});
cursor = status.data?.cursor ?? cursor;
if (status.data?.status === 'completed') {
console.log(status.data.result);
break;
}
await new Promise(r => setTimeout(r, 2000));
}

Read and clear user preferences

User preferences (sandbox, dataview, org, region) persist for 90 days. Use adobemarketingagentmcp_core-user_preferences to read or clear them.

// Read current preferences
const prefs = await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-user_preferences',
toolInput: { action: 'get' },
});
console.log(prefs.data);
// Clear all preferences
await actions.executeTool({
connectionName: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-user_preferences',
toolInput: { action: 'clear' },
});

Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.

adobemarketingagentmcp_adobe-marketing-agent-mcp-widget#Send a natural-language query to the Adobe Marketing AI assistant to analyze audiences, troubleshoot journeys, and retrieve marketing insights.5 params

Send a natural-language query to the Adobe Marketing AI assistant to analyze audiences, troubleshoot journeys, and retrieve marketing insights.

NameTypeRequiredDescription
querystringrequiredThe natural-language request or feedback message to send to the assistant.
asyncbooleanoptionalCompatibility flag; set to true to request async execution.
chat_idstringoptionalOptional identifier to correlate this request with a chat or conversation context.
execution_modestringoptionalControls how the task runs; use async for long-running polling-based tasks.
long_runningbooleanoptionalCompatibility flag; set to true to request async execution for long-running tasks.
adobemarketingagentmcp_core-context-management-widget#Display and manage the current organization, sandbox, and dataview context, allowing the user to switch between them.1 param

Display and manage the current organization, sandbox, and dataview context, allowing the user to switch between them.

NameTypeRequiredDescription
querystringoptionalThe natural-language request or feedback message to send to the assistant.
adobemarketingagentmcp_core-feedback-widget#Show an interactive feedback form with thumbs up/down and rating categories; falls back to text-based feedback if widgets are not supported.1 param

Show an interactive feedback form with thumbs up/down and rating categories; falls back to text-based feedback if widgets are not supported.

NameTypeRequiredDescription
querystringoptionalThe natural-language request or feedback message to send to the assistant.
adobemarketingagentmcp_core-get_task#Retrieve the status and events for an async task by ID; use the cursor to poll only for new events since the last fetch.2 params

Retrieve the status and events for an async task by ID; use the cursor to poll only for new events since the last fetch.

NameTypeRequiredDescription
task_idstringrequiredThe unique identifier of the async task to retrieve.
cursorintegeroptionalOffset cursor from the previous response; use 0 to fetch all events from the beginning.
adobemarketingagentmcp_core-list_tasks#List all async tasks associated with the current conversation context.0 params

List all async tasks associated with the current conversation context.

adobemarketingagentmcp_core-plan_completion_decision#Submit the user's approval or rejection for a pending plan before it is executed.1 param

Submit the user's approval or rejection for a pending plan before it is executed.

NameTypeRequiredDescription
decisionstringrequiredThe user's approval decision for the pending plan.
adobemarketingagentmcp_core-provide_feedback#Submit user feedback about the AI assistant experience; automatically classifies sentiment and calls the feedback API.6 params

Submit user feedback about the AI assistant experience; automatically classifies sentiment and calls the feedback API.

NameTypeRequiredDescription
commentstringoptionalOptional free-text comment to accompany the feedback.
flagCategoriesarrayoptionalCategories of harmful content being reported; required when flagged is true.
flaggedbooleanoptionalSet to true if the feedback reports harmful content; triggers the flag API instead of sentiment feedback.
pickListarrayoptionalSelected feedback option labels chosen from the widget's predefined list.
querystringoptionalThe natural-language request or feedback message to send to the assistant.
sentimentstringoptionalThe user's overall sentiment rating for the interaction.
adobemarketingagentmcp_core-set_dataview#Set the active Customer Journey Analytics dataview for the current session.1 param

Set the active Customer Journey Analytics dataview for the current session.

NameTypeRequiredDescription
dataviewNamestringrequiredThe name of the Customer Journey Analytics dataview to set as the active context.
adobemarketingagentmcp_core-set_sandbox#Set the active Adobe Experience Platform sandbox for the current session.1 param

Set the active Adobe Experience Platform sandbox for the current session.

NameTypeRequiredDescription
sandboxNamestringrequiredThe technical name (one word) of the Adobe Experience Platform sandbox to set as the active context.
adobemarketingagentmcp_core-switch_org#Switch to a different Adobe organization by exchanging the current IMS token.1 param

Switch to a different Adobe organization by exchanging the current IMS token.

NameTypeRequiredDescription
org_namestringrequiredThe display name or IMS Org ID of the Adobe organization to switch to.
adobemarketingagentmcp_core-switch_sandbox_dataview#Update the active sandbox and/or dataview for the session in a single call.2 params

Update the active sandbox and/or dataview for the session in a single call.

NameTypeRequiredDescription
dataviewNamestringoptionalThe name of the Customer Journey Analytics dataview to set as the active context.
sandboxNamestringoptionalThe technical name (one word) of the Adobe Experience Platform sandbox to set as the active context.
adobemarketingagentmcp_core-user_preferences#Read or clear the user's persisted preferences including sandbox, dataview, org, and region settings.1 param

Read or clear the user's persisted preferences including sandbox, dataview, org, and region settings.

NameTypeRequiredDescription
actionstringoptionalAction to perform on preferences; get returns current settings, clear removes all saved preferences.