Skip to main content
Glama

ShipCheck

Server Details

Independent preview-URL QA for coding agents. Playwright heuristics, pass/fail pack.

Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

Glama MCP Gateway

Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.

MCP client
Glama
MCP server

Full call logging

Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.

Tool access control

Enable or disable individual tools per connector, so you decide what your agents can and cannot do.

Managed credentials

Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.

Usage analytics

See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.

100% free. Your data is private.
Tool DescriptionsA

Average 4.2/5 across 4 of 4 tools scored.

Server CoherenceA
Disambiguation5/5

Each tool has a clearly distinct role in the QA workflow: qa_preview starts a run, qa_status polls it, qa_get_report retrieves results, and qa_note handles the needs_review closure. There is no overlap or ambiguity between them.

Naming Consistency5/5

All tools follow a consistent 'qa_<verb>' pattern, with verbs that clearly describe their actions (get, note, preview, status). The naming is uniform and predictable throughout the set.

Tool Count5/5

With only 4 tools, the set is tightly scoped to the core QA lifecycle (start, poll, fetch, close). Each tool serves a necessary purpose and none feels redundant or decorative for the server's stated function.

Completeness4/5

The tool surface covers the main QA workflow end-to-end: initiating a preview, checking status, retrieving evidence, and finalizing with a note. Minor gaps like cancellation or listing historical jobs exist, but they don't break the primary use case.

Available Tools

4 tools
qa_get_reportA
Read-onlyIdempotent
Inspect

Evidence pack for a job: heuristics, screenshot paths, optional human_note. Call when qa_status is pass or needs_review.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior4/5

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

The annotations already declare readOnlyHint: true, idempotentHint: true, and destructiveHint: false, so the safety profile is known. The description adds the term 'Evidence pack' and clarifies it includes 'heuristics, screenshot paths, optional human_note,' which enriches understanding of the data. It doesn't contradict annotations and provides a bit more context than the schema alone.

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?

The description is two sentences long: 'Evidence pack for a job: heuristics, screenshot paths, optional human_note. Call when qa_status is pass or needs_review.' Every word adds value, front-loading the purpose and including a critical usage condition. No fluff.

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?

