Skip to main content
Glama

Recordful MCP

Let any AI app record product demos with Recordful.

Ask your AI to "record how the new sign-up flow works". It plans a short walkthrough, asks you to click the Recordful icon on the tab, then navigates, clicks and types with a smooth on-screen cursor while Recordful records. When it stops, Recordful's editor opens with the video.

Works with Claude Code, Claude Desktop, Cursor, VS Code, Windsurf, opencode, Codex, Gemini CLI and any other app that supports the Model Context Protocol. The AI doesn't need a browser of its own. Everything runs on your computer: nothing to host, no account, no API key.

Install

You need Chrome and Node.js 20.10 or newer. The Claude Desktop bundle includes everything, so it doesn't need Node.

1. Install Recordful from the Chrome Web Store.

2. Add the server to your AI app:

The plugin adds the server, a record-demo skill and a /record-demo command:

/plugin marketplace add iKislay/recordful-mcp
/plugin install recordful@recordful

Or add just the server: claude mcp add --scope user recordful -- npx -y recordful-mcp (on native Windows, use cmd /c npx -y recordful-mcp).

Download recordful.mcpb from the latest release and double-click it. Or add this to claude_desktop_config.json (Settings → Developer → Edit Config) and restart Claude:

{ "mcpServers": { "recordful": { "command": "npx", "args": ["-y", "recordful-mcp"] } } }

Add to the app's MCP config: ~/.cursor/mcp.json, ~/.codeium/windsurf/mcp_config.json, ~/.gemini/settings.json, and so on:

{ "mcpServers": { "recordful": { "command": "npx", "args": ["-y", "recordful-mcp"] } } }

Run MCP: Add Server, or add to .vscode/mcp.json:

{ "servers": { "recordful": { "type": "stdio", "command": "npx", "args": ["-y", "recordful-mcp"] } } }

Add to opencode.json:

{ "mcp": { "recordful": { "type": "local", "command": ["npx", "-y", "recordful-mcp"], "enabled": true } } }

Add to ~/.codex/config.toml:

[mcp_servers.recordful]
command = "npx"
args = ["-y", "recordful-mcp"]

npx -y recordful-mcp setup prints all of these.

3. First recording (one-time setup):

  1. In Recordful's popup, click More → AI agents and turn it on.

  2. Ask your AI to record something. When it asks, click the Recordful icon on the tab.

  3. Recordful asks you to approve the app. If the 4-digit code matches the one your AI shows, click Allow.

After that, you only click the Recordful icon on the tab you want recorded.

Related MCP server: Agent Demo Studio

Use it

Ask in plain words:

  • "Record a demo of signing up and signing in on localhost:3000."

  • "I just built the billing page. Record a short video of how it works."

The AI works out the flow, uses test data (never your real accounts), records with pauses while it thinks, and stops so the editor opens. Apps that support MCP prompts also offer record_feature, a guided version of this workflow. While an app is connected, Recordful's icon shows an AI badge.

Why the click? Chrome only lets an extension record a tab after you click it there, and no app can click for you. The click also marks the only tab the AI may act in.

Do I need to host anything?

No. The server runs on your computer and talks to Recordful over 127.0.0.1. Recordings stay in your browser.

Only cloud-only chat apps (claude.ai or ChatGPT in a browser or on a phone) would need a hosted connector, because they can't run programs on your computer. That's planned.

Privacy and security

  • Off until you turn it on, and off again with one switch.

  • Local only: the server can't be reached from other devices or from web pages.

  • Paired once per computer after you approve a matching code. Every connection proves the pairing, and the secret is never resent.

  • Only the official Recordful extension can connect by default.

  • One tab: the AI acts only in the tab you handed over.

  • Revocable: Paired AI apps → Forget on the AI agents page, or npx -y recordful-mcp unpair --all.

Details: SECURITY.md.

Troubleshooting

Problem

Fix

"Recordful isn't connected"

Click the Recordful icon on the tab. Still nothing? Check More → AI agents is on

The AI shows a code

Check it matches in Recordful's window, click Allow, tell the AI to continue

Recording won't start

Click the Recordful icon on the exact tab to record, then retry

Recording waits forever

Recordful may be asking something (microphone access, or the screen picker in screen mode). Answer it

BRIDGE_UNAVAILABLE

Another AI app is using Recordful. Close it; this one takes over automatically

