Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Mixmax MCP server

Vendor MCP
Open markdown

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

Tools
3
What they doRead · write · destructive
2 · 1 · 02 read1 write0 destructive
Users sign in with
OAuth app
Scalekit's or your own

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 Mixmax MCP connection

    In AgentKit > Connections, create a Mixmax MCP connection. The name you give it is the connection_name your code passes. See Configure connections.

    Scalekit credentials are available for Mixmax MCP server, so you don't need to register an OAuth app.

  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 = 'mixmaxmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Mixmax 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: 'mixmaxmcp_mixmax_info',
    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
  • mixmaxmcp_meetingsQuery Mixmax meetings and calendar data.Read-only

    Meetings

    Query Mixmax meetings and calendar data. Supports actions: get_event, search_events, find_event_by_meet_id, get_calendar, get_meeting_prep, list_meeting_preps, get_meeting_summary, search_meeting_summaries, get_meeting_transcript, get_meeting_assistant_settings, list_meeting_types, get_admin_copilot_settings.

    Inputs

    actionstringrequired
    The action to perform. See the tool description for accepted values.one of get_eventsearch_eventsfind_event_by_meet_idget_calendarget_meeting_preplist_meeting_prepsget_meeting_summarysearch_meeting_summariesget_meeting_transcriptget_meeting_assistant_settingslist_meeting_typesget_admin_copilot_settings
    afterstring
    ISO 8601 timestamp. Return events that start after this date and time.
    attendeestring
    Email address of the attendee to filter meeting summaries by.
    beforestring
    ISO 8601 timestamp. Return events that start before this date and time.
    domainstring
    Attendee email domain to filter events by (for search_events).
    emailsarray
    List of email addresses to filter events by.
    eventIdstring
    The unique calendar event ID (required for get_event).
    eventTypestring
    Type of calendar event to filter by. Accepted values: default, focusTime, outOfOffice.one of defaultfocusTimeoutOfOffice
    expandstring
    Expand events to include additional data. Accepted values: mixmax:summary.one of mixmax:summary
    fromstring
    ISO 8601 timestamp. Start of the date range for meeting summaries search.
    includeContextboolean
    Whether to include full LLM context in the meeting prep response. Defaults to true.
    isExternalboolean
    When true, filters to external meetings only.
    limitnumber
    Maximum number of results to return.
    meetingIdstring
    The Google Meet ID of the event (required for find_event_by_meet_id).
    meetingKeystring
    The unique meeting key returned by search_meeting_summaries. Required for get_meeting_summary and get_meeting_transcript.
    ownerstring
    Filter meeting summaries by ownership. Accepted values: me, shared, workspace.one of mesharedworkspace
    skipnumber
    Number of results to skip for pagination.
    titlestring
    Filter meeting summaries by meeting title.
    tostring
    ISO 8601 timestamp. End of the date range for meeting summaries search.
    uniqueKeystring
    The unique meeting prep key (required for get_meeting_prep).
  • mixmaxmcp_mixmax_infoRetrieve general information about the Mixmax account and configuration.Read-only

    Mixmax Info

    Retrieve general information about the Mixmax account and configuration.

    Inputs

    This tool takes no inputs.

  • mixmaxmcp_sequencesQuery, inspect, and create Mixmax email sequences.Write

    Sequences

    Query, inspect, and create Mixmax email sequences. Supports actions: list_sequences, get_sequence, get_sequence_insights, find_contact_in_sequences, get_daily_send_count, validate_sequence, create_sequence. create_sequence authors a new multi-stage sequence as a draft (no recipients, not activated); requires the mcpSequencesWrite lever.

    Inputs

    actionstringrequired
    The action to perform. See the tool description for accepted values.one of list_sequencesget_sequenceget_sequence_insightsfind_contact_in_sequencesget_daily_send_countvalidate_sequencecreate_sequence
    analyticsFromstring
    get_sequence_insights only — whose activity to count: 'myself' (default), 'everyone', or a team-id. On a shared sequence the default 'myself' returns your own numbers; pass 'everyone' for the team aggregate.
    contactEmailstring
    Email address of the contact to look up in sequences.
    folderstring
    Filter sequences by folder name.
    limitnumber
    Maximum number of results to return.
    namestring
    Filter sequences by name using a substring match on list_sequences; the new sequence name on create_sequence.
    nextstring
    Pagination cursor from the previous response. Use the 'next' field in the response to get the next page.
    sequenceIdstring
    The unique ID of the sequence (required for get_sequence, get_sequence_insights, and validate_sequence).
    stagesarray
    create_sequence: the ordered stages to create. At least one required. Use {{merge tokens}} in subject/body for per-recipient values.
    variablesarray
    create_sequence: declared merge-field names (e.g. 'first name', 'company'). Derived from the stage {{tokens}} if omitted.