← Back to all apps

Jam

Codeby Jam
Launched Sep 10, 2026 on ChatGPT

Jam's MCP is the fast lane between Jam recordings and your dev tools. Drop a Jam link into VS Code, Cursor, Windsurf, or Claude and the whole recording – video, console, network, logs – arrives pre-packaged. No hand-typing repro steps, no copy-paste stack traces, no screen-share drama. Your tools get instant context, you stay in flow.

33ChatGPT Tools
6Claude Tools
JamDeveloper
CodeCategory

Use Cases

code

Available Tools

Add Reaction to Comment

addReaction
Full Description

React to a comment on a Jam — useful for acknowledging a comment you've already acted on. Works on anyone's comment, not just your own. Adding a reaction you already left is a no-op. Supported emoji: 🐛 (Buggy), 💜 (Love it), ✓ (Fixed), 👀 (Oooo), ❓ (Unclear), 👏 (Bravo), 🔥 (Fire), 👍 (Got it). This can notify the comment author by email and is visible wherever the comment is shared.

Parameters (2 required)
Required
commentIdstring

Comment identifier — the `id` returned by createComment, or a comment deep link carrying `?commentId=`

emojistring

Reaction emoji. One of: 🐛 (Buggy), 💜 (Love it), ✅ (Fixed), 👀 (Oooo), ❓ (Unclear), 👏 (Bravo), 🔥 (Fire), 👍 (Got it)

Options:🐛💜✅👀❓👏🔥👍

Analyze Video Recording

analyzeVideo
Full Description

Analyze a video Jam to identify user goals, issues, and feedback, including visual observations, interactions, and technical indicators. If analysis is not yet available, try again later.

Parameters (2 required)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Create Comment on Jam

createComment
Full Description

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. This can notify other users by email, and the comment is visible to people who can access the Jam, including public viewers when sharing permits it.

Parameters (2 required, 1 optional)
Required
bodystring

The comment body in Markdown format. To mention a teammate and notify them, write `@[Their Name](user:<userId>)` — get the userId from listMembers. A plain `@name` is left as ordinary text and notifies nobody.

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
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.

Create Folder

createFolder
Full Description

Create a folder in the team to organize Jams into. Returns the folder's id and shortId, so a follow-up updateJam call can file a Jam into it right away. Folder names are not unique — call listFolders first if you mean to reuse an existing folder rather than add another one with the same name. If your membership permits self-upgrade, this can promote you from Viewer to Creator, affect seat billing, and email team admins.

Parameters (1 required)
Required
namestring

Name for the folder

Create Recording Link

createRecordingLink
Full Description

Create a reusable recording link that lets anyone with the URL record and submit a new Jam. Optionally target a folder and set an expiration date.

IMPORTANT — logs require a connected domain: a link only captures console and network logs when it starts recording from one of the team's connected domains (a recording URL). A link created with no recordingUrlId produces a generic recorder link that captures NO logs. Before creating, call listRecordingUrls and ask the user which connected domain to record from — don't guess. If the team has no connected domains, warn the user the link won't capture logs and point them to the dashboard to connect one (https://jam.dev/docs/custom-recording-domain) before creating a logs-less link. If your membership permits self-upgrade, this can promote you from Viewer to Creator, affect seat billing, and email team admins. It also emits a recording-link-created webhook event for configured subscribers.

Parameters (1 required, 6 optional)
Required
namestring

Name for the recording link

Optional
expiresAtstring

ISO 8601 timestamp after which the link stops accepting recordings

folderstring

Target folder for recorded Jams: folder name, folder ID, folder short ID, or "root" for the root level

jamTitlestring

Default title applied to Jams recorded through this link

metadataobject

Arbitrary JSON metadata to associate with the recording link (max 10 KB serialized)

recordingUrlIdstring

ID of a connected domain (recording URL) to start recording from, so recorded Jams capture console and network logs. Get IDs from listRecordingUrls. Omit only when knowingly creating a link that captures no logs.

referencestring

Free-form reference/label to track where the link is used

Delete Comment

deleteComment
Full Description