No Recordful tools in the AI app

Check node -v is 20.10+, then restart the app

Run npx -y recordful-mcp status to see the pairing state.

More

License

MIT

Available Tools

14 tools
clickClick an elementA

Move Recordful's visible cursor to the element, scrolling it into view if needed, and click it, with a click highlight in the video. Reports a navigation the click started. Fails with ELEMENT_OBSCURED (naming what is on top, with its ref) if something covers it.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesElement ref from the latest snapshot, e.g. "e12".

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations cover the safety profile (destructiveHint=false, idempotentHint=false, openWorldHint=true), and the description adds substantial context beyond them: cursor movement, auto-scroll, a visible click highlight in the video, possible navigation side effects, and a named failure mode (ELEMENT_OBSCURED) that names the covering element. Only retry/timeout behavior is left unstated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, no filler, and the primary action is front-loaded ahead of side effects and error behavior. Every clause carries information an agent needs.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no output schema, the description usefully discloses that it reports a started navigation, and it documents the main failure mode. It stops short of covering timing, retries, or what the navigation report actually contains, but is otherwise sufficient for a one-parameter click tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There is a single parameter with 100% schema description coverage; the schema already explains the ref format and its provenance. The description adds no ref-specific semantics, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (click) and resource (element), and the mechanism is fully spelled out: moves the visible cursor, scrolls into view if needed, and clicks. This is clearly distinguishable from siblings such as type, press, scroll, and navigate.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies the precondition (a ref from the latest snapshot, per the schema) and gives recovery guidance via ELEMENT_OBSCURED, but never states when to choose click over press, type, or navigate. Usage is implied rather than explicitly framed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_statusGet recorder statusA
Read-only

Report whether the Recordful extension is connected and what the recorder is doing (idle, starting, recording, paused), the selected recording mode, the active tab, and which capture permissions are granted. Safe to call any time.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.3/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true and openWorldHint=false, so the safety profile is covered; "safe to call any time" largely restates it. The description does add genuine behavioral context by naming the recorder states (idle, starting, recording, paused) and the permission surface it inspects, which matters since there is no output schema to enumerate return values.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence front-loads the core answer (connected + what the recorder is doing) with no filler. The trailing "Safe to call any time" is slightly redundant with readOnlyHint=true, a minor cost.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With no parameters and no output schema, the description carries the return-value burden and does enumerate the reported fields and state values. It omits the shape of the response (nesting, how permissions are represented), which keeps it below a 5.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The sentence about what it inspects is not a parameter concern.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (report) and resource (recorder/extension status) and enumerates exactly what is reported: connection state, recorder state, mode, active tab, permissions. It is clearly distinct from the mutation siblings stop_recording, pause_recording, and resume_recording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Safe to call any time" gives a clear condition for use with no exclusions needed for a read-only status check. It does not route the agent to related siblings such as probe_capture for permission probing or to start_recording for state transitions, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pause_recordingPause recordingA
Idempotent

Pause the current recording. Use it while you plan the next step so the video has no dead air. No-op if already paused.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare idempotentHint=true, destructiveHint=false, and readOnlyHint=false. The description's 'No-op if already paused' largely restates the idempotency hint, and it omits behavior such as what happens if no recording is active or what state changes occur internally.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action, followed by usage guidance and an important edge-case note. No filler or redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter tool with annotations covering safety and idempotency, the description is nearly complete. It is slightly light on edge behavior when no recording is in progress, which would help an agent know whether a call is meaningful.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, so the baseline is 4. The description adds no parameter semantics, but none are needed for this tool.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: 'Pause the current recording.' The action is unambiguous and naturally distinguished from resume/stop/start siblings, though no sibling is named explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives a concrete when-to-use scenario ('while you plan the next step so the video has no dead air'), which is clear context. It does not, however, name alternatives like stop_recording or resume_recording or state when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pressPress a keyA

Press a key in the focused element, e.g. Enter to submit a form, Tab to move focus, Escape to close a dialog, ArrowDown in a menu, Shift+Tab, Control+a. Recordful also performs the key's usual effect (submitting, moving focus, deleting), since pages ignore synthetic keys otherwise.