Given the tool's simplicity (one parameter, no nested objects, no output schema), the description is complete. It explains what is returned (evidence pack with heuristics, screenshots, human note) and when to call it. Since there's no output schema, the description covers the return value concept. It could mention error conditions, but the tool is simple enough that this isn't necessary.

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 0%, meaning the description must add meaning for the parameters. The description explains what the job represents ('a job') and the content of the return, but it doesn't explicitly elaborate on the job_id parameter beyond what the schema shows (a required string). The context 'job' is helpful, and the overall purpose clarifies what job_id is used for, but it doesn't add syntax or format details not already in the schema.

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 clearly states 'Evidence pack for a job: heuristics, screenshot paths, optional human_note', which specifies the resource (a job's QA report) and the content. It also includes a usage condition ('Call when qa_status is pass or needs_review') that differentiates it from other QA tools. It doesn't explicitly name a sibling, but the context distinguishes it sufficiently.

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

Usage Guidelines5/5

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

Explicit when-to-use guidance is provided: 'Call when qa_status is pass or needs_review.' This gives clear conditions for invoking the tool. While it doesn't list alternative tools, the conditional nature directly implies not to call in other statuses, and the sibling tools list provides context for alternatives.

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

qa_noteAInspect

Close a needs_review job with a human/agent note. verdict=pass promotes status to pass; verdict=fail keeps needs_review.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
verdictYes
human_noteYes
Behavior4/5

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

The description discloses the key behavioral difference between verdict outcomes ('verdict=pass promotes status to pass; verdict=fail keeps needs_review'), adding important context beyond the annotations. It does not contradict the read-only=false annotation.

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?

The description is two sentences that directly state the purpose and the critical verdict logic. No wasted words.

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?

The description covers the core behavior and verdict semantics for a simple 3-parameter tool. It lacks explicit return/response details, but with no output schema, it still provides enough context for an agent to invoke it correctly.

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?

With schema coverage at 0%, the description compensates by explaining the verdict parameter's effect. The other parameters (job_id, human_note) are self-explanatory from their names, and the phrase 'human/agent note' adds clarity for human_note.

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?

The description clearly states the tool's function: 'Close a needs_review job with a human/agent note.' This uses a specific verb and resource, and the verdict semantics further distinguish it from siblings like qa_get_report and qa_status.

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 description provides clear context for when to use the tool: when closing a needs_review job with a note. It does not explicitly exclude alternatives, but the sibling tools are clearly read-only or preview actions, so usage is well implied.

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

qa_previewAInspect

Queue an independent Playwright QA run against a public https preview URL. Returns a job_id. Poll qa_status; fetch qa_get_report when status is pass or needs_review. https only; localhost and private IPs are rejected.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesPublic https preview URL
storiesYes
viewportNodesktop
auth_hintNoPublic demo credentials only; not used to log in in v0
webhook_urlNoAccepted and SSRF-checked; not fired in v0
Behavior4/5

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

Annotations already convey readOnly=false, idempotent=false, and destructive=false, so the description builds on that by explaining the asynchronous job model, the job_id return value, the polling pattern, and the SSRF-related URL rejection. It doesn't cover all failure modes or the meaning of statuses beyond pass/needs_review, but it adds useful behavior beyond the annotations.

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: the first states the core action and resource, the second describes the return value and follow-up workflow, and the third gives a security constraint. Every sentence earns its place with no wasteful 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?

Given the tool's asynchronous nature, five parameters, and no output schema, the description covers the essential invocation and follow-up workflow well: returns job_id, tells the agent to poll qa_status, names the terminal states, and specifies fetch conditions. It could be more complete by mentioning failure statuses or reporting behavior when status is unknown, but it is sufficient for basic correct use.

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 60% and most parameters (url, stories, auth_hint, webhook_url) already have meaningful schema descriptions. The tool description adds the extra constraint that localhost/private IPs are rejected, which is useful for url, but it does not otherwise explain or enrich 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.

Purpose5/5

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

The description uses a specific verb ('Queue') and clearly identifies the resource ('an independent Playwright QA run against a public https preview URL') and the expected output ('Returns a job_id'). It also distinguishes itself from siblings by explicitly directing the agent to poll qa_status and fetch qa_get_report.

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 description gives a clear operational workflow: queue the run, then poll qa_status, then fetch qa_get_report on pass or needs_review. It also states constraints (https only, localhost/private IPs rejected), but it doesn't explicitly state when not to use this tool versus using qa_status or qa_get_report directly.

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

qa_statusA
Read-onlyIdempotent
Inspect

Poll a ShipCheck job: queued / running / pass / needs_review / error.

ParametersJSON Schema
NameRequiredDescriptionDefault
job_idYes
Behavior4/5

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

Annotations already declare readOnlyHint and idempotentHint, so safety is covered. The description adds value by listing the possible states, which informs the agent about expected outcomes. It does not contradict annotations and provides additional useful context.

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?

The description is a single, efficient sentence that front-loads the action and immediately conveys the tool's purpose. There is no fluff or 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 simple status-polling tool with no output schema, the description covers the essential return states and the single parameter. It does not dwell on edge cases (e.g., timeouts), but given the annotations and simplicity, it is sufficiently complete.

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

Parameters2/5

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

Schema description coverage is 0%, so the description bears responsibility for explaining parameters. The only parameter, job_id, is not described beyond its name, and the description does not clarify its format or purpose. It relies on the obvious name, but fails to compensate for the lack of schema documentation.

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?

The description uses a specific verb 'poll' with a clear resource ('a ShipCheck job') and enumerates the possible states, which distinguishes it from sibling tools like qa_get_report or qa_preview. It clearly indicates a status-checking function.

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 description implies usage for checking job status, but does not explicitly contrast with sibling tools (e.g., 'use qa_get_report for full report'). It provides clear context for when to poll, but lacks explicit exclusions or alternative suggestions.

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

Discussions

No comments yet. Be the first to start the discussion!

Related MCP Servers

View all MCP Servers

Try in Browser

Your Connectors

Sign in to create a connector for this server.

Resources