Delete a comment from a Jam, along with its attachments. Only the comment's own author can delete it, so in practice this removes a comment you posted through createComment. Destructive and not recoverable: confirm with the user before calling. Comment IDs come from createComment's result or from getDetails.

Parameters (1 required)
Required
commentUidstring

Comment identifier, as returned by createComment or getDetails

Delete Folder

deleteFolder
Full Description

Delete a folder and every Jam inside it. The Jams leave the team's lists and search and nobody on the team can bring them back — the dashboard has no trash or archive view to restore them from. Returns how many Jams went with the folder, as archivedJamCount. Destructive and not recoverable: confirm with the user before calling, never tell them the Jams can be restored afterwards, and use listFolders first so they can see what the folder holds. Takes a folder ID or short ID from listFolders, never a folder name — a name could match the wrong folder.

Parameters (1 required)
Required
folderIdstring

Folder ID or short ID, as returned by listFolders

Delete Jam

deleteJam
Full Description

Delete a Jam. It leaves the team's lists and search results, and nobody on the team can bring it back — the dashboard has no trash or archive view to restore it from. Destructive and not recoverable: confirm with the user before calling, and never tell them the Jam can be restored afterwards.

Parameters (1 required)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

Delete Recording Link

deleteRecordingLink
Full Description

Delete a recording link by its publicId, so it stops accepting new recordings. This is a soft delete: existing Jams recorded through it are untouched. Returns the publicId and the deletedAt timestamp. An unknown, already-deleted, or another team's publicId reads as not-found.

Parameters (1 required)
Required
publicIdstring

Public ID of the recording link to delete

Edit Comment on Jam

editComment
Full Description

Rewrite a comment you previously left on a Jam, so an agent can correct or extend its own note instead of stacking a follow-up comment. Takes the comment ID returned by createComment. The new body replaces the old one entirely and is Markdown. You can only edit comments you authored. Changes are visible to people who can access the Jam, including public viewers when sharing permits it.

Parameters (2 required)
Required
bodystring

The replacement comment body in Markdown format. Replaces the existing body entirely.

commentIdstring

Comment identifier — the `id` returned by createComment, or a comment deep link carrying `?commentId=`

Get Jam Bug Report Details and Metadata

fetch
Full Description

Retrieve comprehensive metadata and details for a specific Jam bug report. Returns essential information including: unique identifiers, author details, description, timestamps (created/updated), type (video/screenshot), and associated metadata. This is the primary entry point for analyzing any Jam - always call this tool first to understand the context before using other tools.

Parameters (1 required)
Required
idstring

Jam identifier — a UUID or a jam.dev URL

Get Browser Console Output and JavaScript Logs

getConsoleLogs
Full Description

Retrieve browser console output captured during the Jam session. Includes JavaScript errors, warnings, info messages, debug logs, and stack traces. Depending on the recording, the response is either a JSON envelope or plain newline-delimited JSON. The envelope form applies logLevel (an array — e.g. ['error','warn'] for problems) and limit server-side and reports total matching logs — if you get fewer than total, narrow the filter or page with after. In the newline-delimited form only limit applies; other parameters are ignored. Critical for identifying runtime errors, debugging application state issues, and understanding the sequence of events leading to bugs.

Parameters (2 required, 4 optional)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
afternumber

Page cursor — pass the `nextCursor` from a previous response to continue

limitnumber

Maximum number of events to return

logLevelarray

Optional filter by log levels, e.g. ['error','warn'] for problems.

severitystring

Optional filter to limit logs to a specific severity level (error, warn, info, log, debug)

Options:errorwarninfologdebug

Get Jam Bug Report Details and Metadata

getDetails
Full Description

Retrieve comprehensive metadata and details for a specific Jam bug report. Returns essential information including: unique identifiers, author details, description, timestamps (created/updated), type (video/screenshot), and associated metadata. This is the primary entry point for analyzing any Jam - always call this tool first to understand the context before using other tools.

Parameters (2 required)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Get Video Frames as Images

getFrames
Full Description

