Skip to main content
Glama

MCP-Dubai

Dubai and UAE public data and business setup knowledge for MCP clients.

خادم MCP للبيانات العامة في دبي والإمارات وللمعرفة العملية لتأسيس الأعمال

PyPI Python 3.11+ CI Status: Alpha License: MIT

Quick start · Tools · Configuration · Data freshness · Development · Latest audit

MCP-Dubai is a Model Context Protocol server that connects AI assistants to public APIs, bundled reference datasets, and curated business knowledge. It runs locally over stdio and returns structured results with source and freshness metadata where available.

The current source includes 120 tools across 37 features:

Area

Tools

Coverage

Public data and reference datasets

45

Weather, prayer times, currencies, schools, holidays, market data, locations, and dataset discovery

Dubai government dataset queries

6

DLD real estate and RTA transport through data.dubai OAuth

Business knowledge

56

Company setup, free zones, visas, banking, tax, compliance, funding, and living costs

Writing and analysis

8

Arabic/English letter templates, query plans, and report synthesis

Discovery and diagnostics

5

Tool recommendations, feature inventory, version, knowledge dates, and upstream status

112 tools require no credentials. Two air-quality tools need a free WAQI token; six government dataset tools need OAuth credentials and dataset access. Credential-free tools can still depend on an unavailable upstream service; see availability and limitations.

Quick start

Run the current source

Requires Python 3.11 or newer and Git. The October 13 audit tested Python 3.11 through 3.14.

git clone https://github.com/mahdi-salmanzade/MCP-Dubai.git
cd MCP-Dubai
python3 -m venv .venv
source .venv/bin/activate
python -m pip install -e .

On Windows PowerShell, create the environment with py -m venv .venv and activate it with .venv\Scripts\Activate.ps1.

Configure your MCP client to launch the environment's Python executable:

{
  "mcpServers": {
    "dubai": {
      "command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
      "args": ["-m", "mcp_dubai"]
    }
  }
}

Replace command with your actual absolute path. On Windows, use the environment's .venv\Scripts\python.exe path, escaping backslashes in JSON.

Client

Configuration file

Claude Desktop

~/Library/Application Support/Claude/claude_desktop_config.json on macOS; %APPDATA%\Claude\claude_desktop_config.json on Windows

Cursor

.cursor/mcp.json in the project, or ~/.cursor/mcp.json globally

Windsurf

~/.codeium/windsurf/mcp_config.json

For VS Code, use .vscode/mcp.json with a servers key:

{
  "servers": {
    "dubai": {
      "command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
      "args": ["-m", "mcp_dubai"]
    }
  }
}

For another MCP client, use the same command and arguments in its stdio server settings. After connecting, call about() to check the running version and tool count, then recommend_tools(query) to find relevant tools.

To launch the server directly from the activated environment:

python -m mcp_dubai

This starts an MCP stdio process that waits for client messages.

Use the published package

Release snapshot, October 20, 2026: the public PyPI release is version 0.4.0 with 120 tools, the same catalogue documented here.

To run the published release with uv:

uvx mcp-dubai

In a client configuration, set command to uvx and args to ["mcp-dubai"]. Alternatively, install it in a virtual environment with python -m pip install mcp-dubai and run mcp-dubai.

Related MCP server: filed-mcp-server

Tool catalogue

Tools are grouped by purpose below. All names are exposed without a feature prefix. list_features() returns the registered groups, tool counts, tiers, and authentication requirements.

Public data and reference datasets

Feature

Tools

Coverage

al_adhan

prayer_times_for, prayer_times_calendar, qibla_direction, hijri_to_gregorian, gregorian_to_hijri

Prayer times, Qibla bearings, and Hijri/Gregorian conversion.

quran_cloud

quran_surah, quran_ayah, quran_juz, quran_search

Quran text and translations with bounded, paginated search.

cbuae

cbuae_exchange_rates, cbuae_base_rate

CBUAE exchange rates with English/Arabic labels and currency codes. The base-rate endpoint is recorded as blocked.

fcsc_ckan

fcsc_search_dataset, fcsc_get_dataset, fcsc_list_organizations, fca_trade_stats

Federal dataset discovery and trade-data search. The CKAN endpoint is recorded as blocked.

khda

khda_search_school, khda_list_curricula, khda_list_areas

Search a bundled 16-school sample by area, curriculum, rating, or indicative fee ceiling. This is not a complete school directory.

aviation_weather

weather_uae_icao, weather_uae_all

METAR observations and TAF forecasts for six UAE airports.

open_meteo

uae_weather, uae_weather_forecast, weather_by_coords, list_uae_weather_cities

Current weather and forecasts for eight UAE cities or supplied coordinates.

currency

currency_rates, currency_convert

AED-based exchange rates and currency conversion.

air_quality

air_quality_dubai, air_quality_by_coords, air_quality_dubai_stations

WAQI air-quality readings and a station reference list. Readings require a free token; the list does not.

osm_overpass

osm_search_poi, osm_list_categories

Nearby OpenStreetMap points of interest across 22 categories.

holidays

uae_holidays, uae_next_holiday, is_uae_holiday

UAE federal holidays for 2026 and a provisional 2027 calendar, with announced observances distinguished from estimates.

dfm

dfm_index, dfm_stock_quote, dfm_list_securities

DFM index snapshots, quotes, and securities from undocumented public endpoints. Data may be delayed or incomplete.

makani

makani_reverse_geocode, makani_details, makani_validate

Makani address lookup, reverse geocoding, and number validation.

gold_rate

dubai_gold_rate

Dubai Jewellery Group suggested retail gold rates in AED per gram.

data_dubai

data_dubai_search, data_dubai_themes, data_dubai_entities

Public dataset metadata, themes, and publishers. Access to dataset records is separate.

rta (GTFS)

rta_gtfs_static_url

Link and metadata for the anonymous GTFS archive, including its dated build and intermittent availability.

Government dataset queries

These six tools require MCP_DUBAI_PULSE_CLIENT_ID, MCP_DUBAI_PULSE_CLIENT_SECRET, and access to the requested datasets. Without credentials, they return structured setup instructions. See CREDENTIALS.md.

Feature

Tools

Coverage

dld

dld_search_transactions, dld_search_rent_contracts, dld_lookup_broker

Property sales, Ejari rental contracts, and registered brokers.

rta

rta_search_metro_stations, rta_search_bus_routes, rta_salik_tariff

Metro stations, bus routes, and Salik tariff data.

Business knowledge

These tools use 16 bundled JSON packs and a setup advisor that combines relevant records. Successful responses include knowledge metadata. Prices, eligibility rules, and estimates retain their documented scope and verification dates.

Feature

Tools

Coverage

setup_advisor

setup_advisor

Compare mainland, free-zone, and offshore setup options using budget, activity, visa, banking, and tax considerations.

free_zones

list_free_zones, free_zone_details, compare_free_zones, list_offshore

Twelve curated free-zone entries, offshore options, indicative costs, and package details. Unknown prices cannot satisfy a budget filter.

visas

list_visa_types, visa_details, visa_recommend, golden_visa_check

Visa routes and category-specific eligibility guidance, including authority and evidence requirements.

banking

list_banks, bank_details, bank_recommendation, dul_eligibility

Fourteen bank entries, fees, onboarding estimates, and dated Dubai Unified Licence integration information.

founder_essentials

attestation_guide, pro_services_estimate, legal_translation_estimate, chamber_of_commerce_info, setup_timeline_estimate, common_founder_mistakes

Document attestation, provider cost estimates, Chamber membership, setup timelines, and common filing mistakes.

tax_compliance

corporate_tax_estimate, vat_filing_calendar, qfzp_check, esr_status, einvoicing_timeline, late_payment_penalty_estimate

Corporate tax estimates, QFZP conditions, VAT calendars, ESR history, e-invoicing milestones, and penalty estimates.

compliance

aml_requirements, ubo_filing_guide, pdpl_compliance, emiratisation_requirements

AML, beneficial ownership, data-protection, and Emiratisation requirements.

funding

accelerator_search, vc_list, grant_programs

Accelerator and investor discovery, government support, and dated application windows.

gov_portals

portal_guide

Government portal guidance, including UAE Pass, DubaiNow, and DubaiPay.

dcde

dcde_programs, chamber_membership

Dubai Chamber of Digital Economy programs and Chamber membership guidance.

events

startup_events, gitex_info, ens_calendar

Startup events, GITEX, and Expand North Star dates and venues.

parkin

parking_zones, nol_card_guide

Parking zones, tariffs, and Nol card fares and passes.

ip_trademark

trademark_registration, ip_protection

Trademark registration, patent, and copyright guidance. Industrial-design guidance is not yet a tool category.

halal

halal_certification, moiat_requirements

Halal conformity, certification bodies, National Mark use, and MOIAT requirements.

createapps

createapps_championship, submission_guide

Create Apps Championship rules, application guidance, and dated competition milestones.

cost_of_living

cost_of_living_overview, rent_estimate, dewa_bill_estimate, salik_toll_estimate, grocery_estimate, school_fee_estimate, fuel_price_guide

Indicative household budgets, utility and toll calculations, school fee estimates, and monthly fuel-price snapshots.

tenancy

ejari_guide, rera_rent_increase, rental_dispute_guide

Ejari registration, RERA rent-increase calculations, and rental-dispute procedures.

Writing and analysis

Feature

Tools

Coverage

arabic_writer

list_honorifics, addressee_block, business_letter_template, list_salutations

Arabic/English business letter templates, honorifics, addressees, and salutations.

data_analyst

plan_query, list_plan_categories, synthesize_report, analyze_setup_decision

Cross-tool query plans and Markdown report synthesis. The calling agent executes the plan; these tools do not run it autonomously.

Discovery and diagnostics

Tool

Purpose

recommend_tools(query, top_k=5)

Rank tools relevant to a natural-language query using BM25 search and aliases.

list_features()

List registered features, tiers, authentication requirements, and tools.

get_knowledge_status()

Inspect dates, review scope, volatility, and verification links for all 19 tracked knowledge domains.

about()

Find the developer name and contact email, running package version, tool count, repository URL, and latest recorded knowledge update.

get_upstream_status()

Read the 16-source status registry and observations from the current process. This does not actively probe every endpoint.

Configuration

No environment variables are required to start the server. Set credentials in the MCP client's server environment to enable the relevant calls.

{
  "mcpServers": {
    "dubai": {
      "command": "/absolute/path/to/MCP-Dubai/.venv/bin/python",
      "args": ["-m", "mcp_dubai"],
      "env": {
        "MCP_DUBAI_PULSE_CLIENT_ID": "your-client-id",
        "MCP_DUBAI_PULSE_CLIENT_SECRET": "your-client-secret",
        "MCP_DUBAI_WAQI_TOKEN": "your-waqi-token"
      }
    }
  }
}

Variable

Default

Purpose

MCP_DUBAI_PULSE_CLIENT_ID

Unset

OAuth client ID for the six government dataset tools

MCP_DUBAI_PULSE_CLIENT_SECRET

Unset

OAuth client secret, used with the client ID

MCP_DUBAI_WAQI_TOKEN

Unset

Token for the two air-quality reading tools

MCP_DUBAI_PULSE_API_BASE

https://apis.data.dubai

Government dataset API base URL

MCP_DUBAI_DATA_PORTAL_BASE

https://data.dubai

Public metadata portal base URL

MCP_DUBAI_LOG_LEVEL

INFO

Log verbosity

MCP_DUBAI_HTTP_TIMEOUT

30.0

HTTP timeout in seconds

MCP_DUBAI_HTTP_MAX_RETRIES

3

Total attempts per request; only timeouts and network errors are retried

Request dataset access at data.dubai and a free WAQI token at AQICN. Keep credentials out of committed configuration files. The credential guide covers setup and troubleshooting. MCP_DUBAI_CALENDARIFIC_KEY is reserved for a future holiday refresh integration and currently enables no additional tool.

Data sources

Source

Used for

Access

Al-Adhan, Al-Quran Cloud

Prayer times, calendar conversion, Quran text

Anonymous APIs

CBUAE, ExchangeRate-API

Exchange rates and currency conversion

Anonymous endpoints; CBUAE endpoints are undocumented

FCSC Open Data

Federal dataset discovery

Anonymous CKAN API, recorded as blocked

KHDA

School reference data

Bundled sample

Aviation Weather Center, Open-Meteo

Airport and general weather

Anonymous APIs

WAQI / AQICN

Air quality

Free token

OpenStreetMap Overpass, Makani

Points of interest and address lookup

Anonymous services

DFM, Dubai City of Gold

Market data and retail gold rates

Public JSON endpoints and HTML; DFM endpoints are undocumented

data.dubai, API gateway

Dataset discovery, DLD and RTA queries

Anonymous metadata; OAuth for dataset records

UAE federal holiday announcements

Public holidays

Bundled calendar with provisional dates marked

Business knowledge packs

Business setup and reference guidance

Bundled JSON with source links and review metadata

The former Dubai Pulse portal redirects to data.dubai. The project retains PULSE in credential variable names; its default API gateway is apis.data.dubai.

Availability and limitations

The October 20, 2026 audit records representative service checks, source verification, and remaining limits. These observations are a dated snapshot:

Integration

Recorded result

CBUAE exchange rates

Working; 77 currencies returned

CBUAE base rate and four FCSC tools

Blocked by upstream access protection

data.dubai catalogue

Working; 639 datasets, 11 themes, and 75 issuers

DFM

Working; 468 securities, with names missing upstream

RTA GTFS archive

Intermittent access via the apex host; retrieved archive still identifies the August 23, 2025 build

Other anonymous integrations

Successful representative calls for prayer times, Quran text, aviation and general weather, currencies, gold, Makani, and Overpass (Overpass after one transient HTTP 504)

OAuth datasets and WAQI readings

Not live-tested in the audit without representative credentials

The school dataset contains 16 selected records from an April 2026 snapshot. Nine records received targeted attribute corrections on September 5; school fees were not refreshed. Business costs and onboarding timelines can also be dated estimates, as indicated in the underlying records.

Clients should inspect success before using a result and read the returned error when a call fails. Credential and upstream failures include structured status and reason fields where applicable. Use get_upstream_status() for the recorded baseline and observations from tools used during the current session.

Knowledge freshness

Freshness is tracked across 19 domains: 16 JSON packs, setup_advisor, data_analyst, and arabic_writer. Successful business responses include a knowledge block; get_knowledge_status() exposes the complete registry.

Field

Meaning

knowledge_date

Latest material update to the domain

full_review_date

Last complete domain review

previous_knowledge_date

Prior update date, when recorded for a targeted refresh

last_refresh_scope

Fields or topics covered by a targeted update

volatility

Review-budget category: high, medium, or stable

verify_at

Domain verification or source URL

disclaimer

Domain-specific scope and use limitations

As of October 20, 2026, tax_compliance received a full review and twelve more domains a targeted refresh. Nine domains keep their October 13 full reviews (cost_of_living, events, free_zones, visas, setup_advisor, dcde, ip_trademark, founder_essentials, data_analyst), and arabic_writer stays at 2026-04-13. Targeted updates leave untouched fields and full-review dates at their earlier verification scope. Detailed corrections and source links are in the audit report.

The freshness checker uses the last full review, with alerting budgets of 100 days for high-volatility domains, 190 for medium, and 365 for stable. Monthly prices, deadlines, and events still need review on their own schedules. Passing the age check does not establish that every fact is current.

python scripts/check_knowledge_freshness.py --strict

Verify the linked official requirements before relying on tax, visa, legal, or pricing guidance for a decision.

Example queries

Ask a connected assistant to use MCP-Dubai for requests such as:

Request

Relevant tools

What time is Fajr tomorrow in Dubai?

prayer_times_for

Find pharmacies within 500 metres of these coordinates.

osm_search_poi

Find public datasets about Dubai traffic.

data_dubai_search

Compare DMCC and IFZA for a consultancy with two visas.

free_zone_details, compare_free_zones, setup_advisor

Estimate corporate tax on AED 500,000 of taxable income and explain the QFZP information needed.

corporate_tax_estimate, qfzp_check

What is the attestation route for an Indian degree certificate?

attestation_guide

Estimate monthly living costs for a family of four.

cost_of_living_overview, rent_estimate

Prepare an Arabic/English letter addressed to a government department.

business_letter_template, addressee_block

Tool selection and follow-up questions depend on the client. These examples describe lookups and estimates; the server does not submit applications or open accounts.

Development

From the activated source environment created in Quick start:

python -m pip install -e ".[dev,data]"
make check

make check runs Ruff lint and format checks, strict mypy, pytest with coverage, and the informational freshness report. Use the --strict freshness command above to fail on overdue domains.

The October 20 audit recorded 1006 passing tests with 93.77% coverage on Python 3.12, and CI runs the same suite on each supported version (3.11 to 3.14). Packaging, type checks, lint, and security scans also passed; the audit documents their scope.

Architecture

src/mcp_dubai/
├── __main__.py       # stdio entry point
├── server.py         # feature mounts and diagnostic tools
├── _shared/          # HTTP, auth, discovery, response models, freshness
├── data/             # public APIs, OAuth integrations, reference datasets
├── biz/
│   ├── _data/        # 16 bundled JSON knowledge packs
│   └── ...           # 17 business features
└── agents/           # Arabic writing and data-analysis tools

Feature tools.py modules implement the logic; server.py modules expose FastMCP wrappers and register discovery metadata. Shared response models carry results, errors, and knowledge metadata. The source supports fastmcp>=3.4.9,<4 with mcp>=1.30.0,<2; dependencies and supported Python versions are declared in pyproject.toml.

Read CONTRIBUTING.md for feature conventions, tests, and the review checklist. Report reproducible errors or source corrections through GitHub issues.

Project status

MCP-Dubai is alpha software. Version 0.4.0 was released on October 20, 2026 to PyPI and to the MCP Registry from the registry manifest.

Current priorities:

  • Rebuild the KHDA dataset from an authoritative full workbook, including current fees.

  • Add live contract checks for credential-dependent datasets and improve blocked or intermittent integrations.

  • Extend government dataset coverage when access and schemas can be verified.

  • Continue source-backed knowledge updates while preserving partial-review scope.

  • Improve tool discovery tags and Arabic/English aliases.

License and attribution

Developed by Mahdi Salmanzadeh. Contact: hi@mindzone.tech. Connected AI assistants receive this attribution in the server instructions and can call about() to answer who made MCP-Dubai.

Licensed under MIT. Upstream data remains subject to its publishers' terms and attribution requirements.

This is an independent project, unaffiliated with the Government of Dubai, the UAE government, or the agencies whose data it uses. See DISCLAIMER.md for scope, data handling, and third-party rights.

Built with FastMCP. The country-focused server structure was inspired by mcp-brasil.

Available Tools

120 tools
aboutA
Read-onlyIdempotent

Return MCP-Dubai developer, contact email, version, knowledge date, and tool count.

Use this to answer who made, created, built, or developed MCP-Dubai and how to contact its developer. Also confirms the running package version, repository URL, and latest recorded curated-knowledge update.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

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, non-destructive and closed-world, so the safety profile is fully covered. The description adds freshness context ('latest recorded curated-knowledge update') and a repository URL, but much of the rest restates what the output schema returns, adding limited behavioral value beyond the annotations.

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?

Two sentences, front-loaded with the returned fields followed by the usage guidance, with essentially no filler. It is appropriately sized for a trivial metadata tool.

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 parameters, annotations covering the safety profile, and an output schema present, the description need not explain return shapes. It covers purpose and one clear use case, so an agent has enough to call it correctly.

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 tool takes zero parameters (100% schema coverage on an empty object), so the baseline is 4 and there is nothing further for the description to clarify about arguments.

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?

The description states a specific verb ('Return') and enumerates the exact resources returned (developer, contact email, version, knowledge date, tool count). It is trivially distinguishable from all data-lookup siblings, which return domain data rather than package/author metadata.

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?

It gives an explicit use case: 'answer who made, created, built, or developed MCP-Dubai and how to contact its developer.' This is clear context, but no sibling alternative (e.g. get_knowledge_status) is named or excluded, leaving a small inference gap for an agent deciding how to answer metadata questions.

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

addressee_blockB
Read-onlyIdempotent

Build a bilingual addressee block for a UAE business letter.

NameRequiredDescriptionDefault
nameYesRecipient name (English).
titleNoJob title in English.
name_arNoRecipient name in Arabic.
title_arNoJob title in Arabic.
honorificNoHonorific id (use list_honorifics for the catalogue).mr
organizationNoOrganization name in English.
organization_arNoOrganization name in Arabic.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description adds nothing behavioral: it does not say whether a missing name_ar/title_ar falls back to the English value, whether output is plain text or structured lines, or how honorific/name ordering is assembled. With an output schema present, return format is excused, but the Arabic-fallback question is a real gap.

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 eleven-word sentence with the resource and locale front-loaded and zero filler. It is efficient, though the terseness leaves gaps that belong in the other dimensions.

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

Completeness3/5

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

Annotations and a full-coverage schema plus an output schema mean basic callability is fine. For a 7-parameter composition tool, though, the description leaves open how the optional Arabic halves interact with the required English name, which is exactly the kind of guidance a composition tool needs.

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 every one of the seven properties carries a description (including the pointer to list_honorifics), so the schema does the heavy lifting. The description adds no meaning beyond that — nothing about pairing rules between name/name_ar or title/title_ar.

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 states a specific verb and resource ("Build a bilingual addressee block") and scopes it to "a UAE business letter," which is far more concrete than the bare tool name. It stops short of naming how it differs from nearby siblings like business_letter_template or list_honorifics, so an agent must infer the boundary.

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 "for a UAE business letter" implies the use case, but there is no explicit when-to-use, no indication of when to prefer business_letter_template instead, and no note that list_honorifics should be consulted for the honorific id (that hint lives only in the schema).

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

air_quality_by_coordsA
Read-onlyIdempotent

Get air quality for the closest WAQI station to a given lat/lon.

NameRequiredDescriptionDefault
latitudeYesLatitude in decimal degrees.
longitudeYesLongitude in decimal degrees.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld, and non-destructive, so the safety profile is covered. The one genuine addition is the 'closest WAQI station' resolution behavior, which tells the agent the result is nearest-match rather than exact-point. No detail on coverage gaps or error behavior when no station exists.

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 zero filler, front-loading the action and the key qualifier (closest station). Nothing to trim.

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 rich annotations and an output schema present, the definition doesn't need to explain return values. It is nearly complete for a two-parameter read tool, lacking only a note on station coverage/fallback behavior if no station is near the coordinates.

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 latitude and longitude are already documented as decimal degrees. The description restates the lat/lon concept without adding format, range, or coordinate-system specifics beyond the schema. 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 verb (Get), resource (air quality), and the precise scope (closest WAQI station to a given lat/lon). It implicitly differentiates from the Dubai-specific siblings by being coordinate-driven, but never names air_quality_dubai or weather_by_coords to make the routing explicit.

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 implied rather than stated: an agent can infer this is for arbitrary coordinates. There is no explicit when-to-use vs air_quality_dubai or air_quality_dubai_stations, and no note on what happens when no station is nearby.

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

air_quality_dubaiA
Read-onlyIdempotent

Get real-time air quality for a Dubai station.

Returns AQI, EPA category bucket, individual pollutants (PM2.5, PM10, NO2, SO2, CO, O3), and the dominant pollutant.

NameRequiredDescriptionDefault
stationNoStation ID (`karama`, `jebel-ali-village`, `nad-al-shiba`).karama

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and repeat-call profile is covered. The description's one genuine addition beyond structured data is 'real-time' (data freshness), which is useful but thin — no mention of update cadence, caching, or data source.

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?

Two short sentences, front-loaded with the purpose. However, the second sentence enumerates return fields (AQI, pollutants, dominant pollutant) that the existing output schema already carries, which is mild redundancy rather than waste.

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 an output schema, rich annotations, and full schema coverage on the one parameter, the description only needs to supply purpose and freshness — both present. The residual gap is routing among the three air-quality siblings, which the description does not address.

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 single station parameter already documents its default and valid IDs, so the baseline is 3. The description only restates 'for a Dubai station' and adds no syntax, default, or selection guidance beyond the schema.

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 and resource with scope: 'Get real-time air quality for a Dubai station.' That is clearly distinct from air_quality_by_coords, but the description never names or contrasts with its two closest siblings (air_quality_by_coords, air_quality_dubai_stations), so differentiation is left to the agent's inference from names.

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?

'for a Dubai station' implies station-keyed lookup as opposed to the coordinate-based sibling, which is implied routing rather than stated guidance. There is no explicit when-to-use, no note that air_quality_dubai_stations may be needed to discover valid station IDs, and no exclusions.

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

air_quality_dubai_stationsA
Read-onlyIdempotent

List the supported Dubai air quality stations.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description only adds that the set is a closed, supported list; it says nothing about ordering, caching, or size of the result set.

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?

One sentence, front-loaded with the verb and resource, with zero filler. Nothing to trim and nothing buried.

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 values need not be explained, and with no parameters and full annotation coverage the definition is nearly sufficient. The only gap is that it never connects the listed stations to the air_quality_dubai call that consumes them.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline of 4 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?

Clear verb ('List') plus a specific resource ('supported Dubai air quality stations'), so the agent knows exactly what comes back. It does not, however, distinguish itself from the sibling air_quality_dubai tool, which presumably consumes these station identifiers.

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

Usage Guidelines2/5

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

No when-to-use guidance and no routing to or from the sibling air_quality_dubai tool. The word 'supported' hints that this enumerates the valid station identifiers, but the agent must infer that this is a prerequisite discovery call.

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

aml_requirementsA
Read-onlyIdempotent

Return AML/CFT requirements for a business category.

Specifically flags DNFBP (Designated Non-Financial Business or Profession) categories that must register on goAML. Common categories: real_estate, precious_metals, auditor, corporate_service_provider, lawyer, notary.

