Skip to main content
Glama

ROAS Expert free AI SEO audit

Server Details

Free SEO and AI search readiness audit for any public site: score out of 100, platform detection, fixes per CMS. Email unlocks the full report.

Ownership verified
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.2/5.0

Scored across 6 tools

Disambiguation4/5

The two audit tools are clearly separated by scope (site vs product page), and the remaining tools have distinct jobs. There is minor potential confusion among get_report, unlock_report, and explain_fix because all relate to report findings and fixes, though their descriptions provide enough distinction.

Naming Consistency5/5

All tool names use a consistent snake_case verb_noun pattern: audit_product_page, audit_site, explain_fix, get_report, list_checks, unlock_report. The convention is predictable throughout.

Tool Count5/5

Six tools is well-scoped for a free SEO audit service. Each tool supports a distinct step in the audit, report retrieval, explanation, or unlock workflow without unnecessary surface area.

Completeness4/5

The surface covers the core lifecycle: run site or product audits, inspect checks, retrieve reports, unlock detailed findings, and explain individual fixes. Minor gaps exist around listing past reports or checking free-plan usage, but agents can work around them.

Available Tools

6 tools
audit_product_pageAudit one product page for AI shopping readinessA
Read-onlyIdempotent
Inspect

Runs the ROAS Expert product page check on one product URL and returns the score out of 100, the grade, the platform, category scores, the top three issues, the status of all 19 checks, a table of which questions a shopping assistant can answer from the page (price, stock, delivery, returns, variants, identity, ratings) and a shareable report link. The detail and the platform-specific fix for every failing or warning check are unlocked with the user's work email through unlock_report. Takes 5 to 15 seconds. Pass a product page URL; a homepage or other page gets a short note and does not count against the free limit, which is shared with audit_site.

NameRequiredDescriptionDefault
urlYesProduct page URL, for example https://store.com/products/example

TDQS

A4.4/5.0
Behavior4/5

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

With annotations already covering read-only/idempotent/open-world, the description adds real context: 5-15 second latency, capped free-limit shared across audits, non-product pages being free and non-erroring, and email-gated unlock for details. It does not say whether results are cached or whether repeated calls on the same URL are free, which keeps it from a 5.

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-loaded with what the tool returns before the operational notes; every clause carries information. Slightly dense, listing the full return payload in one long sentence, but nothing is redundant.

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?

No output schema exists, so the description carries the full burden of describing the response (score, grade, platform, category scores, top issues, 19 check statuses, Q&A table, shareable link) and it does so thoroughly, plus latency and gating expectations.

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% and the baseline is 3. The description adds meaningful parameter semantics for the single `url` field — it must be a product page, and homepage/other pages are handled gracefully rather than failing — which helps the agent pick the right input and set expectations.

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?

Specific verb+resource ("Runs the ROAS Expert product page check on one product URL") with a clear scope boundary against audit_site. An agent can distinguish it from audit_site, get_report, and explain_fix without opening any schema.

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?

Explains the preconditions (pass a product page URL, not a homepage) and names the follow-up path (unlock_report with work email) plus the shared free limit with audit_site. It stops short of explicitly saying "use audit_site if you have a homepage," but the routing signal is strong.

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

audit_siteAudit a website for SEO and AI search readinessA
Read-onlyIdempotent
Inspect

Runs the free ROAS Expert audit on a public website and returns the score out of 100, the grade, the detected platform, category scores, the top three issues, the status of all 48 checks and a shareable report link. The detail and the platform-specific fix for every failing or warning check are unlocked with the user's work email through unlock_report. Takes 10 to 25 seconds. Use the domain or homepage URL, not a deep link. Free plan: a few audits per day per client.

NameRequiredDescriptionDefault
urlYesDomain or homepage URL, for example example.com or https://www.example.com

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world, and the description adds traits the annotations cannot carry: a 10-25 second runtime, a per-client daily quota on the free plan, and the fact that detail/fixes are gated behind an email via unlock_report. Those are exactly the operational facts an agent needs before deciding to call.

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?

Front-loaded with what the tool does and returns, then latency, then input constraint, then quota. Every sentence carries information an agent would otherwise have to guess; nothing is repeated from the schema or annotations.

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?

No output schema exists, so the description enumerates the return payload itself, including the 48-check status list and shareable link. Combined with the latency, quota and unlock path, an agent has everything needed to decide and to explain the outcome to a user.

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?