Extract still frames (thumbnails) from a video Jam recording as images, so you can see what was on screen. Use exactly one mode. Set overview: true to get one overview grid: N frames evenly spaced across the whole video (N scales with duration), stitched into a single image with each cell labeled by timestamp — the fastest way to orient on a visual jam. Or specify at (a list of timestamps in milliseconds) or a window (fromMs, toMs, count) to sample evenly-spaced frames across a range; each is returned as an image preceded by a t=<ms> text anchor. Use size to trade detail for context budget (small=360p, medium=720p, large=1080p; not applied to the overview grid). Only works for video Jams whose recording is available on Cloudflare Stream; ineligible Jams return a single text block explaining why. Frames per call are capped at 30.

Parameters (1 required, 6 optional)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
atarray

Explicit list of timestamps in milliseconds to capture. Use exactly one mode: this, a window, or `overview`.

countinteger

Number of evenly-spaced frames to sample across the window (use with fromMs and toMs)

fromMsinteger

Window start in milliseconds (use with toMs and count)

overviewboolean

Set to true to get one labeled grid of frames evenly spaced across the whole video, for orienting on a visual Jam before requesting specific times. Use instead of `at` or a window, not alongside them.

sizestring

Frame height: small=360p, medium=720p (default), large=1080p

Options:smallmediumlarge
Default: medium
toMsinteger

Window end in milliseconds (use with fromMs and count)

Get Custom Jam Metadata

getMetadata
Full Description

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.

Parameters (1 required)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

Get Network Activity and HTTP Request Logs

getNetworkRequests
Full Description

Extract network activity logs captured during the Jam session. Returns HTTP/HTTPS requests and WebSocket frames including: URLs, methods (GET/POST/etc), status codes, headers, payloads, response times, and error details. Depending on the recording, the response is either a JSON envelope or plain newline-delimited JSON. The envelope form applies filters server-side — each is an array, values OR within a filter, filters AND across: statusCode (e.g. ['4xx','5xx'] for all failures), contentType, host, method (e.g. ['POST','PUT'] for mutations), plus limit and after (page cursor) — and reports total matching events (if you get fewer, narrow the filter or page with after), and by default carries response bodies only for FAILED requests: pass bodies:'all' when you need the payload of a request that succeeded but returned the wrong data (bodies truncated to 4KB, flagged per row). In the newline-delimited form only limit applies; other parameters are ignored. Essential for debugging API issues, failed requests, CORS problems, and performance bottlenecks.

Parameters (2 required, 8 optional)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
afternumber

Page cursor — pass the `nextCursor` from a previous response to continue

bodiesstring

Which response bodies to include. 'errors' (default) returns bodies only for failed requests; 'all' returns every body. Both are truncated to 4KB per body.

Options:errorsall
contentTypearray

Filter by content-type substrings, e.g. ['application/json']

hostarray

Filter by host substrings, e.g. ['api.example.com']

limitnumber

Maximum number of events to return

methodarray

Filter by HTTP methods, e.g. ['POST','PUT','PATCH','DELETE'] for mutations

severitystring

Optional filter to limit logs to a specific severity level (error, warn, info, log, debug)

Options:errorwarninfologdebug
statusCodearray

Filter by status codes and/or classes, e.g. ['500'] or ['4xx','5xx'] for all failures

Get Recording Link

getRecordingLink
Full Description

Get a single recording link by its publicId. Returns the link's name, type, target folder, expiration, and the number of Jams recorded through it (jamsCreated). Use listRecordingLinkJams to page through those Jams.

Parameters (1 required)
Required
publicIdstring

Public ID of the recording link to fetch

Get Recording URL Verify Link

getRecordingUrlVerifyLink
Full Description

Start verifying a connected domain (recording URL) so recorded Jams from it capture console and network logs. Returns a verifyUrl a HUMAN must open in a browser where the Jam extension or snippet is live on that domain — the recorder there confirms Jam is present and marks the domain verified. This tool does NOT verify the domain itself; it only hands back the link. After the user opens it, poll listRecordingUrls until the domain shows verified: true (the link expires in 5 minutes). Use this instead of sending the user to the dashboard to connect a domain.

Parameters (1 required)
Required
urlstring

The domain URL to verify, e.g. https://app.example.com — the recorder matches by hostname

Get Visual Screenshots and Image Attachments

getScreenshots
Full Description