ParametersJSON Schema
NameRequiredDescriptionDefault
keyYesKey to press in the focused element, optionally with modifiers: Enter, Tab, Escape, Backspace, Delete, Space, ArrowUp, ArrowDown, ArrowLeft, ArrowRight, Home, End, PageUp, PageDown, F1–F12, or a single character, e.g. "Enter", "Shift+Tab", "Control+a".

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare non-readonly, non-idempotent, open-world behavior, so the safety bar is partly covered. The description adds genuinely useful disclosure beyond that: the key press triggers the page's real effect (submitting, moving focus, deleting) because synthetic keys are otherwise ignored, which explains the non-idempotent side effects and warns of consequential actions.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The capability and its examples are front-loaded in the first sentence, with the behavioral caveat following. It is dense but every clause carries information; only the double-embedding of examples and the parenthetical aside slightly dilute readability.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter tool with no output schema and rich annotations, the description covers purpose, valid inputs, and side-effect behavior. It omits edge cases such as pressing keys with no focused element or a missing target, but nothing essential to correct invocation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the schema already enumerates valid keys, modifiers, and the regex pattern. The description's examples mirror that content rather than adding new semantics (e.g., no guidance on focus requirements, timing, or what happens when no element is focused), so baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ("Press a key in the focused element") and immediately grounds it in recognizable scenarios (submit, move focus, close dialog, menu navigation). It is trivially distinguishable from siblings like click, type, and scroll, which operate on different targets.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The examples effectively communicate when to reach for this tool rather than type or click, and the modifier syntax (Shift+Tab, Control+a) tells the agent what shapes of input are expected. There is no explicit statement of when NOT to use it or a named alternative, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

probe_captureProbe capture permissionsA
Read-only

Diagnostic: check, without recording, whether the extension can capture the target tab right now with no user click, and which optional Chrome permissions are granted. Refuses while a recording is running.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoChrome tab ID to target. Defaults to the active tab of the last focused window.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations only declare readOnlyHint=true and openWorldHint=false, so the description adds real value: it states the operation is non-recording, requires no user click, and is refused during an active recording. That refusal constraint is meaningful behavioral context an agent would otherwise miss.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence front-loaded with 'Diagnostic:' and with no wasted clauses — each sub-clause (no user click, permission scope, recording refusal) earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only, single-optional-param diagnostic with no output schema, the description conveys what the check evaluates (capture feasibility and permission grants). It stops short of describing the return shape, but the tool is simple enough that this is a minor gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one parameter, tabId, and schema description coverage is 100% with the default behavior (active tab of last focused window) fully documented in the schema. The description adds nothing beyond the schema, so the baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a specific verb (check) and a precise resource (whether the extension can capture the target tab without a user click, plus which optional Chrome permissions are granted). This clearly distinguishes it from siblings like get_status, screenshot, or start_recording.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The 'Refuses while a recording is running' clause is an explicit when-not condition, telling the agent this is a pre-recording diagnostic. It doesn't name an alternative tool for the same check, but the context is well established.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

resume_recordingResume recordingA
Idempotent

Resume a paused recording. No-op if not paused.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The no-op clause adds a concrete edge-case behavior (wrong-state calls neither error nor mutate), which is useful but closely overlaps the idempotent hint; nothing is said about permissions or the resulting recording state.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, no filler, with the action first and the edge-case caveat second. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-parameter, no-output-schema control tool with annotations covering safety, the description supplies what an agent needs to call it correctly. It is slightly thin on what state the recorder is left in after the call, but nothing essential is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a parameterless tool applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource ("Resume a paused recording") and the word "paused" implicitly distinguishes it from the sibling start_recording, which begins a new capture. An agent can pick the right tool without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"No-op if not paused" gives a clear usage condition and tells the agent it is safe to call opportunistically without checking state first. It stops short of explicitly naming the alternatives (pause_recording/stop_recording) or stating exclusions, so it is strong context rather than full routing guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

screenshotScreenshot the pageA
Read-only

