Skip to main content
Glama

Sandooq product

Server Details

Sandooq product facts: plans, prices, MENA market tax and currency, and site pages as Markdown.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.9/5.0

Scored across 4 tools

Disambiguation4/5

Each tool has a clear primary job: structured country facts, a single page as Markdown, pricing plans, and keyword search. There is mild overlap because get_page can also fetch country and pricing pages, making get_country_info and get_pricing convenience views over the same content, but the descriptions make the intended use of each clear.

Naming Consistency5/5

All four tools follow a predictable verb_noun pattern (get_*, search_*), with get_country_info simply adding a qualifier to the same get_<resource> shape. No mixed conventions or vague verbs.

Tool Count5/5

Four tools is well matched to a small read-only content server: fetch by page, fetch structured country data, fetch pricing, and search. No tool looks redundant enough to remove.

Completeness3/5

The surface covers reading and discovery, but lacks any enumeration operation such as listing supported countries or available pages, so an agent must guess a country name or rely on keyword search to discover coverage. Search provides a partial workaround, but there is a notable gap for a market-info server whose main entry point is 'which markets do you cover?'.

Available Tools

4 tools
get_country_infoGet Country InfoA
Read-only
Inspect

What Sandooq publishes about one MENA market: VAT rate, e-invoicing posture, currency, how tenders are handled, the regulator, and the market notes shown on that country's page.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoResponse language: 'en' (default) or 'ar'. Arabic returns the Arabic copy the site publishes, not a translation of the English.
countryYesCountry to describe, as a lowercase ISO 3166-1 alpha-2 code. One of: sa, qa, ae, bh, om, sy, lb.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, destructiveHint=false, so the safety profile is covered. The description adds genuinely useful context the annotations cannot: that the payload is a fixed set of published fields drawn from a static, closed dataset rather than live lookups. It does not describe failure behavior for unsupported inputs, but the enum largely forecloses that.

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 front-loaded sentence with no filler; the field enumeration is the useful payload rather than padding. It is slightly list-dense, reading more as a field manifest than a directive, but nothing is wasted.

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 carries the return-shape burden and does so by enumerating the six field groups an agent will receive. Combined with 100%-covered input schema and closed-world annotations, an agent has enough to call this correctly; only the get_page boundary remains unstated.

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 both the country enum and the locale enum (including the important 'Arabic is published copy, not a translation' nuance) are already fully documented in the schema. The description adds only the notion of 'one MENA market' and says nothing about locale, so 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?

