Faylee
Server Details
Read browser bug recordings: video, console, network, steps. Fix the bug and comment back.
- Status
- Healthy
- Uptime
- 93.7% over 21 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 13 tools
Each tool targets a distinct artifact (frames, console, network, requests, steps, transcript, annotations), and the descriptions explicitly cross-reference each other to steer selection. The main soft spot is that get_moment is an aggregate of what get_frames, get_annotations, get_console and get_network return individually, so an agent must reason about when to grab a slice versus the whole moment.
All 13 names are snake_case verb_noun constructions with no style mixing. The nine get_* accessors are perfectly parallel, and the four non-get tools (add_comment, create_recording_link, open_recording, search_recordings) use action verbs that accurately distinguish them from pure retrieval.
At 13 tools the surface sits comfortably in the well-scoped range, and each tool maps to a discrete investigative or reporting need. Nothing appears redundant or padded — even get_guide and get_request serve clear, non-overlapping purposes.
The investigative lifecycle is thorough: discover (search_recordings), enter (open_recording), drill down across every recording artifact, request more detail (create_recording_link), and close the loop (add_comment). Gaps are minor — there is no way to update, resolve, or redact a recording or edit a prior comment, and the guide advertises a redaction topic with no corresponding tool.
Available Tools
13 toolsadd_commentAdd commentADestructiveInspect
Comment on a recording as the person who connected you, optionally at a time. Use it to report back: what you found, the cause, and the fix or pull request, in plain words the reporter understands. The reporter and the team are notified.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| body | Yes | Markdown, at most 5000 characters | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations, the description discloses a real side effect the schema cannot: "The reporter and the team are notified," plus the identity under which the comment is posted. It does not explain the destructiveHint=true flag or whether comments can be edited/removed, so a mutation with no reversal information remains partially opaque.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the action and the attribution, then the usage intent, then the side effect. The style advice ("in plain words the reporter understands") borders on editorializing but still serves the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter write tool with no output schema, the description covers purpose, caller identity, and the downstream notification effect. Missing details are minor — no error behavior and no explanation of the destructive flag — but nothing blocks a correct call.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each property is documented (time formats, markdown/5000-char limit, recording link or id). The description only echoes that "at" is optional, adding no semantics beyond the schema; baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource — commenting on a recording — and adds who the comment is attributed to ("the person who connected you"). It is clearly distinct from the read-oriented siblings (get_annotations, get_transcript), though it never names an alternative explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
"Use it to report back: what you found, the cause, and the fix or pull request" gives concrete guidance on when and with what content to call it. There is no explicit when-not or pointer to a sibling tool, so it stops short of full routing guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
create_recording_linkCreate recording linkAInspect
Create a link anyone can open to record their screen and send it to this workspace, with no account or extension. Use it to ask for a clearer repro, such as the same steps with the console open or on another browser.
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | What to record, shown to the person | |
| message | No | Instructions for the person | |
| external_ref | No | The ticket or conversation this is for | |
| expires_in_days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a non-read-only, non-destructive, non-idempotent creation tool. The description adds meaningful behavioral context beyond annotations: the link works for anyone, requires no account or extension, and recordings are sent to the workspace. It does not cover expiry behavior or permission constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted text, and the core action is front-loaded before the usage example. Every sentence contributes either capability or context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The core purpose and usage context are complete enough for an agent to call the tool, and annotations cover the safety profile. However, with no output schema, the description does not clarify what is returned, and the undocumented expires_in_days parameter leaves a gap around link lifetime.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 75%, so the schema already documents title, message, and external_ref well. The description adds no parameter-specific semantics, and expires_in_days remains undocumented in both the schema and the description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: create a link that anyone can open to record their screen and send it to this workspace. It also scopes the behavior with 'no account or extension,' which clearly distinguishes it from sibling read/get tools and from open_recording.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly gives the intended use case: 'Use it to ask for a clearer repro, such as the same steps with the console open or on another browser.' This is clear usage context, but it does not name alternatives 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.
get_annotationsGet drawings and commentsARead-onlyIdempotentInspect
What people pointed at in a recording, with times: arrows, circles, boxes and notes drawn on the screen and the element each points at, edits the reporter made to the page to show how it should be, and the team's comments, some pinned to a spot. Pass a time to get_moment to see it.
| Name | Required | Description | Default |
|---|---|---|---|
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds substantive context the annotations cannot: that annotations carry timestamps, that some comments are pinned to a screen location, and that page edits are included as a distinct item type. It stops short of noting ordering, volume, or pagination.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One long but well-ordered sentence leads with what the data is and builds outward to item types, then ends with the get_moment handoff. Every clause carries information; only the enumerated drawing shapes are mildly redundant.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read tool with no output schema, the description gives a good inventory of return content and the time dimension, which is what an agent needs to decide to call it. The absence of any note on ordering, result size, or empty-recording behavior is the remaining gap.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the single 'recording' parameter's accepted forms (share/embed/dashboard URL with or without ?t=, or a recording id) are already fully documented. The description adds nothing about that parameter, which is the expected baseline when the schema does the work.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description enumerates exactly what the resource contains — drawings (arrows, circles, boxes, notes), the element each points at, reporter page edits, and team comments, some position-pinned. That clearly separates it from siblings like get_transcript and get_console. It is a noun phrase rather than a verb+resource, but the resource is unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The only explicit routing is 'Pass a time to get_moment to see it,' which covers one downstream use. There is no statement of when to call this instead of get_steps, get_frames, or get_guide when assembling a full picture of a recording, so the agent must infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_consoleGet consoleARead-onlyIdempotentInspect
The page's console output and uncaught errors, with times and stack traces.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| from | No | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| search | No | Only lines containing this text, ignoring case | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id | |
| errors_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely useful return-content detail — times and stack traces, plus inclusion of uncaught errors — which matters because there is no output schema. It omits whether results are capped, ordered, or paginated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single tight sentence with no filler, and the most important content (console output + uncaught errors) leads. It loses a point only because the fragment lacks a verb and never states the action or the required recording input.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only, single-required-param retrieval tool with 80% schema coverage and full annotations, the description covers the core return content adequately. The remaining gaps — no mention of the filtering parameters' effect, no indication of ordering or limits — are secondary given the annotation and schema coverage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 80%, so the baseline is 3; the schema already explains the time formats for from/to and the case-insensitive search. The description adds nothing about parameters, and errors_only in particular has no schema description and no clarification here — though its name is largely self-explanatory.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific resource — the page's console output and uncaught errors — and adds the distinguishing payload detail (times, stack traces). It is a noun phrase rather than a verb, so it does not read as an action, but an agent can still tell it apart from get_network/get_steps by resource. It stops short of explicitly contrasting with those siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is only implied: call it when you need console logs or uncaught errors from a recording. There is no statement of when to prefer it over get_network or get_request, and no mention of the from/to/search/errors_only narrowing options that the schema actually supports.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_framesGet screenshotsARead-onlyIdempotentInspect
Screenshots from a recording. With no times, one overview image of frames spread through it, each labeled with its time. With at, the screen at up to 8 times, such as the times of errors or of what the person said. Use size large to read small text. Comments pinned to a spot show as numbered orange markers, named in the caption.
| Name | Required | Description | Default |
|---|---|---|---|
| at | No | Times into the recording | |
| size | No | medium by default | |
| unmarked | No | For a screenshot the reporter drew on, the copy without the marks | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish read-only, idempotent, non-destructive behavior. The description adds useful output behavior beyond annotations: overview images are labeled with times, `at` returns up to 8 screenshots, large size helps read small text, and pinned comments appear as numbered orange markers named in the caption.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short, front-loaded, and every sentence adds useful information about mode selection, size, or output markers. There is no redundant or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only screenshot retrieval tool with full schema coverage and annotations, the description provides enough context about both operating modes and the visual output. The only unmentioned parameter is `unmarked`, which the schema documents.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds real meaning for `at` and `size` beyond the schema, but it never explains the `unmarked` parameter, leaving one semantic gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly identifies the tool as returning screenshots from a recording and explains the two modes: overview frames without times versus specific frames with `at`. This is specific enough to distinguish it from siblings like get_transcript or get_console.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly explains when to omit `at` versus when to provide it, including examples such as error times or spoken moments, and when to use `size: large`. It does not name alternative sibling tools or state exclusions, so it falls short of a full when/when-not/alternatives guide.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_guideGet guideARead-onlyIdempotentInspect
How to work through a Faylee recording: understand what the person meant, find the moment, see it, map it to code, fix it and report back. Call it once before your first recording. Topics go deeper: workflow, moments, network, console, annotations, redaction, fixing, reporting.
| Name | Required | Description | Default |
|---|---|---|---|
| topic | No | Leave out for the main workflow |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotations already establish that this is a safe, read-only, idempotent operation. The description adds useful context that it should be called once before the first recording and that topics provide deeper guidance, but it does not describe the returned guide content or format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The purpose and call timing are front-loaded, and the description is short and readable. The topic list duplicates the enum values from the schema, which is slightly redundant, but overall it remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-optional-parameter guide tool with rich annotations and no output schema, the description covers purpose, call timing, and topic usage sufficiently. It could be slightly more complete by stating what kind of guide content is returned.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the topic enum and its default behavior are already fully documented. The description adds that topics "go deeper," but otherwise largely echoes the enum values and does not explain individual topic meanings beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly frames the tool as a guide for working through a Faylee recording, with concrete stages such as understanding intent, finding moments, mapping to code, fixing, and reporting. It is distinguishable from sibling data-fetching tools, though it never explicitly says it returns documentation content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives explicit timing: "Call it once before your first recording." It also explains that topic selection goes deeper, giving clear usage context. It stops short of naming when not to use it or pointing to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_momentGet momentARead-onlyIdempotentInspect
Everything at one time in a recording: the screen at that moment and just before, what the person said, what they clicked, console output, requests, and what they drew or commented. Use it on any time from open_recording, the transcript or an error.
| Name | Required | Description | Default |
|---|---|---|---|
| at | Yes | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| window | No | Seconds either side to include. 3 by default, at most 30 | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish that this is a safe read-only and idempotent operation, so the description mainly needs to explain what the call returns and how it behaves. It does that well by describing the multi-source aggregation and temporal context around the moment, though it does not mention rate limits or any deeper operational constraints.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core behavior and uses a compact list that maps directly to the aggregated data sources. Every sentence earns its place without redundant repeats of the tool name or annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a read-only aggregation tool with complete schema descriptions and no output schema, the description provides enough return-content detail for an agent to know what to expect. It also explains acceptable time sources, making it complete for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 all three parameters, including time formats and the default/maximum window. The description adds useful context about where the `at` time may come from, but it does not significantly expand parameter semantics beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb and resource: fetching everything at one time in a recording. It then enumerates the aggregated data sources—screen, speech, clicks, console, requests, drawings and comments—which clearly distinguishes it from single-source siblings like get_frames, get_console, or get_transcript.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives clear usage context by telling the agent to call it on any time from open_recording, the transcript, or an error. It does not explicitly name when to prefer a sibling tool, but the aggregation purpose makes the alternative choice reasonably clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_networkGet network requestsARead-onlyIdempotentInspect
The page's requests with status and timing, and why failed ones failed (CORS, GraphQL errors). Each starts with a #id for get_request. sockets lists WebSocket and EventSource connections and their messages instead.
| Name | Required | Description | Default |
|---|---|---|---|
| to | No | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| from | No | A time into the recording: 1:22, 82s, 82000ms or milliseconds | |
| search | No | Only lines containing this text, ignoring case | |
| sockets | No | ||
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id | |
| failed_only | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description adds value by disclosing output characteristics: failures come with a diagnosis (CORS, GraphQL errors) and each entry carries a #id usable with get_request. It does not mention ordering, limits, or how from/to interact with the result set.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tight sentences with the core payload front-loaded and the two follow-up hints (id prefix, sockets mode) appended. No redundancy; the final clause ('sockets lists ... instead') is slightly compressed but still readable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description carries the return-value burden and does it well: what each entry contains, why failures appear, and how ids are formatted. The remaining gap is default behavior when sockets/failed_only are omitted and whether results are truncated.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% and the uncovered parameters are sockets and failed_only. The description meaningfully explains sockets (WebSocket and EventSource connections and their messages instead of HTTP requests), compensating for the gap there, and 'why failed ones failed' implies failed_only without stating it explicitly.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific resource (the page's network requests) plus the payload it returns (status, timing, failure reasons) and explicitly contrasts its output with the sockets mode. It also names the sibling get_request and explains the linkage via the #id prefix, so an agent can distinguish it from related tools without reading schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implicitly routes the agent: use this for the request list, then get_request for a single request's detail, and set sockets to inspect WebSocket/EventSource traffic instead. It lacks an explicit when-not-to-use statement (e.g. versus get_console for errors), but the alternative is named and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_requestGet requestARead-onlyIdempotentInspect
One request in full: headers, bodies, why it failed, and a cURL command to replay it. Take the #id from get_network, get_moment or open_recording.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The request's #id, with or without the # | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description earns credit by disclosing the return payload — headers, bodies, failure diagnostics and a replayable cURL — which the annotations cannot convey. Pagination or size limits for large bodies are not mentioned.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences, front-loaded with the outcome and followed by the input prerequisite. Nothing is repeated from the title or schema.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter read tool with no output schema, the description covers what is returned and where the input comes from, which is the essential information. It leaves edge cases (invalid id, recording not found, oversized bodies) unaddressed but those are secondary here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and both parameters document their own formats ('with or without the #', accepted URL shapes), so the schema does the heavy lifting. The description only adds the provenance of `id` (which tools produce it), which is a modest increment — baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource plus the exact payload ('headers, bodies, why it failed, and a cURL command to replay it'), so the agent knows what comes back. The relationship to get_network is implied by 'take the #id from get_network' (list vs. single detail), but the description never states the contrast explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Take the #id from get_network, get_moment or open_recording' gives a concrete prerequisite and routes the agent to the producing tools. There is no explicit when-not or alternative-detail-tool clause, so it stops short of full guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stepsGet stepsCRead-onlyIdempotentInspect
What the person did, as numbered steps to reproduce with times: clicks with the element's text and selector, typing, navigation.
| Name | Required | Description | Default |
|---|---|---|---|
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so safety is covered. The description adds real value by disclosing the shape of the output (numbered steps with times, element selectors, typing, navigation), but says nothing about volume, pagination, or failure modes for an invalid/unshared link.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
One compact sentence that front-loads the core concept ('numbered steps to reproduce') and then enumerates contents. Slightly awkward as a colon-delimited fragment, but there is no wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description must convey the return value, and it partially does by listing the kinds of events captured. It omits structure (flat list vs grouped sessions), size/limits, and how it relates to sibling read tools, leaving the agent short of what a 1-param inspection tool needs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the single 'recording' parameter is fully documented in the schema, including accepted URL forms and id fallback. The description adds nothing about the parameter, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explains what 'steps' means (clicks with element text and selectors, typing, navigation, timestamps) and frames it as a reproduction guide. However, it is a noun-phrase fragment with no verb, and it never distinguishes this from siblings like get_guide, get_frames, or get_transcript that plausibly return overlapping content.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to choose get_steps over get_guide, get_frames, get_transcript, or get_annotations, nor any prerequisites (e.g., must call open_recording first). The agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_transcriptGet transcriptARead-onlyIdempotentInspect
Everything the person said while recording, with times. It usually says what they expected and where it went wrong. Pass a time from it to get_moment to see what they were talking about.
| Name | Required | Description | Default |
|---|---|---|---|
| search | No | Only lines containing this text, ignoring case | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this as a safe, read-only, idempotent, closed-world read. The description adds useful context about transcript content and timestamps, but does not cover limitations, output structure, or error behavior beyond that.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with what the transcript contains. The middle sentence about expectations and failures is interpretive but still useful; there is little wasted text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple read tool with no output schema, the description gives enough about return content and cross-tool usage. Minor gaps around transcript format or search behavior are acceptable because the schema documents parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented. The description does not add meaning beyond the schema for recording or search, making the baseline 3 appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the resource and content: everything the person said while recording, with timestamps. It also distinguishes the tool from get_moment by describing how the transcript's times feed into that sibling.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It gives one concrete downstream usage — passing a transcript time to get_moment — but does not explain when to use this tool versus siblings like get_console, get_steps, or search_recordings. 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.
open_recordingOpen recordingARead-onlyIdempotentInspect
Start here with any Faylee link. Returns a briefing: what the person was trying to do, the pages, the key moments with times (errors, failed requests, what they pointed at, comments), what they said, and strings worth searching the code for, plus an overview image of the screen. Then use get_moment on any time in it.
| Name | Required | Description | Default |
|---|---|---|---|
| overview | No | Include the overview image. On by default | |
| recording | Yes | The Faylee link as pasted (share, embed or dashboard URL, with or without ?t=), or a recording id |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, idempotent, non-destructive, closed-world, so the safety profile is covered. The description adds genuine value by enumerating the return payload (errors, failed requests, comments, quoted speech, code-search strings, overview image), which is not visible anywhere else since there is no output schema. It stops short of noting behavior on malformed/expired links or any cost/pagination of a full briefing.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three short sentences, front-loaded with the entry-point instruction and the sibling hand-off, with the payload enumeration in the middle earning its place by substituting for an absent output schema. No filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema and only two parameters, the description carries the return-value burden and does so well by listing what the briefing contains and pointing to the next tool. Gaps remain around invalid-link handling, permission/ownership requirements, and how large the briefing can get.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so both parameters are already documented, and the recording parameter's accepted forms (share/embed/dashboard URL with or without ?t=, or an id) live in the schema. The description only hints at the overview flag via 'plus an overview image of the screen', adding marginal meaning. Baseline 3 applies when the schema does the heavy lifting.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Start here with any Faylee link') and immediately defines what it produces: a briefing with intent, pages, key moments, transcript, searchable strings, and an overview image. This distinguishes it cleanly from the many get_* siblings that each return one slice, so an agent can pick it without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
'Start here with any Faylee link' gives an explicit entry-point condition, and 'Then use get_moment on any time in it' names the concrete alternative and the condition that selects it (a timestamp from the briefing). Sequencing between this tool and a sibling is spelled out rather than implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_recordingsSearch recordingsARead-onlyIdempotentInspect
Find recordings in the workspace, newest first: by text in the title, description, page or transcript, by kind, or only those with errors or failed requests.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No | ||
| limit | No | 20 by default, at most 50 | |
| query | No | ||
| since | No | ISO 8601 time | |
| problems_only | No | Only recordings with errors or failed requests |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare this a read-only, idempotent, closed-world, non-destructive operation, so the safety burden is met. The description adds only the 'newest first' ordering guarantee, and says nothing about capped result sets or what a hit contains.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single sentence that front-loads the scope, then the ordering, then the filter facets — no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description should hint at what a result contains and how paging/limits behave; it gives ordering but leaves return shape and default/max limits implicit. Adequate for a filtered search, but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 60% and `query` has no schema description at all; the description compensates by specifying it searches title, description, page and transcript. `problems_only` is redundant with its schema text, and `since`/`limit` are not addressed beyond the schema's own notes.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Find recordings in the workspace') and enumerates the searchable facets, which distinguishes it from the get_* siblings that retrieve a single recording. It doesn't explicitly name an alternative tool, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied by the facet list — an agent can infer it should call this when it needs to locate recordings rather than fetch one by id. There is no explicit when-to-use/when-not-to-use guidance or reference to the get_* siblings for single-record retrieval.
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.
13 tool updates
- First observed
add_comment - First observed
create_recording_link - First observed
get_annotations - First observed
get_console - First observed
get_frames - First observed
get_guide - First observed
get_moment - First observed
get_network - First observed
get_request - First observed
get_steps - First observed
get_transcript - First observed
open_recording - First observed
search_recordings
Related MCP Connectors
Bug reports your coding agent can fix: real element, console errors, failing requests with bodies.
Production bugs with replay, network, console and stack, ranked for your coding agent to fix.
Bug tracking for AI agents: session replay, console/network logs, repro packs, test plans, evidence.
Run AI QA test runs on your web app and read the bugs they find, with steps to reproduce.
Related MCP Servers
- AlicenseAqualityDmaintenanceRecords every browser session (screen, DOM, network, console, storage) and enables time-travel debugging to rewind and analyze failures.628 npmMIT
- AlicenseAqualityBmaintenanceTurn screen recordings into automated Playwright E2E reproduction tests, structured GitHub bug reports with clickable video timestamps, and SOP walkthroughs.612 npmMIT
- FlicenseAqualityCmaintenanceReproduces and verifies website bug tickets in a real browser, returning annotated video, Playwright trace, screenshots, logs, and a verdict per acceptance criterion.18-
- FlicenseNot gradedqualityAmaintenanceEnables coding agents to inspect recorded browser flows—including user actions, network activity, console output, storage, DOM events, and screen recordings—for debugging, bug reporting, and regression testing without reproducing the issue.-
Glama MCP Gateway
Add one secure layer between your agents and this server.