Retrieve visual screenshots and image attachments from screenshot-type Jams. Returns image data that can be analyzed for UI issues, visual bugs, layout problems, or design inconsistencies. Note: This tool only works with Jams of type 'screenshot' - use getDetails first to verify Jam type.

Parameters (2 required)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Get User Interaction Timeline and Events

getUserEvents
Full Description

Access the complete timeline of user interactions captured in the Jam. Returns chronological sequence of: clicks, keyboard inputs, form submissions, navigation events, scroll actions, and other DOM interactions. The full timeline is returned by default and is small enough to read whole — pass limit only to cap the output, and page with after if a capped response reports a nextCursor. Invaluable for reproducing bugs and understanding user behavior patterns that triggered issues.

Parameters (2 required, 2 optional)
Required
intentstring

The intent of the user for this tool call

jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
afternumber

Page cursor — pass the `nextCursor` from a previous response to continue

limitnumber

Maximum number of events to return

Get Video Chapters

getVideoChapters
Full Description

Retrieve AI-generated chapters for a video Jam recording: titled segments with start/end timestamps outlining the recording's timeline. Returns { status, chapters, language }; chapters is null unless status is "ready". Chapters are text only — each is { startMs, endMs, title }. To see what a chapter looked like on screen, call getFrames with at set to a timestamp inside the chapter's span; the midpoint reads best, because chapter starts are usually transition frames. Status "not_requested" means chapter generation was never queued for this jam; "skipped" means the video was too short to segment.

Parameters (1 required)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

Get Video Transcript

getVideoTranscript
Full Description

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.

Parameters (1 required)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

List Folders

listFolders
Full Description

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.

Parameters (0 required, 4 optional)
Optional
afterstring

Cursor for forward pagination (folder ID)

limitnumber

Maximum number of results to return

Default: 50
orderBystring

Sort order field

Options:createdAtupdatedAt
Default: createdAt
querystring

Search query to filter folders by name

List Jam Bug Reports

listJams
Full Description

List Jam bug reports with filtering and pagination. Search by text, filter by type (video/screenshot/replay), origin (capture surface), folder, author, URL, or creation date. Returns Jam metadata including title, origin, author, folder, and timestamps. Each returned Jam carries a url, the share link to hand back to the user unchanged: it carries search attribution. Use this to find specific Jams or browse the team's bug reports. Filter by origin instead of calling getDetails per Jam when ranking or counting by capture surface.

Parameters (0 required, 10 optional)
Optional
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 return

Default: 50
orderBystring

Sort order field

Options:createdAtupdatedAt
Default: createdAt
originstring

Filter by capture surface. native_macos is the macOS app, native_cli is the jam CLI, extension_chrome is the browser extension, recording_link is a shareable recorder link, mobile_ios / mobile_android are the mobile apps.

Options:extension_chromemobile_iosweb_recorderdashboardcsup_intercomrecording_linknative_clinative_macosmobile_android
querystring

Text search query to filter Jams by title or description

typestring

Filter by Jam type

Options:videoscreenshotreplay
urlstring

Filter by original page URL (partial match, case-insensitive)

List Team Members

listMembers
Full Description

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.

Parameters (0 required, 3 optional)
Optional
afterstring

Cursor for forward pagination (user ID)

limitnumber

Maximum number of results to return

Default: 50
querystring

Search query to filter users by name or email

List Recording Link Jams

listRecordingLinkJams
Full Description

List the Jams recorded through a recording link, addressed by the link's publicId. Returns each Jam's id, title, and createdAt (newest first), plus cursor pagination. Pass cursor (a jam id from a prior endCursor) to fetch the next page; hasNextPage indicates whether more remain.

Parameters (1 required, 2 optional)
Required
publicIdstring

Public ID of the recording link whose Jams to list

Optional
cursorstring

Cursor for forward pagination (a jam ID from a prior endCursor)

limitnumber

Maximum number of Jams to return (default 20, max 100)

List Recording Links

listRecordingLinks
Full Description

List the team's recording links, newest first, with cursor pagination. Returns each link's publicId, name, and type. Pass cursor (a publicId from a prior endCursor) to fetch the next page; hasNextPage indicates whether more remain. Revoked links are excluded unless includeRevoked is true.

