Skip to main content
Glama

Website tech stack lookup

tech_stack_lookup
Read-onlyIdempotent

Detect what a website is built with: CMS, frameworks, analytics, CDN, hosting, email and DNS providers (MX, SPF, DMARC) and a security-header grade, from one fetch of its homepage. Free for 1 domain per call (10 free calls a minute per IP); 2-3 domains in one call cost $0.005 USDC. Paid calls made without a payment return isError with the x402 v2 PaymentRequired object (amount in USDC atomic units, network, payTo, HTTP endpoint); retry with the signed PaymentPayload in params._meta["x402/payment"]. Invalid input and calls where every item fails are never charged. Fetches follow robots.txt, use the User-Agent AdamHaleTools/1.0 and refuse private or internal addresses.

Input Schema

NameRequiredDescriptionDefault
domainsYes1-3 domains or homepage URLs, e.g. ["wordpress.org"]. One domain is free; two or three are one paid call.
x402_paymentNoOptional, paid tier only: a signed x402 v2 PaymentPayload, base64 (the value an HTTP client sends as the PAYMENT-SIGNATURE header). Prefer params._meta["x402/payment"]. Never a private key or seed phrase.

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, yet the description adds substantial extra behavior: rate limit (10 free calls/min per IP), pricing, the x402 v2 PaymentRequired error shape with retry path, robots.txt compliance, a fixed User-Agent, and refusal of private/internal addresses. This is well beyond what the structured fields convey.

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

Conciseness4/5

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

Front-loads the purpose sentence before pricing and error mechanics, and every subsequent sentence carries operational weight. It is dense and long, but for a tool with a non-obvious payment protocol the length is largely earned rather than padding.

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

Completeness5/5

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 enumerating the exact signal categories returned (CMS, frameworks, analytics, CDN, hosting, email/DNS, security grade) and fully documents the payment/error/retry flow, rate limits, and fetch constraints. An agent has everything needed to call it and interpret a failure.

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

Parameters4/5

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

Schema coverage is 100% so the baseline is 3, but the description adds genuine meaning about the payment parameter — that a paid call needs a signed PaymentPayload and that params._meta["x402/payment"] is preferred over the x402_payment field. It also clarifies the free-vs-paid split on the domains array (1 free, 2-3 paid).

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 concrete verb ("Detect what a website is built with") plus an enumerated resource set (CMS, frameworks, analytics, CDN, hosting, email/DNS providers, security-header grade) and the mechanism (one fetch of the homepage). It clearly separates from siblings like url_status_check or seo_meta_tags_check by naming the exact data categories it returns.

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 explicit operating conditions: 1 domain is free, 2-3 domains is a paid call, invalid input and total-failure calls are never charged, and how to respond to a PaymentRequired error. It does not, however, compare itself to sibling tools (e.g. domain_intel) or state exclusions, so it falls short of a full when/when-not treatment.

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