The schema fully documents the single url parameter, and the description adds real meaning beyond it by excluding deep links and steering toward domain or homepage form. With only one parameter and 100% schema coverage the ceiling is limited, but the added constraint is genuinely useful.

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 verb (runs an audit) and resource (public website), names the vendor and what the result contains (score out of 100, grade, platform, category scores, top three issues, 48 checks, report link). This is clearly distinguishable from explain_fix, get_report and list_checks, which operate on an already-produced report.

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 input guidance ('Use the domain or homepage URL, not a deep link') and routes the user to unlock_report when per-check detail or fixes are needed. It also states the free-plan quota. It stops short of stating when to prefer get_report or list_checks instead, so it is clear context rather than full when/when-not coverage.

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

explain_fixGet the fix for a check on a given platformA
Read-onlyIdempotent
Inspect

Returns the fix text for one check id (from list_checks, a site report or a product page report) written for a platform: shopify, wordpress, magento, framer, webflow, wix, squarespace, bigcommerce, hubspot, nextjs or generic. No usage limit.

NameRequiredDescriptionDefault
check_idYesCheck id, for example ai_bots, product_schema, llms_txt
platformNoPlatform key or CMS name; defaults to generic

TDQS

A4.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds one genuinely extra trait, 'No usage limit', which is useful rate-limit context, but it says nothing about what happens when a check has no platform-specific fix or when an invalid platform key is passed.

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?

A single tight sentence with the return value front-loaded and the platform enumeration in a compact parenthetical. The eleven-item list is long but each item is load-bearing since the schema provides no enum; only minor density cost.

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?

For a two-parameter read tool with full schema coverage and read-only annotations, the description covers purpose, input sources, and platform domain. The only meaningful gap is the absence of any note on missing/unsupported fix text, which matters because this tool has no output schema to reveal that behavior.

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 would be 3, but the description earns extra credit by enumerating the eleven accepted platform values (shopify, wordpress, magento, framer, webflow, wix, squarespace, bigcommerce, hubspot, nextjs, generic) where the schema has no enum and only says 'Platform key or CMS name; defaults to generic'. That enumeration is real added value for correct invocation.

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 verb and resource ('Returns the fix text for one check id') and scopes it to the platform dimension, which is exactly what distinguishes it from siblings like get_report and audit_site. An agent can tell what it produces without opening the schema.

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 tells the agent where a valid check_id comes from ('from list_checks, a site report or a product page report'), which is the key prerequisite and routing signal. It stops short of stating when NOT to use it or naming a competing tool for fix retrieval, so it is clear context rather than full when/when-not guidance.

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

get_reportFetch a stored audit reportA
Read-onlyIdempotent
Inspect

Returns a previously run audit by its id (the last part of a tools.roasexpert.com/r/ or /p/ link). Locked reports show the top three issues and check statuses; unlocked reports show every finding with its fix and the written summary. Reports are kept for 90 days. No usage limit.

NameRequiredDescriptionDefault
idYesReport id, 8 characters

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already declare readOnly/idempotent/non-destructive, yet the description adds genuinely new behavior: locked reports truncate to the top three issues and check statuses while unlocked reports return every finding with fixes plus the written summary, and it discloses the 90-day retention window and absence of usage limits. This payload-shape and retention detail is exactly what an agent cannot infer from structured fields, especially with no output schema.

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 compact sentences, front-loaded with the core action, then id sourcing, then return shape, then retention and limits. No sentence is filler.

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 one required parameter, no output schema, and safety already covered by annotations, the description supplies the missing pieces an agent needs: where the id comes from, how response detail varies by lock state, and how long reports survive.

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% and the schema already says "8 characters," so the baseline is a 3; the description earns extra by explaining that the id is the last segment of a report URL, which tells the agent how to source the value. It stops short of saying whether a full URL is accepted as input.

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?

"Returns a previously run audit by its id" states a specific verb and resource, and the stored-report framing cleanly separates it from the sibling run-audit tools (audit_site, audit_product_page). The reader knows exactly what they get back without opening the schema.

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?

The link-format hint (tools.roasexpert.com/r/<id> or /p/<id>) tells the agent where this tool applies in practice, and the locked/unlocked distinction sets expectations for the call. It never explicitly routes to unlock_report for locked reports or states what to do when an id is unknown, so context is clear but exclusions are absent.

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

list_checksList every check and its weightA
Read-onlyIdempotent
Inspect

The catalogue of checks the audit runs, grouped by category with weights and a one-line description of what passes. Use it to explain a score or to see what the audit covers. No usage limit.

