Skip to main content
Glama

Triremes

Search websites with poor SEO / AEO

search_website_gaps
Read-onlyIdempotent

Search the business websites Triremes measured with gaps in what search engines and AI answer engines can read, each one sold on its own: what kind of business and where, its SEO score and its label, the checks it failed by name, when it was measured, its price, how many times it has been sold and when it last was, and its page. The business, its website and its contacts are bought on that page. One with no SEO score yet is being measured (being_measured): no price, and it can be bought once it has an SEO score.

Input Schema

NameRequiredDescriptionDefault
cityNoA city.
cursorNoThe next_cursor of the answer before, for the next page.
countryNoA country, as its two-letter ISO code (US, DE).
businessNoA kind of business, such as Dentists or Roofing Contractors; when several kinds match, the answer lists them.
max_soldNoOnly websites sold at most this many times; 0 for those never sold.
gap_scoreNoOnly websites with an SEO score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%); or in this 10% step: 0 (0%), 1-10 ... 91-100.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedInput schema / properties / gap_score / description
      Previous value: -"Only websites with a gap score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%); or in this 10% step: 0 (0%), 1-10 ... 91-100."New value: +"Only websites with an SEO score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%); or in this 10% step: 0 (0%), 1-10 ... 91-100."
  2. Changed2 schema fields changed
    • changedInput schema / properties / gap_score / description
      Previous value: -"Only websites with a gap score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%)."New value: +"Only websites with a gap score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%); or in this 10% step: 0 (0%), 1-10 ... 91-100."
    • changedInput schema / properties / gap_score / enum
      Previous value: -[
      -  "catastrophic",
      -  "badly-flawed",
      -  "flawed",
      -  "lightly-flawed",
      -  "no-gaps"
      -]New value: +[
      +  "catastrophic",
      +  "badly-flawed",
      +  "flawed",
      +  "lightly-flawed",
      +  "no-gaps",
      +  "0",
      +  "1-10",
      +  "11-20",
      +  "21-30",
      +  "31-40",
      +  "41-50",
      +  "51-60",
      +  "61-70",
      +  "71-80",
      +  "81-90",
      +  "91-100"
      +]
  3. Changed2 schema fields changed
    • changedInput schema / properties / gap_score / description
      Previous value: -"Only websites with a gap score in this band: poor Poor: 50% or more, fair Fair: 20% to 49%, good Good: under 20%."New value: +"Only websites with a gap score in this band: catastrophic (Catastrophic: 100%), badly-flawed (Badly flawed: 50% to 99%), flawed (Flawed: 20% to 49%), lightly-flawed (Lightly flawed: 1% to 19%), no-gaps (No gaps: 0%)."
    • changedInput schema / properties / gap_score / enum
      Previous value: -[
      -  "poor",
      -  "fair",
      -  "good"
      -]New value: +[
      +  "catastrophic",
      +  "badly-flawed",
      +  "flawed",
      +  "lightly-flawed",
      +  "no-gaps"
      +]
  4. Changed1 schema field changed
    • addedInput schema / properties / max_sold
      Added value: +{
      +  "description": "Only websites sold at most this many times; 0 for those never sold.",
      +  "minimum": 0,
      +  "type": "integer"
      +}
  5. First observed

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world, so safety is covered. The description contributes real context beyond them: each result is sold individually, price and sale history are included, and a site without an SEO score is in a being_measured state with no price and cannot be bought yet. It says nothing about page size, result caps or ordering, which are the remaining behavioral unknowns.

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

Conciseness3/5

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

The core purpose is front-loaded, which is good, but the body is one long run-on sentence enumerating eight returned fields and a marketplace aside. Since there is no output schema some of that enumeration earns its place, yet the listing could be tightened considerably without losing meaning.

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?

With no output schema, the description usefully explains what each result contains and handles the tricky being_measured edge case that would otherwise confuse an agent seeing null prices. It is close to complete for a read-only search tool, with pagination covered only by the cursor parameter's own schema description.

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%, including the gap_score enum's band definitions, so the schema carries the parameter burden. The description only loosely gestures at filters through phrases like 'what kind of business and where' and 'how many times it has been sold', adding no syntax, defaults or combination rules beyond the schema. Baseline 3 is appropriate.

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?

The description opens with a specific verb and resource: searching business websites Triremes measured that have readability gaps for search engines and AI answer engines. That is far more informative than the title alone. It does not name or contrast the siblings (get_website_gap_score, search_problems, show_samples), so the agent must infer the boundary itself.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer it should call this to find gap-scored websites for sale, and the being_measured note implies a caveat about unusable results. There is no explicit when-to-use versus when-to-use-a-sibling guidance and no stated prerequisites or exclusions.

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