NameRequiredDescriptionDefault
business_categoryNogeneral

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

The annotations already establish that this is a safe, read-only, idempotent lookup, and the description adds useful domain behavior by explaining that DNFBP categories are flagged for goAML registration. It does not describe error behavior for unknown categories, but the output schema reduces the need to describe return values here.

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?

The description is compact and front-loaded: the purpose appears first, followed immediately by the key DNFBP/goAML behavior. The category list earns its place by helping the caller choose a valid business_category value.

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 one-parameter read-only lookup with annotations and an output schema, the description covers the core purpose, key behavioral trait, and example categories. It is nearly complete, with only minor gaps around category matching semantics and default behavior.

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 0%, so the description must carry the burden for the single business_category parameter. It does add useful common values such as real_estate, precious_metals, auditor, and lawyer, but it does not clarify whether these are exhaustive accepted values, whether matching is exact, or what the default 'general' returns.

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 states a specific verb and resource: return AML/CFT requirements for a business category. It also clarifies that DNFBP categories requiring goAML registration are flagged. It does not explicitly distinguish itself from nearby compliance siblings such as ubo_filing_guide or pdpl_compliance, so it falls short of a 5.

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 implied: call this when you need AML/CFT requirements for a business category, especially to check DNFBP/goAML registration obligations. However, there is no explicit when-to-use, when-not-to-use, or named alternative among the many compliance tools in the sibling list.

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

analyze_setup_decisionA
Read-onlyIdempotent

Build a complete cross-tool analysis plan for a founder setup decision.

Returns an ordered list of 6 tool calls (setup_advisor, compare_free_zones, qfzp_check, bank_recommendation, common_founder_mistakes, setup_timeline_estimate) plus synthesis instructions.

The LLM should execute the plan and then call synthesize_report.

NameRequiredDescriptionDefault
activityYesBusiness activity (e.g., "SaaS", "consulting").
industryNoIndustry category.general
budget_aedYesFirst-year budget in AED.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive, and closed-world behavior. The description adds useful behavioral context by stating that it returns an ordered list of six tool calls plus synthesis instructions and should be followed by synthesize_report.

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?

The description is front-loaded and compact: it states purpose, return shape, and the required follow-up workflow in three short sentences. There is no wasted text.

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?

For a meta-planning tool with an output schema, the description sufficiently covers what is returned, which sibling tools are orchestrated, and the required next step. Nothing essential for correct invocation appears to be 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?

Schema description coverage is 100%, so activity, industry, and budget_aed are already documented in the schema. The description does not add parameter-level meaning beyond that baseline, so a 3 is appropriate.

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?

The description states a specific verb and resource: building a cross-tool analysis plan for a founder setup decision. It also names the exact six tools included in the plan, making it clearly distinguishable from sibling tools like setup_advisor or synthesize_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?

It clearly explains the workflow: execute the returned plan, then call synthesize_report. It does not explicitly say when not to use this tool versus calling individual sibling tools directly, so it falls short of full alternative guidance.

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

attestation_guideA
Read-onlyIdempotent

Explain UAE document attestation routes and an illustrative foreign-document chain.

The UAE is not a Hague Apostille member as of September 2026. Steps depend on the document, issuing country and receiving authority. Eligible UAE-issued digital documents may use MoFA's digital route; foreign documents follow the relevant UAE mission's requirements.

NameRequiredDescriptionDefault
home_countryNoOptional source country for context.
document_typeNoOne of: personal, commercial, degree, marriage, birth, power_of_attorney.personal

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the description's added value is the domain caveat: no Hague Apostille membership as of September 2026, and a digital route for eligible UAE-issued documents. The word 'illustrative' usefully signals the output is generic guidance rather than a definitive per-case ruling, which is real behavioral disclosure beyond the annotations.

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?

The purpose is front-loaded in the opening sentence and the remaining three lines are compact, high-signal domain context. Line breaks are odd for a two-paragraph description but nothing is padded or repetitive.

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 values need not be described, both params are fully documented, and annotations carry the safety profile. The description adds the key domain premise and a freshness date. The only gap is guidance on what to do when the guide does not cover a specific receiving authority.

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 parameters (home_country, document_type) are already documented, and the description only alludes to them via 'the document, issuing country and receiving authority'. It adds no syntax, precedence, or format detail beyond the schema, which is the baseline-3 case.

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 first sentence gives a specific verb+resource pairing ('Explain UAE document attestation routes') plus an explicit scope note that foreign chains are illustrative. This is clearly distinguishable from the other guide-style siblings (ejari_guide, nol_card_guide, submission_guide) by domain. It stops short of naming a sibling it should be preferred over.

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 description explains that 'steps depend on the document, issuing country and receiving authority', which implies when the tool's answer varies, but never states when to call this versus a sibling guide or a lookup tool. No exclusions or alternatives are given, so usage is only inferable.

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

bank_detailsB
Read-onlyIdempotent

Get the full curated record for a UAE business bank.

NameRequiredDescriptionDefault
bank_idYesBank id slug. Examples: "wio", "mashreq_neobiz", "zand", "ruya", "emirates_nbd", "rakbank", "cbd", "adcb", "fab", "adib", "hsbc", "standard_chartered", "citi".

Output Schema

NameRequiredDescription

No output parameters

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, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only the notion of a "curated" record (complete vs. summary), and discloses nothing about freshness, caching, or failure behavior for an unknown id.

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 tightly written sentence with no filler and the resource front-loaded. It is not padded, but it is also close to the minimum viable length for a tool of this scope.

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

Completeness3/5

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

With an output schema present and 100% parameter documentation, return values and the single argument need no prose. The remaining gap is routing: nothing tells the agent to call list_banks first to obtain a valid slug, leaving a discovery hole in an otherwise well-structured definition.

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 bank_id property already carries a rich slug list of examples, so the schema does the heavy lifting. The description adds no format, constraint, or lookup-hint information beyond what the schema provides, which is the expected baseline.

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 ("Get") and a specific resource ("the full curated record for a UAE business bank"), which is clearly distinguishable from list_banks (enumeration) and bank_recommendation (advisory). However, it never names those siblings, so the differentiation is only implicit.

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 "full curated record" implies this is the detail-fetch that follows a listing, but the description gives no explicit when-to-use, no pointer to list_banks for discovering a valid bank_id, and no exclusion relative to bank_recommendation. Usage is only inferable.

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

bank_recommendationB
Read-onlyIdempotent

Recommend UAE business banks based on industry, minimum balance budget, and onboarding speed.

NameRequiredDescriptionDefault
tierNoOptional filter, one of "digital", "traditional", "international".
limitNoMaximum results (1 to 20, default 5).
industryNoBusiness industry category. Crypto, forex, jewelry, used cars, and money service businesses are auto-flagged as high risk.general
is_high_riskNoForce the high-risk warning even if industry is not in the auto-list.
speed_priorityNoTrue if onboarding speed matters more than min balance (favours digital banks).
budget_min_balance_aedNoMaximum minimum-balance the founder can accept (filters out banks above this).

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/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 the safety profile is covered. The description adds the ranking dimensions but nothing beyond the schema, and does not note behaviors such as how high-risk flagging affects results. With annotations carrying the behavioral burden, a 3 is appropriate.

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 padding. It is efficient, though it is arguably too terse for a six-parameter recommendation tool and leaves room for a clause on scope or output.

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

Completeness3/5

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

An output schema and rich annotations are present, so return values and safety need not be described. Still, for a recommendation tool with six optional parameters and no required inputs, the description leaves the agent to infer call behavior and ranking logic entirely from 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%, so all six parameters (tier, limit, industry, is_high_risk, speed_priority, budget_min_balance_aed) are already documented in the schema. The description names three related concepts but adds no syntax or filtering nuance beyond what the schema provides, so the baseline 3 is correct.

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 (Recommend) and resource (UAE business banks) plus the ranking factors (industry, minimum balance budget, onboarding speed). This reasonably distinguishes it from siblings list_banks and bank_details, though it does not explicitly name them.

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 implied by 'recommend ... based on' – the agent can infer it should be used when seeking a ranked shortlist rather than raw listings. However there is no explicit when-to-use vs when-not, and no mention of list_banks/bank_details as alternatives for comparison.

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

business_letter_templateB
Read-onlyIdempotent

Build a bilingual UAE business letter template (English + Arabic).

Returns side-by-side English and Arabic blocks ready for the LLM to fill in body paragraphs. Uses standard UAE formal correspondence conventions.

NameRequiredDescriptionDefault
closingNoClosing style (standard, formal, warm).standard
openingNoOpening style (formal, warm, respectful).formal
subjectYesLetter subject in English.
honorificNoHonorific id (mr, ms, dr, his_excellency, etc.).mr
sender_orgNoSender organization placeholder.[Your Organization]
subject_arNoLetter subject in Arabic (optional).
sender_nameNoSender name placeholder.[Your Name]
sender_titleNoSender title placeholder.[Your Title]
addressee_nameYesRecipient name in English.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare this a safe, read-only, idempotent, closed-world generator, so the safety profile is covered. The description adds one genuinely useful behavioral fact - that the output is a template with side-by-side EN/AR blocks the LLM must fill in - but says nothing about determinism of the placeholders, validation of honorific ids, or behavior on unusual inputs.

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?

Three short sentences, front-loaded with the purpose statement and with no filler. The final sentence about UAE formal correspondence conventions is slightly soft but does establish the stylistic basis of the output.

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

Completeness3/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 values need not be explained, and 100% schema coverage handles the parameters. What is missing is integration context: the description never tells the agent that honorific ids should come from list_honorifics or how this tool relates to addressee_block and list_salutations.

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 all nine parameters are already documented in the schema (opening/closing styles, honorific ids, sender placeholders, optional subject_ar). The description adds no parameter-level detail beyond the schema - for example, it never links the 'honorific' parameter to the list_honorifics sibling that supplies valid ids. 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 states a specific verb and resource: 'Build a bilingual UAE business letter template (English + Arabic)', which is concrete and distinguishable from data-lookup siblings like list_honorifics or addressee_block. It does not, however, explicitly name or differentiate itself from those closely related sibling tools, so it stops short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no stated prerequisites, and no mention of alternatives. The presence of sibling tools such as list_honorifics (which supplies the honorific ids this tool accepts) and addressee_block makes the absence of routing guidance a real gap.

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

cbuae_base_rateA
Read-onlyIdempotent

Get the current CBUAE base rate (percentage).

Returns: Dict with base_rate_percent and source attribution.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint and openWorldHint, so the safety and idempotency profile is covered. The description adds the useful 'current' qualifier (no historical data), but adds nothing about freshness, latency, or failure behavior for an open-world external call.

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?

One short sentence with the core purpose front-loaded, plus a brief return note. The 'Returns: Dict with base_rate_percent...' line is largely redundant given an output schema exists, but it costs little.

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 no-parameter, read-only lookup with an output schema and full annotations, the description is nearly sufficient. The only meaningful gap is not explaining how 'current' is sourced or differentiated from the sibling exchange-rate tools.

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 tool takes zero parameters, so the baseline of 4 applies. There is nothing for the description to disambiguate at the input level.

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 and resource ('Get the current CBUAE base rate') with the unit (percentage) made explicit. It does not distinguish itself from sibling rate tools such as cbuae_exchange_rates, so an agent must infer the difference from names alone.

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 word 'current' implies a point-in-time lookup rather than historical series, which is a usable hint. However, there is no explicit when-to-use statement, no mention of when-not to use it, and no pointer to cbuae_exchange_rates or currency_rates as alternatives.

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

cbuae_exchange_ratesA
Read-onlyIdempotent

Get CBUAE exchange rates for today or a historical date (~75 currencies).

NameRequiredDescriptionDefault
date_strNoISO date YYYY-MM-DD. Omit for today's rates.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the ~75-currency breadth and the historical-date capability, which is modest added context, but says nothing about rate source granularity, update cadence, or behavior on weekends/holidays when CBUAE may not publish.

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?

One sentence, front-loaded with the verb and resource, and every clause (source, temporal scope, currency count) carries information. No filler or redundancy.

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 explanation is unnecessary, and the annotations cover safety. For a one-optional-param lookup tool the description is nearly sufficient; the only missing piece is disambiguation from the other currency tools.

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 single optional parameter already documents 'ISO date YYYY-MM-DD. Omit for today's rates.' The description restates the today/historical choice without adding format, range limits, or behavior for non-published dates, so 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?

States a specific verb and resource ('Get CBUAE exchange rates') with scope details (today or a historical date, ~75 currencies). The CBUAE qualifier distinguishes it from the generic currency_rates sibling, but it never names or contrasts with cbuae_base_rate, currency_rates, or currency_convert, so an agent must infer which source to pick.

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?

Implies usage through 'today or a historical date', telling the agent this covers both current and dated lookups. However, it gives no explicit when-to-use/when-not guidance and no routing to currency_convert or cbuae_base_rate, which is a real ambiguity given three overlapping currency siblings.

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

chamber_membershipA
Read-onlyIdempotent

Return Dubai chamber membership rules.

DCDE has no standalone membership scheme. Dubai Chamber of Commerce membership is mandatory for mainland commercial license holders (AED 700 to AED 2,200 annual fee tiers).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds substantive domain content (mandatory membership, AED 700–2,200 fee tiers) but discloses no behavioral traits such as data source, currency/freshness of rules, or whether fees are jurisdiction-specific.

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?

Three short sentences with the core action front-loaded and no filler. Size is appropriate for a knowledge lookup; only the slight redundancy of restating the DCDE/Dubai Chamber distinction keeps it from a 5.

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

Completeness3/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 values need not be explained, and the description is adequate for a simple no-param lookup. What is missing is any differentiation from the overlapping 'chamber_of_commerce_info' sibling, leaving the agent to guess which one answers a Chamber-membership question.

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 tool takes zero parameters, so there is nothing to disambiguate and the schema is trivially complete. Baseline 4 applies for a no-parameter tool.

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 first sentence gives a specific verb and resource ('Return Dubai chamber membership rules'), which is unambiguous. The follow-up sentences narrow the domain to Dubai Chamber of Commerce rather than DCDE. However, it never distinguishes itself from the very similar sibling 'chamber_of_commerce_info', which limits sibling differentiation.

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: the note that 'DCDE has no standalone membership scheme' steers the agent toward Dubai Chamber, which is a useful routing hint. But there is no explicit statement of when to pick this over 'chamber_of_commerce_info' or any prerequisite/exclusion.

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

chamber_of_commerce_infoC
Read-onlyIdempotent

Return Dubai Chamber of Commerce membership and Certificate of Origin info.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered structurally. The description adds nothing beyond that — no auth requirements, no rate limits, no scope caveats, and no hint about whether the two data sets (membership vs. Certificate of Origin) are returned together or conditionally.

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 no filler, front-loaded with the verb. It is efficient, though its brevity contributes to the vagueness noted elsewhere rather than being a pure virtue.

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

Completeness3/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 values needn't be documented. Still, for a no-arg tool that visibly overlaps with `chamber_membership`, the description leaves the agent unable to tell why both exist or which to call — a real gap given the sibling list.

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 tool takes zero parameters, so the schema is complete by definition and the description has no parameter semantics to add. Baseline 4 applies.

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

Purpose3/5

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

States a generic verb ('Return') and a resource ('Dubai Chamber of Commerce membership and Certificate of Origin info'), which does convey the subject matter. However, nothing distinguishes it from the sibling `chamber_membership`, and 'info' is vague about what is actually returned. An agent cannot confidently route between the two chamber-related tools from the text alone.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of the obvious alternative `chamber_membership`. The agent is left to infer the selection criteria entirely.

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

common_founder_mistakesB
Read-onlyIdempotent

List 10 common founder mistakes that break Dubai setups.

NameRequiredDescriptionDefault
categoryNoOptional substring filter on the mistake title or id.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare this as read-only, idempotent, non-destructive, and closed-world. The description adds that the result is a fixed list of 10 mistakes focused on Dubai setups, but it does not add further behavioral context such as filtering behavior or source limitations.

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?

It is a single front-loaded sentence with no redundant or filler language. Every word contributes to the tool's purpose and scope.

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?

The tool is simple, has rich annotations, full parameter schema coverage, and an output schema, so the description is nearly complete for invocation. It could mention the optional category filter, but that detail is already handled by 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%, and the single optional category parameter is fully documented in the schema as a substring filter. The description adds no parameter-specific meaning 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?

The description uses a specific verb and resource: 'List 10 common founder mistakes that break Dubai setups.' It is clear what the tool returns, though it does not explicitly distinguish itself from adjacent advisory or planning tools such as setup_advisor or analyze_setup_decision.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives, nor any exclusions. Usage is only implied by the topic, which is a gap in a large sibling toolset.

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

compare_free_zonesA
Read-onlyIdempotent

Compare Dubai free zones for a specific use case and return a ranked shortlist.

NameRequiredDescriptionDefault
limitNoMaximum results (1 to 50).
sectorNoOptional sector substring filter (e.g., "tech", "healthcare").
activityNoOptional activity description (informational).
budget_aedNoFilter to free zones with initial license at or under this.
visa_countNoMinimum visa quota required.
needs_physical_officeNoTrue to exclude virtual-only zones.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and closed-world, so safety is covered. The description adds only that results come back ranked, without explaining the ranking basis, scoring criteria, or what happens when filters eliminate every zone.

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 tight sentence with the output form front-loaded. Nothing redundant, nothing 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 a full output schema, rich annotations and 100% parameter coverage, the description only needs to convey intent and it does. The one gap is that the ranking logic driving the shortlist is unexplained.

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 the schema already defines limit, sector, budget_aed, visa_count and needs_physical_office. The description adds no meaning beyond the schema – notably nothing about how budget or visa_count influence the ranking.

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 (compare) and resource (Dubai free zones) plus the output shape (ranked shortlist), which distinguishes it from list_free_zones and free_zone_details by implication. It never names those siblings explicitly, so the differentiation is left for the agent to infer.

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?

"For a specific use case" hints that this is the decision-support tool versus the raw listing tools, but no when/when-not condition or alternative is spelled out. An agent must guess that list_free_zones/free_zone_details are the non-comparison paths.

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

corporate_tax_estimateA
Read-onlyIdempotent

Estimate UAE corporate tax liability under Federal Decree-Law 47 of 2022.

Ordinary taxable persons receive the AED 375,000 band, then 9% above. QFZPs receive 0% on Qualifying Income and 9% on other taxable income without the ordinary band. Confirm QFZP status and income classification.

NameRequiredDescriptionDefault
is_qfzpNoExplicit QFZP status, including when qualifying income is zero. Omission retains inference from a positive qualifying percentage.
industryNoIndustry category. SaaS triggers an income-classification warning because qualification depends on the specific transaction.general
is_free_zoneNoTrue if the entity is in a free zone.
qfzp_qualifying_pctNoPercentage of income that is Qualifying Activity income (0 to 100). Only relevant if is_free_zone.
annual_taxable_income_aedYesAnnual taxable income in AED.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish that this is a safe, idempotent, closed-world read, so the description's job is to add domain behavior — and it does, disclosing the AED 375,000 band, the 9% rate, and that QFZPs get 0% on Qualifying Income with no ordinary band. It stops short of noting what the estimate ignores (e.g., small-business relief, foreign tax credits) or that inputs drive branching outcomes.

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 tight sentences, front-loaded with the legal basis, then the two computation branches. No filler; every clause conveys a rule that affects the result.

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 an output schema present and full parameter coverage, the description need not restate inputs or returns, and the tax-branch explanation is sufficient to invoke the tool. It could be stronger by flagging that other reliefs (e.g., small-business relief) are out of scope and by pointing to qfzp_check for status confirmation.

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 field descriptions are already detailed (including the is_qfzp inference rule and the SaaS warning), so the baseline is 3. The description explains the QFZP vs ordinary treatment scheme that the parameters control, but never ties that logic back to named parameters, adding little beyond the schema.

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 verb and resource ('Estimate UAE corporate tax liability') and anchors it to Federal Decree-Law 47 of 2022, so the intent is unambiguous. It does not, however, differentiate itself from the closely related 'qfzp_check' or 'late_payment_penalty_estimate' siblings, which an agent choosing among tax tools would benefit from.

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 implied by the calculation rules (ordinary persons vs QFZPs) and the closing instruction to 'Confirm QFZP status and income classification.' But there is no explicit when-to-use versus an alternative (e.g., route to qfzp_check to establish status first, or to vat_filing_calendar for VAT), and no stated preconditions or exclusions.

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

cost_of_living_overviewA
Read-onlyIdempotent

Headline cost-of-living ranges across rent, utilities, groceries, transport, and schooling, plus a sample monthly budget for a single person, a couple, and a family of four.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is settled. The description adds useful content context by disclosing the exact shape of the output (ranges per category plus three household budget samples), which goes beyond what annotations 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?

A single front-loaded sentence with no filler; the enumeration of categories and the sample-budget addendum each carry information. It is efficient and appropriately sized for a no-argument informational tool.

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 zero parameters, annotations covering the safety profile, and an output schema present, the description only needs to convey what the tool provides, which it does clearly. The one gap is the absence of routing guidance against the many component estimators.

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 tool takes zero parameters, so per the rubric the baseline is 4. There are no parameter semantics to describe and none are missing.

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 (cost-of-living ranges) and enumerates the covered categories (rent, utilities, groceries, transport, schooling) plus sample monthly budgets. It is unambiguous what the tool returns, though it never explicitly distinguishes itself from the granular sibling estimators like rent_estimate or grocery_estimate.

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

Usage Guidelines2/5

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

No when-to-use guidance and no alternatives named, despite numerous related siblings (rent_estimate, dewa_bill_estimate, grocery_estimate, school_fee_estimate). An agent must infer that this is the aggregated overview versus the per-item estimators.

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

createapps_championshipA
Read-onlyIdempotent

Return Create Apps Championship details for the current cycle.

Operated by DCDE. Cycle 3 registration is closed and the competition is ongoing in its finalist phase. Twelve finalists were announced on 14 April 2026, and the official structured timeline schedules the finals for 7 October 2026. The page's stale FAQ says April 2026, so the returned record flags that inconsistency and advises reconfirming before travel.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lower. The description goes well beyond them by disclosing the record's state (cycle 3 registration closed, finalist phase), the origin of the data (operated by DCDE, structured timeline vs. stale FAQ), and explicitly warning that the returned record flags an inconsistency and advises reconfirming — genuinely useful behavioral context.

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?

Purpose is front-loaded in the first sentence, which is good, but the following sentences enumerate record contents (twelve finalists, 14 April 2026, finals scheduled 7 October 2026) that the output schema already returns. That detail is aimed at the agent's downstream use rather than tool selection, so it is partially redundant padding.

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 an output schema present, zero parameters, and full annotation coverage, the agent needs little more than the resource identity plus any freshness caveat — both of which are supplied. The description is complete for calling the tool correctly; only the lack of explicit routing guidance keeps it off a 5.

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?

There are zero parameters and schema coverage is 100%, so the baseline of 4 applies. Nothing in the description is needed to clarify inputs, and it correctly avoids inventing parameter semantics.

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 and resource ('Return Create Apps Championship details') scoped to 'the current cycle', which clearly distinguishes it from loosely related siblings like gitex_info, startup_events, and dcde_programs. It never names a sibling it is not, but the resource is unique enough that an agent can route to it without 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 implied by 'for the current cycle' and by the competition-status narrative, but there is no explicit when-to-use/when-not-to-use guidance and no named alternative. For a zero-parameter read of a single record, implicit guidance is tolerable, so a 3 is fair rather than a 2.

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

currency_convertB
Read-onlyIdempotent

Convert an amount between two currencies (defaults AED to USD, no key).

NameRequiredDescriptionDefault
amountYesAmount to convert. Must be >= 0.
to_currencyNoTarget ISO 4217 currency code. Case-insensitive.USD
from_currencyNoSource ISO 4217 currency code. Case-insensitive.AED

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

The annotations already declare this a read-only, idempotent, non-destructive operation, so the safety profile is covered. The description adds one genuinely useful fact beyond the structured data — 'no key' required — but says nothing about the rate source, freshness, or how invalid currency codes are handled.

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 core verb+resource leads and the default pair follows. The trailing parenthetical is slightly crammed but does not waste words.

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 an output schema present, return values need not be explained, and annotations cover the safety profile. For a three-parameter conversion tool this is nearly sufficient; only the rate provenance and error behavior for bad codes are 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 all three parameters (amount, to_currency, from_currency) are already documented with types, defaults, and constraints. The description's mention of the AED→USD default merely restates the schema defaults and adds no new syntax or format information.

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 and resource ('Convert an amount between two currencies') and names the default pair (AED to USD), so an agent immediately knows the operation. It does not, however, distinguish itself from the sibling currency_rates or cbuae_exchange_rates, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no mention of any alternative. The parenthetical about defaults and 'no key' describes behavior, not the conditions under which an agent should pick this tool over currency_rates — that choice is left entirely to inference.

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

currency_ratesA
Read-onlyIdempotent

Everyday exchange rates for a base currency (defaults to AED, no key).

The convenient companion to the official cbuae central-bank rate tools.

NameRequiredDescriptionDefault
baseNoISO 4217 currency code to price everything against, e.g. AED, USD, EUR. Case-insensitive.AED

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly/idempotent/non-destructive/open-world, so the safety profile is covered. The description adds useful auth context ('no key') and hints that rates are everyday rather than central-bank official, but says nothing about rate freshness, update cadence, or currency coverage.

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 tight sentences, the core capability and default are front-loaded, and every clause carries information (default, no key, sibling relationship). 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 one-parameter read-only tool with an output schema and full annotations, this is close to sufficient. The remaining gap is ambiguity around what 'everyday' rates mean (source, freshness, currency set), which an agent would want before trusting results.

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% and the single parameter already documents ISO 4217 codes, case-insensitivity, and the AED default. The description only restates the default, adding nothing 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?