NameRequiredDescriptionDefault
categoryNoOptional category filter; "product" lists the 19 product page checks

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true and destructiveHint=false, so safety is pre-covered. The description does add genuinely useful behavior: the grouped-with-weights return shape and 'No usage limit' as a rate-limit signal. These are modest additions rather than deep behavioral disclosure, so a 3 is fair.

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?

Three short sentences, front-loaded with what the tool returns before how to use it. 'No usage limit' is the only near-tangential line, and it earns its place by removing a call-frequency concern.

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?

There is no output schema, so the description must convey the return shape — and it does (grouped by category, weights, pass criteria). Safety is covered by annotations and the single optional param is fully documented. Only a slightly fuller account of the payload would be needed for a 5.

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?

With 100% schema coverage and an enum already documenting every valid category (including the 'product' note), the schema carries the parameter burden. The description adds nothing about the category filter, so the baseline 3 applies.

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 resource and its structure: 'the catalogue of checks the audit runs, grouped by category with weights and a one-line description of what passes.' An agent can immediately picture the payload. It does not name a sibling tool to distinguish itself from, so it stops short of 5.

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?

'Use it to explain a score or to see what the audit covers' gives two concrete triggering situations. It provides clear context without naming an alternative (e.g. explain_fix) or stating when not to use it, so it sits just below the explicit when/when-not bar.

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

unlock_reportUnlock the full report with a work emailA
Idempotent
Inspect

Unlocks a report: every failing and warning check with its detail and the fix written for the detected platform, plus the written summary. The email goes to ROAS Expert's CRM with the report link and gets at most one follow-up about the findings. Only call this with an email the user gave you for this purpose. No usage limit.

NameRequiredDescriptionDefault
idYesReport id from audit_site
emailYesThe user's work email address

TDQS

A4.3/5.0
Behavior5/5

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

Goes well beyond the annotations by disclosing externally visible side effects: the email is sent to a vendor CRM with the report link and triggers at most one follow-up. Annotations only say openWorldHint=true and readOnlyHint=false; the description tells the agent exactly what leaves the system and how often, plus that there is no usage limit.

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 short sentences, each carrying distinct information — payload contents first, then side effects, then the consent constraint, then rate limits. Nothing is repeated and the most decision-relevant facts are front-loaded.

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 does the work of describing return contents, and it covers side effects and limits thoroughly. It omits failure modes such as an invalid report id or a rejected email domain, which matters for an open-world tool that sends data externally.

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 baseline is 3, but the description adds real semantic weight: it explains what the email is used for (CRM record, follow-up) and constrains it to user-provided consent addresses, and ties `id` to audit_site. That is meaning the schema's terse field descriptions don't convey.

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 (unlocks) and resource (report), and enumerates exactly what the unlocked payload contains: failing/warning checks with details, platform-specific fixes, and the written summary. It's clearly distinguished from get_report by framing this as the full/paid unlock, though it never names the sibling explicitly.

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 a hard precondition — only call with an email the user supplied for this purpose — which is usable when-to-call guidance with a clear exclusion. It doesn't say when to prefer this over get_report or how to handle a missing email, so it stops short of full routing guidance.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 2 tool updates
    • Addedaudit_product_page
    • Changedlist_checks2 fields changed
      • changedInput schema / properties / category / description
        Previous value: -"Optional category filter"New value: +"Optional category filter; \"product\" lists the 19 product page checks"
      • changedInput schema / properties / category / enum
        Previous value: -[
        -  "crawl",
        -  "onpage",
        -  "schema",
        -  "ai",
        -  "speed"
        -]New value: +[
        +  "crawl",
        +  "onpage",
        +  "schema",
        +  "ai",
        +  "speed",
        +  "product"
        +]
  2. 5 tool updates
    • First observedaudit_site
    • First observedexplain_fix
    • First observedget_report
    • First observedlist_checks
    • First observedunlock_report

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    Remote MCP server that lets AI assistants read tracked competitive intelligence — competitor news, reviews, website changes, social posts and ads — and act on it by managing projects, competitors, battle cards, reports and canvases. Every answer carries a source and a date, and write actions only publish when explicitly shared.
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Enables brand visibility monitoring across major AI platforms like ChatGPT, Claude, Gemini, and Perplexity. It allows users to track visibility scores, analyze competitor data, and receive actionable insights to improve AI-generated brand recommendations.
    16
    18 npm
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    Browse IndustryLens's published competitive-intelligence reports and head-to-head competitor comparisons from any AI agent — real, source-backed data.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources