Skip to main content
Glama

try_domain

Launch a memorable public URL for something you built. Free for 24 hours, no signup and no wallet required. Tell it your goal and an https target to point the address at; it opens a trial, asks a short safety question or two, and on a clean pass returns a live subdomain plus a one-time claim token you can redeem for your own agent identity. Use it to demo a deployment with a real address before a paid rental. One trial per agent. Expires in 24 hours.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
goalYesWhat you built and want to put online, in a sentence (used to name and describe the address).
emailNoOptional email to associate with the trial. Never returned.
targetNoAn https URL to point the address at. Content hosting is not yet available, so a live external target is required.
publicKeyNoOptional, on the call that goes live. Your Ed25519 public key (standard padded base64 of the raw 32 bytes) to claim your agent identity in the same call. Requires headers X-Popdot-Timestamp (Unix seconds) and X-Popdot-Signature: an Ed25519 signature by this key over {timestamp}\nPOST\n/api/mcp\n{sha256 hex of the raw request body}. Omit it to receive a claim token for upgrade_trial instead.
autoSelectNoLet Popdot AI pick an available subdomain from your goal when you do not provide preferredSubdomain.
trialHandleNo(retry only) The trialHandle returned by the first call. Echo it back with your answers.
desiredEmotionNoPreferred vibe of the parent domain: comedy, absurd, playful, edgy, wholesome, professional, trustworthy. Unknown values are ignored.
inputResponsesNo(retry only) Your answers to the safety questions, one { id, response } per requested input.
analyticsConsentNoRecord operator consent to trial analytics for this address.
preferredSubdomainNoThe subdomain label you want (e.g. 'mydemo'). Omit and set autoSelect:true to have one picked for you.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
urlNo
nextNo
sigilNo
domainNo
sigilIdNo
trialIdNo
upgradeNo
expiresAtNo
questionsNo
subdomainNo
claimErrorNo
claimTokenNo
candidateIdNo
trialHandleNo
shareMessageNo
trustReceiptNo
canaryVerdictNo
scorerVersionNo
tierProgressionNoCurrent enforced trust tier and when it is next evaluated. Present only once an identity exists.
sigilEligibilityNoIdentity standing: lifecycle status, canary screen result, and any hard gates.
identityConfidenceNoHow firmly this identity is bound: unbound, bound to a key, or backed by a verified sponsor.
claimTokenExpiresAtNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed4 schema fields changed
    • addedInput schema / properties / publicKey
      Added value: +{
      +  "description": "Optional, on the call that goes live. Your Ed25519 public key (standard padded base64 of the raw 32 bytes) to claim your agent identity in the same call. Requires headers X-Popdot-Timestamp (Unix seconds) and X-Popdot-Signature: an Ed25519 signature by this key over {timestamp}\\nPOST\\n/api/mcp\\n{sha256 hex of the raw request body}. Omit it to receive a claim token for upgrade_trial instead.",
      +  "type": "string"
      +}
    • addedOutput schema / properties / claimError
      Added value: +{
      +  "properties": {
      +    "code": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / sigil
      Added value: +{
      +  "properties": {
      +    "agentName": {
      +      "type": "string"
      +    },
      +    "mandateId": {
      +      "type": "string"
      +    },
      +    "publicKey": {
      +      "type": "string"
      +    },
      +    "sigilId": {
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "sigilId",
      +    "publicKey",
      +    "mandateId"
      +  ],
      +  "type": "object"
      +}
    • addedOutput schema / properties / sigilId
      Added value: +{
      +  "type": "string"
      +}
  2. Changed1 schema field changed
    • addedOutput schema / properties / tierProgression / properties / reason
      Added value: +{
      +  "type": "string"
      +}
  3. Changed3 schema fields changed
    • changedOutput schema / properties / identityConfidence / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"How firmly this identity is bound: unbound, bound to a key, or backed by a verified sponsor."
    • changedOutput schema / properties / sigilEligibility / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"Identity standing: lifecycle status, canary screen result, and any hard gates."
    • changedOutput schema / properties / tierProgression / description
      Previous value: -"Reserved for a future scoring release. Not returned today."New value: +"Current enforced trust tier and when it is next evaluated. Present only once an identity exists."
  4. Changed9 schema fields changed
    • addedOutput schema / properties / canaryVerdict
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / identityConfidence
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "level": {
      +      "enum": [
      +        "unbound",
      +        "key_bound",
      +        "sponsor_verified"
      +      ],
      +      "type": "string"
      +    },
      +    "sponsorVerified": {
      +      "type": "boolean"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / questions / items / properties
      Added value: +{
      +  "prompt": {
      +    "type": "string"
      +  },
      +  "question_id": {
      +    "type": "string"
      +  }
      +}
    • addedOutput schema / properties / questions / items / required
      Added value: +[
      +  "question_id",
      +  "prompt"
      +]
    • addedOutput schema / properties / scorerVersion
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / sigilEligibility
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "canaryStatus": {
      +      "type": "string"
      +    },
      +    "hardGates": {
      +      "items": {
      +        "type": "string"
      +      },
      +      "type": "array"
      +    },
      +    "status": {
      +      "enum": [
      +        "eligible",
      +        "awaiting_key_binding",
      +        "active",
      +        "review_required",
      +        "denied",
      +        "suspended",
      +        "revoked"
      +      ],
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / tierProgression
      Added value: +{
      +  "description": "Reserved for a future scoring release. Not returned today.",
      +  "properties": {
      +    "currentTier": {
      +      "enum": [
      +        "nascent",
      +        "fledgling",
      +        "established",
      +        "trusted",
      +        "sovereign"
      +      ],
      +      "type": "string"
      +    },
      +    "evidenceConfidence": {
      +      "type": "number"
      +    },
      +    "nextEvaluationAt": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
    • addedOutput schema / properties / trustReceipt / properties
      Added value: +{
      +  "canaryVerified": {
      +    "type": "boolean"
      +  },
      +  "claimable": {
      +    "type": "boolean"
      +  }
      +}
    • addedOutput schema / properties / upgrade / properties
      Added value: +{
      +  "agentPaymentAvailable": {
      +    "type": "boolean"
      +  },
      +  "availableDurations": {
      +    "items": {
      +      "type": "string"
      +    },
      +    "type": "array"
      +  },
      +  "preserveExactUrl": {
      +    "type": "boolean"
      +  }
      +}
  5. Changed30 schema fields changed
    • addedInput schema / properties / analyticsConsent
      Added value: +{
      +  "description": "Record operator consent to trial analytics for this address.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / autoSelect
      Added value: +{
      +  "description": "Let Popdot AI pick an available subdomain from your goal when you do not provide preferredSubdomain.",
      +  "type": "boolean"
      +}
    • addedInput schema / properties / desiredEmotion
      Added value: +{
      +  "description": "Preferred vibe of the parent domain: comedy, absurd, playful, edgy, wholesome, professional, trustworthy. Unknown values are ignored.",
      +  "enum": [
      +    "comedy",
      +    "absurd",
      +    "playful",
      +    "edgy",
      +    "wholesome",
      +    "professional",
      +    "trustworthy"
      +  ],
      +  "type": "string"
      +}
    • changedInput schema / properties / email / description
      Previous value: -"An email to associate with your trial API key. Used to issue the key in step 1. If you don't have one, your operator's email works."New value: +"Optional email to associate with the trial. Never returned."
    • addedInput schema / properties / goal
      Added value: +{
      +  "description": "What you built and want to put online, in a sentence (used to name and describe the address).",
      +  "type": "string"
      +}
    • addedInput schema / properties / inputResponses
      Added value: +{
      +  "description": "(retry only) Your answers to the safety questions, one { id, response } per requested input.",
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedInput schema / properties / preferredSubdomain
      Added value: +{
      +  "description": "The subdomain label you want (e.g. 'mydemo'). Omit and set autoSelect:true to have one picked for you.",
      +  "type": "string"
      +}
    • addedInput schema / properties / target
      Added value: +{
      +  "description": "An https URL to point the address at. Content hosting is not yet available, so a live external target is required.",
      +  "type": "string"
      +}
    • addedInput schema / properties / trialHandle
      Added value: +{
      +  "description": "(retry only) The trialHandle returned by the first call. Echo it back with your answers.",
      +  "type": "string"
      +}
    • changedInput schema / required
      Previous value: -[]New value: +[
      +  "goal"
      +]
    • removedOutput schema / properties / auth
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / candidateId
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / claimToken
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / claimTokenExpiresAt
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / documentation
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / domain
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / expiresAt
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / message
      Removed value: -{
      -  "type": "string"
      -}
    • addedOutput schema / properties / next
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / questions
      Added value: +{
      +  "items": {
      +    "type": "object"
      +  },
      +  "type": "array"
      +}
    • addedOutput schema / properties / shareMessage
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / properties / status
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / steps
      Removed value: -{
      -  "items": {
      -    "type": "object"
      -  },
      -  "type": "array"
      -}
    • addedOutput schema / properties / subdomain
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / trialHandle
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / trialId
      Added value: +{
      +  "type": "string"
      +}
    • addedOutput schema / properties / trustReceipt
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / upgrade
      Added value: +{
      +  "type": "object"
      +}
    • addedOutput schema / properties / url
      Added value: +{
      +  "type": "string"
      +}
    • removedOutput schema / required
      Removed value: -[
      -  "status",
      -  "steps"
      -]
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "auth": {
      +      "type": "string"
      +    },
      +    "documentation": {
      +      "type": "string"
      +    },
      +    "message": {
      +      "type": "string"
      +    },
      +    "status": {
      +      "type": "string"
      +    },
      +    "steps": {
      +      "items": {
      +        "type": "object"
      +      },
      +      "type": "array"
      +    }
      +  },
      +  "required": [
      +    "status",
      +    "steps"
      +  ],
      +  "type": "object"
      +}
  7. First observed

TDQS

A4.1/5.0
Behavior4/5

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

Annotations only declare readOnlyHint=false and openWorldHint=true. The description adds process detail: opens a trial, asks safety questions, returns a live subdomain and claim token on success, and notes expiry and per-agent limit. No contradiction. However, it does not disclose the two-step retry flow for safety questions.

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

Conciseness5/5

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

Four sentences with no wasted words. The core purpose is front-loaded, then process, then use case and limits. Each sentence earns its place.

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

Completeness3/5

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

Complex tool with 10 parameters and a two-step flow (safety questions requiring a retry call). The description mentions safety questions but does not explicitly say you must call again with trialHandle and inputResponses. This critical usage detail is only hinted at via the schema's retry-only parameters. Since an output schema exists, return values need not be described, but the retry mechanism is essential for correct invocation.

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

Parameters3/5

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

Schema description coverage is 100%, so baseline is 3. The description highlights the two key parameters (goal and target) but adds little beyond the schema descriptions, which already explain their purpose. No extra meaning for retry-only params is provided in the description.

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

Purpose5/5

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

States a specific action (launch a memorable public URL), the resource (a trial subdomain), and distinguishes from siblings: it mentions 'trial', 'one-time claim token', and 'before a paid rental' to differentiate from rent_domain and upgrade_trial. No ambiguity.

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

Usage Guidelines4/5

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

Explicitly says to use it to demo a deployment before a paid rental, which implies rent_domain for permanent use. Mentions the one-trial-per-agent limit and 24h expiry. Could be more explicit about when not to use, but the context is clear enough.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.