Capture what the recorded tab shows right now, as an image, to check the page looks right. The tab must be the active tab of its window.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.9/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations declare readOnlyHint and openWorldHint, so the safety profile is already covered. The description adds a real operational precondition not present in the annotations: the tab must be the active tab of its window, plus the 'right now' timing semantics that imply a live capture. It does not describe return format, but no output schema is needed for an image.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two short sentences, no filler, with the core action and its purpose front-loaded and the precondition placed second. Every clause earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-parameter read tool with annotations covering safety and no output schema, the description supplies purpose plus the one precondition an agent must satisfy. It stops short of relating itself to the surrounding flow (navigate, wait_for, snapshot), but nothing critical to invoking it is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, which is the baseline-4 case. There is nothing parameter-wise the description needs to compensate for, and it correctly avoids inventing arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (capture) and resource (what the recorded tab shows now) plus the output form (as an image), so the agent knows this returns a picture rather than data. It does not explicitly differentiate itself from the similarly named sibling 'snapshot' or 'probe_capture', leaving a small ambiguity about which one produces an image.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

'to check the page looks right' implies a verification use case, which is decent context. However, it never tells the agent when to prefer this over siblings like snapshot or probe_capture, nor when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

scrollScrollA

Scroll smoothly: either bring an element (ref) into view, or scroll the page in a direction, by amount pixels or most of a screen.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoScroll this element into view. Give either ref or direction.
amountNoPixels to scroll with direction (default: most of a screen).
directionNoScroll the page this way. Give either ref or direction.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=false, openWorldHint=true, idempotentHint=false and destructiveHint=false, so the safety profile is covered. The description adds the genuinely useful behavioral detail that scrolling is smooth and that amount defaults to most of a screen, but says nothing about the viewport change affecting later screenshot/snapshot output or about any side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence that covers the verb, both modes, and the default magnitude with no filler. The phrasing 'by amount pixels' is slightly awkward but costs nothing in length.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 3-param, no-output-schema tool the description covers both modes and the amount default adequately for correct invocation. It omits where refs originate (presumably the sibling snapshot tool), a minor but real gap for an agent that has not yet captured one.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so ref, amount and direction are already documented, including the default and the enum. The description restates the same facts ('by amount pixels or most of a screen') without adding format, range, or interaction detail beyond the schema, which is the baseline-3 case.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (scroll) plus resource (page/element) and decomposes the tool into its two operating modes: bring a ref into view, or scroll the page in a direction. The scope is unambiguous, though it never names or distinguishes itself from siblings like navigate or snapshot.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

"Either bring an element (ref) into view, or scroll the page in a direction" explicitly frames the two mutually exclusive usage modes and which parameter selects which. It gives no exclusions, prerequisites, or named alternative tools, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

snapshotList page elementsA
Read-only

List the interactive elements (links, buttons, fields, checkboxes, tabs, menu items) and headings in the recorded tab, each with a ref to pass to click/type/scroll/wait_for, its role, accessible name, current value or state, and bounding box in CSS pixels. Refs stay the same for an element while it stays on the page.

ParametersJSON Schema
NameRequiredDescriptionDefault
scopeNo"page" (default) lists elements on the whole page; "viewport" only those currently visible.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=true, destructiveHint=false, openWorldHint=true), so the bar is lower. The description still adds real behavioral context beyond them: refs persist while an element remains on the page, which explains the non-idempotent listing behavior flagged by idempotentHint=false. It does not mention limits or truncation on very large pages.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, both front-loaded: the first leads with what is listed and what each entry contains; the second carries the ref-stability caveat. Every clause earns its place with no redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, so the description correctly carries the full burden of describing the return shape (ref, role, accessible name, value/state, bounding box in CSS pixels). It omits the 'scope' parameter and any behavior for very large pages, but is otherwise complete for a single-optional-param read tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and the single 'scope' enum is fully documented in the schema itself (page vs viewport). The description adds no information about the parameter, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('list') and resource ('interactive elements ... and headings in the recorded tab'), and enumerates the element kinds and the exact fields returned. An agent can distinguish it from screenshot (visual capture) and from click/type (which consume the refs this tool emits).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'each with a ref to pass to click/type/scroll/wait_for' makes the workflow role explicit: call this to obtain refs for the interaction tools. However, it never states when NOT to use it (e.g. versus screenshot for visual inspection) or any prerequisite about recording state.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

start_recordingStart recordingA

Start a Recordful recording on the target tab using the user's saved Recordful settings (mode, microphone, camera, countdown). Resolves once capture is live, or reports why it could not start. Navigate to the page you want to show before calling this.

