Hatch
Server Details
Hosting for AI agents: publish a live website in one tool call, ephemeral or forever.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- VibeRooster/viberooster.github.io
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
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.
Tool Definition Quality
Average 4.5/5 across 15 of 15 tools scored. Lowest: 3.8/5.
Most tools have distinct purposes, but there are several 'poll_*' tools (poll_approval, poll_decision, poll_pairing) and multiple auth-related tools (auth, whoami, get_pairing_code, poll_pairing, refresh_session) that could be confused. The decision lifecycle (await_decision, poll_decision, continue_decision) is somewhat ambiguous, though descriptions clarify the flow.
All tool names use lowercase snake_case and follow an imperative verb (or verb_noun) pattern. Consistent prefixes like poll_ and get_/refresh_ create a predictable structure. The single-word verbs (auth, hatch, lookup, share) are still stylistically coherent.
The 15 tools cover multiple domains (site lifecycle, auth, sharing, human-in-loop, pairing) without feeling bloated. Each tool appears justified, and the count is at the upper bound of the ideal range but appropriate for the server's broad capabilities.
The set supports creating (hatch), reading (lookup), updating (upload, deploy, convert), but lacks a delete or list roosts operation. This is a notable gap in lifecycle coverage. There is also no explicit tool for managing custom domains, though convert may handle it implicitly.
Available Tools
15 toolsauthProtect a site with a loginADestructiveIdempotentInspect
Put a sign-in screen in front of a forever roost so visitors must authenticate. Pass tenantId plus an action:
• enable with mode: "password" and a password → ONE shared site password (everyone uses the same one). Best for a private demo or staging link.
• setPassword with a new password → rotate the shared password.
• disable → remove the login and serve the site publicly again.
• status → report whether auth is on and which mode.
Returns { enabled, mode, loginUrl }. Auth is only available on forever roosts — convert a free roost first. The sign-in screen lives at /__roost/login. Prefer password mode; useraccounts is unavailable (per-tenant databases are no longer provisioned).
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | `password` = one shared site password (recommended). `useraccounts` is unavailable. Required when `action` is `enable`. | |
| action | No | What to do. Defaults to `status`. | |
| password | No | The shared site password (password mode only). Required for `enable` (password mode) and `setPassword`. | |
| tenantId | Yes | Tenant id from the original hatch response. | |
| sessionToken | No | Optional paired session token from poll_pairing (when Authorization headers are unavailable). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite having annotations (readOnlyHint=false, destructiveHint=true), the description adds substantial behavioral context: disable 'remove[s] the login', setPassword 'rotate[s]' the password, and the return shape `{ enabled, mode, loginUrl }`. It also discloses the login screen location and prerequisite roost type, going beyond the raw annotation hints.
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 well-structured with a lead-in summary, a bulleted action list, a return format line, and prerequisite caveats. Every sentence serves a purpose: it explains the core function, each action, the response, and the forever-roost requirement without redundancy.
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 tool has no output schema, yet the description provides the return shape. It covers all major usage aspects: prerequisites (forever roost), actions, mode caveats, login URL, and disable behavior. The only omitted detail is sessionToken's optional use, but that is in the schema and not critical for general understanding.
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 baseline is 3. The description adds semantic value by explaining each action's effect in business terms (e.g., 'ONE shared site password', 'rotate the shared password') and notes that `useraccounts` is unavailable, which is not in the schema descriptions. This elevates it above baseline but not to a 5 because sessionToken is not re-explained and the schema already documents required fields.
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 explicitly states 'Put a sign-in screen in front of a `forever` roost so visitors must authenticate,' which is a specific verb and resource. It also enumerates distinct actions (enable, setPassword, disable, status), making it clearly distinguishable from sibling tools like deploy or share.
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 provides clear when-to-use context ('Best for a private demo or staging link') and when-not-to-use constraints ('only available on `forever` roosts — `convert` a free roost first'; 'useraccounts is unavailable'). It also directs users away from unavailable modes, fulfilling the when/alternatives criterion.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
await_decisionAwait human decisionAInspect
Create a human-in-the-loop review on the live artifact. Default options: Approve / Request changes / Reject. Reviewers see a Review required chip → modal. Request changes is non-terminal: poll returns changes_requested, then call continue_decision after regenerating. Optional timeoutSeconds and maxIterations (default 5). If the page has interactive controls (sliders/forms), the hatch HTML MUST expose window.VR_HITL_GET_SETTINGS so the review can attach those assumptions as JSON; on resolve, read settings from poll_decision.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | Modal heading (default: Finish your review). | |
| options | No | Radio choices (default Approve, Request changes, Reject). Labels are classified into approve / reject / changes_requested. | |
| tenantId | Yes | ||
| contextUrl | No | ||
| webhookUrl | No | Optional POST callback on each status transition. | |
| agentOutput | No | Optional seed of the agent’s current output into the conversation transcript. | |
| sessionToken | No | ||
| maxIterations | No | Max review rounds (default 5). Requesting changes at the last iteration fails with max_iterations_exceeded. | |
| timeoutSeconds | No | Wall-clock timeout for this review round; omit for no timeout. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses several behavioral traits beyond the annotations: reviewers see a 'Review required chip → modal,' request changes is non-terminal, and the settings-exposure requirement for interactive controls. However, it leaves ambiguity about whether the tool blocks while awaiting a decision or returns immediately for polling, and it does not describe the return value. Given sparse annotations, this gap is noticeable.
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 a clear purpose statement and uses four sentences to cover both setup and workflow nuances. Each sentence adds substantive information, though the density of concepts (timeout, maxIterations, settings exposure, poll_decision) could be slightly better organized.
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 covers the core initiation flow, the non-terminal changes path, and a special requirement for interactive controls. However, it omits what the tool returns, how to initiate the subsequent poll, and the meaning of several required parameters. Given no output schema and moderate complexity, these gaps leave the description incomplete for an agent to fully orchestrate the human-in-the-loop workflow.
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?
Input schema coverage is 67%, and the description adds little param-specific meaning beyond what schema descriptions already provide. It reinforces defaults for options and maxIterations but does not clarify tenantId, contextUrl, or sessionToken. The behavioral note about non-terminal request changes is more about workflow than parameter semantics, so the description only marginally compensates for the coverage 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 opens with 'Create a human-in-the-loop review on the live artifact,' which is a specific verb+resource pair that clearly states the tool's function. It distinguishes this tool from siblings like poll_decision and continue_decision by positioning it as the creation step, and the rest of the description elaborates on the review flow.
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 practical workflow guidance: it explains that 'Request changes is non-terminal' and instructs to 'call continue_decision after regenerating,' and mentions using poll_decision on resolve. It does not explicitly state when not to use this tool versus alternatives, but the context makes the primary use case clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
continue_decisionContinue HITL after changes requestedAInspect
After poll_decision returns status changes_requested, regenerate, then call this to reopen the same decision as pending_review for the next human round.
| Name | Required | Description | Default |
|---|---|---|---|
| title | No | ||
| tenantId | Yes | ||
| decisionId | Yes | ||
| agentOutput | No | Summary of the revised output for the conversation transcript. | |
| sessionToken | No | ||
| timeoutSeconds | No | Optional new timeout for this review round. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, and destructiveHint=false, so the write/non-idempotent nature is known. The description adds that the tool transitions the decision from changes_requested to pending_review, which is useful state-change context. It does not disclose additional behavioral traits 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?
One sentence, front-loaded with the condition, and every word contributes. Excellent structure for quick scanning.
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 covers the essential workflow but omits important details such as required parameters (tenantId, sessionToken), return behavior, and any error conditions. With no output schema, some of this burden falls on the description, leaving it incomplete for a 6-parameter tool.
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 descriptions cover only 33% of parameters (agentOutput and timeoutSeconds). The description implicitly identifies decisionId as 'the same decision' and hints at agentOutput through 'regenerate,' but leaves tenantId, sessionToken, and title unexplained. This doesn't fully compensate for the low 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?
Description states exactly what the tool does: after poll_decision returns changes_requested, it reopens the decision as pending_review. Uses specific verb 'reopen' and resource 'same decision', and distinguishes it from sibling poll_decision by referencing that tool's 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?
Explicitly specifies the precondition ('After poll_decision returns status changes_requested') and the required action ('regenerate, then call this'). This clearly indicates when to use the tool. However, it does not discuss alternatives or exclusions, but it's enough for the intended flow.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
convertRename or change tierADestructiveIdempotentInspect
Atomically rename a roost's URL and/or change its tier. Pass tenantId plus at least one of newPreferredSlug (rename), newTier (e.g. free → forever), or galleryListed (opt in/out of the Barnyard carousel on viberooster.com). Do NOT call hatch again to upgrade — that creates a second site with a new id.
Forever roosts are hidden from the carousel by default; pass galleryListed: true when promoting to forever to feature the site publicly.
| Name | Required | Description | Default |
|---|---|---|---|
| newTier | No | New tier. Clears `expiresAt` when promoting to `forever`. | |
| tenantId | Yes | ||
| sessionToken | No | Optional paired session token from poll_pairing (when Authorization headers are unavailable). | |
| galleryListed | No | Opt in (`true`) or out (`false`) of the public Barnyard carousel. Forever tier requires `true` to appear; free tier is listed unless set to `false`. | |
| newPreferredSlug | No | New hostname label. The old slug is released atomically. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses atomicity ('Atomically'), that the old slug is released, that forever roosts are hidden from the carousel by default, and that 'galleryListed: true' is required to feature publicly. These details go beyond the destructiveHint/idempotentHint annotations and clarify real side effects. 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 front-loaded with the primary action and is compact. Every sentence adds essential information: the atomic rename/tier change, the requirement to pass tenantId plus one field, the explicit warning about hatch, and the carousel visibility caveat. No filler or repetition of schema details.
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 no output schema and 5 parameters, the description covers all necessary invocation context: the required parameter, which combinations are valid, a critical sibling-tool pitfall, and behavioral effects (gallery visibility, slug release). It is sufficiently complete for correct selection and invocation without additional external knowledge.
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 80%, so the schema already documents most parameters. The description adds meaningful semantics by grouping parameters ('Pass tenantId plus at least one of...'), explaining the meaning of newPreferredSlug as 'rename', giving a concrete tier example ('free' → 'forever'), and clarifying galleryListed behavior not fully captured in 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 opens with a specific verb+resource: 'Atomically rename a roost's URL and/or change its tier.' It clearly distinguishes from the 'hatch' sibling by warning that calling 'hatch' again creates a second site. The scope (URL rename, tier change, gallery listing) is fully covered.
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?
Provides explicit when-to-use guidance: pass 'tenantId' plus at least one of the three mutable fields. Explicitly names an alternative and warns against it: 'Do NOT call hatch again to upgrade — that creates a second site with a new id.' Also gives context for gallery listing behavior when promoting to forever.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deployReplace site code (advanced)ADestructiveIdempotentInspect
Replace the server-side code of an existing roost. Advanced — most agents should use upload (for static files) or convert (for renames) instead. Pass tenantId, workerName, and a full ES module script (text only, 1.5 MiB max).
| Name | Required | Description | Default |
|---|---|---|---|
| script | Yes | Full ES module source. | |
| metadata | No | ||
| tenantId | Yes | ||
| approvalId | No | Tier-2 phone approval id from a prior deploy attempt. | |
| workerName | Yes | ||
| sessionToken | No | Optional paired session token from poll_pairing (when Authorization headers are unavailable). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate destructive and non-read-only behavior, so the bar is lower. The description adds useful constraints: 'text only, 1.5 MiB max' for the script, and it implies that the operation is a full replacement. It does not elaborate on side effects beyond what annotations cover, but the added size/format constraints provide extra transparency.
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 concise: two sentences that lead with the core purpose, then provide guidance and key constraints. There is no filler or repetition of schema details. It is well-structured and 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?
Given the tool has 6 parameters and no output schema, the description covers the main purpose, alternatives, and key parameter constraints. However, it omits context about the approval workflow (e.g., when `approvalId` or `sessionToken` are needed) and does not describe return values or success behavior. It is adequate but not fully comprehensive.
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 50%, so the description needs to compensate. It does clarify that `script` must be a full ES module and size-limited, and it names the required parameters. However, it does not explain the semantics of `tenantId` and `workerName` (which lack schema descriptions), leaving some ambiguity. Overall, it adds some value but not comprehensive compensation.
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 action ('Replace the server-side code of an existing roost') with a specific verb and resource. It distinguishes itself from siblings by explicitly mentioning `upload` and `convert` as alternatives for different use cases, making the tool's unique scope evident.
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 provides clear usage guidance: it warns that this is 'Advanced' and most agents should use `upload` or `convert` instead. It also specifies the required parameters (`tenantId`, `workerName`, `script`), giving direct instructions on when and how to invoke the tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pairing_codeGet pairing codeAInspect
Issue a fresh pairing code + URL (TTL 10 minutes) for claiming a tenant or authorizing a new agent session. Render pairingUrl as a QR for the Vibe Rooster app. Prefer this over whoami when starting a pairing flow. Do not call again until poll_pairing returns expired/completed — repeated calls invalidate the previous code.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | Yes | Tenant id from hatch response. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses TTL of 10 minutes, invalidation of the previous code on repeated calls, and the need to render pairingUrl as a QR. These are substantive behavioral details not present in the annotations, which only indicate flags. 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 three sentences, front-loaded with the core action, and every sentence adds meaningful operational detail without redundancy or fluff.
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?
Despite having no output schema, the description mentions pairingUrl, references poll_pairing and whoami for context, and covers side effects and usage conditions. For a single-parameter tool, this is complete enough for an agent to select and invoke correctly.
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?
Input schema covers 100% of parameters with 'tenantId' described as 'Tenant id from hatch response.' The description does not add parameter-specific syntax or additional semantics, so the baseline 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 uses a specific verb ('Issue') and names the resource ('pairing code + URL'), explicitly stating the purpose for claiming a tenant or authorizing a new agent session. It also distinguishes itself from the sibling 'whoami' by saying 'Prefer this over whoami.'
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 guidance: 'Prefer this over whoami when starting a pairing flow' and provides the exact condition for when not to call again ('until poll_pairing returns expired/completed'). It also warns about repeated calls invalidating the previous code, which is clear exclusionary guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hatchHatch a new siteAInspect
Create a NEW site (a 'roost') and return its public URL in one call. Returns { tenantId, slug, url, apex, uploads? } — show url to the user and remember tenantId. NEVER call hatch twice for the same site — use convert to rename or change tier, and upload/deploy for content updates.
Pick apex from the user's intent (homes / estate / land / wedding / events / agency / site / omit for theroost.dev). Do NOT invent other apexes.
Four ways to call it:
• Omit manifest, site, and script → a placeholder page is published instantly (best zero-token first turn).
• Pass manifest (file list with sizes) → returns presigned uploads[]; you PUT each file's bytes directly to its URL. PREFER this for any project with images, fonts, video, or more than a few KB of HTML.
• Pass site (inline files map) → small text-only sites only. Files are sent in the request body, so this is expensive in tokens for anything bigger than a handful of HTML/CSS files.
• Pass script → advanced: full server-side code as one ES module (1.5 MiB max, text only — NEVER base64-embed binaries here).
| Name | Required | Description | Default |
|---|---|---|---|
| apex | No | Specialty hostname apex for the live URL (`https://{slug}.{apex}`). Choose from user intent: theroost.homes (residential listing), theroost.estate (commercial/luxury), theroost.land (land/parcels), theroost.wedding (wedding RSVP), theroost.events (conference/meetup), theroost.agency (pitch/portfolio), theroost.site (generic short-lived niche). Omit for theroost.dev. Never pass theroost.rentals (reserved). | |
| kind | No | Artifact kind. Use `run-report` for agent observability / compliance run reports; default `site` for consumer sites. | |
| site | No | Inline file map. Suitable ONLY for small text-only sites (a handful of HTML/CSS files). For anything with images or binaries, use `manifest` instead. | |
| tier | Yes | `free` auto-expires (default 48h; override with `ttlSeconds`). `forever` is persistent. | |
| script | No | Advanced: full server-side code as one ES module. Text only, 1.5 MiB hard limit. NEVER embed images/fonts/binaries here — use `manifest` instead. | |
| manifest | No | PREFERRED for sites with assets. List every file you want served, with its byte size and optional MIME type. The response includes one presigned PUT URL per file; upload bytes directly via HTTP (e.g. `curl -T file.png -H 'Content-Type: image/png' "$url"`). | |
| tenantId | No | Optional: pass to reuse a known id. Otherwise auto-generated. | |
| ttlSeconds | No | Free-tier TTL in seconds (1h–7d). Default 172800 (48h). Ignored for `forever`. | |
| preferredSlug | No | Hostname label. Omit for a friendly auto-name (e.g. swift-falcon-7a). | |
| tosAcceptedAt | No | ISO-8601 timestamp | |
| scriptMetadata | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (readOnly=false, openWorldHint=true, idempotent=false), the description discloses the return shape, the presigned upload flow for manifest mode, the cost implication of inline site mode, and hard limits like 1.5 MiB script size with no base64 binaries. This is substantial behavioral context that the sparse annotations do not provide.
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 purpose and return value, immediately warns about the biggest misuse (calling twice), and then presents four modes in a scannable list. Every sentence adds information without repeating the schema, making the length justified.
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 supplies the response fields ({ tenantId, slug, url, apex, uploads? }) and tells the agent what to do with them. It also covers the main invocation pathways, connects to sibling tools, and explains token and binary constraints, making it complete for a complex multi-mode creation tool.
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?
Even though schema description coverage is 91%, the description adds significant cross-parameter meaning. It explains when to pass manifest versus site versus script, how apex is chosen from user intent, and warns against invented apexes, which the flat schema alone does not convey.
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 'Create a NEW site (a 'roost') and return its public URL in one call', giving a specific verb and resource. It distinguishes itself from sibling tools like convert and upload by explicitly saying 'NEVER call hatch twice' and by framing the four creation modes.
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 explicit when-to-use guidance: use convert for rename/tier changes, use upload/deploy for content updates, and never call hatch twice. It also breaks down the four calling modes with clear recommendations, such as preferring manifest for projects with assets and using site only for tiny text-only sites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookupLookup a siteARead-onlyIdempotentInspect
Resolve a roost by slug or tenantId. Returns a compact view { tenantId, slug, url, apex, tier, state, expiresAt, customDomain, galleryListed }. Use this to recover state across turns when the user mentions their site without giving you the tenantId.
| Name | Required | Description | Default |
|---|---|---|---|
| slug | No | Hostname label (without the apex domain) | |
| tenantId | No |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, openWorldHint, idempotentHint, and destructiveHint=false. The description adds the return shape, the ability to resolve by slug or tenantId, and the intended use for state recovery, providing useful behavioral context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three concise sentences, front-loaded with the action and return value. Every sentence adds value with no filler or redundancy.
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 2-parameter tool with strong annotations, the description includes the use case, the return format, and the parameter roles. Despite no output schema, it specifies the exact fields in the return view, making the tool's behavior fully understandable.
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 schema gives a description for slug but not for tenantId. The description clarifies that both are alternate identifiers and that the return includes tenantId, giving purpose to the tenantId parameter. It partially compensates for the missing schema description by implying the relationship between slug and tenantId.
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 tool resolves a roost by slug or tenantId, using a specific verb and resource. It distinguishes itself from siblings by focusing on a read-only lookup that returns a compact view with a specified set of fields.
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 explicitly states when to use this tool: to recover state across turns when the user mentions their site without providing tenantId. This provides a clear use case and implies it should be used when you need context about a site.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_approvalPoll destructive-op approvalARead-onlyIdempotentInspect
Poll a pending Tier-2 phone approval. Returns the result once the owner approves or denies on their phone.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | Yes | ||
| approvalId | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already declare readOnlyHint and destructiveHint, the description adds useful behavioral context: it reveals that the tool blocks until the owner makes a decision ('Returns the result once the owner approves or denies'). This goes beyond the annotations and helps the agent understand the polling behavior and the blocking nature of the call.
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 short sentences, starts with the action verb 'Poll', and contains no redundant information. It is concise and well-structured.
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 polling tool with two parameters, the description covers the core behavior well enough. It explains what it polls, when it returns, and the trigger for completion. However, it does not explain what a 'Tier-2 phone approval' is or how the returned result is structured, though the lack of an output schema makes the return format less critical.
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 provides no descriptions for the parameters (0% coverage), and the description does not mention approvalId or tenantId at all. The agent is left to infer their meanings solely from the names, which is insufficient, especially since the description adds no parameter-level context.
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's purpose with a specific verb ('Poll') and resource ('pending Tier-2 phone approval'), distinguishing it from sibling tools like poll_decision and poll_pairing. It also states the outcome ('Returns the result once the owner approves or denies'), which is unambiguous.
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 provides clear context that this tool is for polling Tier-2 phone approvals specifically. However, it does not explicitly state when to use this tool over similar siblings like poll_decision or await_decision, nor does it mention any exclusions or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_decisionPoll decision resolutionARead-onlyIdempotentInspect
Long-poll (~20s) until the decision leaves pending_review. Returns changes_requested (regenerate + continue_decision), approved, rejected, timeout_exceeded, max_iterations_exceeded, or still pending_review. Includes comment, settings, conversation, iteration.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | Yes | ||
| decisionId | Yes |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the annotations (read-only, idempotent, non-destructive), the description discloses the long-poll duration, exact exit conditions (pending_review left), the complete set of return statuses, and the included response fields. This gives a rich operational contract that annotations alone do not provide.
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 compact and front-loaded with the core purpose ('Long-poll (~20s) until...'). Every clause adds value: timeout, exit condition, return values, and response contents. No filler or repetition.
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 2-parameter polling tool, the description covers the essential behavior and output. It lacks guidance on how to interpret each status for next actions and does not clarify the relationship to similar sibling tools, but the core polling workflow is well specified.
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 0% description coverage, and the description itself does not mention tenantId or decisionId. Although the parameter names are self-explanatory, the description adds no additional meaning or guidance about formats, constraints, or relationships, failing to compensate for the lack of schema descriptions.
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 uses a specific verb ('Long-poll') and resource ('decision') with a clear state transition ('leaves pending_review'). It also enumerates distinct return values, which distinguishes it from sibling polling tools like await_decision and poll_approval.
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 conveys when to use the tool: to wait for a decision to resolve, with a ~20s timeout. However, it does not explicitly mention alternatives or when not to use it, leaving some sibling differentiation to the reader.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
poll_pairingPoll pairing completionARead-onlyIdempotentInspect
Poll for pairing completion (Device-Grant style). Waits up to ~20s for phone approval before returning. Statuses: pending / completed / expired / not_found. On completed, store sessionToken, refreshToken, and grantId — refreshToken renews access for up to 7 days without re-pairing. When sessionToken expires (~1h), call refresh_session. The server also binds tokens to this connector session. Pass tenantId when known. Device claim ≠ forever billing upgrade.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | Pairing code from get_pairing_code / whoami. | |
| tenantId | No | Optional tenant id — improves lookup after the phone has approved. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the operational safety is clear. The description goes far beyond, adding the ~20s blocking wait, status set, storage requirements, token lifetime, connector binding, and a caveat about device claim vs billing upgrade. This is rich behavioral context.
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 dense paragraph, but every sentence carries actionable information (timeout, statuses, storage, refresh guidance, server binding, tenantId, caveat). It is front-loaded with purpose and not wasteful, though a bulleted format might improve scannability.
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 return semantics and workflow. It covers all statuses, the ~20s wait, storage/refresh duties, token binding, and a warning about billing implications. The tool is adequately described for an agent to use it correctly in context.
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 documented. The description adds value by specifying the source of the code (get_pairing_code/whoami) and clarifying that tenantId improves lookup after approval—detail that is helpful beyond the schema's 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?
Clearly states it polls for pairing completion in Device-Grant style, and enumerates possible statuses (pending/completed/expired/not_found). This distinguishes it from sibling poll tools, which are not mentioned but the specific resource and style make the purpose unambiguous.
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?
Provides explicit guidance on when to use this tool (after getting pairing code, waiting for phone approval) and what to do with the result (store tokens, call refresh_session on expiry). It names refresh_session as a follow-up alternative but does not explicitly exclude other poll tools like poll_approval; still, the context is strong.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
refresh_sessionRefresh agent sessionAInspect
Renew a short-lived access token (~1h) using the refreshToken from poll_pairing. The grant (and refresh capability) lasts up to 7 days — after that, re-pair via get_pairing_code. Each refresh rotates the refreshToken; store the new one. Requires the same connector session (MCP-Session-Id) as when you paired — if fingerprint mismatches, re-pair.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | Yes | Tenant id from hatch / poll_pairing. | |
| refreshToken | Yes | Opaque refresh token from poll_pairing (vr1.{grantId}.{secret}). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond annotations (all false, no safety hints), the description thoroughly discloses behavioral traits: the token's ~1h validity, the 7-day grant lifetime, refreshToken rotation on each refresh, the need to store the new token, and the fingerprint mismatch condition that requires re-pairing. This is comprehensive and actionable.
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, each earning its place: purpose, expiration/alternative, and rotation/session requirements. It is front-loaded with the primary action and contains no filler or redundancy.
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?
Despite having no output schema, the description fully addresses the tool's complexity: token lifetime, grant lifetime, rotation, session binding, failure mode (fingerprint mismatch), and recovery path (re-pair). It even implies the response contains a new token to store. This is complete for a session-refresh tool.
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 parameters are already documented. The description adds valuable context by specifying that refreshToken comes from poll_pairing and notes the rotation behavior, while tenantId is tied to hatch/poll_pairing. This enhances understanding beyond the schema definitions.
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 tool's purpose: 'Renew a short-lived access token (~1h) using the refreshToken from poll_pairing.' This is a specific verb+resource combination that distinguishes it from sibling tools like get_pairing_code and poll_pairing, which are explicitly mentioned as alternatives.
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 provides explicit usage context: when to use (renew short-lived token), when to re-pair instead ('after that, re-pair via get_pairing_code'), and the requirement for the same MCP-Session-Id. It also names specific alternative tools, making the when/when-not distinction clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
uploadUpload files to an existing siteADestructiveIdempotentInspect
Add or replace files on an EXISTING roost. Pass tenantId plus a manifest listing each file's path, size, and optional content type. Returns one presigned PUT URL per file — upload bytes directly via HTTP (e.g. curl -T file.png -H 'Content-Type: image/png' "$url"). Files go live immediately as each PUT completes; no separate publish call is needed. Use after regenerating a dashboard locally; Hatch does not schedule regenerations.
| Name | Required | Description | Default |
|---|---|---|---|
| manifest | Yes | ||
| tenantId | Yes | Tenant id from the original hatch response. | |
| sessionToken | No | Optional paired session token from poll_pairing (when Authorization headers are unavailable). | |
| expiresSeconds | No | URL TTL in seconds (default 3600). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it discloses that the tool returns presigned PUT URLs, requires direct HTTP upload, and that files go live immediately on PUT completion with no separate publish call. The annotations (readOnlyHint=false, destructiveHint=true) are consistent with the mutation described. No contradictions.
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 compact—four sentences that cover purpose, workflow, return value, and timing. It front-loads the core action and uses a concrete curl example, making it efficient and informative.
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 appropriately explains the return value (presigned URLs per file) and the delivery mechanism. It also provides critical timing information ('go live immediately') and the intended post-regeneration context. Minor gaps like error handling or what happens on partial failure are not covered, but for a tool with moderate complexity this is sufficient.
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 description calls out tenantId and manifest with path/size/contentType, which mirrors the schema, but does not explain sessionToken or expiresSeconds beyond their schema descriptions. Since schema coverage is 75%, the description adds modest clarity on the manifest structure but relies on schema for the rest. Overall it doesn't significantly exceed the schema's parameter documentation.
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 uses a specific verb phrase 'Add or replace files on an EXISTING roost' and distinguishes from sibling tools by noting Hatch does not schedule regenerations and this is for after local regeneration. This clearly identifies the tool's function and separates it from deploy/hatch.
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 states an explicit use case: 'Use after regenerating a dashboard locally; Hatch does not schedule regenerations.' This tells the agent when to invoke this tool. It also implies not for creating new sites by emphasizing 'EXISTING.' It doesn't explicitly name alternative tools, but gives clear contextual guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiCheck identityARead-onlyIdempotentInspect
Return the caller's current identity and tenant state. Never errors when unidentified — returns a pairing path instead. After poll_pairing completes, whoami with the same tenantId should show identified:true via server-side session binding. Returns sessionExpiresAt (~1h) and grantExpiresAt (~7d). If sessionExpired:true, call refresh_session with your stored refreshToken.
| Name | Required | Description | Default |
|---|---|---|---|
| tenantId | No | Optional tenant to check or re-pair against. | |
| sessionToken | No | Optional token from poll_pairing. Pass when whoami stays unidentified after a successful pair (connectors that cannot set Authorization headers). |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While annotations already indicate readOnly and idempotent, the description adds substantial behavioral detail: never errors when unidentified, returns a pairing path, server-side session binding, sessionExpiresAt (~1h), grantExpiresAt (~7d), and sessionExpired handling. This is valuable 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the purpose and then providing sequential, non-redundant behavioral notes. Every sentence contributes essential functionality, staying within a reasonable length.
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 compensates by listing return fields (sessionExpiresAt, grantExpiresAt, sessionExpired) and explaining failure/edge behavior. It also references sibling tools and tie-in to poll_pairing and refresh_session, making it fully self-sufficient for an agent.
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?
Input schema already covers both parameters (tenantId, sessionToken), and the description enriches them by explaining when to pass sessionToken (connectors that cannot set Authorization headers) and how tenantId relates to re-pairing. This adds meaning beyond schema descriptions.
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 explicitly states 'Return the caller's current identity and tenant state,' a specific verb+resource. It distinguishes itself from siblings like poll_pairing and refresh_session by referencing the pairing flow and session renewal, making its unique role clear.
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?
Provides concrete usage context: when to call after poll_pairing, how to handle unidentified states, and when to delegate to refresh_session on sessionExpired. This effectively guides selection among the sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
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
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 Servers
- AlicenseAqualityAmaintenanceInstant web hosting for AI agents. Publish a live site in one call, no account needed.5MIT
- AlicenseAqualityCmaintenancePublish live web pages from AI coding agents. Instant shareable URLs for dashboards, landing pages, and reports with password protection.41MIT
- AlicenseAqualityAmaintenanceSimple and free publishing of content on the web for AI Agents27,772MIT
- 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