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
- OAuth app
- Scalekit's or your own
Setup
Install the SDK
Terminal window npm install @scalekit-sdk/node dotenvTerminal window pip install scalekit-sdk-python python-dotenvSet your credentials
Add your Scalekit credentials to your
.envfile. 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>Create the Mixmax MCP connection
In AgentKit > Connections, create a Mixmax MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Mixmax MCP server, so you don't need to register an OAuth app.
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.actionsconst connector = 'mixmaxmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'mixmaxmcp_mixmax_info',toolInput: {},})console.log(result)Terminal window npx tsx quickstart.mtsquickstart.py import osfrom scalekit import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENVIRONMENT_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "mixmaxmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Mixmax MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="mixmaxmcp_mixmax_info",connection_name=connection_name,identifier=identifier,)print(result)Terminal window python quickstart.pyEach user signs in once. See Authorize a user for the full flow and statuses.
Tools
Pass the exact name toexecute_toolmixmaxmcp_meetingsQuery Mixmax meetings and calendar data.Read-onlyMeetings
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-onlyMixmax Info
Retrieve general information about the Mixmax account and configuration.
Inputs
This tool takes no inputs.
mixmaxmcp_sequencesQuery, inspect, and create Mixmax email sequences.WriteSequences
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.
No tools match.