ParametersJSON Schema
NameRequiredDescriptionDefault
tabIdNoChrome tab ID to target. Defaults to the active tab of the last focused window.
timeoutMsNoMaximum time to wait for the recorder to reach the new state, in milliseconds.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the annotations, it discloses meaningful behavior: settings are pulled from the user's saved Recordful config (mode, microphone, camera, countdown), that the promise resolves once capture is actually live, and that it reports failure reasons. Annotations only carry safety hints, so this additional state-machine context is genuinely valuable; it stops short of 5 only because it doesn't mention permissions or rate/side-effect details.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three short sentences, front-loaded with the action and resource, followed by resolution semantics and the sequencing precondition. Every sentence earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-required-parameter action tool with full schema coverage and safety annotations, the description covers what it does, what config it applies, how it resolves, and when to call it. It could be more complete by noting what happens on an already-recording tab or linkage to pause/stop, but it is essentially sufficient to invoke correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so both parameters (tabId, timeoutMs) are fully documented in the schema, making the baseline 3 appropriate. The description adds only indirect context (settings come from saved config) without clarifying parameter behavior beyond the schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Start a Recordful recording on the target tab') and distinguishes itself from siblings by naming the state transition it performs versus stop_recording/pause_recording/resume_recording. An agent can route to the correct tool from the description alone.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives a clear prerequisite/precondition for success ('Navigate to the page you want to show before calling this'), which explains when and how to sequence this against the navigate sibling. It does not explicitly name when not to use it or point to alternatives, so it stops short of 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

stop_recordingStop recordingA

Stop the current Recordful recording. Recordful then opens its editor with the recording, exactly as when the user clicks Stop. Returns the editor tab ID when it is known.

ParametersJSON Schema
NameRequiredDescriptionDefault
timeoutMsNoMaximum time to wait for the recorder to reach the new state, in milliseconds.

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations state destructiveHint=false and readOnlyHint=false, but the description adds the key non-obvious behavior: stopping also opens the editor exactly as a manual Stop click would. This side effect is real added value beyond the annotations. It doesn't cover timeout semantics, but the schema does.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly written sentences, front-loaded with the core action, followed by the editor side effect and return value. No filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A single optional-param, no-output-schema tool with annotations covering safety. The description covers the essential side effect and return shape (editor tab ID when known). Lacking only explicit precondition (recording in progress) and behavior when no recording is active.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Only one optional parameter (timeoutMs), and schema coverage is 100% with its own description. With zero required params, the baseline is 4; the description adds no param detail but nothing is needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource (stop the current Recordful recording) and is clearly distinguished from siblings like start_recording, pause_recording, and resume_recording. The agent knows exactly which lifecycle action this performs.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Implied usage is clear from the name and the surrounding recording lifecycle siblings, but the description never explicitly states when to prefer this over pause_recording (temporary halt vs. finalize) or that a recording must be in progress. Minor ambiguity remains for the stop-vs-pause decision.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

typeType into a fieldA

Click the field, then type the text at a human pace (text inputs, text areas, content-editable areas). Set clear to replace what is already there. Use press for Enter, Tab and other keys.

ParametersJSON Schema
NameRequiredDescriptionDefault
refYesElement ref from the latest snapshot, e.g. "e12".
textYesText to type into the field, as a person would.
clearNoSelect and replace what the field already holds (default false: type after it).
delayMsNoAverage delay between keystrokes in milliseconds (default about 70; 0 fills the field at once).

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnlyHint=false, destructiveHint=false, openWorldHint=true, idempotentHint=false). The description adds behavior not in the structured data: that a click is performed first, that typing occurs at a human pace, and that without 'clear' text is appended rather than replacing. It does not disclose failure modes or what happens with an invalid ref.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the core action, then the replace option, then the alternative tool. Every sentence carries distinct information with no repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 4-parameter interaction tool with full schema coverage and annotations, the description covers purpose, target element types, key parameter intent, and the sibling alternative. Only error/edge-case behavior (stale ref, non-editable element) is unaddressed.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already documents ref, text, clear, and delayMs with defaults and bounds. The description only echoes the 'clear' semantics ('replace what is already there') and adds nothing about ref or delayMs, so the baseline 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Click the field, then type the text') and scopes the supported targets (text inputs, text areas, content-editable areas). It is clearly distinguishable from the sibling 'press', which it explicitly names as the tool for non-text keys.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit routing rule: 'Use press for Enter, Tab and other keys', which tells the agent when to pick the alternative. It also explains the 'clear' choice for replacing existing content. It lacks guidance on failure/edge cases (e.g. stale refs) or when to prefer click/scroll instead.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wait_forWait for the pageA
Read-only

