Skip to main content
Glama
MohamedXAdel

fortyguard-mcp

by MohamedXAdel

create_heatmap

Generate a temperature heatmap for a specified urban area and time range. Provide a GeoJSON polygon and filter type to receive inline results or an activity ID to retrieve later.

Instructions

Run a temperature heatmap and wait for the result inline. Measured heatmaps take 21-38 seconds. If the wait runs out you get the activity_id back and nothing is lost - the job keeps running and check_status collects it. An identical earlier request is served from the local archive for free. filter_type: 1 = single hour (start_date + start_time); 2 = range of hours, same day (start_date + start_time + end_time); 3 = single day (start_date only); 4 = range of days (start_date + end_date). granularity is the tile edge in metres (60, 80, 100); omit it to let the API choose. analytic_type is optional (tcm, time_of_measure, exceedance, persistence); omit it for plain temperature. start_time is interpreted as local time at the area of interest, not UTC.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
formatNoauto = the raw API payload when it fits the context budget, otherwise a summary naming every way to fetch it. geojson = the raw payload whatever its size. columnar = a compact table, about 12x smaller.auto
wait_sNoSeconds to wait inline before returning the activity_id instead.
end_dateNo
end_timeNo
directionNo
thresholdNo
start_dateNo
start_timeNoHH:MM, local to the area, not UTC.
filter_typeNo1 = single hour (start_date + start_time); 2 = range of hours, same day (start_date + start_time + end_time); 3 = single day (start_date only); 4 = range of days (start_date + end_date)
granularityNoTile edge in metres: 60, 80, 100.
polygon_aoiYesArea of interest as GeoJSON.
analytic_typeNoOptional analytic: tcm, time_of_measure, exceedance, persistence.
Install Server

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations provided, the description bears full responsibility for disclosing behavior. It does this well: expected duration (21-38s), timeout behavior (returns activity_id, job keeps running), idempotent caching for identical earlier requests, and the important local-time interpretation of start_time. The absence of error-handling or quota details keeps it from a 5.

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

Conciseness4/5

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

The description is dense but well-structured: behavior first, timing details second, then parameter meanings. Some material duplicates the schema's filter_type text, which costs a little efficiency, but every sentence serves a practical purpose and the critical timeout/archive behavior is 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?

For a 12-parameter tool with no output schema, this description covers the workflow well: inline wait, timeout fallback, later retrieval via check_status, archive reuse, filter modes, granularity, analytic_type, and local-time semantics. It does not describe the successful inline return payload or clarify direction/threshold, but the overall invocation context is mostly 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?

The description restates filter_type combinations and granularity defaults that already appear in the schema, and adds useful 'omit it' guidance for granularity and analytic_type. However, direction and threshold are unexplained in both schema and description, and schema coverage is only 58%. This adds some value beyond the schema but leaves significant parameter semantics to inference.

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 opens with a specific verb and resource: 'Run a temperature heatmap and wait for the result inline.' This clearly differentiates from sibling tools like submit_heatmap (which likely returns immediately) and check_status (which collects results later). It is not a tautology and conveys the tool's core behavior.

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

Usage Guidelines4/5

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

The description tells the agent when the inline-wait model applies, what happens on timeout, and that check_status can later collect the activity_id. It also notes that duplicate requests are served from the local archive. It does not explicitly name submit_heatmap as the alternative for fully asynchronous submission, but the wait/timeout behavior strongly implies the tradeoff.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/MohamedXAdel/fortyguard-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server