Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Adobe Marketing Agent MCP connector

OAuth 2.1/DCR MarketingAnalyticsAI

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.

Name Type Required Description
query string required The natural-language request or feedback message to send to the assistant.
async boolean optional Compatibility flag; set to true to request async execution.
chat_id string optional Optional identifier to correlate this request with a chat or conversation context.
execution_mode string optional Controls how the task runs; use async for long-running polling-based tasks.
long_running boolean optional Compatibility 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.

Name Type Required Description
query string optional The 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.

Name Type Required Description
query string optional The 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.

Name Type Required Description
task_id string required The unique identifier of the async task to retrieve.
cursor integer optional Offset 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.

Name Type Required Description
decision string required The 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.

Name Type Required Description
comment string optional Optional free-text comment to accompany the feedback.
flagCategories array optional Categories of harmful content being reported; required when flagged is true.
flagged boolean optional Set to true if the feedback reports harmful content; triggers the flag API instead of sentiment feedback.
pickList array optional Selected feedback option labels chosen from the widget's predefined list.
query string optional The natural-language request or feedback message to send to the assistant.
sentiment string optional The 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.

Name Type Required Description
dataviewName string required The 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.

Name Type Required Description
sandboxName string required The 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.

Name Type Required Description
org_name string required The 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.

Name Type Required Description
dataviewName string optional The name of the Customer Journey Analytics dataview to set as the active context.
sandboxName string optional The 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.

Name Type Required Description
action string optional Action to perform on preferences; get returns current settings, clear removes all saved preferences.