Wait until text appears on the page or an element (ref) becomes visible, or with state "hidden" until it goes away. Keeps waiting across navigations. Fails with WAIT_TIMEOUT if it doesn't happen in time.

ParametersJSON Schema
NameRequiredDescriptionDefault
refNoWait until this element is visible (or gone). Give either text or ref.
textNoWait until this text is on the page (case-insensitive). Give either text or ref.
stateNo"visible" (default) waits for it to appear; "hidden" waits for it to go away.
timeoutMsNoHow long to wait, in milliseconds (default 10000).

TDQS

A4/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, non-destructive, openWorld, non-idempotent), and the description adds genuinely useful behavior: it keeps waiting across navigations and fails with WAIT_TIMEOUT rather than hanging. It stops short of describing what a successful wait returns, though no output schema exists to cover that.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences, front-loaded with the primary success condition and followed by the failure mode. Every clause carries information; nothing is padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a four-parameter, no-output-schema wait tool, the description covers the core trigger conditions, the hidden-state variant, cross-navigation persistence, and the timeout failure. The only gap is return value on success, which is minor for a blocking primitive.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% — text vs ref exclusivity, case-insensitive matching, the state enum, and the timeout default/range are all documented in the schema. The description restates the state semantics but adds no syntax or format detail beyond it, so the baseline of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb (wait) and the two triggering resources (text on page, element ref), plus the inverse mode (state "hidden"). Nothing in the sibling list does the same thing, so an agent can route to it unambiguously.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the description — you call it when you need to block until content appears or disappears — but there is no explicit when-to-use versus siblings like snapshot or get_status, and no stated preconditions or exclusions.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 14 tool updatesv0.3.0
    • First observedclick
    • First observedget_status
    • First observednavigate
    • First observedpause_recording
    • First observedpress
    • First observedprobe_capture
    • First observedresume_recording
    • First observedscreenshot
    • First observedscroll
    • First observedsnapshot
    • First observedstart_recording
    • First observedstop_recording
    • First observedtype
    • First observedwait_for

TDQS

A4/5.0

Scored across 14 tools

Disambiguation4/5

Each tool maps to a distinct action within its domain: recording lifecycle (start/stop/pause/resume), browser control (navigate/click/type/press/scroll/snapshot/wait_for), and diagnostics. The only mild overlap is get_status vs probe_capture, which both report connection and permission state, but their descriptions distinguish state reporting from a pre-capture diagnostic check.

Naming Consistency4/5

All names are lowercase snake_case, which is consistent, and the recording tools follow a clean verb_noun pattern (start_recording, stop_recording, pause_recording, resume_recording). However, browser tools mix single verbs (click, type, press, scroll, snapshot) with verb_noun forms (get_status, probe_capture, wait_for), a minor deviation from a single predictable pattern.

Tool Count5/5

14 tools is well within the ideal range and each earns its place: a full recording lifecycle, a coherent browser-automation set, and two diagnostics. Nothing feels redundant or padded for the server's stated scope.

Completeness4/5

The surface covers recording control and the core automation primitives (navigate, snapshot, click, type, press, scroll, wait_for) with file editing via navigate. Minor gaps exist, such as no dedicated hover or select-option helper, but these are largely workable via click/type/press.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    B
    maintenance
    Turns your AI host into a product videographer — scripted screen recordings of your own web app with a gliding cursor, camera zooms, highlight callouts, captions, and branded transitions, plus marketing-grade screenshots. Automatic dark-frame cleanup and MP4/GIF export. Free, MIT, 100% local — no account, no API keys.
    14
    66 npm
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to create polished product demo videos by controlling a real Chromium browser, recording actions, and rendering 1080p MP4s with narration, captions, and styled overlays.
    1
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to browse, click, and debug real websites in the user's own signed-in browser or a dedicated Chrome instance, with only explicitly shared tabs reachable and revocable at any time. Exposes the full developer toolbox — console, network, sources, debugger, elements, performance and CPU/memory profiling, storage, service workers, coverage, emulation, accessibility, security, Lighthouse, and Playwright-test recording — as first-class tools callable in one step.
    249 npm
    1
    MIT