States a specific resource (exchange rates) and its scoping unit (a base currency, defaulting to AED). The closing reference to the 'official cbuae central-bank rate tools' signals it is a distinct, non-official counterpart, though it never explicitly says how the two differ in data source.

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?

'Everyday' rates versus 'official cbuae' rates implies a usage distinction but never spells out when to pick this tool over cbuae_exchange_rates, cbuae_base_rate, or currency_convert (which converts amounts rather than listing rates). The agent must infer the choice from adjectives alone.

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

data_dubai_entitiesA
Read-onlyIdempotent

List data.dubai issuing entities, optionally filtered (no credentials).

Issuing entities are the publishers behind the catalog (RTA, DEWA, Dubai Police, and 70+ more). Filtering is client-side.

NameRequiredDescriptionDefault
searchNoCase-insensitive substring matched against each entity's English title, Arabic title, and short key. Empty string returns every entity.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, openWorld and non-destructive, so the bar is lower. The description still adds two traits not in the annotations: '(no credentials)' discloses that no auth is required, and 'Filtering is client-side' warns that the search is applied locally rather than server-side, which affects expectations about result sets.

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 the core action; the definition of issuing entities and the client-side filtering note each carry distinct information. No filler or restatement of the tool name.

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?

An output schema exists, so return values need no explanation. The description covers what the tool returns (entity list), the optional filter behavior, and the auth posture - everything an agent needs before calling a zero-required-parameter read tool.

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 single parameter is fully documented, so the baseline is 3. The description goes beyond the schema by noting the filter is optional and executed client-side - the schema only describes substring matching semantics, not where the filter runs.

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 ('List data.dubai issuing entities') and then defines the resource concretely: publishers behind the catalog, with named examples (RTA, DEWA, Dubai Police, 70+ more). This is distinguishable from siblings like data_dubai_search and data_dubai_themes, which operate on the catalog contents rather than the publishers.

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 implied - an agent can infer this is the discovery call for publishers - and the parenthetical '(no credentials)' hints at when it is safe/appropriate to use. However, it never names the adjacent tools (data_dubai_search, data_dubai_themes) or states an exclusion, so the agent must infer the boundary itself.

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

data_dubai_themesA
Read-onlyIdempotent

List the data.dubai catalog themes with dataset counts (no credentials).

Eleven themes such as Infrastructure, Population, Trade, and Employment, each with bilingual titles and a dataset count.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/non-destructive/openWorld, so the safety profile is covered. The description adds the non-obvious fact that no credentials are required and describes the shape of the result (eleven themes, bilingual titles, dataset counts), which is genuinely useful context beyond the annotations.

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 short sentences, with the core action and the credential constraint front-loaded and the payload detail second. Nothing is wasted and nothing is buried.

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-parameter listing tool with a full output schema and rich annotations, the description supplies what an agent needs: what it returns, how many items, and that it needs no auth. Only the absence of any routing hint toward related data.dubai tools keeps it from fully complete.

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 tool takes no parameters and the input schema is empty, so there is nothing to document; baseline 4 applies. No parameter-level detail is expected or missing.

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 and resource ('List the data.dubai catalog themes') plus the payload ('with dataset counts'), which clearly distinguishes it from data_dubai_search and data_dubai_entities. It never names a sibling explicitly, so an agent must infer the boundary, keeping it just 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 Guidelines3/5

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

Usage is only implied: the tool is an entry point for browsing the theme taxonomy. There is no statement of when to prefer it over data_dubai_search, nor any exclusion. The '(no credentials)' note helps an agent know it can always be called, but that is a precondition, not routing guidance.

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

dcde_programsB
Read-onlyIdempotent

Look up Dubai Chamber of Digital Economy programs.

NameRequiredDescriptionDefault
program_idNoOptional program id, e.g., "dubai_founders_hq", "antler_residency", "frwrdx", "unicorn_30", "create_apps_championship", "canva_partnership".

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

The annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds nothing behavioral beyond that: it does not say what happens when program_id is omitted (list all vs. error), what breadth of content is returned, or any coverage limits.

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 zero filler — nothing is wasted. It is arguably too terse for a tool whose behavior changes depending on whether the optional id is supplied, but it is appropriately sized for the lookup it names.

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 an output schema present, return values need not be explained, and the sole parameter is fully documented in the schema. The remaining gap is the omitted-id behavior and sibling differentiation, which are minor for such a simple, low-risk read 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 description coverage is 100% and the schema itself enumerates concrete example ids ("dubai_founders_hq", "antler_residency", etc.), so the parameter is already well documented. The description adds no syntax, matching, or defaults information beyond the schema, which is the expected baseline when the schema does the heavy lifting.

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 ("Look up") and a specific resource ("Dubai Chamber of Digital Economy programs"), which is clear enough for an agent to recognize the domain. However, it does not distinguish itself from related siblings such as accelerator_search, grant_programs, or createapps_championship, leaving overlap to inference.

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

Usage Guidelines2/5

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

The description offers no when-to-use or when-not-to-use guidance and names no alternatives. In a sibling set containing accelerator_search, grant_programs, and startup_events, the agent gets no signal about which tool covers DCDE programs versus these adjacent resources.

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

dewa_bill_estimateB
Read-onlyIdempotent

Typical monthly DEWA bill for a unit size, with the housing-fee explanation and the electricity slab table.

NameRequiredDescriptionDefault
seasonNoOne of: summer, winter. Summer figures already reflect the 2.5x to 3.5x AC multiplier.summer
unit_sizeNoOne of: studio, 1BR, 2BR, 3BR.1BR

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is fully covered. The description adds that the result includes a housing-fee explanation and an electricity slab table, which is useful context. However, the season-dependent AC multiplier note lives in the schema, and nothing beyond that is disclosed about calculation basis or caveats.

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 leads with the core resource and then lists the returned payload; no filler, no restatement of the tool name.

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 rich annotations, a full parameter schema, and an output schema covering the return shape, the description supplies what an agent needs to invoke the tool correctly. It is slightly thin on scope boundaries against neighbouring estimate tools, but nothing essential 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?

Schema description coverage is 100%, so both parameters (season, unit_size) are already fully documented with their allowed values and defaults, including the summer AC multiplier note. Baseline 3 applies because the description adds nothing beyond what the schema provides for parameters.

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 and scope: the typical monthly DEWA bill for a given unit size, plus the returned components (housing-fee explanation, electricity slab table). An agent can distinguish it from generic cost tools like cost_of_living_overview. It stops short of naming any sibling it is not, so it lands at 4 rather than 5.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool versus alternatives such as cost_of_living_overview, rent_estimate, or grocery_estimate, and no mention of preconditions or the season/unit-size defaults. Usage is only inferable from the tool name.

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

dfm_indexA
Read-onlyIdempotent

Latest DFM General Index snapshot with an intraday summary (no key).

Returns the newest index value, change, change percentage, volume, and timestamp, plus a client-side intraday open/high/low summary. Data may be delayed; not investment advice.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive, openWorld), so the bar is lower, and the description clears it: it discloses that data may be delayed, that the intraday open/high/low summary is computed client-side (i.e. not authoritative API output), that no API key is needed, and adds a not-investment-advice disclaimer.

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 the purpose, followed by the return payload and then caveats, with essentially no wasted clauses. Minor slack from the slight 'Latest/newest' redundancy and the parenthetical '(no key)' interrupting the opening sentence.

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 values need not be spelled out, yet the description helpfully summarizes them anyway; annotations cover safety and the description adds freshness, auth, and computation caveats. It could go slightly further on units/freshness granularity, but nothing needed to call a zero-argument tool is missing.

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 tool takes zero parameters, which is the baseline 4 case. The description correctly does not invent parameter semantics, and the empty schema with additionalProperties=false is self-consistent with the described no-input snapshot behavior.

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 verb ('Returns the newest index value') and a precise resource (the DFM General Index), and even enumerates the returned fields. It differentiates itself implicitly from quotational siblings like dfm_stock_quote by scoping to the index rather than a single security, but it never names an alternative explicitly.

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 implied by the resource scope (a market-wide index snapshot), and the parenthetical '(no key)' tells the agent no credentials are required. However, there is no explicit when-to-use guidance and no statement of when to prefer this over dfm_stock_quote or dfm_list_securities.

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

dfm_list_securitiesA
Read-onlyIdempotent

List DFM-listed securities, optionally filtered by symbol or name (no key).

NameRequiredDescriptionDefault
searchNoOptional substring matched case-insensitively against each security's symbol or name. Empty lists the first 50 securities alphabetically; the response reports the total match count.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is covered. The description adds one genuine behavioral note — "(no key)", meaning no authentication/API key is needed — but says nothing about pagination or the 50-item cap, which the schema happens to carry instead.

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?

One sentence, front-loaded with the verb and resource, with no filler. The trailing parenthetical "(no key)" is compact but slightly cryptic in placement, keeping it just below a perfect score.

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 an output schema present and annotations covering safety, the description need only cover scope and filtering, which it does. The remaining gap is sibling disambiguation against dfm_stock_quote/dfm_index, which is not addressed.

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% and the single `search` parameter is documented in detail (case-insensitive substring on symbol or name, empty → first 50 alphabetical, total count reported). The description only restates "filtered by symbol or name", adding no format or matching semantics beyond the schema, 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 verb and resource ("List DFM-listed securities") plus the filter dimension (symbol or name), which reads clearly against siblings like dfm_stock_quote or dfm_index. It stops short of explicitly distinguishing itself from those siblings, so an agent must infer that this is a bulk enumeration rather than a single-quote lookup.

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 word "optionally" tells the agent the filter is not required, which is minimal usage guidance. It never says when to prefer this over dfm_stock_quote or dfm_index, nor what to do after listing, so the routing decision is left to inference.

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

dfm_stock_quoteA
Read-onlyIdempotent

Trimmed live quote for one DFM-listed security by ticker symbol (no key).

Data may be delayed; not investment advice.

NameRequiredDescriptionDefault
symbolYesTicker on the Dubai Financial Market, e.g. EMAAR, SALIK, DEWA. Case-insensitive. Unknown symbols fail with near-match suggestions.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds real behavioral context beyond them: the quote is 'trimmed' (partial field set), data may be delayed, and no API key is required.

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?

Two short sentences, front-loaded with what the tool returns and followed by caveats. No wasted clauses, though 'trimmed' and '(no key)' are terse enough to be slightly ambiguous on first read.

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?

Output schema exists, so return fields need not be enumerated, and the delay/no-key caveats cover the main gotchas for a single-param read tool. Minor gap: no mention of currency or the fact that it returns only one security's snapshot vs a batch.

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 one parameter and 100% schema description coverage (case-insensitivity, DFM ticker examples, near-match failure behavior), the schema carries the semantics. The description only restates 'by ticker symbol' and adds nothing beyond it, 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?

States a specific verb+resource: a live quote for one DFM-listed security, scoped to a single ticker. This implicitly separates it from dfm_list_securities (enumerate) and dfm_index (index-level), but it never names those siblings or states the distinction explicitly.

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

Usage Guidelines2/5

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

There is no when-to-use guidance and no alternatives named, despite two obvious siblings (dfm_list_securities, dfm_index). The only usage-relevant note is the delay/investment-advice disclaimer, which is a caveat rather than routing guidance.

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

dld_lookup_brokerA
Read-onlyIdempotent

Look up RERA-registered Dubai brokers.

Tier 1 tool, requires Dubai Pulse credentials.

NameRequiredDescriptionDefault
nameNoBroker name substring.
limitNoMax records.
license_numberNoBroker license number.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, and open-world behavior, so the bar is lower. The description adds a genuinely useful operational fact beyond the annotations: Dubai Pulse credentials are required before invoking. It does not mention pagination behavior for the default limit of 50.

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?

Two short lines, front-loaded with the purpose followed by the credential prerequisite; nothing is padded. The phrase 'Tier 1 tool' is internal jargon that carries little meaning for an agent.

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 values need not be described, and the schema fully documents inputs. What the agent gets is purpose plus a hard credential gate, which is sufficient to decide whether to call it; only search-behavior detail is thin.

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 all three parameters (name substring, license_number, limit) are already documented in the schema. The description adds no filtering semantics, such as whether filters combine or whether name is a substring match.

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 and resource: looking up RERA-registered Dubai brokers, which is clearly distinct from siblings like dld_search_transactions and dld_search_rent_contracts. It does not, however, explicitly contrast itself with any sibling or clarify the broker-registry scope versus transaction data.

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 prerequisite ('requires Dubai Pulse credentials') gives an actionable gating condition, but there is no statement of when to use this over related DLD/RERA tools, nor any exclusion criteria. Usage is only implied by the tool's domain.

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

dld_search_rent_contractsB
Read-onlyIdempotent

Search DLD rent contracts (Ejari data) via Dubai Pulse.

Tier 1 tool, requires Dubai Pulse credentials.

NameRequiredDescriptionDefault
areaNoOptional area name filter.
limitNoMax records.
bedroomsNoOptional bedroom count.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare the safety profile (readOnly, idempotent, openWorld, non-destructive), so the bar is lower. The description adds a genuine operational fact — it is a Tier 1 tool needing Dubai Pulse credentials — but says nothing about pagination, filtering behavior, or result volume.

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?

Two short sentences with the resource and data source front-loaded; nothing is padded. It could arguably be one sentence, but there is no waste.

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

Completeness3/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 values need not be explained, and annotations cover safety. However, for a search tool with geography and bedroom filters, the description omits any hint of scope breadth or how filters combine, leaving it only minimally adequate.

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 each parameter (area, limit, bedrooms) is already documented in the schema. The description adds no additional semantic detail beyond what the structured fields provide, which is the baseline-3 case.

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 (Search) and resource (DLD rent contracts / Ejari data) plus the data source (Dubai Pulse). This distinguishes it from dld_search_transactions, though the description never names that sibling explicitly to make the boundary airtight.

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

Usage Guidelines2/5

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

The description offers only a prerequisite ('requires Dubai Pulse credentials'), not usage guidance. It never says when to choose this over dld_search_transactions, rent_estimate, or ejari_guide, nor when not to use it.

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

dld_search_transactionsA
Read-onlyIdempotent

Search Dubai Land Department real estate sale transactions.

Tier 1 tool. Requires Dubai Pulse credentials. Returns a structured error if MCP_DUBAI_PULSE_CLIENT_ID and MCP_DUBAI_PULSE_CLIENT_SECRET are not set.

NameRequiredDescriptionDefault
areaNoOptional area name filter (e.g., "Dubai Marina").
limitNoMax records (1 to 500, default 100).
property_typeNoOptional type filter (e.g., "Apartment", "Villa").

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive and open-world behavior, and the description adds genuinely new context: the Dubai Pulse credential requirement and that a structured error is returned when the client ID/secret are unset. It stops short of describing result volume or pagination behavior for a limit-capped list tool.

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 the purpose in the first sentence, followed by two short operational facts; nothing is redundant or padded. 'Tier 1 tool' is internal catalogue jargon with unclear value to an invoking agent, a minor blemish on otherwise tight prose.

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 values need not be described, and the description covers the auth-failure mode. For a three-param read-only search this is nearly complete; only the behavior when all filters are omitted or how limits interact with result volume is left 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 area, limit and property_type are already documented with defaults and ranges in the schema. The description contributes no additional meaning about these parameters, which is the expected baseline when the schema carries the load.

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 (Search) and resource (Dubai Land Department real estate sale transactions), which implicitly distinguishes it from the sibling dld_search_rent_contracts by scoping to sale rather than rent. It does not name that sibling explicitly, so the differentiation must be inferred from the noun.

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?

No explicit when-to-use or when-not-to-use guidance and no named alternatives, though the specific 'sale transactions' scope implies the use case versus the rent-contract sibling. The credential prerequisite is stated but is an operational requirement rather than usage routing.

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

dubai_gold_rateA
Read-onlyIdempotent

Today's Dubai retail gold rates in AED per gram by karat (no key).

Dubai Jewellery Group suggested retail rates (24K, 22K, 21K, 18K, 14K) from Dubai City of Gold, published around 09:00, 13:30 and 18:00 UAE time. Jewellery retail reference rates, not spot bullion prices.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, so the safety profile is covered. The description adds genuinely useful context beyond that: no API key required, the publishing cadence (09:00/13:30/18:00 UAE), and the authoritative source (Dubai Jewellery Group / Dubai City of Gold).

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?

Three tight sentences, front-loaded with the core answer and each adding distinct value (scope, source/cadence, disambiguation). No filler, though the parenthetical '(no key)' reads slightly tacked-on.

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?

For a zero-parameter read tool with an output schema and full annotation coverage, the description supplies everything an agent needs: what is returned, unit, freshness, source, and what it is not. Nothing material is missing.

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 tool takes zero input parameters, so there is nothing for the description to document; baseline 4 applies. The karat values (24K, 22K, 21K, 18K, 14K) hint at the shape of the response but are not an input concern.

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?

Names a specific resource (Dubai retail gold rates), unit (AED per gram by karat) and source, and explicitly disambiguates itself from spot bullion prices. An agent can tell exactly what data this returns 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 Guidelines3/5

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

Usage is implied by the inherently single-purpose nature of the tool, and the closing line ('not spot bullion prices') gives one mild exclusion. However, it never states when to prefer this over adjacent financial data tools like cbuae_exchange_rates or currency_rates.

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

dul_eligibilityB
Read-onlyIdempotent

Report Dubai Unified Licence (DUL) bank integration and coverage.

DUL is issued across mainland and free zone businesses in Dubai. The official 12 November 2025 announcement named seven integrated banks and reported a 5-day average account-opening time. That average is not a guarantee for an individual application.

NameRequiredDescriptionDefault
bank_idNoBank id slug to check (e.g., "emirates_nbd", "fab", "ruya").
free_zoneNoDubai free zone name or slug. DUL coverage is not limited to a short participant list.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful epistemic caveat (the 5-day average is not a guarantee) that goes beyond structured fields, but says nothing about behavior when bank_id or free_zone is omitted, which is the main ambiguity given both are optional.

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 purpose is front-loaded, which is good, but the middle of the description spends two sentences on press-release background (the 12 November 2025 announcement, seven banks) that adds little to selection or invocation. The caveat sentence does earn its place; the announcement date does not.

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

Completeness3/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 values need not be described, and both optional parameters are fully documented in the schema. What is missing is the usage framing required for a lookup tool with two optional filters over a large sibling set of banking and free-zone tools.

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 parameters are already documented with slug examples, and the baseline of 3 applies. The description adds no parameter-level detail beyond the schema and does not explain the interaction between the two optional filters.

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 opening sentence names a specific verb and resource: reporting DUL bank integration and coverage. That is enough for an agent to grasp what the tool returns, and the scope sentence (mainland and free zone businesses in Dubai) sharpens it. It stops short of a 5 because it never distinguishes itself from nearby siblings like bank_details or list_banks.

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

Usage Guidelines2/5

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

There is no when-to-use or when-not-to-use guidance, and no alternative tool is named despite many plausible siblings (bank_details, bank_recommendation, list_free_zones, free_zone_details). The agent must infer the triggering scenario entirely from the purpose sentence.

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

einvoicing_timelineA
Read-onlyIdempotent

Return the UAE e-invoicing regime, rollout timeline, and ASP deadlines.

Legislated by Ministerial Decisions 243 and 244 of 2025 on the PINT AE DCTCE 5-corner model, reported to the FTA through EmaraTax. The pilot phase went live 1 July 2026 with voluntary adoption open from the same date. ASP appointment deadlines: 30 October 2026 for revenue at or above AED 50M (Ministerial Resolution 66 of 2026), 31 March 2027 below AED 50M. Mandatory go-live: January 2027 at or above AED 50M, July 2027 below, government entities October 2027. Includes the official current MoF ASP accreditation register. Verify dates with the FTA/MoF.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed (openWorldHint=false) domain, so the safety profile is covered without the description's help. The description adds a genuinely useful behavioural note - that the data is 'current' but should be verified with the FTA/MoF, implying it may lag legislation - yet says nothing about caching, refresh cadence, or how the accreditation register is kept current.

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 opening sentence is well front-loaded, but the body enumerates specific Ministerial Decision numbers, exact appointment dates and go-live months - content that belongs to the return value and, with an output schema present, is redundant for tool selection. It is informative but padded rather than tight.

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-parameter, read-only tool with full annotation coverage and an output schema, the description is more than sufficiently complete: it establishes subject, legal basis, data currency caveat and even the inclusion of the MoF ASP register. The only omission is any statement of how fresh the underlying data is.

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 tool takes no parameters (schema coverage 100%), so per the rubric the baseline is 4. There is no parameter-level information an agent could be missing, and the description correctly avoids inventing any.

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 first sentence gives a specific verb (Return) and three concrete resources (regime, rollout timeline, ASP deadlines), so the tool's scope is immediately legible. It does not, however, name or contrast itself with near-neighbours such as vat_filing_calendar or corporate_tax_estimate, so an agent must infer the boundary from domain knowledge alone.

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 reasonably infer this is the tool for UAE e-invoicing phase-in questions, but the description never states when to reach for it, when not to, or which sibling covers adjacent tax-calendar questions. The closing 'Verify dates with the FTA/MoF' is a reliability caveat rather than routing guidance.

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

ejari_guideA
Read-onlyIdempotent

Return the full Ejari registration guide.

Covers the required documents, fees by channel (Dubai REST app, Real Estate Trustee Centre, typing center), timelines, channels, and the common mistakes that block a Dubai tenancy.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and closed-world, so the safety profile is fully covered structurally. The description adds useful scope context (which facets of the guide are included), but does not mention how fresh the guide content is or what form the answer takes beyond the 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?

Two tight sentences, zero filler, front-loaded with the core action and immediately followed by the coverage list. Every clause maps to a content facet an agent would search on (documents, fees, timelines, channels, pitfalls).

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 parameterless guide tool with an output schema, the description is sufficient: it names the content domains and the agent need not be told return format. It stops short of stating prerequisites or when to prefer a sibling guide, which would make it fully complete.

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 tool takes zero parameters, so the baseline is 4. Schema coverage is 100% and there is nothing for the description to compensate for; the description correctly does not invent parameter semantics.

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 and resource ('Return the full Ejari registration guide') and enumerates the content domains covered (documents, fees by channel, timelines, common mistakes). It is clear what the tool returns, but it never distinguishes itself from adjacent guide-style siblings such as rental_dispute_guide, rera_rent_increase, or attestation_guide, so the agent must infer scope.

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 through the enumerated content: an agent can infer 'use when you need Ejari registration requirements/fees/process', but there is no explicit when-to-use statement and no routing away from lookalike tooling (rental dispute, rent increase, rent_estimate). Adequate but leaves selection to inference.

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

emiratisation_requirementsA
Read-onlyIdempotent

Return MOHRE Emiratisation targets and non-compliance charges.

Firms with 50+ employees: 1% semi-annual increase of Emiratis in skilled roles (2% per year, toward 10% by end-2026); unachieved positions charged AED 10,000 per month from 2026-07-01. Firms with 20-49 employees in 14 selected sectors: annual quota (1 Emirati by 2024, 2 by 2025).

NameRequiredDescriptionDefault
employee_countNoOptional workforce size to flag the applicable band.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is fully covered. The description adds domain substance (the actual quotas and AED 10,000/month charge) but no operational traits such as update cadence, source jurisdiction coverage, or staleness of the figures.

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?

Purpose is front-loaded in the first sentence, followed by two scoping sentences. It is dense and largely data that arguably duplicates the output schema, but every clause is relevant to the Emiratisation bands and none is padding.

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 an output schema present, return values need not be explained, and the one optional parameter is fully covered by the schema. The description is sufficient to invoke the tool correctly; only explicit usage routing is absent, which is a minor gap for a single-domain lookup.

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 single optional parameter (employee_count) is already documented in the schema as flagging the applicable band. The description adds no syntax, valid-range, or edge-case meaning beyond that, so the baseline of 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 and resource: 'Return MOHRE Emiratisation targets and non-compliance charges.' An agent immediately knows this is a UAE labour-law compliance lookup, and no sibling tool covers this domain, so there is no ambiguity to resolve.

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

Usage Guidelines2/5

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

The text is almost entirely a dump of regulatory content (targets, percentages, deadlines) rather than guidance. It never states when to call the tool, what prerequisites exist, or how it relates to adjacent compliance tools like moiat_requirements or esr_status.

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

ens_calendarB
Read-onlyIdempotent

Return Expand North Star 2026 calendar.

Edition 11, 8 to 10 December 2026 at Dubai Exhibition Centre. Supernova 0X format with 3 venture tracks and in-kind prizes per stage (no cash prize pool is advertised). Applications open 1 May 2026, close 1 November 2026; only exhibiting startups can apply.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that — no indication that the content is static versus live, nor any caching or freshness note. With annotations carrying the safety burden, a 3 is appropriate.

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 purpose is front-loaded in the first sentence, which is correct. The following four lines, however, are event facts (dates, format, prize structure, application windows) that largely pre-render what the output schema already returns, so several sentences do not earn their place as tool documentation.

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 zero parameters, a full annotation set, and an output schema to carry return values, the description covers everything an agent needs to decide to call it and how. It is if anything over-complete, since the payload detail belongs to the output schema rather than the description.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; the baseline for a no-parameter tool is 4.

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?

Opens with a specific verb and resource: 'Return Expand North Star 2026 calendar,' which an agent can act on immediately. It does not, however, differentiate itself from nearby siblings such as startup_events or gitex_info, which an agent seeking event information might also reach for.

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

Usage Guidelines2/5

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

The description contains no when-to-use or when-not-to-use guidance and names no alternative. The eligibility note ('only exhibiting startups can apply') describes the event, not when an agent should invoke this tool versus startup_events.

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

esr_statusA
Read-onlyIdempotent

Return the current status of UAE Economic Substance Regulations.

ESR is not required for financial years ending after 31 December 2022 per Cabinet Decision 98 of 2024. Obligations and penalties for in-scope financial years ending from 2019 through 2022 remain live, and penalties already imposed for those periods are not refundable.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, closed-world and non-destructive, so the safety profile is covered. The description adds genuinely useful substance beyond that: the regulatory cut-off date, that historical obligations and penalties remain live, and that imposed penalties are not refundable — context an agent needs to answer correctly rather than just safely.

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?

The purpose statement is front-loaded in one sentence, followed by a single dense but fully relevant block of scope information. Every sentence carries legal context that changes the correct answer, so nothing is 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 an output schema present and no parameters, the description carries only what the structured fields cannot: the regulatory validity window and the survival of historical obligations. Nothing an agent needs to call and interpret this tool is missing.

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 has zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description does not need to explain inputs at all.

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 ('Return the current status of UAE Economic Substance Regulations') and immediately bounds the answer with the temporal scope. No sibling tool covers ESR, so the agent can identify this as the sole authority for that topic without ambiguity.

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 description clarifies what the status means (post-2022 exemption, live 2019-2022 obligations, non-refundable penalties), which implicitly tells the agent when the answer applies. However, it never explicitly says when to call this tool or how to route a user who needs, say, filing guides or penalty calculations.

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

fca_trade_statsA
Read-onlyIdempotent

Search Federal Customs Authority trade statistics datasets.

Convenience wrapper that filters fcsc_search_dataset to the federal-customs-authority organization. Covers UAE non-oil foreign trade by HS chapter, imports, exports, and re-exports.

NameRequiredDescriptionDefault
rowsNo
queryNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is fully covered. The description adds genuinely useful context — that results are implicitly constrained to a single organization — but says nothing about result volume limits, pagination, or how an empty query behaves. Comparable to the calibration case where safety is annotated and only scoping context is added.

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?

The core statement is front-loaded in the first sentence, and the wrapper relationship follows immediately. It is tight overall with no filler, though the domain-scope sentence could be folded in more economically.

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

Completeness3/5

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

The presence of an output schema and rich annotations means the definition doesn't need to explain return shape or safety. However, with zero schema coverage on parameters, the description should say more about how `query` and `rows` behave; that gap is the main impediment to a correct first call.

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

Parameters2/5

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

Schema description coverage is 0%, so both parameters (`rows`, `query`) are undocumented anywhere. The description does not explain what `query` matches (dataset names? descriptions? HS chapter terms?) or whether the empty-string default returns everything, nor what `rows` bounds. The schema does supply defaults, but the semantics an agent needs to form a good call are absent.

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 ('Search Federal Customs Authority trade statistics datasets') and immediately clarifies it is a filtered wrapper over `fcsc_search_dataset` scoped to the `federal-customs-authority` organization. The domain content (UAE non-oil trade by HS chapter, imports, exports, re-exports) further pins down what an agent will get, distinguishing it clearly from the generic sibling.

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?

It explicitly names the underlying alternative (`fcsc_search_dataset`) and explains the selection rule implicitly: use this when you want the FCA organization's data without specifying an organization yourself. It lacks an explicit 'do not use this for other organizations / use fcsc_search_dataset instead' exclusion, 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.

fcsc_get_datasetA
Read-onlyIdempotent

Get full metadata for a specific FCSC dataset.

NameRequiredDescriptionDefault
dataset_idYesCKAN dataset id or slug.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-destructive and open-world behavior, so the safety profile is covered. The description adds only the 'full metadata' scope hint and says nothing about error behavior for unknown ids or about auth requirements, so it does not go meaningfully beyond the structured data.

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?

One short, front-loaded sentence with no wasted words. Nothing to trim and the scope qualifier is in the right place.

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 values need not be described, and annotations cover the safety profile; a one-line description is nearly sufficient for a single-arg read tool. The remaining gap is the missing disambiguation from fcsc_search_dataset, which an agent would otherwise have to infer.

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% and the single parameter is fully documented ('CKAN dataset id or slug'), so the schema carries the load. The description adds no extra meaning such as whether slug lookup is case-sensitive or how ambiguous ids are resolved.

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 ('Get') and resource ('full metadata for a specific FCSC dataset'), and the word 'specific' plus the required dataset_id signals single-record retrieval. It does not, however, name or contrast itself with the obvious sibling fcsc_search_dataset.

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: 'a specific ... dataset' suggests this is for when you already know the dataset id, versus browsing or querying. There is no explicit when-to-use, no prerequisite, and no pointer to fcsc_search_dataset for discovery.

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

fcsc_list_organizationsA
Read-onlyIdempotent

List all CKAN organizations publishing on the FCSC portal.

Useful for finding the right org slug to use as a filter on fcsc_search_dataset.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and idempotency profile is fully covered by structured data. The description adds no further behavioral context (no note on result size, pagination, or freshness), so with annotations carrying the load a 3 is appropriate.

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 short sentences, front-loaded with the core purpose and followed by the routing hint. Every sentence 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?

With no parameters, rich annotations, and an output schema, the description only needs to convey purpose and placement in the workflow, which it does. A minor gap is omitting any note on ordering or result size for what is a full listing.

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 tool takes zero parameters, which is the baseline-4 case; there is nothing for the description to disambiguate. The description correctly implies a no-argument full listing.

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 and resource with a clear scope ('List all CKAN organizations publishing on the FCSC portal'), so the agent knows exactly what comes back. It does not, however, explicitly distinguish itself from sibling list tools such as list_features or data_dubai_entities in the purpose statement itself.

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 names the downstream use case and the sibling it feeds: finding the right org slug to use as a filter on `fcsc_search_dataset`. That gives clear context for when to call it, though there is no explicit when-not-to-use or alternative list tool offered.

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

fcsc_search_datasetC
Read-onlyIdempotent

Search the FCSC UAE federal open data portal for datasets.

NameRequiredDescriptionDefault
rowsNoMaximum results per page (1 to 100, default 10).
queryNoFree-text Solr query, e.g., "trade", "population", "energy". Empty string returns recent datasets.
startNoPagination offset.
organizationNoOptional CKAN organization slug filter.

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is fully covered and the description is not obligated to restate it. But the description adds nothing at all beyond the name: no pagination/result-window behavior, no auth or rate-limit context, no note that an empty query returns recent datasets.

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 zero filler and no redundancy. It is efficient, though arguably undersized for a four-parameter search tool whose result semantics matter.

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

Completeness3/5

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

An output schema exists and annotations are rich, so return values and safety need not be described. What is missing is routing context against fcsc_get_dataset and the other search siblings, plus any note on paging through large result sets.

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 rows, query, start, and organization are each already documented with defaults and formats. The description contributes no additional parameter meaning, so the baseline 3 for schema-complete tools 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 verb and resource ('Search the FCSC UAE federal open data portal for datasets'), which is clear enough to call. However, it never distinguishes itself from close siblings like fcsc_get_dataset, fcsc_list_organizations, or data_dubai_search, so the agent must infer which catalog and which operation applies.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and no named alternatives. There is no hint that fcsc_search_dataset is the discovery step that should precede fcsc_get_dataset for full record retrieval.

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

free_zone_detailsB
Read-onlyIdempotent

Get the full curated record for a single free zone by id.

NameRequiredDescriptionDefault
free_zone_idYesFree zone id slug (e.g., "ifza", "dmcc", "difc_innovation", "jafza", "dafza", "meydan", "dubai_south", "dso_dtec", "tecom", "dhcc", "dpc_dsc", "difc_full").

Output Schema

NameRequiredDescription

No output parameters

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, destructiveHint=false, and a closed world, so the safety profile is fully covered elsewhere. The description's only added behavioral signal is "full curated record," implying a complete rather than summarized payload; there is no mention of error behavior for an unknown id or rate limits.

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 front-loaded sentence with no filler; every word (single, full, curated, by id) carries information about scope and payload depth.

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 one-parameter read-only getter with a fully documented schema, an output schema already covering return values, and annotations covering safety, the description is nearly sufficient. The only meaningful omission is the upstream relationship to list_free_zones for obtaining a valid id.

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 single free_zone_id property already documents the slug format with twelve concrete examples. The description adds nothing beyond restating that the lookup is keyed by id, so the 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?

"Get the full curated record for a single free zone by id" names a specific verb (get), resource (free zone), and scope (single, by id), which implicitly distinguishes it from a list operation. It does not, however, name or contrast with its obvious siblings list_free_zones or compare_free_zones, so the differentiation is inferred rather than stated.

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

Usage Guidelines2/5

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

There is no explicit when-to-use statement, no prerequisites, and no named alternative. The phrase "by id" faintly implies an id must first come from list_free_zones, but the agent is left to infer that workflow entirely on its own.

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

fuel_price_guideA
Read-onlyIdempotent

Monthly UAE fuel prices in AED per litre (Super 98, Special 95, E-Plus 91, diesel): the Fuel Price Committee mechanism, the latest September 2026 snapshot, and historical August and July comparisons.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds real behavioral context the annotations cannot: it discloses the content dimensions (mechanism explanation, latest September 2026 snapshot, August and July historical comparisons), which tells the agent exactly how fresh and how deep the data is.

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 sentence, front-loaded with the core resource and units before the parenthetical detail. The parenthetical grade list and the three content facets are dense but all earn their place; only minor polish (splitting mechanism from snapshot/history) would improve it.

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 formatting need not be described, and the description covers the full scope of what is returned. For a zero-parameter, read-only guide tool it is essentially complete; the only gap is any statement of update cadence or data staleness beyond the September 2026 date.

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 tool takes zero parameters, so the schema imposes no semantic burden and the baseline is 4. The description correctly does not invent parameters, and its content list implicitly communicates that the response is fixed-scope rather than filterable.

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?

The description names a specific resource (monthly UAE fuel prices in AED per litre) and enumerates exactly what is covered: the four fuel grades, the Fuel Price Committee mechanism, a dated snapshot, and historical comparisons. No sibling tool in this catalog returns fuel price data, so an agent can identify it immediately without opening a 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?

Usage is only implied by the content: an agent can infer it should call this for UAE fuel price questions. There is no explicit when-to-use statement, no exclusions, and no mention of whether the snapshot is stale relative to current months. However, no sibling tool overlaps this domain, so the absence of routing guidance is less damaging than it would otherwise be.

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

get_knowledge_statusA
Read-onlyIdempotent

Return freshness status of every registered business knowledge domain.

Each biz/* feature registers its KnowledgeMetadata at import time via register_domain_knowledge. This meta-tool reads from that registry, so bumping a single per-domain KNOWLEDGE constant flows through here automatically. The project-wide constant records only the latest targeted update; it never implies that every domain shares one review date.

Returns: Dict with latest-update and full-review date ranges, total_domains, and domains mapping each registered domain to its dates, volatility, verify_at URL, and disclaimer.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/closed-world, so the safety profile is covered. The description adds genuine interpretive context beyond that: the data is read from a live registry populated at import time, per-domain constants flow through automatically, and the project-wide constant only records the latest targeted update and must not be read as a shared review date. That last point is a real misuse warning.

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 purpose is correctly front-loaded in sentence one. However, the middle paragraph spends several clauses on developer mechanics (`register_domain_knowledge`, `KnowledgeMetadata` at import time) that do not help an agent decide or invoke, and the 'Returns:' block largely restates what the output schema already declares.

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 an output schema present, the description need not enumerate return fields, yet it does so and still conveys the key caveat about interpreting the project-wide date. For a zero-parameter meta-tool, an agent has enough to call it correctly, though a sentence on when to reach for it is missing.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The schema is a closed empty object, consistent with the description's picture of a no-argument registry read.

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 first sentence gives a specific verb and resource: return freshness status of every registered business knowledge domain. No sibling tool covers this registry/freshness surface, so the agent can place it unambiguously. The second paragraph drifts into implementation framing (import-time registration, constant bumping), which muddies rather than sharpens the stated purpose.

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

Usage Guidelines2/5

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

The description never says when an agent should call this tool, e.g. before answering a business-setup question to confirm the underlying domain data is current. There are no exclusions, no alternatives, and no prerequisites named. Usage is only inferable from the tool's name.

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

get_upstream_statusA
Read-onlyIdempotent

Return the current health of every registered upstream endpoint.

Reads from the passive health registry in _shared/health.py. Each upstream entry reports status (working, blocked, degraded, credentials_missing, static, unknown), the endpoint host, whether it requires auth, the last success and last failure timestamps, and the latest reason string if the upstream is not working.

This tool never probes endpoints proactively. Status is derived from what happened during normal tool calls in this process, plus static state declared at bootstrap (known Cloudflare blocks, credential availability, and features that ship without any upstream call).

LLM agents should call this before attempting Tier 1 (Dubai Pulse) or FCSC work, to avoid asking the server for data it cannot fetch.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.6/5.0
Behavior5/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), and the description adds genuinely non-obvious behavior: the tool never probes proactively, status derives from passive registry state during normal calls plus bootstrap-declared static state. It also enumerates the status values and the per-entry fields, which is exactly the context needed to interpret results.

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 purpose sentence, then the field inventory, then the behavioral caveat and the when-to-call guidance — a good order. Slightly over-long: the source-module reference (`_shared/health.py`) and the full parenthetical enum listing are implementation detail an agent does not need to act.

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?

For a no-arg, read-only introspection tool with an output schema, this covers everything an agent needs: what it reports, how the data is produced, the latency/accuracy caveat (passive, not live), and when to consult it before downstream calls.

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?

There are zero parameters, so the baseline is 4; nothing about invocation needs explaining. The description instead spends its words on the return shape, which is a sensible use of space but not parameter semantics.

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?

Opens with a specific verb+resource ('Return the current health of every registered upstream endpoint') and immediately establishes scope ('every'). It is clearly distinguishable from sibling status tools like get_knowledge_status and list_features because it is about upstream endpoint health, not knowledge coverage or feature inventory.

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 when to call it: before attempting Tier 1 (Dubai Pulse) or FCSC work, with the rationale (avoiding requests the server cannot fulfill). It does not, however, exclude any situations or contrast itself against the other meta-tools (recommend_tools, get_knowledge_status) that an agent might also consult first.

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

gitex_infoA
Read-onlyIdempotent

Return GITEX Global 2026 details and venue.

Confirmed 7 to 11 December 2026 in a split-venue format: GITEX Summit on 7 December at Dubai World Trade Centre, expo 8 to 11 December at the Dubai Exhibition Centre, Expo City Dubai.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/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 factual event context (dates, venues) beyond structured fields, but discloses nothing about auth needs, caching, or how the live data refreshes - reasonable given the low bar set by annotations.

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 the return purpose, followed by the specific detail. Every sentence is informational, though the detailed answer content arguably belongs in the output schema rather than the description.

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?

For a zero-parameter lookup tool with an output schema and full annotation coverage, the description supplies everything an agent needs: what it returns, the topic, and the embedded factual answer. Nothing required for correct invocation is missing.

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 tool takes zero parameters, so per the rubric the baseline is 4. There are no arguments whose semantics a description could clarify.

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 ('Return') and resource ('GITEX Global 2026 details and venue'), then immediately specifies the dates and split-venue structure. There is no sibling tool covering this event, so sibling differentiation isn't needed, but 'details' is left slightly generic before being clarified in the next sentence.

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 purpose implies when to call it (a GITEX 2026 lookup), but there is no explicit guidance on when to use it versus other tools, nor any prerequisites or exclusions. Implied usage only, though there is genuinely no competing alternative in the sibling list.

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

golden_visa_checkA
Read-onlyIdempotent

Screen financial thresholds for Golden Visa routes; this is not final eligibility.

NameRequiredDescriptionDefault
project_value_aedNoDeprecated. ICP dropped the AED 500,000 project-valuation test; a value here is not screened and only returns a note. Use annual_revenue_aed or prior_exit_value_aed.
annual_revenue_aedNoAnnual revenue of the founder's UAE SME. ICP's entrepreneur route needs at least AED 1,000,000, plus approval of the venture by an accredited incubator or authority.
monthly_salary_aedNoMonthly salary for skilled-professional screening. AED 30,000 is the published threshold; qualification, employment and evidence requirements must also be met.
prior_exit_value_aedNoTotal sale value of ventures the founder previously built and sold. ICP's alternative entrepreneur test needs at least AED 7,000,000. Dubai's GDRFA route uses a Dubai Future Foundation nomination with different criteria.
real_estate_value_aedNoUAE property value for the investor category. Must be at least AED 2,000,000; approved-bank mortgages and approved-developer off-plan property can count.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already establish readOnly, idempotent, non-destructive, closed-world behavior, so the safety profile is covered. The description adds the useful caveat that results are indicative thresholds, not eligibility determinations. It does not explain how partial inputs are handled or that the deprecated parameter merely returns a note — that detail lives only in the 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?

A single tight sentence with the core action front-loaded and a scope limitation appended. No filler, no restatement of the title or schema.

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

Completeness3/5

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

An output schema exists and the parameter descriptions are rich, so much of the burden is carried elsewhere. Still, the description never names the routes being screened (investor, entrepreneur, skilled professional) or indicates that providing any subset of inputs returns per-route results, leaving the agent to infer structure from parameters alone.

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 each parameter carries a detailed AED threshold plus ICP-route context, so the schema does the heavy lifting. The description itself contributes nothing about the five financial inputs, which is acceptable at baseline but no better.

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 and resource: 'screen financial thresholds for Golden Visa routes', which tells an agent exactly what computation happens. The 'this is not final eligibility' clause sharpens scope. It does not, however, differentiate itself from nearby siblings such as visa_recommend, visa_details, or list_visa_types.

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 'not final eligibility' disclaimer implies this is an early-stage screen rather than an authoritative answer, which is a partial when-not signal. But there is no explicit guidance on when to prefer this over visa_recommend or visa_details, nor on whether parameters can be combined.

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

grant_programsC
Read-onlyIdempotent

List UAE government grant and funding support programs.

NameRequiredDescriptionDefault
grant_typeNoOptional type filter (accelerator_support_and_credit_guarantee, venture_fund, support_programs_and_loan_route, interest_free_business_loans_and_nonfinancial_support).

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, and openWorldHint=false, so the safety profile is fully covered elsewhere. The description adds nothing behavioral beyond that — no note on whether results are static or refreshed, nor any scoping caveats — so it contributes no incremental context.

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 zero filler, appropriately sized for the operation. It is terse to the point of under-specification, but nothing in it is wasted.

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

Completeness3/5

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

With an output schema present, return values need not be explained, and annotations carry the safety profile. The remaining gap is routing: nothing tells the agent how this differs from accelerator_search, vc_list, or dcde_programs in a crowded funding-tool family.

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% and the single optional grant_type parameter is fully documented in the schema with its accepted filter values. The description adds no syntax or meaning beyond the schema, 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 verb (List) and resource (UAE government grant and funding support programs), so the agent knows exactly what is returned. However, it offers no differentiation from adjacent funding siblings such as accelerator_search, vc_list, or dcde_programs, which an agent could easily confuse it with.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no alternatives named. The agent must infer on its own that this covers government grants rather than private accelerators or VC listings.

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

gregorian_to_hijriB
Read-onlyIdempotent

Convert a Gregorian date to a Hijri (Islamic) date.

NameRequiredDescriptionDefault
dayYesGregorian day, 1 to 31.
yearYesGregorian year (e.g., 2026).
monthYesGregorian month, 1 to 12.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true, and destructiveHint=false, fully covering the safety profile. The description adds no behavioral context such as conversion standard (e.g., Umm al-Qura), timezone handling, or precision.

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 wasted words, and the core operation is front-loaded immediately. It is appropriately sized for a simple conversion tool.

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 values need not be explained, and all required parameters are documented in the schema. The description is nearly complete for a simple conversion, though it could mention calendar-system caveats that affect Hijri results.

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 all three required parameters (day, month, year) are already documented with ranges and examples. The description adds no additional meaning beyond what the schema provides, so the baseline of 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 (Convert) and resource/direction (Gregorian date to Hijri date), which inherently distinguishes it from the inverse sibling hijri_to_gregorian. An agent can identify the operation 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 Guidelines2/5

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

Provides no explicit when-to-use, prerequisites, or alternative guidance. The inverse sibling hijri_to_gregorian exists but is not referenced, leaving the agent to infer that this tool is only for forward conversion.

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

grocery_estimateC
Read-onlyIdempotent

Monthly and weekly grocery ranges plus the staples basket.

NameRequiredDescriptionDefault
household_sizeNoOne of: single, couple, family_of_four.single

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is covered. The description adds only 'plus the staples basket', a content detail, and says nothing about currency, cost basis, or what drives the ranges, so it contributes little behavioral context beyond the structured fields.

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?

It is a single short clause with no wasted words and the core content is front-loaded, but it is under-specified rather than genuinely concise, leaving the agent to guess the tool's action.

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

Completeness3/5

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

The tool is simple, the one parameter is fully documented in the schema, an output schema exists so return values need not be described, and annotations cover safety. The remaining gap is contextual framing — no linkage to the cost-of-living estimator family or statement of what assumptions (currency, location) the ranges rest on.

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 single parameter's allowed values (single, couple, family_of_four) are documented in the schema itself. The description does not mention household_size at all, so the baseline 3 applies — the schema does all the work.

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

Purpose3/5

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

The phrase names the resource (monthly/weekly grocery ranges and a staples basket) but is a noun fragment with no verb, so the agent infers 'estimate grocery costs' rather than reading it stated. It is distinguishable from siblings like rent_estimate or dewa_bill_estimate only by the noun 'grocery'.

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

Usage Guidelines2/5

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

There is no indication of when to use this tool versus alternatives such as cost_of_living_overview, or of how it fits with the other cost estimators in the sibling set. No prerequisites, no exclusions, no context are given.

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

halal_certificationA
Read-onlyIdempotent

Return UAE halal certification guidance.

The authority is MOIAT (Ministry of Industry and Advanced Technology), which absorbed ESMA in 2020. Standards: UAE.S GSO 2055-1, 2055-2, 2055-4, plus UAE.S 993 (slaughter). Single UAE Halal Mark.

NameRequiredDescriptionDefault
product_categoryNoOptional filter on the products list.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

The annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds useful regulatory context (MOIAT, absorbed ESMA, applicable standards, single mark) but does not add operational behavior details such as response shape or limitations.

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?

The description is short and front-loaded, with no filler. The authority, standards, and mark details all contribute useful context, though the line-broken formatting makes it slightly less polished.

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?

Given one optional parameter, full schema coverage, a rich annotation set, and an output schema, the description provides enough domain context for an agent to invoke the tool correctly. Only explicit usage routing 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?

Schema coverage is 100% and the single optional parameter is already described in the schema as an optional filter on the products list. The description adds no further detail about the parameter, 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?

The description gives a specific verb and resource: "Return UAE halal certification guidance." It also scopes the domain with the authority and standards, though it does not explicitly distinguish itself from potentially related siblings such as moiat_requirements.

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 implied by the subject matter—an agent would infer this is for halal certification questions in the UAE. However, there is no explicit when-to-use guidance, no exclusions, and no routing to alternatives.

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

hijri_to_gregorianB
Read-onlyIdempotent

Convert a Hijri (Islamic) date to a Gregorian date.

NameRequiredDescriptionDefault
dayYesHijri day, 1 to 30.
yearYesHijri year (e.g., 1447).
monthYesHijri month, 1 (Muharram) to 12 (Dhu al-Hijjah).

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds no behavioral context beyond that – no note on which Hijri calendar variant (Umm al-Qura vs tabular) is used, which materially affects conversion results.

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 front-loaded sentence with the operation verb first and the direction explicit; nothing is wasted and nothing needs trimming for a simple conversion tool.

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?

Output schema exists so return values need not be explained, and annotations cover safety, leaving the description sufficient to call the tool. It falls short of 5 only because the Hijri calendar variant (e.g., Umm al-Qura) is not stated, a detail that changes the output date.

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%: day, month and year are each documented with ranges and even the month-name mapping (Muharram/Dhu al-Hijjah). The description adds no parameter meaning beyond the schema, so the 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 (convert) and both resources (Hijri date → Gregorian date), making the conversion direction unambiguous. This directionality inherently distinguishes it from its sibling gregorian_to_hijri without needing to name it.

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

Usage Guidelines2/5

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

The description gives no when-to-use guidance, no prerequisites, and never mentions the inverse tool gregorian_to_hijri or any alternative. The agent must infer usage purely from the name and direction phrase.

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

ip_protectionC
Read-onlyIdempotent

Return UAE IP protection guidance.

NameRequiredDescriptionDefault
ip_typeNoOne of "trademark", "patent", "copyright".trademark

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.6/5.0
Behavior2/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 fully covered by structured data. The description adds nothing behavioral on top of that – no mention of coverage scope, whether guidance is static or time-sensitive, or what kinds of IP it addresses beyond the parameter default. It neither contradicts nor enriches the annotations.

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?

A single short sentence that is front-loaded and wastes no words. But its brevity reflects under-specification rather than disciplined concision – the one sentence does not carry enough information to be genuinely helpful.

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

Completeness3/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 values need not be described, and annotations cover the safety profile. What remains missing is scope and sibling differentiation against trademark_registration. For a single-optional-param knowledge lookup this is minimally adequate but not complete.

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 the schema already documents ip_type with its allowed values and default. The description adds no syntax or meaning beyond the schema. Baseline 3 is appropriate when the schema carries the parameter documentation.

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

Purpose3/5

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

States a verb (Return) and a resource (UAE IP protection guidance), so the basic purpose is clear. However, 'guidance' is vague about scope, and the description does nothing to distinguish this tool from the sibling trademark_registration, which plausibly overlaps. The agent cannot tell from the text alone when this general tool applies versus the specific registration tool.

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

Usage Guidelines2/5

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

There is no when-to-use statement, no prerequisite, and no named alternative. With a closely related sibling (trademark_registration) present, the absence of routing guidance is a real gap. The agent must infer usage from the name alone.

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

is_uae_holidayB
Read-onlyIdempotent

Check whether a specific Gregorian date is a UAE public holiday.

NameRequiredDescriptionDefault
date_strYesISO date YYYY-MM-DD.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false, and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds only the qualifier 'Gregorian', which usefully signals that Hijri dates must be converted first (cf. hijri_to_gregorian), but says nothing about behavior such as weekend/holiday-boundary handling or whether results reflect observed vs. announced dates.

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?

One short sentence with the key constraint (specific Gregorian date) front-loaded and no filler. Every word earns its place.

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 values need no explanation, and the single-parameter input is fully documented in the schema. The only missing piece is routing relative to the uae_holidays and uae_next_holiday siblings, which is a minor gap for such a simple 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 description coverage is 100% – the single date_str parameter is fully documented as ISO YYYY-MM-DD in the schema. The description's 'Gregorian' qualifier adds a small disambiguation (not a Hijri date) but no format or range detail beyond the schema, 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 verb (check) and resource (whether a Gregorian date is a UAE public holiday), so the agent knows exactly what it returns. It does not explicitly differentiate itself from close siblings uae_holidays (list) and uae_next_holiday (next upcoming), which keeps it out of 5 territory.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no exclusions, and no mention of the sibling tools uae_holidays or uae_next_holiday. Usage is only inferable from the phrasing 'check whether a specific date', which is implied context rather than stated guidance.

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

khda_list_areasA
Read-onlyIdempotent

List the Dubai areas covered by schools in the snapshot.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/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 fully covered structurally. The description adds only the phrase 'in the snapshot', implying the result is a fixed dataset rather than a live query; it says nothing about freshness, ordering, or size. Modest added value over annotations.

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?

One sentence, front-loaded with the verb and the resource, with zero filler. Nothing to trim and nothing buried.

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 the description need not explain return values, and with no parameters the burden is small. It is only short of complete because it never positions itself against sibling list tools such as khda_list_curricula.

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 tool takes zero parameters, so there is no parameter semantics to explain and the baseline of 4 applies. The description correctly avoids inventing arguments that do not exist.

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 (list) and resource (Dubai areas) with a scoping qualifier ('covered by schools in the snapshot'), so an agent knows exactly what comes back. It does not distinguish itself from the nearby sibling khda_list_curricula, which is the only thing keeping it out of the top band.

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

Usage Guidelines2/5

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

There is no when-to-use statement, no mention of when not to use it, and no pointer to alternatives such as khda_search_school. The usage is only inferable from the wording itself, which is the definition's main gap.

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

khda_list_curriculaA
Read-onlyIdempotent

List the curricula available in the snapshot (e.g., British, IB, CBSE).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, non-open-world and non-destructive, so safety is covered structurally. The description's one added signal is the word 'snapshot', implying static pre-captured data rather than live results, which is genuinely useful context but is not elaborated.

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 front-loaded sentence that names the resource first and puts the illustrative examples in parentheses. No filler and nothing to trim.

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-parameter, read-only enumeration with an output schema and full annotation coverage, the description says enough to call it correctly. Only the meaning of 'snapshot' (which snapshot, how current) is left unstated.

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 tool takes zero parameters, so the schema has nothing for the description to supplement. Baseline 4 applies; there is no parameter behavior left unexplained.

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 ('List') and resource ('curricula') and grounds the result set with a concrete example list (British, IB, CBSE). It is distinguishable from khda_search_school and khda_list_areas by resource, but it never explicitly contrasts itself with those siblings.

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: the description conveys that this enumerates the fixed set of curricula, which an agent would want before filtering schools, but it never states when to use it versus khda_search_school or any prerequisite/exclusion.

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

khda_search_schoolB
Read-onlyIdempotent

Search Dubai private schools by name, area, curriculum, rating, or fee.

NameRequiredDescriptionDefault
areaNoSubstring match on area / neighborhood (e.g., "Jumeirah").
nameNoSubstring match on school name (case-insensitive).
limitNoMax results (1 to 200, default 20).
ratingNoExact match on KHDA inspection rating. Valid values: "Outstanding", "Very Good", "Good", "Acceptable", "Weak", "Very Weak".
curriculumNoSubstring match on curriculum (e.g., "British", "IB").
max_fee_aedNoFilter to schools whose fees_min_aed is at or below this.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds no behavioral context of its own: no pagination/result-limit behavior, no note on how multiple filters combine, no ordering of results.

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 front-loaded sentence with zero filler; the tool and its filter dimensions are conveyed immediately.

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

Completeness3/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-value explanation is not needed, and the schema fully documents inputs. What is missing is routing guidance relative to the khda_list_curricula/khda_list_areas siblings and any note on result behavior, leaving the definition adequate but with clear gaps.

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 each parameter is individually documented with match semantics (substring vs. exact) and valid rating values. The description's field list mirrors the schema rather than adding new meaning, so the 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?

States a specific verb and resource ("Search Dubai private schools") and enumerates the filterable dimensions, so the agent knows exactly what this tool retrieves. It does not, however, distinguish itself from the khda_list_curricula and khda_list_areas siblings that serve adjacent discovery needs.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given, and no alternative is named. The sibling tools khda_list_curricula and khda_list_areas are obvious candidates for a 'which should I call' decision, and the description is silent on the choice.

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

late_payment_penalty_estimateA
Read-onlyIdempotent

Estimate the unified UAE late-payment penalty on overdue tax.

Cabinet Decision 129 of 2025 applies 14% per annum to unpaid tax, effective 14 April 2026, unifying VAT, Excise and Corporate Tax. The charge accrues monthly at 14% divided by 12 for every month or part of a month; it is not pro-rated by day. Confirm the calendar-month count with the FTA.

NameRequiredDescriptionDefault
days_lateYes
tax_due_aedYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, so the description is free to add domain behavior — and it does: the 14% p.a. rate, the 14 April 2026 effective date, monthly accrual with no daily pro-ration. What is missing is how the accrual period is derived from the supplied day count.

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 the purpose, then legal basis and mechanics in a tight sequence. Slight redundancy in restating the 14% rate twice, but every sentence otherwise carries substantive information.

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

Completeness3/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 values need no explanation, and the legal mechanics are well covered. The gaps are the days-to-months conversion and any guidance on when this estimate applies versus other tax tools.

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 0%, so the description must carry parameter meaning; it explains that tax is the unpaid base but never says how 'days_late' maps to the monthly charge (e.g. days/30 vs. ceiling of a calendar month). Saying the charge 'is not pro-rated by day' while the only time parameter is in days leaves a real ambiguity an agent must resolve.

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?

Opens with a specific verb+resource ('Estimate the unified UAE late-payment penalty on overdue tax') and narrows the domain to VAT, Excise and Corporate Tax under a named decree. No sibling tool computes penalties, so the resource statement alone separates it from corporate_tax_estimate or vat_filing_calendar.

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 ('on overdue tax'); there is no explicit statement of when to call this versus corporate_tax_estimate or vat_filing_calendar, and no prerequisites or exclusions. The closing line advises confirming the month count with the FTA, which is a caveat rather than routing guidance.

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

list_banksA
Read-onlyIdempotent

List every UAE business bank in the curated dataset.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety and idempotency profile is fully covered. The description's only added behavioral signal is 'curated dataset', suggesting a fixed, complete enumeration rather than a live query, which is useful but thin.

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 short sentence with the scope constraint front-loaded and no filler. Every word earns its place.

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 an output schema present, the description needn't explain return values, and annotations cover the safety profile. For a zero-parameter catalog lister it is nearly complete; a note that this returns the full curated set rather than filtering would close the last gap.

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 tool takes zero parameters, so the baseline is 4 and there is no parameter semantics for the description to clarify. It correctly says nothing about inputs because there are none.

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 ('List') and resource ('UAE business banks') plus a scope qualifier ('curated dataset'), so the agent knows this is an enumeration rather than a lookup. It does not explicitly distinguish itself from nearby siblings like bank_details or bank_recommendation, which is the only thing keeping it from a 5.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no named alternative. The phrase 'curated dataset' faintly implies this is a static catalog as opposed to a live lookup, but the agent must infer whether to call this or bank_details/bank_recommendation.

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

list_featuresA
Read-onlyIdempotent

List every registered MCP-Dubai feature with its tool count and tier.

Returns: One entry per feature, sorted by tier then name. Each entry has feature, tier, requires_auth, tool_count, and tools.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed world, so the safety profile is fully covered. The description adds only the sort order (tier then name) as genuine behavioral context; with annotations this strong, that is a modest addition.

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?

Two short, front-loaded sentences with the action stated first and the return shape second. The field enumeration in the Returns block slightly overlaps the output schema, but the text is tight overall.

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 parameters, full annotation coverage, and an output schema present, the description needs only to say what the tool does and what it returns — which it does, including ordering and the per-entry fields.

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 tool takes zero parameters, so the baseline is 4; the description correctly makes no parameter claims and instead describes the output fields, which is the only relevant semantic content.

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 and resource — 'List every registered MCP-Dubai feature with its tool count and tier' — which is unambiguous. It does not, however, distinguish itself from adjacent discovery siblings such as recommend_tools, about, or list_plan_categories.

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 implied by the listing nature of the tool (browse/discover available features), but there is no explicit when-to-use, when-not-to-use, or pointer to an alternative like recommend_tools for goal-driven discovery.

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

list_free_zonesA
Read-onlyIdempotent

List every Dubai free zone in the curated dataset.

Returns a compact list with id, name, sector, location, and initial license cost in AED.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds modest context: 'every' signals an unpaginated complete enumeration, and 'curated dataset' hints at a bounded, possibly non-exhaustive source. It stops short of stating data recency or whether the list is authoritative.

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?

Two short sentences, purpose first, return shape second — well front-loaded with no filler. The return-field sentence overlaps the output schema, costing a little redundancy.

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 an output schema present and zero parameters, the description needn't explain return values or arguments, and it doesn't. The only meaningful gap is not positioning this list relative to the detail/compare tools in the same family.

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?

Zero parameters, which is the baseline-4 case; there is nothing to disambiguate. The description correctly adds no filtering or paging claims that would contradict the empty schema.

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 ('List') and resource ('every Dubai free zone') with a clear scope limit ('in the curated dataset'). It is distinguishable from free_zone_details and compare_free_zones by implication of a full enumeration, though it never names those siblings explicitly.

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 word 'every' implies this is the entry point for enumerating the catalog before drilling into details, but no explicit when-to-use or when-not guidance is given. Alternatives such as free_zone_details, compare_free_zones, and list_offshore sit right next to it and are left unaddressed.

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

list_honorificsA
Read-onlyIdempotent

List bilingual UAE honorifics for use in formal correspondence.

Includes His Highness, His/Her Excellency, Mr./Ms., Dr., Engineer with Arabic equivalents and use case notes.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and closed-world behavior. The description adds valuable content details beyond the annotations by listing the honorific types included and noting Arabic equivalents and use-case notes.

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 tightly written sentences front-load the purpose and then list the included honorifics. Every phrase earns its place and 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?

For a zero-parameter listing tool with annotations and an output schema, the description is complete: it explains purpose, scope, contents, and use context. No operational gaps remain for correct invocation.

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?

There are zero parameters, so the baseline is 4. The description adds no parameter meaning because none exist, and the empty schema is sufficient.

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 ('List') and resource ('bilingual UAE honorifics') with the use case ('formal correspondence'). It also names the included categories, which lets an agent distinguish it from the sibling list_salutations.

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?

Provides a clear context for when to use it ('for use in formal correspondence') and names the kinds of recipients covered. It does not explicitly state exclusions or point to the alternative list_salutations, so it falls short of a 5.

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

list_offshoreA
Read-onlyIdempotent

List Dubai-relevant offshore options (JAFZA Offshore, RAK ICC).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, idempotentHint=true and destructiveHint=false, so the full safety profile is covered structurally. The description adds no behavioral context beyond the resource name, but for a zero-param read-only list there is little additional nuance to disclose, so a baseline 3 fits.

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 front-loaded sentence with zero filler. The verb and resource lead, and the parenthetical examples are the only elaboration, which is appropriate.

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 values need not be explained, and there are no parameters to document. The brief scope statement is enough to call the tool correctly, though it could note how many option categories it covers.

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 tool takes no parameters, which is the baseline-4 case. Nothing in the description conflicts with the empty schema, and no parameter explanation is needed.

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 ('List') and resource ('offshore options') with concrete examples (JAFZA Offshore, RAK ICC). It is clear what the tool returns, though it does not explicitly contrast itself with the neighboring list_free_zones tool, leaving the onshore/offshore distinction implicit.

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?

No explicit when/when-not guidance is given. The scope ('Dubai-relevant offshore') implies usage, and an agent can infer it should call this instead of list_free_zones for offshore structures, but that routing is left entirely to inference.

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

list_plan_categoriesB
Read-onlyIdempotent

List the available data_analyst plan categories.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/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 nothing beyond that — no note on whether the list is static, cached, or scoped to a specific plan tier, so there is no incremental behavioral value.

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 short sentence with the verb and resource front-loaded and zero padding. It is appropriately sized, though it is arguably under-specified rather than optimally terse.

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

Completeness3/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 values need not be explained, and the zero-parameter nature keeps the surface small. Still, the meaning of 'data_analyst plan categories' and how they relate to sibling tools such as plan_query or recommend_tools is left unstated, leaving a gap for a low-complexity tool.

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 tool takes zero parameters, so there is nothing for the description to clarify; the baseline of 4 applies. No parameter behavior is misrepresented.

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 ('List') and resource ('plan categories'), so the agent knows this is an enumeration tool. However, 'data_analyst plan categories' is an unusual qualifier that is not explained, and the description does not distinguish it from the sibling plan_query.

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

Usage Guidelines2/5

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

No guidance on when to call this versus plan_query or any other sibling. There is no mention of prerequisites, or that the output likely feeds into a plan lookup/query.

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

list_salutationsA
Read-onlyIdempotent

List bilingual opening and closing salutations for UAE business letters.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description only adds that the content is bilingual and domain-scoped; it says nothing about volume, ordering, or filtering. With annotations doing the heavy lifting, a 3 is appropriate.

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 front-loaded sentence with no filler. The resource and its scope arrive immediately, and nothing is repeated from the name 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?

For a zero-argument listing tool with an output schema, the description is nearly sufficient: it tells the agent what is returned and the domain. Only the intended pairing with the letter-composition siblings is left implicit.

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 tool takes zero parameters, so the baseline is 4. There are no arguments whose semantics need explaining, and the description does not need to compensate for anything.

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 ('List') and a specific resource ('bilingual opening and closing salutations for UAE business letters'), which is clear enough to distinguish from nearby siblings like list_honorifics and addressee_block. It never names those siblings explicitly, so it stops short of a 5.

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 'for UAE business letters' implies the usage context, but there is no explicit when-to-use, when-not-to-use, or pointer to alternative tools such as list_honorifics or business_letter_template. Usage is inferable rather than stated.

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

list_uae_weather_citiesA
Read-onlyIdempotent

List the UAE cities supported by the Open-Meteo weather tools.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=false and destructiveHint=false, so the safety profile is covered. The description adds that the list is scoped to cities the Open-Meteo weather tools actually support, which is genuinely useful context, but says nothing about list size or ordering.

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 action and the scope, with no filler or redundant restatement of the name.

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 values need no explanation, and a zero-param enumeration tool is inherently simple. The only missing piece is an explicit pointer that the returned city names are the valid inputs to the weather siblings.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 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?

Specific verb (List) plus a specific resource (UAE cities supported by the Open-Meteo weather tools). An agent immediately knows this is an enumeration tool for the weather family, though it doesn't explicitly name the sibling tools (uae_weather, weather_by_coords) whose inputs it feeds.

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 must infer that this should be called to discover valid city names before invoking a weather tool. There is no explicit when-to-use statement or contrast with siblings such as weather_uae_all.

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

list_visa_typesA
Read-onlyIdempotent

List every UAE visa type in the curated dataset.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety and determinism profile is fully covered by structured data. The description's only added behavioral signal is 'curated dataset', which usefully tells the agent the results are a fixed, non-exhaustive-of-reality static set rather than live data. That is a modest but real addition.

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 verb and resource with no filler. Nothing could be removed without losing meaning, and nothing further is needed for a no-argument list tool.

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 an output schema present, return values need no explanation, and annotations carry the full safety profile. The definition is essentially complete for a zero-parameter enumeration tool; the only missing element is routing guidance relative to the visa-related siblings.

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 tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline of 4 applies. The phrase 'every UAE visa type' correctly conveys that no filtering or scope narrowing is possible, matching the empty schema.

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 (List) and resource (UAE visa types), and the qualifier 'curated dataset' signals this is a static, curated enumeration rather than a live query. It does not, however, differentiate itself from close siblings such as visa_details, visa_recommend, or golden_visa_check, which an agent must infer are for per-type detail or eligibility rather than enumeration.

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 usage is implied by the name and the word 'every' — the agent can reasonably infer this is the tool to call when it needs the full enumeration of visa types rather than details on one. There is no explicit statement of when to prefer visa_details or visa_recommend, and no exclusions or prerequisites, so guidance remains inferential rather than stated.

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

makani_detailsA
Read-onlyIdempotent

Look up the building behind a 10-digit Makani number (no key).

Returns building, community, and emirate names in English and Arabic, exact coordinates, and the official makani.ae short URL.

NameRequiredDescriptionDefault
makani_numberYesMakani number, 10 digits with or without a space, e.g. "30032 95320" or "3003295320".

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is fully covered. The description adds the auth requirement ('no key') and enumerates the returned fields, which is useful context, but nothing about rate limits, error behavior on invalid numbers, or lookup latency.

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?

Two sentences, no filler, with the core action and the input constraint front-loaded. The return-value sentence is arguably redundant given an output schema exists, but it is short and readable.

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 single-parameter read tool with full annotation coverage and an output schema, the description supplies what an agent needs: what it accepts, that no key is required, and the resolution target. The only gap is sibling differentiation against the other makani_ tools.

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 schema already documents the 10-digit format with and without a space plus examples. The description only restates '10-digit Makani number', adding no format or validation detail beyond the schema, 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?

Names a specific verb ('look up') and resource ('the building behind a 10-digit Makani number') with a clear input format, so an agent knows exactly what the tool resolves. It does not, however, distinguish itself from the sibling makani_reverse_geocode or makani_validate, leaving the boundary between the three Makani tools ambiguous.

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 'no key' note usefully signals that this lookup requires no authentication, which is real usage context. But there is no explicit when-to-use guidance and no mention of when to prefer this over makani_reverse_geocode (coords to address) or makani_validate, so an agent must infer the routing.

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

makani_reverse_geocodeA
Read-onlyIdempotent

Find the Makani numbers and building at a Dubai coordinate (no key).

Reverse geocodes against the official Dubai Municipality Makani public service: building, community, and emirate names in English and Arabic, plus every Makani number at that location with its coordinates and short URL.

NameRequiredDescriptionDefault
latitudeYesLatitude in decimal degrees (WGS84), e.g. 25.26464.
longitudeYesLongitude in decimal degrees (WGS84), e.g. 55.31217.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnly/idempotent/openWorld/non-destructive, so the safety profile is covered. The description adds genuine context beyond that: the backing service (official Dubai Municipality Makani public service) and the fact that no API key is needed. It also enumerates returned content, which overlaps the output schema but reinforces it.

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?

Purpose is front-loaded in the first sentence and the second elaborates the data source and return contents. It is well-sized with no filler, though the return-value sentence partly duplicates the output schema.

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 rich annotations, a full-coverage schema, and an output schema in place, the description only needs to add the 'what' and the source/auth context, which it does. Nothing critical for calling the tool correctly is missing, though explicit sibling routing would have made it fully complete.

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% and both parameters carry WGS84 decimal-degree descriptions with examples, so the schema does the heavy lifting. The description adds no coordinate-format or range detail beyond what the schema already provides, making the baseline 3 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?

States a specific verb and resource: 'Find the Makani numbers and building at a Dubai coordinate,' which is unambiguous. It implicitly separates itself from the forward-looking siblings (makani_details, makani_validate) by framing the operation as reverse geocoding, but it never names those alternatives explicitly.

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 '(no key)' note tells the agent authentication is not required, which is useful context. However, there is no explicit when-to-use guidance or comparison against makani_details/makani_validate, so the agent must infer that this is the coordinate-to-Makani path.

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

makani_validateA
Read-onlyIdempotent

Check whether a 10-digit Makani number exists (no key).

Returns a validity boolean plus the emirate (English and Arabic) when the number is valid.

NameRequiredDescriptionDefault
makani_numberYesMakani number, 10 digits with or without a space, e.g. "30032 95320" or "3003295320".

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, covering the safety profile. The description adds two things beyond that: the fact that no API key is required (an auth constraint worth surfacing) and the conditional return behavior (emirate returned in both English and Arabic only when valid). That conditional is useful context even with an output schema present.

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 tight sentences with zero filler. The core purpose is front-loaded and the return/emirate detail follows as secondary. Every clause carries information.

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 one-parameter validation tool with full annotation coverage and an output schema, the description is nearly complete: it covers the check, the format constraint, the no-key auth posture, and the conditional return. It does not mention failure/edge behavior for malformed input, which keeps it short of 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?

Schema description coverage is 100% and the single parameter already documents the 10-digit format with concrete examples ('30032 95320' or '3003295320'). The description's mention of '10-digit' merely restates the schema, adding no new syntax or format meaning. Baseline 3 is appropriate when the schema does all the work.

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 and resource: 'Check whether a 10-digit Makani number exists.' Combined with the name makani_validate, an agent can immediately tell this is a validation/existence check rather than a lookup, which separates it from makani_details and makani_reverse_geocode. It does not name those siblings explicitly, so it falls short of a 5.

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: the '(no key)' note hints this is a cheap, unauthenticated check, which a reader could contrast with a keyed detail lookup. There is no explicit statement of when to prefer this over makani_details or makani_reverse_geocode, and no exclusions or prerequisites are spelled out.

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

moiat_requirementsB
Read-onlyIdempotent

Return MOIAT registration fees and timeline for Halal Certification Bodies.

HCB registration: AED 1,000 per domain plus AED 1,000 certificate. Total AED 2,000. Timeline: 10 working days.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds fee/timeline facts but no behavioral context such as whether the figures are static or refresh, or any auth constraints. With annotations carrying the load, a 3 is appropriate.

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 and brief: purpose sentence first, then supporting detail. It is slightly padded by embedding the actual answer values (AED 1,000/AED 2,000, 10 working days), which are return data already available via the output schema, but nothing is verbose.

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-parameter, read-only tool with an output schema and full annotation coverage, the description supplies what an agent needs to identify it. The one real gap is the missing distinction from the 'halal_certification' sibling, which prevents a 5.

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 tool takes zero parameters, so the baseline is 4 per the rubric. The description cannot and need not add parameter meaning, and it correctly avoids inventing any.

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 ('Return') and a precise resource ('MOIAT registration fees and timeline for Halal Certification Bodies'), so the agent knows exactly what it gets. It does not, however, distinguish itself from the related 'halal_certification' sibling or explain how the two differ.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not-to-use, or alternative guidance. Given the presence of 'halal_certification' and other *_requirements tools, the description should say when this MOIAT-specific fee tool is the right one to call, but it leaves that entirely to inference.

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

nol_card_guideA
Read-onlyIdempotent

Nol card guide and RTA fare structure.

Returns the 5 Nol card types (Red, Silver, Gold, Blue personalized, Blue PoD) plus the 2025 fare structure (1-zone AED 3, 2-zone AED 5, 3+ zone AED 7.50, daily caps, transfer rules, unlimited passes).

NameRequiredDescriptionDefault
card_typeNoOptional card type filter substring.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuine content scope (which card types and which fare components are returned, with concrete 2025 values), which is behaviorally useful beyond the annotations.

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?

Two sentences, front-loaded with the resource and then the returned content. The parenthetical fare enumeration is dense but every element is informative, not padding.

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 an output schema present, the description need not explain return formatting, and it does describe the content scope well. The only gap is the absence of any mention of the optional card_type filter or usage context, which keeps it just short of fully complete.

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% and the single optional card_type filter is fully documented in the schema. The description never mentions the filter, so it adds no meaning beyond the schema; 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 (Nol card guide + RTA fare structure) and enumerates exactly what it returns (5 card types, 2025 zone fares, caps, transfer rules, passes). It is clearly distinguishable from transport siblings like rta_salik_tariff and rta_search_metro_stations, though it does not explicitly name them.

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

Usage Guidelines2/5

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

There is no when-to-use, when-not, or alternative guidance. An agent must infer that this is a static reference lookup for Nol fares rather than something like rta_salik_tariff; the description offers no routing information.

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

osm_list_categoriesA
Read-onlyIdempotent

List the curated POI categories supported by osm_search_poi.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered. The description adds only the word 'curated', implying a fixed finite list, but says nothing about ordering, freshness, or scope of the category set.

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 front-loaded sentence with no filler. Every word (curated, supported by `osm_search_poi`) carries information.

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 an output schema covering return values, annotations covering safety, and no parameters, the description only needs to say what the list is and who consumes it — both are present. It could be stronger by stating the intended workflow step explicitly.

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 tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. No parameter-level information is needed or missing.

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 (List) and resource (curated POI categories), and names the consuming sibling `osm_search_poi`, which distinguishes it from that search tool. It is slightly vague about what 'curated' means, so it stops short of a full 5.

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?

By naming `osm_search_poi` as the consumer, it implies this should be called to discover valid category values before searching. However, it never states that explicitly, nor does it give any when-not guidance or alternatives.

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

osm_search_poiB
Read-onlyIdempotent

Find OpenStreetMap points of interest near a Dubai location.

NameRequiredDescriptionDefault
limitNoMax results to return.
categoryYesOne of: restaurant, cafe, fast_food, pharmacy, hospital, clinic, atm, bank, fuel, school, kindergarten, mosque, supermarket, mall, bus_stop, metro_station, parking, park, gym, hotel, embassy, post_office.
latitudeYesCentre latitude.
longitudeYesCentre longitude.
radius_metersNoSearch radius in metres (max 10000).

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety semantics are covered. The description adds the meaningful coverage constraint that results are Dubai-scoped OSM data, but says nothing about data freshness, rate limits, or empty-result behavior for an open-world lookup.

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?

One efficiently front-loaded sentence with no filler or redundant clauses. It is arguably too terse for a tool with a 22-value category constraint, but nothing in it is wasted.

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

Completeness3/5

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

With an output schema present and 100% parameter coverage, the description needn't explain return values. However, for a moderately complex geospatial lookup it omits useful context: the OSM/Overpass data source, the Dubai-only geographic restriction, and the relationship to osm_list_categories for valid category values.

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 latitude, longitude, category, radius_meters and limit are all documented in the schema. The description adds no parameter detail (e.g. how category relates to osm_list_categories, or the 10 km radius cap), 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?

Clear verb ('Find') plus specific resource ('OpenStreetMap points of interest') and a scope constraint ('near a Dubai location'). An agent understands the operation immediately, but the description never distinguishes it from the related osm_list_categories sibling or from other location tools like makani_reverse_geocode.

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

Usage Guidelines2/5

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

The phrase 'near a Dubai location' implies a coordinate-based proximity search, but there is no explicit when-to-use statement, no when-not-to-use, and no pointer to alternatives. An agent wanting to discover valid categories has no hint that osm_list_categories exists for that purpose.

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

parking_zonesA
Read-onlyIdempotent

Dubai Parkin zones, tariffs, VAT, free periods, and mParking shortcode.

Variable tariffs since 4 April 2025: peak 4 to 6 AED/h, off-peak 2 to 4 AED/h. From 1 June 2026 a 5% VAT applies on top (displayed prices are VAT-inclusive) and cash payments at meters are phased out (Nol cards still accepted). Free Sundays, public holidays, and 22:00 to 08:00. mParking SMS shortcode is 7275 (PARK), format <plate> <zone> <hours>.

CRITICAL: 'Mawaqif' is the Abu Dhabi parking system. Dubai parking is operated by Parkin Company PJSC (DFM:PARKIN), spun out of RTA in December 2023.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world, so the safety profile is covered. The description goes beyond that by disclosing time-dependent behavior (tariff changes since 4 April 2025, VAT from 1 June 2026, cash phase-out) and the free-period rules, which materially affects how an agent should answer.

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?

Content is front-loaded and every block (tariffs, VAT, free periods, SMS format, Mawaqif disambiguation) carries real information. It is dense and reads more like an FAQ excerpt than a tight tool definition, but nothing is wasted or redundant.

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-parameter reference tool with an output schema (so return structure needn't be explained), the description covers the domain facts an agent needs. The main omission is an explicit statement of what the tool returns versus what it merely summarizes.

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 tool takes zero parameters and the schema is an empty object, so there are no parameter semantics to document. Baseline for a zero-parameter tool is 4, and nothing in the description contradicts the schema.

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 the specific resource and its scope: Dubai parking zones, tariffs, VAT, free periods, and the mParking shortcode. It is not a tautology and it clearly distinguishes itself from the Abu Dhabi 'Mawaqif' system. It stops short of stating an explicit verb (e.g., 'returns reference data for'), so it is clear but not perfectly framed.

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. The 'CRITICAL' note effectively tells the agent when NOT to use this (Abu Dhabi/Mawaqif queries), which is genuinely helpful routing, but there is no explicit when-to-use statement nor routing to relevant siblings like rta_salik_tariff for tolls or nol_card_guide for Nol cards.

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

pdpl_complianceB
Read-onlyIdempotent

Return data protection compliance details for a UAE jurisdiction.

NameRequiredDescriptionDefault
jurisdictionNoOne of "uae_federal" (Federal Decree-Law 45/2021), "difc" (DIFC Law 5/2020), "adgm" (ADGM DPR 2021).uae_federal

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and closed-world, so the safety profile is fully covered by structured data. The description adds only that results are jurisdiction-scoped, and the existence of an output schema removes the need to describe return values. It adds a little context but no behavioral detail beyond annotations.

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 efficient sentence with the resource and scope front-loaded and no filler. It is arguably under-specified rather than over-long, but structurally it wastes nothing.

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

Completeness3/5

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

With annotations covering safety and an output schema covering returns, the definition is functional but thin: it never indicates what 'compliance details' comprise (obligations, penalties, law citations) or whether the output differs materially across the three jurisdictions. For a reference-lookup tool this is adequate but leaves the agent guessing at the payload's nature.

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 schema itself enumerates the three valid jurisdiction values with their underlying laws, so the parameter is fully documented. The description's phrase 'for a UAE jurisdiction' merely echoes the schema and adds no syntax or default information beyond it, making the baseline 3 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?

States a specific verb (Return) plus resource (data protection compliance details) and scopes it to a UAE jurisdiction, so an agent can tell it apart from non-compliance siblings like aml_requirements or esr_status. The only gap is that it doesn't distinguish this from any closely related privacy/compliance tool, though none obvious exists in the sibling list.

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

Usage Guidelines2/5

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

There is no when-to-use guidance, no prerequisites, and no mention of alternatives or related tools. The agent must infer that this is the lookup to call for PDPL questions, with nothing in the text confirming that.

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

plan_queryB
Read-onlyIdempotent

Build a multi-tool execution plan for a query category.

NameRequiredDescriptionDefault
inputsNoOptional dict of named inputs to substitute into the plan's args templates.
categoryYesOne of: founder_setup, market_research, compliance_checkup, relocation.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and closed-world, so the safety profile is fully covered. The description adds the one trait annotations cannot convey - that the output is a multi-tool execution plan - but says nothing about what the plan contains or how it should be consumed.

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. It is efficient, though arguably too terse for a planning tool whose output type needs framing.

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

Completeness3/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 values need not be explained, and parameters are fully documented. However, for a tool whose job is generating an executable multi-tool plan, the description never conveys what a 'plan' is or how it should be used, leaving the workflow context thin.

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%, with the schema enumerating category values and explaining the inputs substitution dict, so the baseline is 3. The description's 'query category' wording maps to the category parameter but adds no format or semantic detail beyond the schema.

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 (build) and resource (multi-tool execution plan) scoped to a query category, so an agent can distinguish it from list_plan_categories or recommend_tools. The notion of a 'query category' is only clarified by the schema's enum, not the description.

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

Usage Guidelines2/5

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

The description offers no when-to-use guidance, no prerequisites, and no reference to alternatives such as recommend_tools or list_plan_categories, which an agent would need to decide between. Usage is only implied by the phrase 'for a query category'.

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

portal_guideB
Read-onlyIdempotent

Look up a UAE government portal by id or by keyword.

NameRequiredDescriptionDefault
keywordNoSubstring search across portal name, type, and operator.
portal_idNoPortal id slug, e.g., "uae_pass", "basher", "invest_in_dubai", "emaratax", "mohre", "gdrfa_dubai", "icp", "u_ae", "dubai_now", "dubai_rest", "developer_dubai".

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.1/5.0
Behavior2/5

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

Annotations already declare readOnly, idempotent, non-destructive, and closed-world behavior, so the safety profile is fully covered. The description adds nothing beyond that: it does not say what happens if neither parameter is supplied, whether results are exhaustive or paginated, or any auth/rate constraints. With annotations carrying the burden, a low-but-not-failing score is appropriate.

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 front-loaded sentence with zero filler; the lookup target and both access paths come first. Nothing in the sentence is redundant with the title or repeated.

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

Completeness3/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 values need not be explained, and annotations cover safety. However, the tool accepts two optional parameters with zero required ones, and the description never states the behavior when neither is provided (return all portals vs. error), which is the one real gap for an agent deciding how to call it.

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 schema itself is rich (keyword substring scope across name/type/operator, plus id slug examples). The description merely restates "by id or by keyword" without adding format or matching semantics, so it sits at the baseline for well-documented schemas.

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 verb and resource ("Look up a UAE government portal") and the two access modes (by id or by keyword), which is concrete and unambiguous. It does not differentiate from sibling tools that also surface UAE government information (e.g. data_dubai_search, list_banks), but no near-duplicate sibling exists, so the gap is minor.

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

Usage Guidelines2/5

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

There is no guidance on when to prefer portal lookup over related siblings like data_dubai_search or chamber_of_commerce_info, and no statement of exclusions or prerequisites. The agent is left to infer usage entirely from the one-line purpose statement.

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

prayer_times_calendarC
Read-onlyIdempotent

Get prayer times for an entire month in one call.

NameRequiredDescriptionDefault
cityYesCity name (e.g., "Dubai").
yearYesGregorian year.
monthYesMonth number, 1 to 12.
methodNoCalculation method ID. 8 = Gulf Region (default).
schoolNoAsr school. 0 = Shafi (default).
countryNoCountry name. Defaults to "United Arab Emirates".United Arab Emirates

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint, so the safety profile is covered. The description adds nothing behavioral beyond that — no note on data source, calculation-method effects on results, or whether results vary by country/method. It neither contradicts nor enriches the annotations.

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 resource and scope front-loaded and no filler. 'In one call' is mildly redundant with 'entire month' but costs little.

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

Completeness3/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 values need no explanation, and the schema fully documents inputs. The remaining gap is the absence of any routing information versus prayer_times_for, which is the one thing an agent needs beyond structured fields.

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% with all six parameters (city, year, month, method, school, country) documented including defaults and examples. The description adds no parameter-level meaning, so the baseline 3 applies when the schema does all the work.

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 (Get) and resource (prayer times) with an explicit scope qualifier (entire month in one call), so an agent knows this is the bulk/monthly variant. It does not name the sibling prayer_times_for, so the differentiation from the single-day tool is left to inference.

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

Usage Guidelines2/5

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

The phrase 'in one call' hints at a batching use case but there is no explicit when-to-use guidance, no exclusion conditions, and no mention of prayer_times_for as the alternative for a single day. The agent must infer the routing decision entirely.

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

prayer_times_forA
Read-onlyIdempotent

Get the five daily prayer times for a UAE city or arbitrary coordinates.

Pass either a city name OR a latitude+longitude pair, not both. The response includes Fajr, Sunrise, Dhuhr, Asr, Sunset, Maghrib, Isha, plus Imsak (start of fasting), Midnight, Firstthird, and Lastthird, along with the matching Hijri and Gregorian dates.

NameRequiredDescriptionDefault
cityNoCity name (default Dubai). Use this OR coordinates.
methodNoCalculation method ID. 8 = Gulf Region (default for UAE), 16 = Dubai experimental (matches Dubai mosque announcements), 4 = Umm Al-Qura Makkah, 3 = Muslim World League.
schoolNoAsr school. 0 = Shafi (default for UAE), 1 = Hanafi.
countryNoCountry name. Defaults to "United Arab Emirates".United Arab Emirates
date_strNoISO date YYYY-MM-DD. Defaults to today.
latitudeNoLatitude in decimal degrees, -90 to 90.
longitudeNoLongitude in decimal degrees, -180 to 180.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety and idempotency profile is fully covered. The description adds the enumerated return fields, but that content largely overlaps the output schema and adds no auth, rate-limit, or fallback behavior context.

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?

Three sentences, front-loaded with the core purpose, followed by the input constraint and the return contents. No filler. The response-field enumeration is slightly long and partially redundant with the output schema, keeping it short of a 5.

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 values need not be explained. The description covers both input modes and their exclusivity, which is what an agent needs to invoke it correctly. Only the sibling disambiguation against prayer_times_calendar is missing.

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 description coverage is 100% (each of the 7 params including method/school IDs is documented), so the baseline is 3. The description goes beyond the schema by stating the mutual-exclusivity rule between city and coordinates, a cross-parameter constraint the schema cannot express, which lifts it above baseline.

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 ('Get') plus resource ('the five daily prayer times') and both supported scopes (UAE city or arbitrary coordinates). An agent immediately knows the operation. It does not, however, distinguish itself from the sibling prayer_times_calendar, which an agent could easily confuse for this tool.

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?

Gives a concrete input constraint — 'Pass either a city name OR a latitude+longitude pair, not both' — which is genuine usage guidance. But it offers no when-to-use/when-not guidance relative to alternatives such as prayer_times_calendar, so the routing decision is left to inference.

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

pro_services_estimateB
Read-onlyIdempotent

Estimate annual PRO service cost.

NameRequiredDescriptionDefault
use_retainerNoTrue to force a monthly retainer estimate.
visas_per_yearNoHow many visa transactions are expected per year.
license_renewals_per_yearNoHow many license renewals per year.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint=false. The description adds no behavioral context beyond the purpose—it does not mention assumptions, calculation basis, or what the output includes.

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, front-loaded sentence with zero wasted words. It is appropriately sized for a simple estimation tool.

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?

Given that the schema fully documents all parameters, annotations cover safety traits, and an output schema exists, the description only needs to state the purpose—which it does. It could optionally mention calculation assumptions or when to prefer it over other estimates.

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 all three parameters are fully documented in the schema. The description adds no additional parameter meaning, which matches the baseline for high-coverage schemas.

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 (Estimate) and resource (annual PRO service cost). It is clear what the tool does, but it does not explicitly differentiate itself from the many other *_estimate sibling tools beyond the subject matter itself.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives like rent_estimate, setup_timeline_estimate, or legal_translation_estimate. No prerequisites or conditions are mentioned.

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

qfzp_checkB
Read-onlyIdempotent

Check QFZP eligibility for a free zone business.

Returns one of: not_eligible, potentially_qualifying, verify, with the reason. SaaS requires assessment of the counterparty, exclusions and any qualifying intellectual-property income.

NameRequiredDescriptionDefault
industryNogeneral
is_free_zoneNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and a closed-world scope, so the safety profile is covered. The description adds the fact that results enumerate three outcomes plus a reason and that SaaS income triggers counterparty/exclusion/IP assessment, but with an output schema present this return-value detail is largely redundant.

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 in one line, then adds the outcome set and a domain caveat in two tight sentences. Slight waste in restating the enumerated return values that the output schema already provides.

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

Completeness3/5

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

For a simple read-only check with an output schema and full annotation coverage, the definition is adequate, but it omits any explanation of its two input parameters. An agent can call it, but cannot reason about how industry or is_free_zone affect the verdict.

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

Parameters2/5

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

Schema description coverage is 0% for the two parameters (industry, is_free_zone), and the description never mentions either, so neither field's meaning or accepted values are explained anywhere. The description fails to compensate for the coverage gap.

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 and resource ('Check QFZP eligibility for a free zone business'), which is a distinct corporate-tax concept an agent can tell apart from eligibility-adjacent siblings like dul_eligibility or golden_visa_check. It does not explicitly name a sibling, so it falls short of a 5.

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

Usage Guidelines2/5

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

There is no guidance on when to invoke this check versus the other eligibility/compliance tools in the family (dul_eligibility, esr_status, golden_visa_check). The SaaS sentence hints at scope but is a domain caveat, not a when/when-not instruction.

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

qibla_directionA
Read-onlyIdempotent

Get the Qibla compass bearing from a given location toward Mecca.

NameRequiredDescriptionDefault
latitudeYesLatitude in decimal degrees.
longitudeYesLongitude in decimal degrees.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds that the bearing is computed from a location toward Mecca, but provides no additional behavioral context beyond what the annotations and schema already supply.

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?

The description is a single, front-loaded sentence with no wasted words. It states the operation, input source, and target efficiently.

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?

For a simple two-parameter read-only computation with an output schema and rich annotations, the description is complete enough. It need not explain return values because the output schema exists, and the annotations cover safety behavior.

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 latitude and longitude are fully documented in the schema. The description only says 'from a given location' and does not add syntax, coordinate system, or format details beyond the schema baseline.

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?

The description states a specific verb ('Get'), resource ('Qibla compass bearing'), source ('from a given location'), and target ('toward Mecca'). It is clearly distinguishable from siblings such as prayer_times_for or weather tools.

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 description implies the tool is used to obtain a Qibla bearing from coordinates, but it does not explicitly state when to use it versus alternatives or any prerequisites. Usage is inferable from the purpose, but no routing guidance is provided.

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

quran_ayahA
Read-onlyIdempotent

Get a single ayah by reference (e.g., "2:255" for Ayat al-Kursi).

NameRequiredDescriptionDefault
editionNoEdition slug. Default `quran-uthmani`.quran-uthmani
referenceYessurah:ayah (e.g., "2:255") or absolute ayah number.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint, and destructiveHint, fully covering the safety/behavior profile, so the description's burden is light. It adds nothing beyond that – no note on edition fallback behavior, missing-ayah handling, or external API dependence despite openWorldHint=true.

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 front-loaded sentence with zero waste; the resource and its scoping are stated before the illustrative example. Nothing extraneous.

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 simple single-verse lookup with an output schema present (so return shape need not be described) and 100% schema coverage, the description is largely sufficient. It is only slightly thin on distinguishing itself from the neighboring Quran tools.

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 reference format ("surah:ayah" or absolute number) and the edition slug with default are already documented in the schema. The description's example duplicates the schema's own example, adding no new parameter meaning. Baseline 3 is correct.

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 and resource ("Get a single ayah") and scopes it to a single verse by reference, which implicitly distinguishes it from quran_surah/quran_juz/quran_search. The inline example clarifies intent, but no sibling is named explicitly, so differentiation still requires inference.

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 implied by "a single ayah by reference" – the agent can infer this is for looking up one specific verse rather than a range or text search. However, it never states when to prefer quran_surah, quran_juz, or quran_search instead, nor any preconditions.

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

quran_juzB
Read-onlyIdempotent

Get a full juz (1 to 30) in a specific edition.

NameRequiredDescriptionDefault
numberYesJuz number, 1 to 30.
editionNoEdition slug. Default `quran-uthmani`.quran-uthmani

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds no behavioral context of its own (no return format, no pagination, no edition fallback behavior), which is acceptable but unremarkable given the annotation coverage.

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 short sentence with the scope constraint front-loaded and zero filler. Nothing could be removed 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?

An output schema exists, so return values need not be explained, and annotations carry the safety profile. The description is adequate for a simple read-only retrieval tool; only the routing relative to verse-level siblings is left implicit.

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 'number' (1-30) and 'edition' (default quran-uthmani) are fully documented in the schema itself. The description restates the 1-30 range and the edition concept without adding syntax or format detail, 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?

States a specific verb and resource ('Get a full juz') with the valid range (1 to 30) and the edition qualifier. An agent can distinguish it from the verse-level siblings, but it never names quran_surah/quran_ayah/quran_search to clarify the granularity boundary.

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

Usage Guidelines2/5

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

No when-to-use guidance and no mention of alternatives, even though the sibling list contains quran_surah, quran_ayah, and quran_search that overlap in domain. The agent must infer that this is for whole-juz retrieval rather than surah or single-ayah access.

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

quran_surahA
Read-onlyIdempotent

Get a full surah by number (1 to 114) in a specific edition.

NameRequiredDescriptionDefault
numberYesSurah number, 1 (Al-Fatiha) to 114 (An-Nas).
editionNoEdition slug. Default `quran-uthmani` (Arabic Uthmani). Common alternatives: `en.sahih` (Sahih International English), `en.pickthall`, `ur.jalandhry` (Urdu).quran-uthmani

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false, and openWorldHint, so the safety profile is fully covered without the description. The description adds no further behavioral context (no note on edition fallback, rate limits, or what happens with an invalid number), so it neither helps nor contradicts.

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 front-loaded sentence with no wasted words; the resource, the key constraint, and the variation axis all appear immediately.

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-only lookup with a 100%-covered schema and an output schema, the description covers everything needed to invoke it correctly. Only the sibling-routing guidance 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?

Schema description coverage is 100%, with the number range and edition slug alternatives already documented in the schema. The description merely restates both ("by number (1 to 114)", "in a specific edition") without adding format or validation detail, 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 gives a specific verb and resource ("Get a full surah") plus scope ("by number (1 to 114) in a specific edition"), which is more precise than the bare name. It does not explicitly name how it differs from quran_ayah or quran_search, though "full surah" implicitly distinguishes it from a single-verse lookup.

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: "full surah" suggests this is for retrieving an entire chapter rather than a verse (quran_ayah) or a search (quran_search), but no alternative is named and no condition for choosing between them is given.

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

recommend_toolsA
Read-onlyIdempotent

Recommend MCP-Dubai tools for a natural-language query.

Uses BM25 over every registered tool's name, description, and tags so the LLM can find the right tool without scanning the full catalogue.

NameRequiredDescriptionDefault
queryYesWhat you are trying to do, in plain English or Arabic.
top_kNoMaximum number of recommendations to return (default 5).

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnly, idempotent, non-destructive, closed-world, so safety is covered; the description adds genuinely new context by disclosing the ranking mechanism (lexical BM25 over name/description/tags), which tells an agent results are keyword-matched rather than semantically inferred. It does not mention ranking order or the limits of lexical matching, but the added context is substantial beyond the annotations.

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 short sentences with the action front-loaded and the mechanism as supporting detail; nothing is wasted or repeated.

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 an output schema present, the description needn't explain return values, and annotations cover the safety profile; parameters are fully documented in the schema. The remaining gap is the absence of guidance on how this discovery tool relates to sibling routing tools, but for a two-parameter lookup this is nearly complete.

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% and both parameters (query, top_k with default 5) are already documented in the schema. The description adds no format, length, or specificity guidance for the query beyond what the schema states, 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 verb and resource ('Recommend MCP-Dubai tools') plus the retrieval mechanism (BM25 over names, descriptions, tags), which is enough for an agent to know this is a meta-discovery tool rather than a domain lookup. It does not explicitly distinguish itself from sibling routing-style tools such as plan_query or list_features, which is the only thing keeping it off a 5.

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 clause 'so the LLM can find the right tool without scanning the full catalogue' implies the situation to use it (unknown tool choice, large catalogue) but never states when not to use it or names an alternative like plan_query or list_features. Usage is inferable rather than prescribed.

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

rental_dispute_guideA
Read-onlyIdempotent

Return the Rental Disputes Centre (RDC) filing guide.

If annual_rent is provided, also compute the filing fee (3.5% of annual rent, AED 500 floor, AED 20,000 cap).

NameRequiredDescriptionDefault
annual_rentNoOptional annual rent in AED to compute the filing fee.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and non-destructive behavior, so the safety profile is covered. The description adds genuinely new behavioral detail: the fee is computed only when annual_rent is supplied, using an explicit formula (3.5%, AED 500 floor, AED 20,000 cap). No contradiction with annotations.

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 short sentences with zero waste; the primary purpose is front-loaded and the conditional behavior follows immediately.

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?

An output schema exists, so return values need no explanation, and the one optional parameter plus its conditional fee logic are fully covered. Nothing an agent needs to invoke this read-only guide tool correctly is missing.

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 goes beyond the schema's terse 'optional annual rent' note by spelling out exactly what supplying it produces and the full fee formula. That is meaningful added semantics for the single optional parameter.

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 and resource — 'Return the Rental Disputes Centre (RDC) filing guide' — and describes the conditional fee computation. The resource is concrete and distinct from rental-adjacent siblings like ejari_guide or rera_rent_increase, though it never names or contrasts those alternatives explicitly.

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 for RDC filing questions, but there is no statement of when to prefer it over ejari_guide, rera_rent_increase, or other 'guide' siblings, and no exclusions or prerequisites.

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

rent_estimateA
Read-onlyIdempotent

Annual rent range (AED) for an area and bedroom size.

NameRequiredDescriptionDefault
areaNoArea name, case-insensitive (e.g. Dubai Marina, JLT, JVC).Dubai Marina
bedroomsNoOne of: studio, 1BR, 2BR.1BR

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare the tool as read-only, idempotent, non-destructive, and not open-world, so safety behavior is covered. The description adds that the value is an annual range in AED, but it does not disclose source, freshness, coverage assumptions, or limitations.

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?

The description is a single front-loaded sentence with no wasted words. For a simple lookup tool, this is appropriately concise.

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?

Given the simple two-parameter input, full schema coverage, annotations, and an output schema, the description is largely complete for calling the tool. The main omissions are provenance/freshness and explicit sibling-tool routing, which are secondary for this straightforward estimate.

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 area and bedrooms parameters are already well documented in the schema. The description restates both parameters but adds no extra syntax, constraints, or interpretation beyond the schema.

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 states a specific resource and metric: annual rent range in AED for an area and bedroom size. It is clear what the tool returns, though it does not explicitly differentiate itself from rental-related siblings such as dld_search_rent_contracts or rera_rent_increase.

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 implied by the description: estimate rent for a given area and bedroom size. However, there is no explicit guidance on when to use this versus alternatives or when not to use it.

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

rera_rent_increaseA
Read-onlyIdempotent

Compute the maximum legal rent increase under Dubai Decree 43 of 2013.

Maps how far the current rent sits below the area average market rent (RERA Rent Index) to the allowed increase slab and returns the gap percentage, the max increase percentage, and the max new rent.

NameRequiredDescriptionDefault
area_average_rentYesThe area average market rent in AED (RERA Rent Index).
current_annual_rentYesThe current annual rent in AED.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare the safety profile (readOnly, idempotent, non-destructive, closed-world), so the bar is lowered. The description earns credit beyond that by disclosing the underlying mechanism: it maps the gap versus the RERA Rent Index to the allowed 'increase slab' and reports gap %, max increase %, and max new rent, making the derivation transparent.

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?

Two short, front-loaded sentences that lead with the regulation and then the mechanism; no filler. It lightly describes return values that the output schema already covers, a minor redundancy, but the text is tight overall.

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 values need not be spelled out, and annotations carry the safety profile. The description covers purpose and methodology adequately; the only shortfall is the absence of invocation context relative to the many rental-domain siblings.

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%, with both required AED parameters documented in the schema, so the baseline is 3. The description adds no extra meaning (units, rounding, edge cases) beyond what the schema already 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 and resource ('Compute the maximum legal rent increase') tied to a named regulation (Dubai Decree 43 of 2013), so the agent knows exactly what computation runs. It does not explicitly name or contrast the nearest sibling (rent_estimate/rental_dispute_guide), so it stops short of the top band.

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 use case is inferable from the domain ('maximum legal rent increase' when a tenancy renewal is in question), but there is no explicit when-to-use, no when-not, and no routing to alternatives such as rent_estimate or rental_dispute_guide. Usage is implied rather than stated.

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

rta_gtfs_static_urlA
Read-onlyIdempotent

Return download details for the RTA GTFS static feed.

The direct file download is anonymous (a 7z archive, no credentials); only the credentialed query API requires OAuth. The old Transitland mirror is dead (HTTP 401, 2021-era data). No GTFS-RT (real-time) feed exists for Dubai RTA.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.1/5.0
Behavior5/5

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

Beyond the readOnly/idempotent annotations, the description discloses the credential model (anonymous 7z download, OAuth only for the query API), a dead alternate source (Transitland mirror returning 401 with 2021-era data), and the absence of any real-time feed. These are actionable facts an agent cannot infer from the schema or annotations.

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?

The purpose is front-loaded and each following sentence carries a distinct fact (auth model, dead mirror, no RT feed). It is slightly longer than the minimum but nothing 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 an output schema present and no parameters, the description need not explain return values or inputs. It covers the access/auth situation, a deprecated alternative, and feed scope, leaving no obvious question for the caller.

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?

There are zero parameters, so the baseline is 4 and there is nothing parameter-wise for the description to add or omit. No syntax detail is required.

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 first sentence gives a specific verb and resource ('Return download details for the RTA GTFS static feed'), which is unambiguous. It does not explicitly name a sibling or contrast itself with the rta_* tools, so it stops short of a 5, but the resource is distinctive enough that an agent can place it.

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 implied by the resource name rather than stated. There is no explicit 'use this when...' and no named alternative tool, though the note that no GTFS-RT feed exists faintly bounds the use case. Adequate but with a clear gap.

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

rta_salik_tariffA
Read-onlyIdempotent

Return Salik toll tariff reference data.

Tier 1, requires Dubai Pulse credentials.

From 2026-06-01 a 5% VAT applies to tolls and tag activation fees (AED 4 becomes AED 4.20, peak AED 6 becomes AED 6.30); the response includes the VAT-inclusive amounts.

Only the tariff is public. Account balances, trips, and violations are NOT exposed via any public API.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior5/5

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

Annotations already declare read-only, idempotent, open-world, non-destructive, so the safety profile is covered. The description adds genuinely non-redundant behavior: the credential tier, the 2026-06-01 5% VAT change with concrete before/after amounts, and the fact that returned amounts are VAT-inclusive.

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, front-loaded with the purpose, then credential requirement, then the VAT detail, then the scope limitation. Every sentence carries information an agent needs; the VAT parentheticals are specific 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 zero params, an output schema present, and rich annotations, the description only needs to supply credentials, timing nuance, and scope. It does all three, so nothing an agent needs to call this correctly is missing.

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?

There are zero parameters and the schema forbids additional properties, so the baseline is 4. The description correctly adds nothing about parameters because none exist, leaving no semantic gap.

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 and resource ('Return Salik toll tariff reference data'), which is clearly distinct from the sibling estimator tool salik_toll_estimate. However, it never names that sibling or explicitly contrasts reference data with an estimate, so the differentiation is inferred rather than stated.

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 clear precondition ('Tier 1, requires Dubai Pulse credentials') and a scope exclusion ('Account balances, trips, and violations are NOT exposed via any public API'), which steers the agent away from expecting account-level data. It does not name an alternative tool for estimates or violations, so guidance is contextual but not a full when/when-not routing.

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

rta_search_bus_routesC
Read-onlyIdempotent

Search Dubai bus routes via Dubai Pulse.

Tier 1, requires Dubai Pulse credentials.

NameRequiredDescriptionDefault
limitNo
originNo
route_numberNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety behavior is covered. The description adds genuinely new behavioral context by disclosing the credential/Tier-1 requirement, but says nothing about pagination, the meaning of limit, or the shape of results for an open-world remote source.

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?

Two short sentences with the core purpose front-loaded and no filler. It is efficient, though arguably under-specified rather than tight — the credential note is useful but the whole definition is very thin for a 3-parameter tool.

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

Completeness2/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 values need not be explained. But with three fully undocumented parameters, no usage guidance, and no sibling differentiation, the definition leaves significant gaps for an agent deciding whether and how to call it.

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

Parameters2/5

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

Schema description coverage is 0% and the three parameters (limit, origin, route_number) are completely undocumented in both schema and description. The description gives no hint that origin and route_number act as optional filters or that limit caps result count, leaving the agent to guess parameter intent entirely.

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 and resource ('Search Dubai bus routes') plus the underlying data source (Dubai Pulse), so the agent knows what is being queried. However, it makes no attempt to differentiate from adjacent RTA siblings such as rta_search_metro_stations or rta_gtfs_static_url, which an agent with ~100 siblings would benefit from.

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

Usage Guidelines2/5

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

The only guidance is the prerequisite 'Tier 1, requires Dubai Pulse credentials', which tells the agent about access requirements but not when to select this tool over metro station search or the GTFS static URL. There is no explicit when-to-use, when-not-to-use, or alternative routing.

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

rta_search_metro_stationsA
Read-onlyIdempotent

Search Dubai Metro stations via Dubai Pulse.

Tier 1, requires Dubai Pulse credentials.

Covers operating lines only. Blue Line (under construction, opening 2029-09-09) and Gold Line (approved 2026, opening 2032-09-09) stations are not in the dataset yet.

NameRequiredDescriptionDefault
lineNoOptional line filter (Red, Green, Route 2020).
limitNoMax records.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds genuinely new behavioral context: the credential/tier requirement and the fact that Blue and Gold Line stations are absent from the dataset, which prevents the agent from wrongly concluding a station doesn't exist.

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?

Three short, front-loaded sentences with no filler: purpose, access requirement, coverage caveat. The construction-date details for Blue/Gold Line are slightly verbose but they directly justify why those lines are missing.

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 an output schema present, return values need not be described. The description covers the source, the access tier, and the dataset boundary — everything an agent needs beyond the structured fields to call this correctly.

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% — the schema already documents 'line' (Red, Green, Route 2020) and 'limit' (max records). The description adds no syntax or format guidance beyond that, 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 verb+resource ('Search Dubai Metro stations') and names the upstream source (Dubai Pulse), so the agent knows exactly what data is returned. Sibling differentiation is only implicit — it doesn't say it is the metro counterpart to rta_search_bus_routes — but the resource is unambiguous.

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?

It gives prerequisites ('Tier 1, requires Dubai Pulse credentials') and a scope constraint ('operating lines only'), which tells the agent when this tool is valid. However, it never names an alternative tool or states when not to use it (e.g. vs rta_search_bus_routes or rta_gtfs_static_url), so routing guidance is only implied.

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

salik_toll_estimateA
Read-onlyIdempotent

Deterministic Salik toll (AED) for a time of day using the official variable-pricing windows. Figures are VAT-inclusive (5% VAT applies at the point of use from 2026-06-01).

NameRequiredDescriptionDefault
dayNo'weekday' or 'sunday' (Sunday has a flat toll outside the free window).weekday
time_of_dayNo24-hour HH:MM, e.g. '08:00'.08:00

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, closed-world safety. The description adds genuinely new context: results are deterministic (no rate fluctuation or randomness), figures are VAT-inclusive, and the 5% VAT rule takes effect from 2026-06-01 — a time-dependent behavior an agent could not get from the schema. It stops short of stating what happens in the free window or which timezone applies.

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?

Two sentences, front-loaded with the core output and currency, followed by the VAT qualifier. No wasted text; the parenthetical VAT note is dense but earns its place. Slight loss for the line-wrapped formatting that makes the qualifier feel like an afterthought.

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-value explanation is unnecessary, and the tool is a cheap read with only two optional parameters. The remaining gap is minor but real: no statement about timezone assumptions or behavior inside the free window, which matters for a toll estimator.

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 parameters (day, time_of_day) are already documented with defaults and allowed values. The description reinforces the temporal framing but adds no syntax or edge-case detail beyond the schema. 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 verb+resource: returns a deterministic Salik toll in AED for a given time of day, computed from the official variable-pricing windows. That is concrete and actionable. It does not, however, contrast itself with the sibling rta_salik_tariff, so the agent must infer which of the two to call.

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: it is the tool to call when a specific toll amount for a specific time is needed. There is no explicit 'use this instead of rta_salik_tariff when...' routing, no mention of prerequisites, and no statement of what the tool does not cover (e.g. multiple gates, monthly passes).

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

school_fee_estimateB
Read-onlyIdempotent

British-curriculum annual school fee range plus the KHDA fee rules, including the 2026-27 fee freeze (no increase allowed that year).

NameRequiredDescriptionDefault
stageNoOne of: foundation_primary, primary, secondary.primary

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so safety is covered. The description contributes real domain behavior by stating that the output is a range (not a precise figure) and that KHDA fee rules incl. the 2026-27 freeze are baked in, but it says nothing about where the numbers come from, how current they are, or whether non-British curricula are excluded.

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 dense sentence with no filler, and the most decision-relevant element (annual fee range, British curriculum) is front-loaded. It is a sentence fragment rather than a stated action, which slightly weakens it.

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

Completeness3/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 need not be explained, and annotations cover the safety profile. However, for a cost-estimate tool the description leaves open whether the result covers one school, a cohort of schools, or a typical range, and how it relates to the sibling khda school-lookup tools — a gap the agent must guess at.

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 single 'stage' parameter is documented in the schema with an enum list and a default, so the description need not restate it. It does implicitly constrain the domain to British-curriculum (relevant to the stage values), but adds no new parameter meaning. Baseline 3 applies when the schema does the heavy lifting.

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 states a concrete deliverable: an annual fee range for British-curriculum schools plus the applicable KHDA fee rules, with the 2026-27 freeze called out. An agent can tell this apart from khda_search_school or khda_list_curricula, though the description never uses an explicit verb (estimate/return) and never names the sibling it replaces.

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

Usage Guidelines2/5

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

There is no when-to-use statement, no prerequisites, and no routing to or away from alternatives such as khda_search_school (for finding a specific school) or rent_estimate/dewa_bill_estimate for other cost categories. The scope is implied by the subject matter only.

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

setup_advisorA
Read-onlyIdempotent

Recommend the best jurisdiction for setting up a business in Dubai.

Cross-references curated free zones, visas, banks, and tax rules (the headline biz/* feature). Returns a ToolResponse envelope with a structured recommendation: jurisdiction (mainland, an eligible free zone with the applicable DET licence or permit, or offshore), candidate free zones, reasoning, warnings, estimated cost range, timeline, and next steps. Always returns a knowledge block with its latest recorded date, any targeted scope, volatility, verify_at, and disclaimer.

NameRequiredDescriptionDefault
activityYesBusiness activity description (e.g., "SaaS", "consulting", "trading", "ecommerce").
industryNoIndustry category. One of: general, saas, tech, ecommerce, consulting, fintech, ai, blockchain, crypto, trading, import_export, manufacturing, logistics, healthcare, media, education, real_estate, fb, retail.general
budget_aedYesTotal first-year budget in AED for setup, license, visas, and bank account.
needs_visaNoTrue if the founder needs a UAE residence visa from this license.
visa_countNoHow many visas the company needs in total.
needs_local_tradeNoTrue if the business expects to conduct customer-facing or other licensed activity onshore in Dubai.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare it read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real behavioral context beyond that: the ToolResponse envelope, the specific recommendation fields (jurisdiction, candidates, warnings, cost range, timeline, next steps), and the always-present `knowledge` block with volatility/verify_at/disclaimer metadata.

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?

Purpose is front-loaded in the first sentence, followed by feature scope and a compact return-shape summary. Every sentence carries information; nothing is 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?

With an output schema present and rich annotations, the description needn't explain return values, yet it still summarizes them usefully and covers the knowledge/verification caveats. The only real gap is the absent routing guidance against near-identical siblings.

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 every parameter is already documented in the schema with defaults and the industry enum spelled out. The description adds no input-parameter meaning of its own, 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 specific verb and resource: 'Recommend the best jurisdiction for setting up a business in Dubai.' It is unmistakably a recommendation/setup tool, but it never differentiates itself from close siblings such as analyze_setup_decision, compare_free_zones, or setup_timeline_estimate, so an agent still has to guess at routing.

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

Usage Guidelines2/5

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

The description gives no when-to-use, when-not, or alternative guidance. It bills itself as 'the headline biz/* feature' but that is promotional rather than a routing rule, leaving the agent to infer whether this supersedes or complements the many other setup-related siblings.

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

setup_timeline_estimateB
Read-onlyIdempotent

Return realistic end-to-end timelines for a Dubai setup.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior2/5

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

Annotations already carry the full safety profile (readOnlyHint, idempotentHint, destructiveHint=false, openWorldHint=false), and the description adds nothing beyond a restatement of the output type. It omits meaningful behavioral context such as whether the timeline is deterministic, what assumptions it encodes (free zone vs mainland, visa vs licence phases), or the granularity of the estimates.

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 front-loaded sentence with no filler, preamble, or repetition of the tool name. Nothing in it is wasted, even if the content is thin.

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

Completeness3/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-value explanation is not required, and the absence of parameters limits what must be documented. Still, for a tool sitting among many overlapping setup/estimate siblings, the description does not say which setup phases or assumptions the timeline covers, leaving the agent to infer scope.

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 tool takes zero parameters, so there are no parameter semantics for the description to clarify; this is the baseline 4 case. Schema description coverage is also reported as 100%, leaving nothing for the description to compensate for.

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 verb (Return) and resource (realistic end-to-end timelines) scoped to Dubai setup, which is more precise than a bare restatement of the name. However, it never differentiates itself from closely related siblings such as setup_advisor, analyze_setup_decision, pro_services_estimate, or einvoicing_timeline, so an agent must guess which timeline/estimate tool applies.

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

Usage Guidelines2/5

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

There is no statement of when to use this tool, when not to, or which sibling to prefer for adjacent questions (e.g. setup_advisor vs pro_services_estimate vs einvoicing_timeline). Usage is only inferable from the name and the phrase 'Dubai setup', which is minimal guidance.

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

startup_eventsB
Read-onlyIdempotent

List Dubai and UAE startup and tech events.

NameRequiredDescriptionDefault
categoryNoOptional substring filter on event type or name.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered by structured data. The description adds only the geographic scope and topic, with nothing about result volume, ordering, or freshness; with annotations and an output schema present, a 3 is appropriate.

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 front-loaded sentence with no filler. The scope (Dubai and UAE) and the resource are stated immediately, which is exactly what an agent needs to route the call.

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 simple, read-only list tool with full annotation coverage, a complete output schema, and a documented parameter, the description supplies the essential subject and scope. Only minor details such as result ordering or typical volume are absent, and those are largely covered by the output 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% and there is a single optional category parameter already documented as a substring filter. The description does not mention the filter at all, so it adds no meaning beyond the schema; 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 verb (List) plus a well-scoped resource (Dubai and UAE startup and tech events), which is unambiguous about what comes back. It does not explicitly differentiate from event-adjacent siblings such as gitex_info or ens_calendar, but the domain is distinct enough that confusion is unlikely.

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

Usage Guidelines2/5

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

There is no when-to-use statement, no exclusions, and no pointer to an alternative tool. The agent must infer from the name alone that this is the tool for discovering startup/tech events rather than, say, gitex_info or ens_calendar.

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

submission_guideA
Read-onlyIdempotent

Return submission guidance for Create Apps Championship.

Includes evaluation criteria, application URL, and the full program list (Championship, Emirati Training Academy, Learning Lab).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior3/5

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

Annotations already declare read-only, idempotent, closed-world, and non-destructive behavior, so the safety profile is covered. The description adds the content dimensions of the response (evaluation criteria, application URL, program list), but it does not add behavioral context such as caching, permissions, or rate limits. With full annotation coverage, this is adequate but not rich.

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?

The description is two short sentences with the primary purpose front-loaded and a compact list of returned contents. It is appropriately sized for a zero-parameter informational tool and contains no 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?

Because the tool takes no parameters and has an output schema, the description only needs to establish purpose and scope. It does that and names the specific response contents, so an agent has enough information to call it correctly.

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 tool has zero parameters, so per the baseline rule parameter semantics starts at 4. There is no parameter behavior to explain, and the description correctly does not pretend otherwise.

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 states a specific verb and resource: return submission guidance for Create Apps Championship. It also lists what the guidance includes, so the agent can understand the tool's purpose without opening the schema. It does not explicitly distinguish itself from nearby siblings such as createapps_championship or dcde_programs.

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 implied by the specific purpose: this is the tool for submission guidance. However, the description gives no explicit when-to-use guidance, no exclusions, and no named alternative such as createapps_championship for related program information.

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

synthesize_reportA
Read-onlyIdempotent

Build a structured Markdown report from named sections.

The freshness footer lists only caller-declared source domains with their recorded update and full-review dates. Omitted sources leave report freshness unverified.

NameRequiredDescriptionDefault
titleYesReport title.
sectionsNoList of {heading, body} dicts. Each becomes an H2 section.
domains_referencedNoKnowledge domain names actually used in the report.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, non-destructive, closed-world behavior, so the bar is lower. The description adds genuinely new context beyond them: a freshness footer is emitted, it lists only caller-declared domains with update and full-review dates, and omitting sources degrades verification. That is meaningful output-side behavior disclosure.

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 short paragraphs, purpose front-loaded in the first sentence, with the second paragraph supplying consequence detail. No filler or restated boilerplate; every sentence carries information.

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 an output schema present, return values need not be described, and the three parameters are fully documented in the schema. The description covers purpose, inputs, and the notable footer side-effect, leaving only minor items (e.g., section formatting constraints, null-section behavior) unstated.

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. The description still adds meaning beyond the schema by explaining that 'caller-declared source domains' drive the freshness footer and that omissions leave freshness unverified, which gives the agent a reason to populate domains_referenced rather than leave its null default.

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 (Build) plus resource (structured Markdown report) and scope (from named sections). An agent knows exactly what it produces. There is no close sibling producing reports, so the lack of explicit sibling differentiation is a minor gap rather than a defect.

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: the footer paragraph tells the agent that omitting source domains leaves report freshness unverified, which indirectly signals that domains_referenced should be supplied. There is no explicit 'use this when / use X instead' routing, but no sibling overlaps enough to make that critical.

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

trademark_registrationA
Read-onlyIdempotent

Return UAE trademark registration steps, fees, and timeline.

The IP authority is MOET (Ministry of Economy and Tourism, formerly Ministry of Economy). Cabinet Resolution 102 of 2025 introduced new fees with a 50% reduction for members of the UAE National Programme for SMEs.

NameRequiredDescriptionDefault
is_smeNoTrue only for a qualifying member of the UAE National Programme for SMEs.
expeditedNoTrue to replace the AED 750 regular examination with the AED 2,250 one-day expedited examination (AED 1,500 net surcharge).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.3/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive, and openWorldHint=false. The description adds regulatory context beyond annotations: the authority is MOET and Cabinet Resolution 102 of 2025 introduced new fees with a 50% SME reduction, which helps the agent explain fee differences. It does not cover rate limits or auth needs, but for a static read-only info tool that is reasonable.

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-loads the core action in the first sentence, then uses the second paragraph for relevant regulatory context. No wasted words; the structure aids scanning.

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?

For a simple read-only knowledge tool with full schema descriptions, clear annotations, and an output schema, the description supplies the essential purpose and regulatory context. Nothing critical is missing for correct invocation.

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 description coverage is 100%, so baseline is 3. The description adds material meaning beyond the schema for the is_sme parameter by explaining that qualifying SMEs receive a 50% fee reduction, though it does not add meaning for the expedited parameter.

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 ('Return'), resource ('UAE trademark registration'), and scope ('steps, fees, and timeline'). Although it does not name a sibling, the narrow trademark-registration focus implicitly separates it from broader siblings like ip_protection.

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 implied by the purpose statement, but the description gives no explicit when-to-use guidance, no exclusions, and does not name alternatives (e.g., ip_protection) for broader IP questions. The regulatory context helps interpret the result but does not route the agent among tools.

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

uae_holidaysA
Read-onlyIdempotent

List all UAE federal public holidays for a Gregorian year.

Lunar holidays (Eid al-Fitr, Eid al-Adha, Hijri New Year, Mawlid, Arafat Day) are returned with provisional: true until the relevant MOHRE and FAHR observance circulars are published. Every lunar record carries official_observance_announced; false identifies a religious- date candidate rather than a confirmed day off.

NameRequiredDescriptionDefault
yearNoGregorian year. Defaults to the current year in Asia/Dubai. Currently 2026 and 2027 are shipped (2027 lunar dates are astronomical expectations).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already establish read-only, idempotent, non-destructive behavior, but the description adds valuable data-quality context: lunar holidays are provisional until MOHRE/FAHR circulars are published, and official_observance_announced=false identifies a candidate rather than a confirmed day off. It does not cover rate limits or auth, but the provisional-status caveat is meaningful beyond the annotations.

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?

The purpose is front-loaded in the first sentence, and the second paragraph explains the non-obvious provisional-flag behavior. It is appropriately sized, though the lunar-holiday caveat could be tightened slightly.

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 and annotations cover safety traits, so the description need not explain return values. It completes the picture by explaining the provisional and official_observance_announced semantics, which are essential for correct interpretation of lunar holiday records.

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% and the single parameter is fully documented in the schema, including the Asia/Dubai default and 2026/2027 coverage. The description adds no parameter syntax or constraints beyond what the schema already provides, 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?

The description states a specific verb and resource: 'List all UAE federal public holidays for a Gregorian year.' This clearly distinguishes the tool's scope from next-holiday or single-date tools, though it does not explicitly name sibling alternatives like uae_next_holiday or is_uae_holiday.

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 implied by 'for a Gregorian year,' but the description provides no explicit when-to-use guidance, no exclusions, and no routing to alternatives such as uae_next_holiday or is_uae_holiday.

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

uae_next_holidayA
Read-onlyIdempotent

Find the next confirmed UAE public holiday on or after a reference date.

An earlier unannounced lunar-date candidate is returned separately as next_provisional_candidate; it is not presented as a confirmed day off.

NameRequiredDescriptionDefault
from_date_strNoISO date YYYY-MM-DD. Defaults to today.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4/5.0
Behavior4/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 genuinely useful behavior beyond that: it discloses that an earlier unannounced lunar-date candidate is returned separately as `next_provisional_candidate` and is deliberately not treated as confirmed, which the agent could not learn from annotations alone.

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 short sentences, front-loaded with the core action and followed by the one caveat that matters. Nothing is padded.

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 formatting need not be explained, and the description covers the one subtlety an agent must know (confirmed vs provisional). Complete for a single-optional-parameter read tool, with only the sibling routing left implicit.

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% and the single parameter already documents 'ISO date YYYY-MM-DD. Defaults to today.' The description adds only the notion of a 'reference date' that the search starts from, which is a marginal restatement rather than new semantics.

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 ('Find the next confirmed UAE public holiday') plus the scoping condition ('on or after a reference date'). The word 'next' plus 'confirmed' implicitly distinguishes it from the broader uae_holidays and the boolean is_uae_holiday without ambiguity.

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 implied by the phrase 'on or after a reference date,' and the second sentence clarifies what the tool does and does not present as a day off. However, it never explicitly names when to prefer this over uae_holidays or is_uae_holiday, leaving the agent to infer the routing.

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

uae_weatherA
Read-onlyIdempotent

Current weather and today's high/low for a UAE city (no API key needed).

Covers plain temperature, feels-like, humidity, wind, and conditions, the everyday weather that the METAR/TAF aviation_weather tools do not present in a human-friendly way.

NameRequiredDescriptionDefault
cityNoA UAE city. Supported: Dubai, Abu Dhabi, Sharjah, Ajman, Ras Al Khaimah, Fujairah, Umm Al Quwain, Al Ain.Dubai

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so safety is covered. The description adds one useful non-annotation detail — 'no API key needed' — plus an enumeration of returned fields, but says nothing about rate limits, caching, or error behavior.

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 short sentences, zero filler, with the core purpose and the differentiator front-loaded. Every clause earns its place.

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 values need no explanation, and annotations carry the safety profile. The only real gap is that the description does not route against the forecast/coords weather siblings, leaving that selection to the agent.

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% and the schema already documents the single `city` parameter with its default and the full supported-city list. The description only restates 'for a UAE city', adding no syntax or format detail 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 specific verb and resource ('current weather and today's high/low for a UAE city') and explicitly distinguishes itself from the METAR/TAF aviation weather tools. However, it does not name the sibling uae_weather_forecast, so an agent must still infer the boundary between 'today's high/low' and a forecast tool.

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?

It gives an implied usage rule by contrasting itself with the aviation `weather_uae_icao`/`weather_uae_all` tools ('human-friendly' everyday weather), which is genuine routing guidance. But it never mentions the closer alternatives uae_weather_forecast or weather_by_coords, and there are no explicit when-not conditions.

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

uae_weather_forecastB
Read-onlyIdempotent

Multi-day daily weather forecast for a UAE city (no API key needed).

NameRequiredDescriptionDefault
cityNoA UAE city (see `uae_weather`).Dubai
daysNoNumber of forecast days, 1 to 16 (clamped to range).

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnly, idempotent, openWorld and non-destructive, and an output schema exists, so the safety/format profile is covered structurally. The description adds 'no API key needed', which usefully signals no auth setup, but omits rate limits, forecast freshness, or error behavior.

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 wasted words. The parenthetical is efficient, though the description is arguably too terse to carry routing guidance.

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

Completeness3/5

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

Output schema and rich annotations cover return values and safety, and the schema documents both params, so the description is only required to add routing context. It largely fails to do so, leaving no explicit differentiation from the several other weather tools.

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%: city and days are both documented with defaults and the 1–16 clamping rule. The description adds no parameter detail beyond what the schema provides, 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 verb+resource: a multi-day daily weather forecast for a UAE city. This is clear enough to separate it from a current-conditions tool, but it never explicitly names the sibling it differs from (e.g. uae_weather, weather_by_coords, weather_uae_icao), so an agent must infer the distinction.

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 'multi-day' implies when this tool is chosen over a current-conditions sibling, but no when-to-use, when-not, or alternative is stated. Usage is left to inference from the sibling list.

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

ubo_filing_guideA
Read-onlyIdempotent

Return UBO (Ultimate Beneficial Owner) filing requirements.

Cabinet Decision 109 of 2023, in force since 16 November 2023 (it superseded Cabinet Decision 58 of 2020). 25% threshold. 15-day update window. Administrative penalties come from Cabinet Decision 132 of 2023 and are graduated: warning, then up to AED 50,000, then up to AED 100,000.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.2/5.0
Behavior4/5

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

While annotations confirm safety (readOnlyHint=true), the description adds behavioral context by specifying the data's nature, such as the legal source (Cabinet Decision 109), the effective date, and the specific penalty structure. This informs the agent of the data quality and scope.

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?

The description is dense, but every piece of information (the decision number, date, threshold, penalty figures) is highly relevant and critical knowledge. It is not wasted content, even if it is long.

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?

The description is maximally complete for a knowledge-based lookup tool. It provides the full context of the regulatory requirements, including superseding laws and administrative penalties, which is likely all an AI agent would need to fulfill a complex user query.

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?

There are zero input parameters and the schema coverage is 100%. Therefore, the baseline score of 4 applies. The description does not need to elaborate on parameters that do not exist.

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?

The purpose is stated explicitly: 'Return UBO (Ultimate Beneficial Owner) filing requirements.' This is precise and clearly differentiates this knowledge retrieval tool from the massive list of sibling operational and market-data tools.

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 tool provides excellent content but poor guidance on intent. It does not instruct the agent on *when* to use this tool versus general regulatory search tools, although its highly specific topic implies a narrow usage.

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

vat_filing_calendarA
Read-onlyIdempotent

Determine the UAE VAT registration requirement and filing frequency.

Treats the input as taxable supplies and imports in the past 12 months: mandatory above AED 375,000, voluntary above AED 187,500. Filing frequency is indicative; the FTA assigns the actual period. Standard rate is 5%. Includes the Federal Decree-Law 16 of 2025 amendments effective 1 January 2026 (reverse-charge invoicing, 5-year VAT credit carry-forward cap, evasion-linked input VAT denial).

NameRequiredDescriptionDefault
annual_revenue_aedYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.8/5.0
Behavior4/5

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

Annotations already declare read-only, idempotent, non-destructive and closed-world, so the safety profile is covered. The description adds real substance beyond that: the AED 375,000/187,500 thresholds, the caveat that filing frequency is indicative with the FTA assigning the actual period, the 5% standard rate, and the 2026 legal amendments. It stops short of stating the output shape (though an output schema exists).

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 core purpose, then thresholds, then the legal caveat. Every sentence carries information relevant to invoking the tool correctly. The legal-amendment tail is dense but defensible for a compliance tool.

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 values need not be described, and annotations cover safety. The description supplies thresholds, rate, and the FTA-discretion caveat an agent would need. The only gap is the slight disconnect between the 'calendar' framing and the actual registration/frequency content.

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?

With one parameter and 0% schema description coverage, the description has to compensate, and it does: 'Treats the input as taxable supplies and imports in the past 12 months' explains what annual_revenue_aed represents and the basis for evaluation. It does not disambiguate units/scope (e.g. imports-only vs combined) explicitly, keeping it below full marks.

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 and resource: 'Determine the UAE VAT registration requirement and filing frequency.' This is clearly distinguishable from siblings since no other tool covers VAT registration. Minor friction: the name references a 'calendar' yet the description covers no actual deadlines/dates, so purpose and name are slightly out of step.

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?

No explicit when-to-use statement or exclusion criteria, and no sibling is referenced (e.g. corporate_tax_estimate or einvoicing_timeline). Usage is only implied by the description of the input basis ('taxable supplies and imports in the past 12 months'). An agent can infer context but is not routed.

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

vc_listB
Read-onlyIdempotent

List active UAE / MENA VCs by stage and sector.

NameRequiredDescriptionDefault
stageNoOptional stage focus, one of: pre_seed, seed, series_a, series_b, growth.
sectorNoOptional sector substring (e.g., "fintech", "saas").

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior3/5

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

The annotations already establish that this is a read-only, idempotent, non-destructive, closed-world operation. The description adds only the useful scope qualifier that it lists 'active' VCs, without explaining result shape, filtering behavior, or pagination; this is adequate but limited given the annotation coverage.

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?

The definition is a single front-loaded sentence with no wasted words. It communicates the resource and the two filter dimensions immediately.

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?

Given the simple read-only nature, full schema descriptions, annotations, and an output schema, the description is largely sufficient for correct invocation. Its main omission is routing guidance versus similar discovery tools, which is reflected in the usage dimension.

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%, with both optional parameters clearly documented. The description restates that filtering is available 'by stage and sector,' but adds no syntax, format, or edge-case guidance beyond what the schema already 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?

The description gives a specific verb and resource: 'List active UAE / MENA VCs' with filtering by stage and sector. It is clear what the tool does, though it does not explicitly distinguish itself from nearby tools such as accelerator_search or grant_programs.

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

Usage Guidelines2/5

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

It implies the tool is used to list VCs, but provides no explicit when-to-use guidance, prerequisites, or alternatives. There is no statement about when to use this versus accelerator_search or other discovery tools.

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

visa_detailsA
Read-onlyIdempotent

Get the full curated record for a single UAE visa type.

NameRequiredDescriptionDefault
visa_idYesVisa id slug. Examples: "investor_partner", "property_investor_2yr", "employment", "golden_specialized_talent", "golden_investor_real_estate", "golden_entrepreneur", "green_skilled_employee", "green_freelancer", "freelance_permit", "virtual_working", "retirement", "family_dependent", "tourist_30", "tourist_60", "visa_on_arrival".

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/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 only the phrase 'full curated record', conveying that this returns comprehensive detail rather than a summary; it says nothing about auth, caching, or failure behavior for unknown slugs.

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 front-loaded sentence with zero waste. Nothing to trim and the key qualifier (single, curated) appears early.

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 an output schema to describe the return shape, a fully documented single parameter, and annotations covering safety, the description is largely sufficient. It would be stronger if it pointed at list_visa_types as the way to obtain valid visa_id values.

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 visa_id property carries an extensive list of example slugs, so the schema carries the semantic load. The description adds nothing about the parameter beyond what the schema already documents; 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 states a specific verb (Get) and resource (full curated record for a single UAE visa type), and the word 'single' distinguishes it from a listing tool. However, it never names list_visa_types or visa_recommend, so sibling differentiation is left to inference.

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?

Implicit usage: an agent can infer this is a detail-lookup that requires a known visa_id (as opposed to list_visa_types or visa_recommend). There is no explicit when-to-use/when-not statement or reference to the alternative tools.

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

visa_recommendB
Read-onlyIdempotent

Recommend a UAE visa type for a given founder/employee profile.

NameRequiredDescriptionDefault
ageNoAge in years (used for retirement visa).
profileYesOne of: founder, salaried_employee, freelancer, remote_worker, investor, real_estate_investor, specialized_talent, spouse_or_dependent, retiree, tourist.
has_uae_employerNoTrue if there is a UAE-registered employer.
annual_income_aedNoAnnual income in AED for freelancer profiles.
duration_years_minNoOptional minimum residency duration.
monthly_salary_aedNoMonthly salary in AED for preliminary screening.
has_uae_trade_licenseNoTrue if the user already holds a UAE trade license.

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already establish that this is a read-only, idempotent, non-destructive operation. The description adds no behavioral context beyond that, such as whether the recommendation is advisory only, what factors influence the output, or any limitations. With annotations covering the safety profile, a 3 is the minimum viable score.

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?

The description is a single front-loaded sentence with no wasted words. It is appropriately sized for a simple recommendation tool.

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

Completeness3/5

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

The description covers the basic purpose and required input, and an output schema exists so return values need not be explained. However, it omits guidance on when to use this tool instead of sibling visa tools, leaving a gap in an environment with many related tools.

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 the input schema already documents all seven parameters thoroughly. The description only mentions 'profile' and does not add extra meaning or constraints beyond what the schema provides. Baseline of 3 applies when the schema does the heavy lifting.

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 states a specific verb and resource: 'Recommend a UAE visa type' for a founder/employee profile. It clearly identifies the tool's purpose without being tautological. However, it does not explicitly distinguish itself from sibling tools like list_visa_types, visa_details, or golden_visa_check.

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

Usage Guidelines2/5

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

The description gives no when-to-use or when-not-to-use guidance and does not mention alternatives. It only states the input context ('for a given founder/employee profile'), leaving the agent to infer when this tool is preferred over related visa tools.

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

weather_by_coordsA
Read-onlyIdempotent

Current weather plus a short forecast for any latitude/longitude.

NameRequiredDescriptionDefault
daysNoNumber of forecast days, 1 to 16 (clamped to range).
latitudeYesLatitude, -90 to 90.
longitudeYesLongitude, -180 to 180.

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered. The description adds only that the response contains current conditions plus a short forecast, which is useful but thin given an output schema is present.

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 compact sentence with the resource stated first and no filler. Nothing is wasted and it is fully 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 rich annotations, a complete input schema and an output schema, the description only needs to state what the tool returns and its coordinate scope, which it does. The remaining gap is routing guidance between this and the several UAE-specific weather siblings.

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% with clear lat/long bounds and the 'days' range documented in the schema. The description adds no coordinate format, units, or default-day detail beyond that, 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 verb+resource ('Current weather') plus a scope qualifier ('any latitude/longitude') and mentions a forecast component. It implicitly distinguishes itself from the UAE-specific siblings (uae_weather, weather_uae_icao), but never names an alternative, so the differentiation is left to inference.

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?

No explicit when-to-use or when-not-to-use statement. The phrase 'any latitude/longitude' implies this is the generic/global coordinate-based option versus the UAE-only weather tools, but the agent must infer that routing decision without confirmation.

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

weather_uae_allA
Read-onlyIdempotent

Get METAR observations for all 6 UAE airports in a single call.

NameRequiredDescriptionDefault
include_tafNoIf True, also fetch TAF forecasts (slower).

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, openWorldHint and destructiveHint=false, so the safety profile is fully covered without the description. The description adds only the batch-efficiency trait ('all 6 ... in a single call'); the TAF slowness note lives in the schema, not the description. Useful but modest added value.

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?

One sentence, front-loaded with the verb and resource, with the scoping detail ('all 6 UAE airports') and the batch benefit placed where it is read first. No 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?

For a zero-required-parameter, single-boolean tool with an output schema and full annotation coverage, this is sufficient: the agent knows it returns METAR for exactly six airports, that TAF is opt-in via the schema, and that the operation is a safe read.

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 single optional parameter (include_taf) is documented there, including its default and the 'slower' trade-off. The description adds nothing beyond the schema, 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 verb and resource ('Get METAR observations') and adds a concrete scope ('all 6 UAE airports'), which implicitly separates it from the single-airport sibling weather_uae_icao. It stops short of naming that sibling, so the differentiation requires the agent to infer it from the sibling list.

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 'in a single call' implies this tool is the batch option, but there is no explicit when-to-use statement, no exclusion, and no named alternative (e.g. 'for a single airport use weather_uae_icao'). Usage is only inferable.

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

weather_uae_icaoB
Read-onlyIdempotent

Get METAR (current weather observation) and optional TAF (forecast) for a UAE airport.

NameRequiredDescriptionDefault
icaoYesICAO code. Valid: OMDB (Dubai International), OMDW (Al Maktoum), OMSJ (Sharjah), OMAA (Zayed International), OMAL (Al Ain), OMRK (Ras Al Khaimah).
include_tafNoIf True, fetch the TAF forecast as well.

Output Schema

NameRequiredDescription

No output parameters

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, openWorldHint, and destructiveHint=false, so the safety profile is covered. The description adds the content distinction between current METAR and forecast TAF, but discloses nothing further (rate limits, coverage gaps, latency) beyond what annotations and schema already convey.

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 front-loaded sentence with zero filler. The primary resource (METAR) precedes the optional one (TAF), matching the call pattern.

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 values need not be described, and annotations cover safety semantics. The only material gap is routing against sibling weather tools, which is not an invocation-correctness blocker.

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 enumerated valid ICAO codes and the include_taf default, so the schema carries parameter meaning. The description only echoes the optional TAF behavior, adding no syntax or format detail beyond the schema. 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 verb (Get) and specific resources (METAR current observation, optional TAF forecast) scoped to a UAE airport. An agent understands the tool's output well. However, it does not differentiate itself from the many weather siblings (weather_uae_all, uae_weather, uae_weather_forecast, weather_by_coords), leaving the ICAO-based selection criterion implicit.

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

Usage Guidelines2/5

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

No when-to-use or when-not-to-use guidance is given. With at least four sibling weather tools in the list, the agent is left to infer that this one is chosen only when an ICAO code is available and city/coordinate lookups are not. No alternative is named.

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. 12 tool updatesv0.4.1
    • Changedaccelerator_search1 field changed
      • changedInput schema / properties / free_only / description
        Previous value: -"True to exclude paid accelerators (e.g., AstroLabs)."New value: +"True to return only records explicitly verified free.\nPaid, subsidized, equity-linked, and unknown-cost records are\nexcluded."
    • Changedcorporate_tax_estimate2 fields changed
      • changedInput schema / properties / industry / description
        Previous value: -"Industry category. SaaS triggers a critical warning\nsince it is NOT a Qualifying Activity under MD 229/2025."New value: +"Industry category. SaaS triggers an income-classification\nwarning because qualification depends on the specific transaction."
      • addedInput schema / properties / is_qfzp
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "boolean"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Explicit QFZP status, including when qualifying income is zero.\nOmission retains inference from a positive qualifying percentage."
        +}
    • Changeddul_eligibility1 field changed
      • changedInput schema / properties / free_zone / description
        Previous value: -"Free zone name or slug to check (e.g., \"DMCC\", \"JAFZA\",\n\"IFZA\")."New value: +"Dubai free zone name or slug. DUL coverage is not limited\nto a short participant list."
    • Changedgolden_visa_check5 fields changed
      • addedInput schema / properties / annual_revenue_aed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Annual revenue of the founder's UAE SME. ICP's\nentrepreneur route needs at least AED 1,000,000, plus approval\nof the venture by an accredited incubator or authority."
        +}
      • changedInput schema / properties / monthly_salary_aed / description
        Previous value: -"Basic monthly salary for the specialized talent\ncategory. Must be at least AED 30,000 (verified over the prior\n24 months as of early 2026)."New value: +"Monthly salary for skilled-professional screening.\nAED 30,000 is the published threshold; qualification, employment\nand evidence requirements must also be met."
      • addedInput schema / properties / prior_exit_value_aed
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Total sale value of ventures the founder\npreviously built and sold. ICP's alternative entrepreneur test\nneeds at least AED 7,000,000. Dubai's GDRFA route uses a Dubai\nFuture Foundation nomination with different criteria."
        +}
      • changedInput schema / properties / project_value_aed / description
        Previous value: -"Business project value for the entrepreneur\ncategory. Must be at least AED 500,000 in technical / future\nfields with Ministry of Economy or accredited incubator approval."New value: +"Deprecated. ICP dropped the AED 500,000\nproject-valuation test; a value here is not screened and only\nreturns a note. Use annual_revenue_aed or prior_exit_value_aed."
      • changedInput schema / properties / real_estate_value_aed / description
        Previous value: -"UAE property value for the investor category.\nMust be at least AED 2,000,000 in approved areas."New value: +"UAE property value for the investor category.\nMust be at least AED 2,000,000; approved-bank mortgages and\napproved-developer off-plan property can count."
    • Changedgrant_programs1 field changed
      • changedInput schema / properties / grant_type / description
        Previous value: -"Optional type filter (guarantee_loan, venture_fund,\nsupport_programs, loan_grant)."New value: +"Optional type filter\n(accelerator_support_and_credit_guarantee, venture_fund,\nsupport_programs_and_loan_route,\ninterest_free_business_loans_and_nonfinancial_support)."
    • Changedquran_search2 fields changed
      • addedInput schema / properties / limit
        Added value: +{
        +  "default": 25,
        +  "description": "Maximum matches to return, from 1 to 100. Defaults to 25.",
        +  "type": "integer"
        +}
      • addedInput schema / properties / offset
        Added value: +{
        +  "default": 0,
        +  "description": "Zero-based match offset for pagination.",
        +  "type": "integer"
        +}
    • Changedsetup_advisor1 field changed
      • changedInput schema / properties / needs_local_trade / description
        Previous value: -"True if the business needs to invoice mainland\nUAE consumers (B2C) directly without a local distributor."New value: +"True if the business expects to conduct\ncustomer-facing or other licensed activity onshore in Dubai."
    • Changedsynthesize_report1 field changed
      • addedInput schema / properties / domains_referenced
        Added value: +{
        +  "anyOf": [
        +    {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ],
        +  "default": null,
        +  "description": "Knowledge domain names actually used in the report."
        +}
    • Changedtrademark_registration2 fields changed
      • changedInput schema / properties / expedited / description
        Previous value: -"True for AED 2,250 one-day expedited examination."New value: +"True to replace the AED 750 regular examination with the\nAED 2,250 one-day expedited examination (AED 1,500 net surcharge)."
      • changedInput schema / properties / is_sme / description
        Previous value: -"True if the applicant qualifies for the 50% SME discount."New value: +"True only for a qualifying member of the UAE National\nProgramme for SMEs."
    • Changeduae_holidays4 fields changed
      • addedInput schema / properties / year / anyOf
        Added value: +[
        +  {
        +    "type": "integer"
        +  },
        +  {
        +    "type": "null"
        +  }
        +]
      • changedInput schema / properties / year / default
        Previous value: -2026New value: +null
      • changedInput schema / properties / year / description
        Previous value: -"Gregorian year. Currently 2026 and 2027 are shipped\n(2027 lunar dates are astronomical expectations)."New value: +"Gregorian year. Defaults to the current year in Asia/Dubai.\nCurrently 2026 and 2027 are shipped (2027 lunar dates are\nastronomical expectations)."
      • removedInput schema / properties / year / type
        Removed value: -"integer"
    • Changedvisa_recommend1 field changed
      • changedInput schema / properties / monthly_salary_aed / description
        Previous value: -"Monthly basic salary in AED, if relevant."New value: +"Monthly salary in AED for preliminary screening."
    • Changedweather_uae_icao1 field changed
      • changedInput schema / properties / icao / description
        Previous value: -"ICAO code. Valid: OMDB (Dubai International), OMDW (Al Maktoum),\nOMSJ (Sharjah), OMAA (Abu Dhabi), OMAL (Al Ain), OMRK (Ras Al Khaimah)."New value: +"ICAO code. Valid: OMDB (Dubai International), OMDW (Al Maktoum),\nOMSJ (Sharjah), OMAA (Zayed International), OMAL (Al Ain),\nOMRK (Ras Al Khaimah)."
  2. 120 tool updatesv0.4.0
    • First observedabout
    • First observedaccelerator_search
    • First observedaddressee_block
    • First observedair_quality_by_coords
    • First observedair_quality_dubai
    • First observedair_quality_dubai_stations
    • First observedaml_requirements
    • First observedanalyze_setup_decision
    • First observedattestation_guide
    • First observedbank_details
    • First observedbank_recommendation
    • First observedbusiness_letter_template
    • First observedcbuae_base_rate
    • First observedcbuae_exchange_rates
    • First observedchamber_membership
    • First observedchamber_of_commerce_info
    • First observedcommon_founder_mistakes
    • First observedcompare_free_zones
    • First observedcorporate_tax_estimate
    • First observedcost_of_living_overview
    • First observedcreateapps_championship
    • First observedcurrency_convert
    • First observedcurrency_rates
    • First observeddata_dubai_entities
    • First observeddata_dubai_search
    • First observeddata_dubai_themes
    • First observeddcde_programs
    • First observeddewa_bill_estimate
    • First observeddfm_index
    • First observeddfm_list_securities
    • First observeddfm_stock_quote
    • First observeddld_lookup_broker
    • First observeddld_search_rent_contracts
    • First observeddld_search_transactions
    • First observeddubai_gold_rate
    • First observeddul_eligibility
    • First observedeinvoicing_timeline
    • First observedejari_guide
    • First observedemiratisation_requirements
    • First observedens_calendar
    • First observedesr_status
    • First observedfca_trade_stats
    • First observedfcsc_get_dataset
    • First observedfcsc_list_organizations
    • First observedfcsc_search_dataset
    • First observedfree_zone_details
    • First observedfuel_price_guide
    • First observedget_knowledge_status
    • First observedget_upstream_status
    • First observedgitex_info
    • First observedgolden_visa_check
    • First observedgrant_programs
    • First observedgregorian_to_hijri
    • First observedgrocery_estimate
    • First observedhalal_certification
    • First observedhijri_to_gregorian
    • First observedip_protection
    • First observedis_uae_holiday
    • First observedkhda_list_areas
    • First observedkhda_list_curricula
    • First observedkhda_search_school
    • First observedlate_payment_penalty_estimate
    • First observedlegal_translation_estimate
    • First observedlist_banks
    • First observedlist_features
    • First observedlist_free_zones
    • First observedlist_honorifics
    • First observedlist_offshore
    • First observedlist_plan_categories
    • First observedlist_salutations
    • First observedlist_uae_weather_cities
    • First observedlist_visa_types
    • First observedmakani_details
    • First observedmakani_reverse_geocode
    • First observedmakani_validate
    • First observedmoiat_requirements
    • First observednol_card_guide
    • First observedosm_list_categories
    • First observedosm_search_poi
    • First observedparking_zones
    • First observedpdpl_compliance
    • First observedplan_query
    • First observedportal_guide
    • First observedprayer_times_calendar
    • First observedprayer_times_for
    • First observedpro_services_estimate
    • First observedqfzp_check
    • First observedqibla_direction
    • First observedquran_ayah
    • First observedquran_juz
    • First observedquran_search
    • First observedquran_surah
    • First observedrecommend_tools
    • First observedrent_estimate
    • First observedrental_dispute_guide
    • First observedrera_rent_increase
    • First observedrta_gtfs_static_url
    • First observedrta_salik_tariff
    • First observedrta_search_bus_routes
    • First observedrta_search_metro_stations
    • First observedsalik_toll_estimate
    • First observedschool_fee_estimate
    • First observedsetup_advisor
    • First observedsetup_timeline_estimate
    • First observedstartup_events
    • First observedsubmission_guide
    • First observedsynthesize_report
    • First observedtrademark_registration
    • First observeduae_holidays
    • First observeduae_next_holiday
    • First observeduae_weather
    • First observeduae_weather_forecast
    • First observedubo_filing_guide
    • First observedvat_filing_calendar
    • First observedvc_list
    • First observedvisa_details
    • First observedvisa_recommend
    • First observedweather_by_coords
    • First observedweather_uae_all
    • First observedweather_uae_icao

TDQS

B3.1/5.0

Scored across 120 tools

Disambiguation3/5

Most tools target distinct resources, and the unusually detailed descriptions do a lot of work to separate near-duplicates. However, there are genuine overlap clusters: weather_uae_icao vs weather_uae_all vs uae_weather vs uae_weather_forecast vs weather_by_coords, air_quality_dubai vs air_quality_by_coords, currency_rates vs cbuae_exchange_rates vs currency_convert, and recommend_tools vs list_features vs plan_query. An agent can usually pick correctly only by reading full descriptions rather than names.

Naming Consistency3/5

Everything is snake_case and readable, but conventions are mixed: domain-prefixed noun forms (cbuae_exchange_rates, dfm_index, dld_search_transactions, khda_search_school, makani_details), verb-first forms (list_banks, list_free_zones, get_knowledge_status), verb-last forms (prayer_times_for), and bare single words (about). The prefix grouping is somewhat systematic but not a predictable verb_noun pattern throughout.

Tool Count1/5

120 tools is an extreme mismatch for a single server, spanning air quality, prayer times, Quran, free zones, tax, banking, Makani geocoding, and business letters. Even with recommend_tools as a BM25 discovery aid, the catalogue is far too large for an agent to reason over coherently, and many tools are near-redundant variants.

Completeness4/5

The surface covers an unusually broad range of Dubai/UAE domains with search, details, list, and estimate/advisor patterns repeated per domain, plus cross-tool synthesis helpers. Gaps are minor and largely inherent to a read-only reference server (no write/update operations, and some domains like FCSC/Dubai Pulse depend on external credentials) rather than dead ends in the tool set.

Maintenance

ActivityMaintained
ResponsivenessWithin a week

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    An MCP server that gives AI agents access to US business entity data, enabling searches across 9 state registries, SEC EDGAR filings, federal contracts, and lobbying disclosures.
    6
    1
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A comprehensive MCP server that makes official UAE open data queryable through natural language, offering tools for source discovery, dataset search, spatial joins, and intelligence recipes.
    2 npm
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI assistants access to a multi-agent business operations platform with specialized AI services covering real estate, legal, translation, research, content creation, training, and more.
    18 npm
    MIT