Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Stack.ai MCP server

Vendor MCP
Open markdown

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

Tools
32
What they doRead · write · destructive
20 · 7 · 520 read7 write5 destructive
Users sign in with
OAuth app
Scalekit's or your own

What you can do

  • Build AI projects: create and edit projects from a plain-language description, import workflows, and validate them
  • Run projects: execute published projects with inputs and review run history and per-step traces
  • Search knowledge bases: list knowledge bases and pull the most relevant chunks for a query
  • Manage skills: create, update, validate, and roll back skills and browse their version history
  • Upload files: upload files for use as project inputs and get signed links to them
  • Review audit logs: list who did what and when across the organization

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 Stack.ai MCP connection

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

    Scalekit credentials are available for Stack.ai 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 = 'stackaimcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Stack.ai 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: 'stackaimcp_whoami',
    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
  • stackaimcp_audit_logs_listList the active Stack AI organization's audit trail (who did what, when), with optional filters and pagination.Read-only

    Audit Logs List

    List the active Stack AI organization's audit trail (who did what, when), with optional filters and pagination.

    Inputs

    actionstring
    Filter by action verb (e.g. "export", "delete", "update", "run").
    cursorstring
    Opaque pagination cursor from a previous response's pagination.next_cursor.
    date_fromstring
    ISO-8601 lower bound (inclusive) on created_at.
    date_tostring
    ISO-8601 upper bound (inclusive) on created_at.
    decisionstring
    Filter by decision ("allow" / "deny").
    page_sizestring
    Maximum entries per page (clamped to 200).
    permission_keystring
    Filter by permission key (e.g. "org.members.remove").
    resource_typestring
    Filter by resource type (e.g. "projects").
    searchstring
    Free-text search across the entry.
    user_idstring
    Filter to a single acting member's id.
  • stackaimcp_get_projectRetrieve a project's node and edge graph as a paginated, self-contained subgraph with connectivity preserved across pages.Read-only

    Get Project

    Retrieve a project's node and edge graph as a paginated, self-contained subgraph with connectivity preserved across pages.

    Inputs

    project_idstringrequired
    Project ID (from ``projects_list``).
    cursorstring
    Opaque pagination token from a prior response's ``pagination.next_cursor``. Pass ``null`` to fetch the first page.
    page_sizestring
    Maximum nodes per page. Defaults to 50, clamped to [1, 200].
    verbosestring
    When true, also include the raw upstream ``flow`` object verbatim. Off by default to avoid duplicating graph data. Refused with a structured ``flow_too_large`` error (carrying ``next_action`` and node/edge counts) when ``nodes + edges`` exceeds the server's ``max_inline_flow_elements`` cap; in that case page through the flow using ``next_cursor`` instead.
    versionstring
    ``"published"`` (default — falls back to draft if none) or ``"draft"`` to read the draft directly.
  • stackaimcp_get_project_correctionsRe-validate a project draft and return paginated correction entries for params cleaned up during creation or editing.Read-only

    Get Project Corrections

    Re-validate a project draft and return paginated correction entries for params cleaned up during creation or editing.

    Inputs

    project_idstringrequired
    Project ID to re-validate.
    cursorstring
    Opaque pagination cursor from a prior response.
    page_sizestring
    Maximum corrections per page (clamped to 200).
  • stackaimcp_get_runFetch the per-node execution trace for a project run, filtered by severity and optionally expanded with inputs and outputs.Read-only

    Get Run

    Fetch the per-node execution trace for a project run, filtered by severity and optionally expanded with inputs and outputs.

    Inputs

    project_idstringrequired
    Project (flow) ID the run belongs to.
    run_idstringrequired
    Run ID to fetch.
    cursorstring
    Opaque pagination cursor from a previous response's ``pagination.next_cursor``.
    expandstring
    Optional list of node ids whose ``inputs`` / ``outputs`` should be populated. Up to 50 ids per call. Ids not in the current page are surfaced in the summary.
    page_sizestring
    Maximum nodes per page (clamped to 200).
    severity_filterstring
    Which nodes to return: ``"failed_or_slow"`` (default), ``"failed"``, ``"slow"``, or ``"all"``.
    verbosestring
    When true, include every node-in-page's inputs/outputs. Use ``expand`` for finer grain.
  • stackaimcp_list_connectionsList the OAuth and API-key connections the authenticated user has configured in Stack AI.Read-only

    List Connections

    List the OAuth and API-key connections the authenticated user has configured in Stack AI.

    Inputs

    cursorstring
    Opaque pagination cursor from a previous response's ``pagination.next_cursor``.
    page_sizestring
    Maximum connections per page (clamped to 200).
    provider_idstring
    Optional filter, e.g. ``"gmail"``, ``"slack"``. Pass null for all.
  • stackaimcp_list_knowledge_basesList knowledge bases available to the authenticated user, with optional verbose metadata.Read-only

    List Knowledge Bases

    List knowledge bases available to the authenticated user, with optional verbose metadata.

    Inputs

    cursorstring
    Pagination cursor from a previous response.
    page_sizestring
    Maximum results per page (clamped to 200).
    verbosestring
    When true, return the full KB metadata for each row instead of the compact projection.
  • stackaimcp_list_projectsFetch a paginated list of projects accessible to the authenticated account.Read-only

    List Projects

    Fetch a paginated list of projects accessible to the authenticated account.

    Inputs

    cursorstring
    Opaque pagination cursor from a previous response. Pass ``null`` to fetch the first page.
    owned_onlystring
    When true, only return projects the user owns.
    page_sizestring
    Maximum number of projects per page. Defaults to 50, clamped to [1, 200].
  • stackaimcp_list_providers_actionsList available Stack AI integration providers and their actions, with optional full schemas for specific action IDs.Read-only

    List Providers Actions

    List available Stack AI integration providers and their actions, with optional full schemas for specific action IDs.

    Inputs

    expandstring
    optional list of action / trigger ids to drill into; only valid with a single ``provider_id`` string.
    include_deprecatedstring
    When true, surface deprecated providers / actions / triggers instead of filtering them. Off by default.
    provider_idstring
    ``null``, a single id (e.g. ``"gmail"``), or a list (e.g. ``["gmail", "slack"]``).