# Jam — MCP server on mcp.ai > Connect your Jam account and use 16 tools for model context protocol straight from your AI agent. Connect with your own API key. Jam helps teams capture, inspect, organize, and collaborate on browser bug reports and recordings through its hosted MCP API. By: mcp.ai · official Page: https://mcp.ai/jam ## Connect (MCP protocol) Remote MCP endpoint (HTTP, streamable): https://api.mcp.ai/p_jam?ms=1787293440000 Add it as a custom/remote MCP connector, then authenticate when prompted. ## REST API (no MCP client required) Every tool is also a REST endpoint, authed with a workspace API key. Discover: GET https://api.mcp.ai/api/jam/_endpoints # public; lists every endpoint Call: POST https://api.mcp.ai/api/jam/ Authorization: Bearer sk_live_… # create one at https://mcp.ai/settings/api-keys Content-Type: application/json Body: { …args } → { "ok": true, "tool": "", "result": { … } } ## Developer docs How to use (MCP or REST), markdown: https://mcp.ai/jam/skill.md Postman collection (v2.1): https://mcp.ai/jam/postman.json ## Tools - jam_analyze_video(jam_id: string) — Extract structured user goals, reported issues, feedback, visual observations, interactions, and technical indicators from a video Jam. - jam_get_console_logs(limit?: number, cursor?: number, jam_id: string, log_levels?: string[]) — Get captured browser console errors, warnings, information, debug output, and stack traces from a Jam. - jam_get_jam_details(jam_id: string) — Get the core details and debugging context for a Jam. Call this first before requesting logs, events, screenshots, frames, or transcripts. - jam_get_jam_metadata(jam_id: string) — Get custom application debugging context attached through the jam.metadata() SDK, such as user IDs, versions, and feature flags. - jam_get_network_requests(hosts?: string[], limit?: number, bodies?: string, cursor?: number, jam_id: string, methods?: string[], status_codes?: string[], content_types?: string[]) — Get captured HTTP requests and WebSocket frames from a Jam, with filters for failures, hosts, methods, content types, and response bodies. - jam_get_recording_link(public_id: string) — Get one Recording Link's settings and submitted-Jam count by public ID. - jam_get_screenshots(jam_id: string) — Get screenshots and image attachments from a screenshot-type Jam for visual inspection. - jam_get_user_events(limit?: number, cursor?: number, jam_id: string) — Get the chronological user interaction timeline from a Jam, including clicks, inputs, submissions, navigation, and scrolling. - jam_get_video_frames(size?: string, count?: integer, to_ms?: integer, jam_id: string, from_ms?: integer, overview?: boolean, timestamps_ms?: integer[]) — Get still frames from a video Jam as an overview grid, exact timestamps, or an evenly sampled time window. Exactly one of those three modes is required: set overview=true, timestamps_ms, or from_ms wi - jam_get_video_transcript(jam_id: string) — Get the timestamped WebVTT speech transcript from a microphone-enabled video Jam when available; otherwise return Jam's explanation that it is pending or unavailable. - jam_list_folders(limit?: integer, query?: string, cursor?: string, order_by?: string) — Browse or search one page of workspace folders and return their IDs, names, Jam counts, and timestamps; pass next_cursor as cursor to continue. - jam_list_jams(url?: string, limit?: integer, query?: string, author?: string, cursor?: string, folder?: string, jam_type?: string, order_by?: string, created_at?: string) — Search and browse workspace Jams by text, type, folder, author, source URL, or creation date. Returns one page; pass next_cursor as cursor to continue. - jam_list_members(limit?: integer, query?: string, cursor?: string) — Browse or search one page of workspace members by name or email for author discovery and attribution; pass next_cursor as cursor to continue. - jam_list_recording_domains() — List the workspace's connected recording domains and whether each is verified to capture console and network logs. - jam_list_recording_link_jams(limit?: integer, cursor?: string, public_id: string) — List Jams submitted through one Recording Link, newest first. Returns one page; pass next_cursor as cursor to continue when has_more is true. - jam_list_recording_links(limit?: integer, cursor?: string, include_revoked?: boolean) — List workspace Recording Links newest first, optionally including revoked links. Returns one page; when has_more is true, pass next_cursor as cursor to continue. ## Example prompts - "What can I do in Jam?" - "Show me a summary of my Jam account" ## Links Docs: https://mcp.ai/docs/mcps/jam Website: https://mcp.ai/mcps/jam