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
- 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 Jam MCP connection
In AgentKit > Connections, create a Jam MCP connection. The name you give it is the
connection_nameyour code passes. See Configure connections.Scalekit credentials are available for Jam 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 = 'jammcp'const identifier = 'user_123'// Generate an authorization link for the userconst { 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 callconst result = await actions.executeTool({connector,identifier,toolName: 'jammcp_listfolders',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 = "jammcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Jam MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="jammcp_listfolders",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_tooljammcp_analyzevideoExtract user intents from a Jam recording.Read-onlyAnalyzeVideo
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-onlyFetch
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-onlyGetConsoleLogs
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-onlyGetDetails
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-onlyGetMetadata
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-onlyGetNetworkRequests
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-onlyGetScreenshots
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-onlyGetUserEvents
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
jammcp_getvideotranscriptRetrieve the speech transcript (captions) from a video Jam recording in WebVTT format with timestamps.Read-onlyGetVideoTranscript
Retrieve the speech transcript (captions) from a video Jam recording in WebVTT format with timestamps. Only available for video Jams where the microphone was enabled during recording. Use this to understand what the user said while recording the bug report.
Inputs
jamIdstringrequired- Jam identifier — a UUID or a jam.dev URL
jammcp_listfoldersList folders in the team with optional search and pagination.Read-onlyListFolders
List folders in the team with optional search and pagination. Returns folder metadata including name, short ID, Jam count, and timestamps. Use this to discover available folders for organizing Jams.
Inputs
afterstring- Cursor for forward pagination (folder ID)
limitnumber- Maximum number of results to returndefault
50 orderBystring- Sort order fieldone of
createdAtupdatedAtdefaultcreatedAt querystring- Search query to filter folders by name
jammcp_listjamsList Jam bug reports with filtering and pagination.Read-onlyListJams
List Jam bug reports with filtering and pagination. Search by text, filter by type (video/screenshot/replay), folder, author, URL, or creation date. Returns Jam metadata including title, author, folder, and timestamps. Use this to find specific Jams or browse the team's bug reports.
Inputs
afterstring- Cursor for forward pagination (Jam ID)
authorstring- Author filter: "me", user name, email, or user ID
createdAtstring- Filter by creation date: ISO date string or ISO 8601 duration (e.g., "-P7D" for last 7 days)
folderstring- Folder filter: folder name, folder ID, folder short ID, or "root" for unfiled Jams
limitnumber- Maximum number of results to returndefault
50 orderBystring- Sort order fieldone of
createdAtupdatedAtdefaultcreatedAt querystring- Text search query to filter Jams by title or description
typestring- Filter by Jam typeone of
videoscreenshotreplay urlstring- Filter by original page URL (partial match, case-insensitive)
jammcp_listmembersList team members with optional search and pagination.Read-onlyListMembers
List team members with optional search and pagination. Returns user metadata including name, email, and role. Use this to find users for filtering Jams by author.
Inputs
afterstring- Cursor for forward pagination (user ID)
limitnumber- Maximum number of results to returndefault
50 querystring- Search query to filter users by name or email
jammcp_searchSearch for a Jam by extracting a UUID from a query string, jam.dev URL, or pasted text and returning matching Jam metadata.Read-onlySearch
Search for a Jam by extracting a UUID from a query string, jam.dev URL, or pasted text and returning matching Jam metadata.
Inputs
querystringrequired- Search string containing a UUID or a jam.dev URL (e.g., https://jam.dev/c/{uuid})
jammcp_createcommentAdd a new comment to a Jam bug report.WriteCreateComment
Add a new comment to a Jam bug report. The comment body supports Markdown formatting. Use this to add notes, analysis results, or follow-up information to a Jam.
Inputs
bodystringrequired- The comment body in Markdown format
jamIdstringrequired- Jam identifier — a UUID or a jam.dev URL
playbackRelativeTimestampnumber- Optional timestamp in milliseconds relative to the start of the media playback. When provided, the comment will be linked to that specific point in the video/replay.
jammcp_updatejamUpdate a Jam bug report.WriteUpdateJam
Update a Jam bug report. Currently supports moving Jams between folders. Use folder name, folder ID, folder short ID, or "root" to move to the root level.
- Idempotent
Inputs
jamIdstringrequired- Jam identifier — a UUID or a jam.dev URL
folderstring- Target folder: folder name, folder ID, folder short ID, or "root" to move to root level
No tools match.