ship.page
Server Details
Deploy HTML from any agent: POST markup, get a live URL. Static hosting API with MCP tools.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
Available Tools
9 toolsappend_filesAppend files to an existing dropADestructiveInspect
Add files to a drop owned by the authenticated account (requires an sp_ API key and an active subscription): up to 900 files per call, 10,000 per drop total, and existing paths are overwritten. The drop keeps its current expiry.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The drop slug (the subdomain part of its shipped.run URL). | |
| files | Yes | Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| plan | No | |
| slug | Yes | |
| files | Yes | Paths added by this call |
| expires_at | Yes | ISO timestamp, or null when the drop never expires |
| total_files | Yes | Total files on the drop after the append |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds substantial behavioral disclosure beyond the annotations: per-call and per-drop file limits (900/10,000), overwrite behavior for existing paths (consistent with destructiveHint=true), and the fact that the drop's current expiry is preserved. It also states the auth requirement (sp_ API key, active subscription). No contradiction with annotations.
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 well-structured sentence that front-loads the action and ownership, then packs prerequisites, limits, overwrite behavior, and expiry semantics without waste. Every clause earns its place.
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?
Given the rich schema (100% param coverage), output schema, and annotations, the description covers the remaining gaps that matter: auth requirements, rate/resource limits, destructive overwrite semantics, and expiry behavior. Nothing essential for correct invocation is missing.
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% with solid descriptions of both slug and files, so the baseline is 3. The description adds value beyond the schema by imposing a per-call constraint on the files parameter (up to 900 files), which is not stated in the schema, and by clarifying that path collisions overwrite existing files.
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+resource ('Add files to a drop') and scopes it precisely ('owned by the authenticated account'), which clearly differentiates it from siblings like deploy_html and delete_drop. The title and description together leave no ambiguity about what operation is performed.
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 description establishes clear context for when the tool can be used: requires an sp_ API key, an active subscription, and ownership of the target drop. It does not explicitly name alternatives or state when not to use it, but the prerequisites and ownership constraint give an agent enough context to select it appropriately.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_dropClaim an anonymous dropADestructiveInspect
Attach an anonymously deployed drop to the authenticated account using its one-time claim token (spc_..., returned once by deploy_html/deploy_files). Claiming extends the drop to the free-account lifetime (90 days) and can revive an offline drop during its 30-day private recovery window. Claimed drops become listable, deletable, and — on paid plans — redeployable via named drops. Requires an sp_ API key.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The drop slug (the subdomain part of its shipped.run URL). | |
| claim_token | Yes | The one-time spc_... token returned at deploy time. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | Yes | |
| claimed | Yes | |
| restored | No | True when the drop had already expired and was revived by the claim |
| expires_at | No | ISO timestamp after the claim's lifetime extension, or null |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal mutability (readOnlyHint=false) and destructive potential (destructiveHint=true). The description adds valuable behavioral context beyond those annotations: the token is one-time, claiming extends lifetime to 90 days, revives offline drops in a 30-day recovery window, and enables listing/deletion/redeployment. It does not fully explain destructive consequences, but the one-time token warning is critical and informative.
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 three sentences and every sentence adds a distinct piece of information: action + token source, effects, and prerequisites/options. It is front-loaded with the core purpose. It is slightly dense but not bloated.
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?
Given the two required parameters, full schema coverage, and presence of an output schema, the description covers the essential context: when to use, what claiming does, the one-time nature of the token, the lifetime extension, and the API key requirement. Nothing critical for correctly invoking the tool is missing.
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 extra meaning to the claim_token parameter by stating its exact format (spc_...), that it is one-time, and that it comes from deploy_html/deploy_files endpoints. This helps an agent know where to find the token, which the schema alone does not provide.
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 opens with a specific verb ('Attach') and a clear resource ('anonymously deployed drop to the authenticated account'), and differentiates the tool from siblings like deploy_html/deploy_files by focusing on the claim token. It also explains the concrete outcome (lifetime extension, reviving offline drops), so an agent can tell what this tool uniquely does.
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 description gives clear context for when to use claim_drop: after deploying anonymously and when the drop needs to be attached to the account. It mentions prerequisites (sp_ API key) and the one-time token source, but it does not explicitly say when NOT to use it or name alternative tools such as restore_drop for other recovery scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
delete_dropDelete a dropADestructiveInspect
Permanently delete a drop owned by the authenticated account (requires an sp_ API key). The URL stops serving immediately and cannot be recovered.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The drop slug (the subdomain part of its shipped.run URL). |
Output Schema
| Name | Required | Description |
|---|---|---|
| deleted | Yes | Slug of the deleted drop |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already flag destructive=true, and the description adds valuable behavioral context: deletion is permanent, the URL stops serving immediately, and recovery is impossible. This goes beyond the annotation flags and sets correct user expectations.
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 tight sentences convey purpose, ownership, authentication, immediacy, and irreversibility. Every clause adds information, and the most important consequence ('Permanently delete') is front-loaded.
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 single-parameter deletion tool with rich annotations and an output schema, the description is fully sufficient. It covers the action, prerequisites, ownership scope, and the critical irreversibility effect without unnecessary detail.
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%, and the slug parameter is already well documented as the subdomain part of the shipped.run URL. The description does not add parameter-level detail, but the baseline of 3 is appropriate because the schema carries the semantic weight.
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 verb ('delete'), a specific resource ('drop'), and the key scope ('owned by the authenticated account'). It clearly distinguishes the tool from siblings like restore_drop by emphasizing permanence.
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 description implies when to use the tool: when you intend a permanent deletion of a drop you own, and it states the authentication requirement (sp_ API key). It does not explicitly list alternatives or exclusions, but the permanence warning effectively separates it from restore-minded siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_filesDeploy a multi-file siteADestructiveInspect
Deploy a map of path -> content as a multi-file site (must include index.html to serve at the root). Anonymous: up to 100 files per request, 30-day expiry (90 days once signed in). Pro ($4/mo): up to 900 files, custom or no TTL, named drops.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry. | |
| name | No | Stable name for a redeployable drop (1-41 chars of [a-z0-9-]). Requires an active subscription; Team accounts serve it on their vanity subdomain. | |
| No | Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already). | ||
| files | Yes | Map of relative paths (e.g. 'index.html', 'css/app.css') to either a string, or { encoding: 'base64', content } for binary files. |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| name | No | |
| plan | Yes | |
| slug | Yes | Drop slug; the site is live at https://<slug>.shipped.run/ |
| files | Yes | |
| replaced | No | Present with named deploys; true when an existing drop was replaced |
| expires_at | Yes | ISO timestamp, or null when the drop never expires |
| claim_token | No | One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive/write behavior, so the description is not burdened with basic safety disclosure. It adds valuable context: file-count limits, expiry durations by auth tier, Pro custom TTL, output schema existence, and the index.html requirement. This goes beyond annotations and schema.
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 tight sentences deliver the core purpose plus the most important constraints and tier limits with no filler. The essential 'multi-file site' and 'index.html' requirement are front-loaded.
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 description, combined with the output schema and annotations, covers the deployment action, constraints, limits, and tier behavior. The only minor gap is that it does not explicitly route to siblings like deploy_html or append_files for single-file or incremental workflows.
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%, and each parameter is already well documented. The description adds the high-level shape of files and the index.html rule, but it does not need to restate parameter details. This meets the baseline for full schema coverage.
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 opens with a specific action and resource: 'Deploy a map of path -> content as a multi-file site.' It adds a concrete requirement (must include index.html) and differentiates itself from deploy_html by emphasizing the multi-file nature. This is clear and distinguishes the tool from 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?
The description gives clear context on when to use this tool: for multi-file sites, with explicit constraints and tier-based limits. It does not explicitly name alternatives like deploy_html for single files or append_files for updates, but the context is strong enough to guide basic selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deploy_htmlDeploy a single HTML pageADestructiveInspect
Deploy one HTML document and get back a live, unguessable https://.shipped.run/ URL. Anonymous: 10 deploys/min per IP, 10MB body cap, 30-day expiry. Pro ($4/mo): custom or no TTL, named drops.
| Name | Required | Description | Default |
|---|---|---|---|
| ttl | No | Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry. | |
| html | Yes | The full HTML document to publish. | |
| name | No | Stable name for a redeployable drop (1-41 chars of [a-z0-9-]). Requires an active subscription; Team accounts serve it on their vanity subdomain. | |
| No | Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| name | No | |
| plan | Yes | |
| slug | Yes | Drop slug; the site is live at https://<slug>.shipped.run/ |
| files | Yes | |
| replaced | No | Present with named deploys; true when an existing drop was replaced |
| expires_at | Yes | ISO timestamp, or null when the drop never expires |
| claim_token | No | One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already signal readOnly=false, destructive=true, and idempotent=false, and the description adds concrete operational context: unguessable URL, anonymous rate limit, body cap, and expiry policies. However, despite destructiveHint=true, it does not explain overwrite/replace semantics for redeploying a named drop, though this is a minor gap given the schema covers 'redeployable drop'.
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 sentences with no filler: the first front-loads the core action and result, the second packs the most important constraints and plan tiers into a compact clause. Every sentence earns its place.
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 definition is largely complete for a moderate-complexity deploy tool: it covers the primary outcome, limits, expiry, and plan differences, while the rich input schema and output schema carry the remaining detail. It could be slightly stronger by explicitly pointing to deploy_files for multi-file deploys, but nothing critical is missing.
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 every parameter already has a rich description including defaults, constraints, and edge cases. The description summarizes ttl/name concepts but does not meaningfully add beyond what the input schema provides, so the baseline score of 3 is 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 opens with a concrete verb and resource — 'Deploy one HTML document' — and states the expected outcome: a live, unguessable URL. It clearly distinguishes itself from sibling deploy_files by emphasizing 'one HTML page/document'.
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 description clearly implies the single-HTML-file use case, but it never explicitly names deploy_files as the alternative for multiple files or gives when-to-prefer conditions. It provides tier context (anonymous vs Pro) but leaves the routing decision to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_accountGet account infoAInspect
Show the authenticated account's plan, subscription status and usage (requires an sp_ API key). Anonymous callers should use get_limits for the static free-tier limits.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plan | Yes | free | pro | team |
| cancelAt | No | |
| accountId | Yes | |
| portalAvailable | No | |
| currentPeriodEnd | No | |
| activeSubscription | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
All annotation hints are false, so the description carries the burden of behavioral disclosure. It discloses an authentication requirement (sp_ API key) and characterizes the operation as 'Show', implying a read-only, non-destructive access. It does not explicitly state 'does not modify state', but given the tool name and description, this is sufficiently clear for an agent. No contradiction with annotations.
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 a single, focused sentence with no wasted words. The core purpose is front-loaded, followed by the auth requirement and the routing to an alternative, all in compact, scannable structure.
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?
This is a low-complexity, zero-parameter tool with an output schema present. The description covers the tool's purpose, authentication requirement, and the alternative for anonymous callers. Nothing needed for correct invocation is missing.
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?
The input schema has zero parameters and schema coverage is 100%, so there are no parameter semantics to document. The baseline of 4 applies because the description adds no unnecessary parameter commentary and there is nothing missing.
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 the resource ('the authenticated account') and a specific verb ('Show'), and enumerates the exact fields returned (plan, subscription status, usage). It also differentiates this tool from the sibling get_limits by explicitly stating the account-specific scope, leaving no ambiguity about what the tool does.
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 description clearly states a precondition ('requires an sp_ API key') and explicitly routes anonymous callers to the alternative tool get_limits. This is direct when-to-use versus when-not-to-use guidance, with the named sibling alternative.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_limitsGet plan limitsAInspect
Show the ship.page plan matrix (anonymous free tier vs Pro $4/mo vs Team $19/mo) and, when an sp_ API key is present, the caller's current account/plan status.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| plans | Yes | Plan matrix: anonymous, pro, team |
| account | No | Present when an sp_ API key was supplied |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds meaningful behavior beyond annotations: it discloses the anonymous vs authenticated behavior and the public plan matrix. The word 'Show' implies a non-mutating operation, and while readOnlyHint is false, this is not an affirmative contradiction since false is not a positive claim of mutation.
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 a single, information-dense sentence with principal content front-loaded and the conditional case stated second. No unnecessary words or repetition of 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 tool with no parameters and an output schema, the description is complete: it specifies exactly what is shown in both the anonymous and API-key-present cases. Nothing an agent needs to decide whether to call it is missing.
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?
There are no parameters, so the description does not need to explain parameter meaning. The baseline for zero parameters is 4, and the description correctly avoids inventing parameter details while still clarifying the API key as an environmental condition.
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 action ('Show') and a specific resource (the ship.page plan matrix), and adds the conditional account/plan status. It is clear about what the tool does, though it does not explicitly differentiate itself from the overlapping 'get_account' sibling for account status.
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 description gives clear context for when the tool provides just the public matrix versus when it also shows the caller's status (when an sp_ API key is present). It does not mention alternatives or exclusions, but for a zero-parameter informational tool this is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_dropsList your dropsAInspect
List drops owned by the authenticated account (requires an sp_ API key; anonymous drops are not listable). Returns slug, url, name, file counts, and expiry, newest first.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max drops to return (1-500, default 100). | |
| offset | No | Number of drops to skip (default 0). |
Output Schema
| Name | Required | Description |
|---|---|---|
| drops | Yes | |
| total | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotation Contradiction: readOnlyHint is false, yet the description says 'List drops' and 'Returns ...', which describes a non-mutating read operation. Even though the description is behaviorally honest about auth and output details, it directly conflicts with the structured readOnlyHint annotation, so it must score 1.
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 compact sentences front-load the core purpose, then pack auth, return fields, and ordering without redundancy. Every clause adds information.
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 list operation with only optional pagination parameters and an output schema, the description covers scope, auth requirements, return content, and ordering. Nothing needed to invoke it correctly is missing.
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% for both parameters, with ranges, defaults, and meaning already in the schema. The description mainly contributes ordering ('newest first'), but does not need to explain limit/offset further.
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?
Description states a specific action ('List drops') with a precise scope ('owned by the authenticated account') and adds concrete distinguishing detail: requires sp_ API key and anonymous drops are not listable. This separates it from all sibling drop tools that mutate or deploy files.
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?
Clear context: use to list drops for an authenticated account, with an explicit precondition (sp_ API key) and an exclusion (anonymous drops cannot be listed). It does not explicitly name sibling alternatives, but no sibling offers the same list operation, so the guidance is adequate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
restore_dropRestore an expired dropAInspect
Bring back an expired drop owned by the authenticated account while its files are still retained (requires an sp_ API key). Free accounts restore up to 30 days past expiry and the drop comes back at the 90-day lifetime; paid plans restore up to 90 days past expiry and the drop never expires again.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | Yes | The drop slug (the subdomain part of its shipped.run URL). |
Output Schema
| Name | Required | Description |
|---|---|---|
| url | Yes | |
| slug | Yes | |
| restored | Yes | False when the drop was not expired and nothing changed |
| expires_at | Yes | ISO timestamp after the restore, or null when the drop never expires |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnlyHint=false, destructiveHint=false), the description reveals meaningful post-call state changes: on free plans 'the drop comes back at the 90-day lifetime' and on paid plans 'the drop never expires again' — a significant, quasi-permanent consequence. It also discloses the auth-key requirement. No contradiction with annotations.
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 dense sentences with zero filler. The core action is front-loaded, the auth requirement is placed in a parenthetical, and the plan-dependent rules are compressed into parallel clauses. Every clause earns its place.
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?
Given the tool's complexity — auth requirement, two plan tiers, differing expiry windows — the description covers all major decision factors. An output schema exists, so return values need no explanation. The only minor ambiguity is the exact meaning of 'the 90-day lifetime' (from what reference point), which is a small 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 coverage is 100% — the slug parameter is already documented in the input schema as 'the subdomain part of its shipped.run URL.' The description adds no param-specific detail beyond what the schema provides, so the baseline of 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?
Uses a specific verb ('bring back') tied to a concrete resource ('an expired drop') with additional scoping constraints: 'owned by the authenticated account' and 'while its files are still retained.' This clearly differentiates it from siblings like delete_drop, list_drops, and claim_drop, and adds substantive detail beyond the title.
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?
Supplies concrete when-to-use conditions: an explicit auth prerequisite ('requires an sp_ API key') and eligibility windows ('Free accounts restore up to 30 days past expiry... paid plans restore up to 90 days past expiry'). It does not name sibling alternatives or explicitly state when not to use it, but the window and retention conditions effectively bound its applicability.
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. Dates show when Glama detected each change.
2 tool updates
- Changed
deploy_files1 field changed- changed
Input schema / properties / ttl / descriptionPrevious value: -"Lifetime in seconds (min 60). Anonymous: max 604800 (7 days), default 7 days. Signed-in free: max 2592000 (30 days), default 30 days. Paid: any value, omit for no expiry."New value: +"Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry."
- Changed
deploy_html1 field changed- changed
Input schema / properties / ttl / descriptionPrevious value: -"Lifetime in seconds (min 60). Anonymous: max 604800 (7 days), default 7 days. Signed-in free: max 2592000 (30 days), default 30 days. Paid: any value, omit for no expiry."New value: +"Lifetime in seconds (min 60). Anonymous: max 2592000 (30 days), default 30 days. Signed-in free: max 7776000 (90 days), default 90 days. Paid: any value, omit for no expiry."
6 tool updates
- Changed
append_files1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The drop slug (the subdomain part of its shipped.page URL)."New value: +"The drop slug (the subdomain part of its shipped.run URL)."
- Changed
claim_drop1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The drop slug (the subdomain part of its shipped.page URL)."New value: +"The drop slug (the subdomain part of its shipped.run URL)."
- Changed
delete_drop1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The drop slug (the subdomain part of its shipped.page URL)."New value: +"The drop slug (the subdomain part of its shipped.run URL)."
- Changed
deploy_files1 field changed- changed
Output schema / properties / slug / descriptionPrevious value: -"Drop slug; the site is live at https://<slug>.shipped.page/"New value: +"Drop slug; the site is live at https://<slug>.shipped.run/"
- Changed
deploy_html1 field changed- changed
Output schema / properties / slug / descriptionPrevious value: -"Drop slug; the site is live at https://<slug>.shipped.page/"New value: +"Drop slug; the site is live at https://<slug>.shipped.run/"
- Changed
restore_drop1 field changed- changed
Input schema / properties / slug / descriptionPrevious value: -"The drop slug (the subdomain part of its shipped.page URL)."New value: +"The drop slug (the subdomain part of its shipped.run URL)."
2 tool updates
- Changed
deploy_files1 field changed- added
Input schema / properties / emailAdded value: +{ + "description": "Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already).", + "type": "string" +}
- Changed
deploy_html1 field changed- added
Input schema / properties / emailAdded value: +{ + "description": "Contact email for an anonymous deploy: the one-time claim link is mailed to it, so the drop stays recoverable even if the claim_token from the response is lost. Pass it whenever the deploy is for a human. Ignored for authenticated deploys (those are owned already).", + "type": "string" +}
2 tool updates
- Added
append_files - Added
restore_drop
3 tool updates
- Changed
claim_drop2 fields changed- added
Output schema / properties / expires_atAdded value: +{ + "description": "ISO timestamp after the claim's lifetime extension, or null", + "type": [ + "string", + "null" + ] +} - added
Output schema / properties / restoredAdded value: +{ + "description": "True when the drop had already expired and was revived by the claim", + "type": "boolean" +}
- Changed
deploy_files1 field changed- changed
Input schema / properties / ttl / descriptionPrevious value: -"Lifetime in seconds (min 60). Free: max 604800 (7 days), default 7 days. Paid: any value, omit for no expiry."New value: +"Lifetime in seconds (min 60). Anonymous: max 604800 (7 days), default 7 days. Signed-in free: max 2592000 (30 days), default 30 days. Paid: any value, omit for no expiry."
- Changed
deploy_html1 field changed- changed
Input schema / properties / ttl / descriptionPrevious value: -"Lifetime in seconds (min 60). Free: max 604800 (7 days), default 7 days. Paid: any value, omit for no expiry."New value: +"Lifetime in seconds (min 60). Anonymous: max 604800 (7 days), default 7 days. Signed-in free: max 2592000 (30 days), default 30 days. Paid: any value, omit for no expiry."
3 tool updates
- Added
claim_drop - Changed
deploy_files1 field changed- added
Output schema / properties / claim_tokenAdded value: +{ + "description": "One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop.", + "type": "string" +}
- Changed
deploy_html1 field changed- added
Output schema / properties / claim_tokenAdded value: +{ + "description": "One-time claim token (spc_...), present only on anonymous deploys and shown once. Anyone holding it can attach the drop to an account via claim_drop.", + "type": "string" +}
6 tool updates
- First observed
delete_drop - First observed
deploy_files - First observed
deploy_html - First observed
get_account - First observed
get_limits - First observed
list_drops
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Deploy AI-generated HTML/CSS/JS to instant public HTTPS URLs from any MCP-compatible agent.
Deploy HTML or dist/ to a live HTTPS URL. No account. Drop, MCP, or CLI.
Instant web publishing for AI agents. POST HTML, get a live URL. No account needed.
Publish HTML, Markdown, and multi-file sites as shareable URLs instantly via MCP.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceOne-call static page/site deploys for AI agents — POST HTML, a files map, or a zip and get back a live unguessable URL. Remote endpoint at https://ship.page/mcp, free tier needs no account or API key.MIT
- FlicenseNot gradedqualityDmaintenanceDeploys HTML pages to an online preview platform and returns a shareable URL via MCP protocol.-
- AlicenseNot gradedqualityBmaintenanceEnables publishing sanitized static HTML pages from an MCP agent and receiving shareable URLs, with tools for updating, listing, publishing, and deleting pages.43MIT
- AlicenseAqualityDmaintenanceAgent-native hosting: your agent deploys any folder to a live URL in one command — no account, no dashboard, no CAPTCHA — and hands the human a link plus a plain-language summary. Full deploy lifecycle as MCP tools (deploy, verify, logs, inspect, rollback), production approval human-only; static sites and full Node.js apps, open source (Apache-2.0).13Apache 2.0
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct resource or lifecycle action: deploy_html vs deploy_files separate single-file from multi-file deploys, append_files adds to an existing drop, and claim/restore/delete/list cover different drop states. There is no meaningful overlap between tool purposes.
All nine tools follow a consistent snake_case verb_noun pattern, e.g. deploy_html, deploy_files, list_drops, restore_drop. The verbs clearly indicate the action and the nouns indicate the target resource.
Nine tools is well-scoped for a deployment service covering deploy, file management, lifecycle, and account/limit information. Each tool earns its place without unnecessary redundancy or overwhelming surface area.
The core drop lifecycle is covered: deploy, append files, claim, list, delete, and restore, plus account and limits context. Minor gaps exist around per-file updates/overwrites and named-drop redeployment not being exposed as an explicit tool, but agents can accomplish the main workflows.