Skip to content

Repository files navigation

Jam plugin for Cursor

Jam's MCP is the fast lane between Jam recordings and your dev tools. Drop a Jam link into Cursor 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.

Installation

From the Cursor marketplace

Open Customize in the Cursor sidebar, search for Jam, and select Install.

Local install

To run an unreleased version, symlink the repository into Cursor's local plugin folder:

ln -s /path/to/cursor-jam-plugin ~/.cursor/plugins/local/jam

Then run Developer: Reload Window from the command palette (Cmd+Shift+P).

Authentication

OAuth (default)

The plugin ships pointed at https://mcp.jam.dev/mcp. The first time the agent calls a Jam tool, Cursor opens a browser window to authenticate with your Jam account. Nothing else to configure.

Personal access token

Use a token where the OAuth browser flow is not available, such as a headless environment or CI. Create one under Settings → MCP in the Personal Access Tokens section, then add a headers block to the server entry in mcp.json:

{
"mcpServers": {
"Jam": {
"url": "https://mcp.jam.dev/mcp",
"headers": {
"Authorization": "Bearer YOUR_PERSONAL_ACCESS_TOKEN"
}
}
}
}

Each token is scoped to one workspace, tied to your user account, and expires on a date you pick. Jam stores only a hash, so copy the token when you create it.

What's included

MCP server connection (mcp.json)

Connects to the Jam MCP server at https://mcp.jam.dev/mcp and exposes 33 tools.

Investigation

ToolDescription
getDetailsBug report overview, device info, and the server's investigation guide
getNetworkRequestsHTTP requests, filterable by status, method, host, and content type
getConsoleLogsBrowser console output, filterable by log level
getUserEventsTimeline of clicks, inputs, navigation, and scrolls
getScreenshotsImages from screenshot Jams
getFramesStill frames from video Jams, as an overview grid or sampled at timestamps
analyzeVideoUser intents extracted from a video recording
getVideoTranscriptSpeech transcript from video Jams recorded with the mic on
getVideoChaptersTitled segments of a video Jam with start and end timestamps
getMetadataCustom metadata the page sent through jam.metadata()
searchResolve a Jam URL or pasted text to a Jam
fetchAlias for getDetails

Discovery and management

ToolDescription
listJamsSearch and filter Jams by text, type, folder, author, URL, or date
listFoldersBrowse the workspace's folders
createFolderCreate a folder to file Jams into
updateFolderRename a folder. It does not move Jams
listMembersFind workspace members
createCommentAdd a Markdown comment to a Jam
editCommentRewrite a comment you authored
addReactionReact to a comment
removeReactionTake back a reaction you left
updateJamMove a Jam to a different folder

Destructive

These remove data permanently. Nobody in the workspace can restore it, because the dashboard has no trash or archive view. The bundled rule tells the agent to confirm with you before calling any of them.

ToolDescription
deleteJamDelete a Jam
deleteCommentDelete a comment you authored, along with its attachments
deleteFolderDelete a folder and every Jam inside it

Recording Links

Reusable URLs that let anyone record a Jam into your workspace.

ToolDescription
createRecordingLinkCreate a link, optionally with a target folder and an expiration
listRecordingLinksList the workspace's links
getRecordingLinkGet one link and how many Jams it collected
updateRecordingLinkRename a link, or change its folder, expiration, or metadata
deleteRecordingLinkRevoke a link. Jams already recorded through it stay
listRecordingLinkJamsList the Jams recorded through a link
listRecordingUrlsList the workspace's connected domains
getRecordingUrlVerifyLinkGet a link a person opens to verify a connected domain

A Recording Link only captures console and network logs when it starts from a verified connected domain. Create one with a recordingUrlId or the Jams it collects carry no logs.

Rule: Jam bug analysis (rules/jam-bug-analysis.mdc)

Always on. It tells the agent which tool to start with, how to filter noisy results, and how to line up console errors against network failures and user events.

Skill: investigate bug (skills/investigate-bug/SKILL.md)

Run /investigate-bug <jam-url-or-id> for a full pass: pull the report, follow the server's investigation guide, read the network, console, and user events, look at the visual evidence, and write up a root-cause hypothesis.

Verifying the install

  1. Open Customize in the sidebar and confirm Jam is listed under MCP servers.
  2. Paste a Jam URL into chat and ask the agent to analyze it. Cursor opens a browser window for OAuth on the first tool call.
  3. Run /investigate-bug https://jam.dev/c/<id>.

Jam CLI

The Jam CLI reads the same data from a terminal:

curl -fsSL https://native.jam.dev/install | bash
jam auth login
jam get console <jam-url-or-id> --json

The CLI calls Jam's API directly and needs neither this plugin nor the MCP server. It takes the same personal access tokens. Inside Cursor, use the MCP connection this plugin configures. Reach for the CLI in shell scripts, in CI, and when piping --json into other tools.

Privacy and permissions

  • The plugin talks to https://mcp.jam.dev/mcp and nothing else.
  • OAuth scopes are mcp:read and mcp:write. Writes cover comments, reactions, folders, updateJam, the Recording Link write tools, and the three delete* tools.
  • The server enforces permissions per workspace and per Jam. A mcp:read token cannot change anything.
  • Every request is scoped to the Jams your account can already see.

Support

Links

License

MIT. See LICENSE.

About

Cursor Jam Plugin

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors