Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Ambiguous MCP server

Vendor MCP
Open markdown

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

Tools
1,001
What they doRead · write · destructive
411 · 407 · 183411 read407 write183 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 Ambiguous MCP connection

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

    Scalekit credentials are available for Ambiguous 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 = 'ambiguousmcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Ambiguous 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: 'ambiguousmcp_get_billing_bonuses',
    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
  • ambiguousmcp_admin_integrations_listlist all integrations for workspaceRead-only

    Admin integrations list

    list all integrations for workspace

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_integrations_slack_channelslist Slack channels via bot tokenRead-only

    Admin integrations slack channels

    list Slack channels via bot token

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_invites_listList pending, accepted, and expired workspace invites, pending first and then newest.Read-only

    Admin invites list

    List pending, accepted, and expired workspace invites, pending first and then newest. Paginated; `pending_total` counts invites awaiting acceptance. Each row also carries `delivery` — what the provider said about the latest send of that invite email, so a bounced invite is distinguishable from an ignored one.

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    fieldsstring
    No description.
    limitinteger
    Page size (default 50, max 200).
    notifystring
    No description.
    offsetinteger
    Offset for pagination (must be >= 0).
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_mail_suppressions_listlist suppressed addressesRead-only

    Admin mail suppressions list

    list suppressed addresses

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    fieldsstring
    No description.
    limitinteger
    Page size (default 50, max 500).
    notifystring
    No description.
    offsetinteger
    Offset for pagination (must be ≥ 0).
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
    typestring
    Filter by suppression type.one of bouncecomplaint
  • ambiguousmcp_admin_notification_defaults_getRead workspace-default email notification prefs.Read-only

    Admin notification defaults get

    Read workspace-default email notification prefs. Returns sensible defaults (all enabled) when never configured.

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_usage_exportExport usage stats as CSVRead-only

    Admin usage export

    Export usage stats as CSV

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_usage_timeseriesDaily creation counts (last 14 days, split into "last 7" + "prior 7" windows) for the four hero metrics on the Overview tab.Read-only

    Admin usage timeseries

    Daily creation counts (last 14 days, split into "last 7" + "prior 7" windows) for the four hero metrics on the Overview tab. Returns `{users, documents, messages, emails}` each with `{buckets[7], total, previous_total}` so the UI can draw a sparkline + render a 7...

    Inputs

    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).
  • ambiguousmcp_admin_user_getGet one workspace user's full admin record by id.Read-only

    Admin user get

    Get one workspace user's full admin record by id.

    Inputs

    idstringrequired
    No description.
    request_contextstringrequired
    Explain how this request supports the user's goal: 20–30 words, third person, without we/I/you. Exclude credentials, secrets and personal information.
    reference_resource_idstring
    Optional ID of an accessible Ambiguous resource where this work was requested (email, chat, comment, task, document or file).