Skip to content
Scalekit Docs
Talk to an Engineer Dashboard

Connect AI agents to the Jam MCP server

Vendor MCP
Open markdown

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

Tools
15
What they doRead · write · destructive
13 · 2 · 013 read2 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 Jam MCP connection

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

    Scalekit credentials are available for Jam 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 = 'jammcp'
    const identifier = 'user_123'
    // Generate an authorization link for the user
    const { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })
    console.log('Authorize Jam 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: 'jammcp_listfolders',
    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
  • jammcp_analyzevideoExtract user intents from a Jam recording.Read-only

    AnalyzeVideo

    Extract user intents from a Jam recording. Identifies distinct user goals, issues, and feedback with detailed context including visual observations, interactions, and technical indicators.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
  • jammcp_fetchRetrieve metadata and details for a specific Jam bug report, including author, description, timestamps, type, and metadata.Read-only

    Fetch

    Retrieve metadata and details for a specific Jam bug report, including author, description, timestamps, type, and metadata.

    Inputs

    idstringrequired
    Jam identifier — a UUID or a jam.dev URL
  • jammcp_getconsolelogsRetrieve browser console output captured during the Jam session, including errors, warnings, info messages, and debug logs.Read-only

    GetConsoleLogs

    Retrieve browser console output captured during the Jam session, including errors, warnings, info messages, and debug logs.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
    limitnumber
    Maximum number of events to return
    logLevelstring
    Optional filter to limit logs to a specific log level (error, warn, info, log, debug)one of errorwarninfologdebug
  • jammcp_getdetailsRetrieve metadata and details for a specific Jam bug report, including author, description, timestamps, type, and metadata.Read-only

    GetDetails

    Retrieve metadata and details for a specific Jam bug report, including author, description, timestamps, type, and metadata.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
  • jammcp_getmetadataRetrieve custom metadata set via the jam.metadata() SDK.Read-only

    GetMetadata

    Retrieve custom metadata set via the jam.metadata() SDK. Returns key-value pairs defined by the application developer, such as user IDs, app versions, feature flags, or any custom debugging context.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
  • jammcp_getnetworkrequestsRetrieve network requests captured during the Jam session, including URLs, methods, status codes, headers, and response times.Read-only

    GetNetworkRequests

    Retrieve network requests captured during the Jam session, including URLs, methods, status codes, headers, and response times.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
    contentTypestring
    Filter by content type (e.g., 'application/json')
    hoststring
    Filter by host (e.g., 'api.example.com')
    limitnumber
    Maximum number of events to return
    methodstring
    Filter by HTTP method (e.g., 'GET', 'POST', 'PUT', 'DELETE')
    statusCodenumber
    Filter by HTTP status code (e.g., 500) or range (e.g., '4xx', '5xx')
  • jammcp_getscreenshotsRetrieve screenshots from screenshot-type Jams.Read-only

    GetScreenshots

    Retrieve screenshots from screenshot-type Jams. Use getDetails first to verify the Jam type before calling this tool.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL
  • jammcp_getusereventsRetrieve the timeline of user interactions captured in the Jam, including clicks, inputs, navigation, and scroll events.Read-only

    GetUserEvents

    Retrieve the timeline of user interactions captured in the Jam, including clicks, inputs, navigation, and scroll events.

    Inputs

    jamIdstringrequired
    Jam identifier — a UUID or a jam.dev URL