Parameters (0 required, 3 optional)
Optional
cursorstring

Cursor for forward pagination (the last publicId from the previous page)

includeRevokedboolean

Include revoked links in the results (default false)

limitinteger

Maximum number of links to return (default 20, max 100)

List Connected Recording Domains

listRecordingUrls
Full Description

List the team's connected domains (recording URLs) — the domains a recording link can start from so recorded Jams capture console and network logs. Returns each domain's id, url, and verified state. Use this before createRecordingLink to pick the recordingUrlId to record from, and to tell whether the team has any connected domains at all. Only a verified domain captures logs; an unverified one must be verified from the dashboard first (https://jam.dev/docs/custom-recording-domain). An empty list means the team has no connected domains, so any link created now captures no logs.

Remove Reaction from Comment

removeReaction
Full Description

Take back a reaction you left on a comment. Only removes your own reaction; other people's reactions with the same emoji are untouched. Removing a reaction you never left is a no-op. Supported emoji: 🐛 (Buggy), 💜 (Love it), ✓ (Fixed), 👀 (Oooo), ❓ (Unclear), 👏 (Bravo), 🔥 (Fire), 👍 (Got it). Changes are visible to people who can access the Jam, including public viewers when sharing permits it.

Parameters (2 required)
Required
commentIdstring

Comment identifier — the `id` returned by createComment, or a comment deep link carrying `?commentId=`

emojistring

Reaction emoji. One of: 🐛 (Buggy), 💜 (Love it), ✅ (Fixed), 👀 (Oooo), ❓ (Unclear), 👏 (Bravo), 🔥 (Fire), 👍 (Got it)

Options:🐛💜✅👀❓👏🔥👍

Find Video Jam by UUID or URL

search
Full Description

Find a video Jam in the connected team by extracting its UUID from a query string, jam.dev URL, or pasted text. Returns at most one result. Does not search titles or return screenshot or replay Jams; use listJams for text search and other Jam types.

Parameters (1 required)
Required
querystring

Search string containing a UUID or a jam.dev URL (e.g., https://jam.dev/c/{uuid})

Rename Folder

updateFolder
Full Description

Rename a folder. Identify the folder by name, folder ID, or folder short ID. Renaming does not move any Jams — use updateJam for that. An unknown folder, or one belonging to another team, reads as not-found.

Parameters (2 required)
Required
folderstring

Folder to rename: folder name, folder ID, or folder short ID

namestring

New name for the folder

Update Jam

updateJam
Full Description

Update a Jam bug report: rename it, rewrite its description, or move it between folders. Every field is optional — only the ones you pass are changed. Use folder name, folder ID, folder short ID, or "root" to move to the root level. Editing the title or description requires an Admin or Creator role.

Parameters (1 required, 3 optional)
Required
jamIdstring

Jam identifier — a UUID or a jam.dev URL

Optional
descriptionstring

New description for the Jam, in Markdown format. To mention a teammate and notify them, write `@[Their Name](user:<userId>)` — get the userId from listMembers. A plain `@name` is left as ordinary text and notifies nobody.

folderstring

Target folder: folder name, folder ID, folder short ID, or "root" to move to root level

titlestring

New title for the Jam

Update Recording Link

updateRecordingLink
Full Description

Update a recording link by its publicId. Only the fields you pass are changed. Use it to rename the link, change the destination folder for future recordings, set the default Jam title, change the reference, set an expiration, or replace the metadata. Unknown or other-team links return not-found; revoked links cannot be edited. Existing Jams are not moved.

Parameters (1 required, 6 optional)
Required
publicIdstring

Public ID of the recording link to update

Optional
expiresAtstring

ISO 8601 timestamp after which the link stops accepting recordings

folderstring

Target folder for recorded Jams: folder name, folder ID, folder short ID, or "root" for the root level

jamTitlestring

Default title applied to Jams recorded through this link

metadataobject

Arbitrary JSON metadata to associate with the recording link (max 10 KB serialized). Replaces any existing metadata.

namestring

New name for the recording link

referencestring

Free-form reference/label to track where the link is used