The description names a specific resource (one MENA market's Sandooq-published data) and enumerates the concrete fields returned: VAT rate, e-invoicing posture, currency, tenders, regulator, market notes. It is clearly distinct from get_pricing and search_docs, though it never explicitly contrasts itself with get_page, which could plausibly surface the same country page.

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 'call this to get structured per-country facts.' There is no statement of when to prefer it over get_page (the sibling whose territory — 'that country's page' — most overlaps) and no note about what happens for a country outside the seven-market enum.

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

get_pageGet PageA
Read-only
Inspect

One Sandooq page as Markdown — the same representation the site serves at /agent and via Accept: text/markdown, with no HTML or navigation chrome.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesSite-relative path, no leading slash and no language prefix — e.g. 'pricing', 'about', 'pos-system/saudi-arabia', 'blog/<slug>'. Use '' for the home page. Choose the language with `locale`, not with a '/ar' prefix.
localeNoResponse language: 'en' (default) or 'ar'. Arabic returns the Arabic copy the site publishes, not a translation of the English.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover readOnly, non-destructive and closed-world, so the safety burden is light; the description still adds real value by specifying what comes back (clean Markdown with no HTML or navigation chrome) and pinning it to a known site behavior. It does not cover error behavior for invalid paths or size/truncation limits for very long pages.

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?

A single sentence with no filler, and the resource identity plus output format are front-loaded. Every clause (Markdown, /agent parity, no chrome) carries information an agent needs to decide between this tool and a search.

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 correctly takes on the job of characterizing the return payload as Markdown without chrome, which is the main thing an agent needs. What remains unspecified — 404/missing-page behavior and whether large pages are truncated — is minor for a two-parameter read tool with full schema coverage.

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% and the path and locale parameters are thoroughly documented there, including the leading-slash, language-prefix and empty-string-for-home rules. The description adds nothing beyond the schema, so the baseline of 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 concrete resource (one Sandooq page) and the exact delivery format (Markdown, the same bytes served at /agent and via Accept: text/markdown, no HTML or navigation chrome). That output-format specificity distinguishes it from search_docs and get_country_info. It stops short of explicitly contrasting with get_pricing, which overlaps with the 'pricing' path example given in 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 Guidelines3/5

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

The phrase 'one ... page' implies this is the single-resource fetch versus a search or an aggregate lookup, so usage is inferable. But there is no explicit 'use search_docs if you don't know the path' or 'use get_pricing for pricing data' routing, and nothing about when not to call it.

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

get_pricingGet PricingA
Read-only
Inspect

Sandooq's subscription plans, prices and per-plan limits, read from the same source the pricing page renders.

ParametersJSON Schema
NameRequiredDescriptionDefault
countryNoOptional ISO 3166-1 alpha-2 country code, lowercase. One of: sa, qa, ae, bh, om, sy, lb. Pricing is identical in every country; the code is echoed back so the answer can name it.

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is fully covered without description help. The description adds a real behavioral guarantee beyond that: the data comes from the same source the pricing page renders, telling the agent the answer is authoritative and consistent with the public site. It stops short of describing freshness, caching, or response shape.

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?

A single sentence that front-loads the resource (plans, prices, limits) and closes with the source-of-truth guarantee. Every clause earns its place with no filler.

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 zero-required-parameter read tool with full schema coverage and annotations, the description covers both what is returned and where the data comes from. The absence of an output schema means the agent still doesn't know the response structure or currency formatting, but nothing essential to invoking it correctly is missing.

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 only one optional parameter and 100% schema description coverage, the schema carries the full explanation, including the surprising fact that pricing is identical in every country and the code is merely echoed back. The description adds nothing about the country parameter, 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?

The description names a specific resource (subscription plans, prices, per-plan limits) and a clear read action, so an agent knows exactly what it returns. It does not explicitly contrast itself with siblings like get_country_info or get_page, though the naming is distinct enough to avoid confusion.

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 this is the tool for pricing questions because it returns plans and prices. There is no explicit when-to-use statement, no exclusion of alternatives, and no mention of prerequisites or how it relates to get_country_info.

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

search_docsSearch DocsA
Read-only
Inspect

Search Sandooq's public pages and blog articles by keyword, returning ranked titles, URLs and excerpts. Follow a result with get_page to read it in full.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoHow many results to return. Default 5, maximum 20. `matchCount` reports the total number of matching pages regardless.
queryYesWords to search for. Matched case-insensitively against page titles and body text in the chosen language; there is no stemming, so the words a reader would use work best.
localeNoResponse language: 'en' (default) or 'ar'. Arabic returns the Arabic copy the site publishes, not a translation of the English.

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds real value by disclosing that results are ranked and what fields come back (titles, URLs, excerpts), which the schema does not state, though it omits that matchCount reports total hits independent of 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?

Two sentences, zero waste: the primary behavior and return fields come first, with the follow-up hint last. Nothing redundant with the schema or annotations.

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 correctly takes on the burden of describing return values (ranked titles, URLs, excerpts) and the natural follow-up call. It is nearly complete; only result-count behavior (matchCount) is left solely to the schema.

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% – query matching, locale semantics, and limit/matchCount behavior are all documented in the schema. The description adds no parameter guidance beyond what is already structured, so baseline 3 applies.

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 (search), resource (Sandooq's public pages and blog articles), mechanism (keyword), and return shape (ranked titles, URLs, excerpts). It also names get_page as the follow-up, which separates search from retrieval among the siblings.

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?

"Follow a result with get_page to read it in full" gives an explicit next-step rule and implicitly scopes this tool to discovery rather than full-text reading. No explicit when-not condition or note about the closed corpus, but the routing intent is clear.

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. 4 tool updates
    • First observedget_country_info
    • First observedget_page
    • First observedget_pricing
    • First observedsearch_docs

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    A
    maintenance
    Merchant of record MCP server: create products, payment links, checkouts, subscriptions, invoices and discount codes, with VAT and sales tax handled in 135+ jurisdictions.
    4
    31
    341 npm
    4
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Search and retrieve researched indie product cases, published pricing and revenue disclosures, acquisition notes, and source links. Compute pricing benchmarks from the available dataset. Undisclosed revenue is returned as unknown; research and translation coverage vary by case.
    Apache 2.0
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources