Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Adobe Marketing Agent MCP server

Vendor MCP
Open markdown

The Adobe Marketing Agent MCP connector routes your AI agent's tool calls to Adobe Marketing Agent's own MCP server through Scalekit. Each user signs in to Adobe Marketing Agent once, and Scalekit stores and refreshes their tokens, so your agent never handles credentials. It comes with 12 tools.

Tools
12
What they doRead · write · destructive
3 · 8 · 13 read8 write1 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Ask for marketing insights: send plain-language questions to analyze audiences, troubleshoot journeys, and retrieve marketing insights
  • Set working context: switch the active organization, Experience Platform sandbox, or Customer Journey Analytics dataview
  • Track tasks and plans: check the status of long-running tasks and approve or reject a plan before it runs

Setup

  1. Install the SDK

    Terminal window
    npm install @scalekit-sdk/node dotenv
  2. Set your credentials

    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. Create the Adobe Marketing Agent MCP connection

    In AgentKit > Connections, create an Adobe Marketing Agent MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Adobe Marketing Agent MCP server, so you don't need to register an OAuth app. To show your own app on the consent screen, use your own credentials instead.

    Use your own OAuth app

    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 AgentKit → Connections → Create 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. Authorize a user and make your first call

    quickstart.mts
    import { ScalekitClient } from '@scalekit-sdk/node'
    import 'dotenv/config'
    import { createInterface } from 'node:readline/promises'
    const scalekit = new ScalekitClient(
    process.env.SCALEKIT_ENVIRONMENT_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)
    const rl = createInterface({ input: process.stdin, output: process.stdout })
    await rl.question('Press Enter after authorizing...')
    rl.close()
    // Make your first call
    const result = await actions.executeTool({
    connector,
    identifier,
    toolName: 'adobemarketingagentmcp_core-list_tasks',
    toolInput: {},
    })
    console.log(result)
    Terminal window
    npx tsx quickstart.mts

    Each user signs in once. See Authorize a user for the full flow and statuses.

Tools

Pass the exact name to execute_tool
Try in PlaygroundRequest a tool
  • adobemarketingagentmcp_adobe-marketing-agent-mcp-widgetSend a natural-language query to the Adobe Marketing AI assistant to analyze audiences, troubleshoot journeys, and retrieve marketing insights.Read-only

    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.

    Inputs

    querystringrequired
    The natural-language request or feedback message to send to the assistant.
    asyncboolean
    Compatibility flag; set to true to request async execution.
    chat_idstring
    Optional identifier to correlate this request with a chat or conversation context.
    execution_modestring
    Controls how the task runs; use async for long-running polling-based tasks.one of syncasync
    long_runningboolean
    Compatibility flag; set to true to request async execution for long-running tasks.
  • adobemarketingagentmcp_core-get_taskRetrieve the status and events for an async task by ID; use the cursor to poll only for new events since the last fetch.Read-only

    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.

    Inputs

    task_idstringrequired
    The unique identifier of the async task to retrieve.
    cursorinteger
    Offset cursor from the previous response; use 0 to fetch all events from the beginning.default 0
  • adobemarketingagentmcp_core-list_tasksList all async tasks associated with the current conversation context.Read-only

    Core List Tasks

    List all async tasks associated with the current conversation context.

    Inputs

    This tool takes no inputs.

  • adobemarketingagentmcp_core-context-management-widgetDisplay and manage the current organization, sandbox, and dataview context, allowing the user to switch between them.Write

    Core Context Management Widget

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

    Inputs

    querystring
    The natural-language request or feedback message to send to the assistant.
  • adobemarketingagentmcp_core-feedback-widgetShow an interactive feedback form with thumbs up/down and rating categories; falls back to text-based feedback if widgets are not supported.Write

    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.

    Inputs

    querystring
    The natural-language request or feedback message to send to the assistant.
  • adobemarketingagentmcp_core-provide_feedbackSubmit user feedback about the AI assistant experience; automatically classifies sentiment and calls the feedback API.Write

    Core Provide Feedback

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

    Inputs

    commentstring
    Optional free-text comment to accompany the feedback.
    flagCategoriesarray
    Categories of harmful content being reported; required when flagged is true.
    flaggedboolean
    Set to true if the feedback reports harmful content; triggers the flag API instead of sentiment feedback.
    pickListarray
    Selected feedback option labels chosen from the widget's predefined list.
    querystring
    The natural-language request or feedback message to send to the assistant.
    sentimentstring
    The user's overall sentiment rating for the interaction.one of likedislike
  • adobemarketingagentmcp_core-set_dataviewSet the active Customer Journey Analytics dataview for the current session.Write

    Core Set Dataview

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

    Inputs

    dataviewNamestringrequired
    The name of the Customer Journey Analytics dataview to set as the active context.
  • adobemarketingagentmcp_core-set_sandboxSet the active Adobe Experience Platform sandbox for the current session.Write

    Core Set Sandbox

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

    Inputs

    sandboxNamestringrequired
    The technical name (one word) of the Adobe Experience Platform sandbox to set as the active context.

Workflows

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({
connector: '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({
connector: '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({
connector: '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({
connector: '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({
connector: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-user_preferences',
toolInput: { action: 'get' },
});
console.log(prefs.data);
// Clear all preferences
await actions.executeTool({
connector: 'adobemarketingagentmcp',
identifier: 'user_123',
toolName: 'adobemarketingagentmcp_core-user_preferences',
toolInput: { action: 'clear' },
});