Skip to main content
Glama

Lordevo Shop (x402 website checks)

Link preview / unfurl (title, description, image, favicon, logo) ($0.002/call)

link_preview
Read-onlyIdempotent

$0.002 per call (x402, USDC on Base; free trial: add "trial": true or use try_free). [Fetch and read the web] Link preview / URL unfurl API. Everything needed to render a link card from one public page: title, description, site name, Open Graph image (size, alt), canonical URL, best favicon plus all icons, logo (JSON-LD Organization), web manifest, theme colour, Twitter card fields, author and dates. Cached 1 h. ~0.3-2 s.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "url": "<url>"
    },
    "name": "link_preview"
  }
}

Input Schema

NameRequiredDescriptionDefault
urlYesPage to preview: a public http(s) URL, e.g. https://example.com/
trialNoOptional. true = free if a trial call is left (3 per IP per UTC day), else the payment terms.

Output Schema

NameRequiredDescriptionDefault
urlNo
logoNo
toolNo
cacheNo
iconsNo
imageNo
titleNo
_trialNoPresent when the call was a free trial call.
faviconNo
providerNo
price_usdNo
site_nameNo
descriptionNo

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / trial / description
      Previous value: -"Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms."New value: +"Optional. true = free if a trial call is left (3 per IP per UTC day), else the payment terms."
  2. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Page to preview: a public http(s) URL, e.g. https://example.com/blog/post"New value: +"Page to preview: a public http(s) URL, e.g. https://example.com/"
  3. Changed1 schema field changed
    • changedInput schema / properties / url / description
      Previous value: -"Public http(s) URL or bare domain, e.g. https://example.com"New value: +"Page to preview: a public http(s) URL, e.g. https://example.com/blog/post"
  4. Changed2 schema fields changed
    • addedInput schema / properties / trial
      Added value: +{
      +  "description": "Optional. true = answer free if a trial call is left (3 per IP per UTC day); otherwise you get the payment terms.",
      +  "type": "boolean"
      +}
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "anyOf": [
      +    {
      +      "required": [
      +        "tool",
      +        "url"
      +      ]
      +    },
      +    {
      +      "properties": {
      +        "accepts": {
      +          "type": "array"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "resource": {
      +          "type": "object"
      +        },
      +        "x402Version": {
      +          "type": "integer"
      +        }
      +      },
      +      "required": [
      +        "x402Version",
      +        "accepts"
      +      ]
      +    },
      +    {
      +      "properties": {
      +        "charged": {
      +          "type": "boolean"
      +        },
      +        "error": {
      +          "type": "string"
      +        },
      +        "message": {
      +          "type": "string"
      +        }
      +      },
      +      "required": [
      +        "error"
      +      ]
      +    }
      +  ],
      +  "properties": {
      +    "_trial": {
      +      "description": "Present when the call was a free trial call.",
      +      "type": "object"
      +    },
      +    "cache": {
      +      "type": "object"
      +    },
      +    "description": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "favicon": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "icons": {
      +      "type": "array"
      +    },
      +    "image": {
      +      "type": [
      +        "object",
      +        "null"
      +      ]
      +    },
      +    "logo": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "price_usd": {
      +      "type": "number"
      +    },
      +    "provider": {
      +      "type": "string"
      +    },
      +    "site_name": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "title": {
      +      "type": [
      +        "string",
      +        "null"
      +      ]
      +    },
      +    "tool": {
      +      "type": "string"
      +    },
      +    "url": {
      +      "type": "string"
      +    }
      +  },
      +  "type": "object"
      +}
  5. Added

TDQS

A4/5.0
Behavior4/5

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

Annotations already cover the read-only, open-world, idempotent profile, and the description layers on genuinely new operational facts: $0.002 per call via x402, the trial:true escape hatch, a 1-hour cache, and a 0.3-2 s latency band. It does not say what happens on non-HTML pages, blocked/non-public URLs, or failed unpfurls.

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?

Pricing and the free-trial route are front-loaded, a bracketed category tag anchors the domain, then the return inventory follows in one compact run. Dense but every clause carries information an agent would otherwise have to guess.

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

Completeness4/5

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

An output schema exists so return shape needs no prose explanation, and annotations carry the safety profile; what remains — cost, caching, latency, trial — is all present. The only gap is failure-mode behavior for unfetchable or non-public pages, which matters for an open-world fetch tool.

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

Parameters3/5

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

Schema coverage is 100%, so both url and trial are already documented in the schema. The description only echoes the public-page constraint and restates the free-trial mechanism, adding no syntax, format, or edge-case detail beyond what the schema provides.

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

Purpose4/5

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

States a specific verb+resource pair ("Link preview / URL unfurl API") and enumerates the exact fields returned (title, Open Graph image, favicon, manifest, Twitter card, author/dates). It is clearly not a page-content extractor or a metadata auditor, though it never names the neighboring page_meta or structured_data tools it most overlaps with.

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?

Gives concrete context of use — rendering a link card from one public page — plus cost, cache lifetime and latency, which helps an agent decide whether to spend a call. It stops short of explicit when-not guidance (e.g. use page_markdown when you need body text, page_meta when you only need tags).

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.

Resources