DC Hub — Data Center & Power Intelligence
Duplicate.
Server Details
Live data-center, power-grid, fiber, gas & M&A intelligence for AI agents — query and cite.
- Status
- Healthy
- Last Tested
- Transport
- Streamable HTTP
- URL
- Repository
- azmartone67/dchub-backend
- GitHub Stars
- 0
Glama MCP Gateway
Connect through Glama MCP Gateway for full control over tool access and complete visibility into every call.
Full call logging
Every tool call is logged with complete inputs and outputs, so you can debug issues and audit what your agents are doing.
Tool access control
Enable or disable individual tools per connector, so you decide what your agents can and cannot do.
Managed credentials
Glama handles OAuth flows, token storage, and automatic rotation, so credentials never expire on your clients.
Usage analytics
See which tools your agents call, how often, and when, so you can understand usage patterns and catch anomalies.
Tool Definition Quality
Average 4.6/5 across 51 of 51 tools scored. Lowest: 3.9/5.
Every tool is meticulously described with explicit 'Do NOT use' guidance to prevent confusion. Overlapping areas like grid analysis have separate tools (get_grid_data, get_grid_intelligence, get_grid_scoreboard, compare_isos) with clear scope distinctions.
Most tools follow a consistent verb_noun snake_case pattern (e.g., analyze_site, compare_sites, rank_markets). A few outliers like 'hyperscaler_deals' and 'grid_transition_radar' break the pattern slightly, but overall naming is predictable and readable.
With 51 tools, the count is at the high end of reasonable for a domain as complex as data center intelligence. While most tools serve distinct purposes, some granularity (e.g., three separate gas tools) could be consolidated without loss.
The tool surface covers all major aspects of data center site selection: site analysis, market ranking, facility search, grid power, fiber, water, gas, tax, M&A, news, account management, and alerts. There are no obvious gaps for the stated purpose.
Available Tools
67 toolsai_capacity_indexARead-onlyInspect
AI Compute Capacity Index — ranks data center markets by where 100MW of AI training capacity can land in the next 30/60/90 days. Returns top markets with facility_count, operator_count, deployable_mw estimate, hyperscale_ready flag, and composite score (depth + diversity + power). Refreshed Fridays 14:00 UTC. Use for AI capex planning, GPU cluster siting, hyperscaler deal forecasting. Do NOT use for a general best-markets ranking (use rank_markets) or forward grid-emergence (use grid_transition_radar); this answers specifically where 100MW of AI capacity can land in 30/60/90 days.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of top markets to return (default 20) | |
| horizon | No | Deployment horizon in days: 30, 60, or 90 (default 90) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true, so no contradiction. The description adds valuable behavioral context ('Refreshed Fridays 14:00 UTC') and implies no side effects, enhancing transparency 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, followed by return fields and usage guidelines. It is slightly lengthy but well-structured with no redundant information; each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but the description lists return fields (facility_count, etc.), and usage guidelines are provided. Both parameters are documented in schema. For a read-only index tool, this is fairly complete, though it could mention pagination if applicable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, with both parameters (limit, horizon) fully described in the input schema. The description does not add additional meaning beyond what the schema provides, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: ranking data center markets by deployable AI capacity within specific timeframes, listing return fields, and explicitly distinguishing from sibling tools like rank_markets and grid_transition_radar.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit use cases (AI capex planning, GPU cluster siting, hyperscaler deal forecasting) and explicit exclusions with alternative tool names, giving clear guidance on when to use this tool versus others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_parcelARead-onlyInspect
Structured read of a parcel BOUNDARY you already have (GeoJSON Polygon/MultiPolygon). Returns _entity=parcel_analysis: geodesic total_acres, a per-member acreage breakdown, a contiguous flag, and representative_point = the centroid of the LARGEST-area member (never the multi-part geometric center, which can land off-parcel on a highway median or river and poison every point-keyed read). Also returns a site_evaluation_handoff to pipe into analyze_site + get_water_risk at that anchor. Use when you HAVE a boundary (a GIS/Regrid export, a drawn parcel, an assessor polygon) and want it anchored + sized; for a single lat/lon with no boundary use analyze_site; for the interconnection-queue survivor set use get_refined_queue. NOTE: this reads any polygon you pass — DC Hub does not yet own a parcel-boundary dataset, so get_refined_queue survivors do not auto-carry geometry until a parcel GIS layer is sourced.
| Name | Required | Description | Default |
|---|---|---|---|
| geometry | Yes | GeoJSON Polygon or MultiPolygon parcel boundary, e.g. {"type":"Polygon","coordinates":[[[lng,lat],[lng,lat],...]]} — a MultiPolygon carries discontinuous parcels as one envelope | |
| capacity_mw | No | Optional target load in MW to pass through into the site_evaluation_handoff |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description confirms read-only behavior. It adds important details: the representative_point is centroid of largest member (not geometric center) to avoid off-parcel points, and returns a handoff for chaining. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is economically written with no filler: one sentence for purpose, one for returns, one for usage guidance, and one caveat. Front-loaded with the main action and key return fields.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (2 params, 1 required, no output schema), the description fully covers purpose, parameters, return values, usage context, and caveats. It integrates well with sibling tool names and context signals.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds significant value: for geometry, it explains the format with example and clarifies MultiPolygon as one envelope. For capacity_mw, it describes its role in the site_evaluation_handoff. This goes beyond basic schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly specifies the verb ('Structured read'), resource ('parcel BOUNDARY'), and return values (geodesic total_acres, per-member breakdown, contiguous flag, representative_point, site_evaluation_handoff). It distinguishes from siblings by explicitly naming alternatives: analyze_site for lat/lon and get_refined_queue for queue survivors.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states when to use ('when you HAVE a boundary') and when not to, providing concrete alternative tools. It also notes a limitation (DC Hub does not own parcel-boundary dataset) that affects when results auto-carry geometry.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
analyze_siteARead-onlyInspect
Use when a user has ONE specific lat/lon (a parcel, a candidate site) and wants the full multi-factor data-center suitability read in one call. Example: "Score this Phoenix parcel for a 100MW build — grid, fiber, water, tax, climate." — analyze_site lat=33.45 lon=-112.07 capacity_mw=100. Params: lat (-90 to 90, required), lon (-180 to 180, required), capacity_mw (target load in MW, e.g. 50-500), state (2-letter US, optional — improves tax-incentive lookup), include_grid/include_risk/include_fiber (booleans, default true). Returns: {composite_score (0-100), verdict (BUILD/CAUTION/AVOID), grid_headroom_mw, nearest_substation_km, max_voltage_kv, fiber_carrier_count, nearest_ix_km, water_stress_score, drought_category, climate_risk_score, tax_incentive_value_usd, biggest_risk_factor, recommended_action}. Do NOT use to compare 2+ sites (use compare_sites) or to find sites that match a target (use find_alternatives).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Site latitude in decimal degrees (-90 to 90, required), e.g. 33.45 | |
| lon | No | Site longitude in decimal degrees (-180 to 180, required), e.g. -112.07 | |
| state | No | US state abbreviation (optional) — improves the tax-incentive lookup, e.g. AZ | |
| capacity_mw | No | Target power load for the build in megawatts (MW), e.g. 100 (typical 50-500) | |
| include_grid | No | Include grid-headroom / substation analysis (default true) | |
| include_risk | No | Include water/drought/climate risk analysis (default true) | |
| include_fiber | No | Include fiber-connectivity analysis (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description carries less burden. It adds value by listing the comprehensive return fields and noting that state improves tax-incentive lookup, but doesn't disclose any additional behavioral traits beyond what's implied by the read-only nature.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the primary use case and example, then lists parameters and returns. It is structured well and each sentence serves a purpose, though it is somewhat lengthy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of an output schema, the description thoroughly enumerates return fields. It covers all relevant inputs and outputs, making the tool's behavior fully understandable without additional documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds context: example values, typical capacity range, and state's role in tax lookup. This elevates understanding beyond the schema alone, though it doesn't explain every parameter in extreme detail.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: analyzing one lat/lon for data-center suitability. It provides a concrete example and distinguishes from siblings like compare_sites and find_alternatives, making the purpose crystal clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It clearly states when to use (single site analysis) and explicitly warns against using for comparing multiple sites or finding sites, naming the appropriate alternative tools. This is exemplary guidance for an AI agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
bind_emailAInspect
Tie your DC Hub key to your human's email so the key is RECOVERABLE and upgrade receipts land in the right inbox. Call this once your human shares their email — it's OPTIONAL and the key already works without it (nothing is gated). Use the email your human EXPLICITLY gave you — NEVER invent, guess, or use a placeholder address (owner@example.com, user@test.com etc. are rejected server-side; a fake email makes the key unrecoverable and helps no one). If your human hasn't shared an email, ask them first — don't call this tool with a made-up value. Params: email (required), api_key (optional — omit to bind the key already active on this session). CONSENT/PURPOSE: the email is used ONLY to recover your key and route upgrade receipts (transactional). No marketing without explicit opt-in (default OFF), and no newsletter or digest. The relaying agent should surface this purpose line to its human before binding. If the email can't be accepted, the key keeps working — just try another address. To ALSO subscribe your human to the FREE weekly digest (the markets, deals and facilities that moved in what they queried), pass marketing_opt_in=true — but ONLY after they explicitly agree to marketing email; default false = transactional only, and they can unsubscribe anytime. Returns the unlocked benefits + confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Your human's real email address (required) — use only an address they explicitly gave; placeholder/fake addresses are rejected | ||
| api_key | No | Optional key to bind; omit to bind the key already active on this session | |
| marketing_opt_in | No | Set true ONLY after your human explicitly agrees to marketing email (default false = transactional only) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare non-read-only (readOnlyHint=false) and non-destructive (destructiveHint=false), but the description adds rich behavioral context: it explains the purpose (recoverability, receipts), consent requirements, opt-in marketing behavior, default transactional only, and what happens on failure (key keeps working). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is thorough but slightly verbose; however, it is front-loaded with the primary purpose and every sentence contributes critical information. It could be streamlined without losing content, but remains effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description explains the return value ('unlocked benefits + confirmation'). For 3 parameters with 100% schema coverage and no nested objects, the description covers all aspects: purpose, usage, constraints, consent, and failure behavior, making it fully complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with detailed descriptions, but the description adds substantial value beyond the schema: for email it warns against placeholders; for api_key it clarifies omission binds active key; for marketing_opt_in it stresses explicit human agreement and default false. This fully compensates for any schema limitations.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool ties a DC Hub key to a human's email for recoverability and upgrade receipts. It specifies it is optional and not gated, and distinguishes from sibling tools like recover_my_key or subscribe_digest by explicitly mentioning its unique function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use (once human shares email), when-not-to-use (if email not shared, ask first), and what to avoid (never invent or guess email). It also explains consequences (fake email makes key unrecoverable) and alternatives (if email fails, try another address).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
claim_free_keyAInspect
Mint a FREE DC Hub dev key instantly — no email, no browser, ONE call. Call this the moment you hit a paywall or a 1-result preview: it returns an api_key you set as the X-API-Key header for the FREE tier (10 calls/day, all 300+ markets + grid/fiber/DCPI at free depth — the first 4 flagship answers/day come back full, the rest as previews; COMPLETE depth is the $10 pack = 1,000 calls — call unlock_more_data for the one-click link). Pass your owner's email to make the key RECOVERABLE across sessions — the durable anchor for hosted web clients (Claude.ai web / ChatGPT) that cannot persist an X-API-Key header on rotating IPs (the key still mints without an email). This is the fastest path from anonymous to identified. Params: client_name (your agent/app name), email (optional). Returns {api_key, header, daily_limit, upgrade_url}.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Optional owner email to make the key recoverable across sessions; use only an address your human explicitly gave | ||
| client_name | No | Your agent/app name for attribution, e.g. "Claude Desktop" or "acme-siting-bot" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations only provide readOnlyHint=false and destructiveHint=false. Description adds extensive behavioral context: free tier limitations, daily calls, depth, recoverability via email, and upgrade path. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose and usage. While lengthy, every sentence adds useful information. Could be slightly more concise, but structure is logical and efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description lists return fields. Explains free tier details and recovery. Doesn't cover error cases, but for a key-claiming tool it is fairly complete. Mentions related tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. Description adds value by explaining why email is useful (recoverable across sessions) and that client_name is for attribution. Goes beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it mints a free DC Hub dev key instantly. Differentiates from siblings by specifying when to use (paywall or 1-result preview) and mentions complementary tool unlock_more_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says 'Call this the moment you hit a paywall or a 1-result preview'. Mentions alternative unlock_more_data for more calls. No explicit when-not-to-use, but context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_isosARead-onlyInspect
Use when a user wants a side-by-side of 2-4 ISO grids — fuel mix, demand, renewable/gas share, interconnection-queue depth, time-to-power — in one call instead of N sequential get_grid_intelligence calls. Example: "Compare PJM vs ERCOT vs CAISO on gas share, renewable share, and queue depth right now." — compare_isos isos="PJM,ERCOT,CAISO". Params: isos is a comma-separated list (2-4 max) drawn from the 7 live US ISOs: "PJM" | "ERCOT" | "CAISO" | "MISO" | "SPP" | "NYISO" | "ISO-NE". Returns: {isos[], comparison:{:{demand_mw, generation_mix_pct, renewable_share_pct, gas_share_pct, constraint_score, excess_power_score, avg_time_to_power_months, queue_depth_gw, retail_price_cents_kwh}}, as_of}. Do NOT use to rank ALL grids globally (use get_grid_scoreboard) or for the single-ISO deep brief (use get_grid_intelligence).
| Name | Required | Description | Default |
|---|---|---|---|
| isos | No | Comma-separated list of 2-4 US ISO/RTO grid regions to compare, e.g. "PJM,ERCOT,CAISO" (valid: ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses read-only nature (consistent with readOnlyHint), specifies input constraints (2-4 ISOs, valid list), and fully describes the return structure, providing context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four well-organized sentences: purpose, example, parameter details, return structure, and exclusions. Front-loaded and no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With one simple parameter and no output schema, the description fully covers all needed information: input constraints, return fields, and usage boundaries. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% and includes valid values and format; the tool description adds an example but little new information beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool compares 2-4 ISO grids side-by-side for metrics like fuel mix, demand, and queue depth, and distinguishes it from siblings like get_grid_intelligence and get_grid_scoreboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use ('instead of N sequential get_grid_intelligence calls') and when not to ('Do NOT use to rank ALL grids globally' or for single-ISO deep brief), naming alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
compare_sitesARead-onlyInspect
Use when a user has narrowed to 2-4 candidate parcels and wants a side-by-side winner picker — grid headroom, fiber, water, tax, climate — with a recommended pick and the reason. Example: "Compare a Phoenix parcel and an Ashburn parcel for a 50MW build — which wins and why?" — compare_sites locations="33.45,-112.07;39.04,-77.48" capacity_mw=50. Params: locations is a semicolon-separated list of "lat,lon" pairs (2-4 max); capacity_mw is the target load (e.g. 50-500). Returns: {sites:[{lat, lon, composite_score, verdict, grid_headroom_mw, nearest_substation_km, fiber_carrier_count, water_stress_score, tax_incentive_value_usd, biggest_risk}], winner:{lat, lon, why}, decision_rationale}. Do NOT use for a single site (use analyze_site) or to rank entire markets (use rank_markets).
| Name | Required | Description | Default |
|---|---|---|---|
| locations | No | Semicolon-separated list of 2-4 "lat,lon" pairs to compare, e.g. "33.45,-112.07;39.04,-77.48" | |
| capacity_mw | No | Target power load for the build in megawatts (MW), e.g. 50 (typical 50-500) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the agent knows this is a safe read operation. The description adds behavioral context by detailing the return structure (sites with scores, winner, decision_rationale) and typical use case, going beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, example, parameter details, output format, and usage notes. It is front-loaded with the core function. Slightly longer than necessary but each part adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description provides a detailed return structure (sites list with attributes, winner, decision_rationale). It includes a comprehensive example and covers all essential context for an agent to use the tool correctly, even with no nested objects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers both parameters with descriptions (100% coverage). The description adds valuable context: explains the semicolon-separated format, imposes a 2-4 limit on locations, and gives a typical capacity range (50-500 MW), which the schema lacks.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool compares 2-4 candidate parcels side-by-side for winner selection, listing specific attributes (grid headroom, fiber, water, etc.) and includes an example. It clearly distinguishes from siblings like analyze_site and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use ('when a user has narrowed to 2-4 candidate parcels and wants a side-by-side winner picker') and when not to use ('Do NOT use for a single site...use analyze_site or to rank entire markets...use rank_markets').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deal_autopsyARead-onlyInspect
Tracked data-center M&A / capex deal flow with the DCPI grid-reality verdict overlaid on each deal market — "what is the real play?". Returns recent deals (buyer, seller, value, market) + each market DCPI verdict and time-to-power; with a paid key, the per-deal autopsy read (long-dated land/power option vs near-term build vs queue gamble). Progressive disclosure to keep the default cheap: by default each read ships only a comparables COUNT (the verdict text is always included); pass comparables="summary" for the top-2 grounding signals, or comparables="full" to expand the complete cited set for a deal you're drilling into. Try: deal_autopsy limit=15.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent deals to return (default ~15) | |
| comparables | No | Comparables detail: "none" (default — count only, cheapest), "summary" (top-2 grounding signals), or "full" (the complete cited set). Escalate only for deals you're drilling into. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint annotation, it discloses behavioral traits: paid key required for full autopsy, progressive disclosure to manage cost, and pricing implications of different comparables levels. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: one sentence for purpose, one for return fields, one for progressive disclosure, and an example call. No fluff or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains return values (deals with buyer, seller, value, market, DCPI verdict, time-to-power, and optional per-deal autopsy). It also covers comparables levels. The tool's behavior is fully described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description adds value: explains default limit ~15, comparables default 'none' as cheapest, and recommends escalation only for drilling into deals. This provides context beyond the schema's descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: tracking data-center M&A deal flow with DCPI verdict overlay. It specifies return fields (buyer, seller, value, market) and the per-deal autopsy read. This distinguishes it from sibling tools like 'hyperscaler_deals' or 'list_transactions' which focus on other aspects.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides usage guidance via progressive disclosure: default comparables='none' (cheapest), escalate to 'summary' or 'full' for deals being drilled into. It also suggests trying limit=15. However, it does not explicitly mention when not to use this tool or compare to alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
discover_toolsARead-onlyInspect
Meta-tool: navigate DC Hub's 60+ tools by FAMILY instead of scanning the whole list. Returns _entity=tool_families — each family has a when-to-use note + its flagship tools (facility, market, grid_power, gas_btm, site_geometry, fiber, deals_news, account_meta), optionally filtered by a query. Call this FIRST when you are unsure which tool fits a task; then call the chosen tool (its full schema is in tools/list). This is a navigation layer, not the exhaustive catalog — tools/list stays canonical.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Optional keyword to filter families/tools, e.g. "site selection", "grid queue", "fiber", "deals", "market" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds valuable context: it returns tool families with when-to-use notes, is a navigation layer, and is not exhaustive. This fully discloses its behavior and limitations 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two sentences, front-loaded with the key purpose ('Meta-tool: navigate...'). Every sentence adds value without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a meta-tool with 1 optional parameter and no output schema, the description is fully complete: it explains what is returned (families with when-to-use notes and flagship tools), how to use it (first then call chosen tool), and its relation to tools/list.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the 'query' parameter has a descriptive example in the schema. The description mentions filtering but adds no new meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'navigate' and resource 'tool families', distinguishing it from sibling tools by being a meta-tool for discovery. It explicitly says 'instead of scanning the whole list', making its purpose distinct.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance: 'Call this FIRST when you are unsure which tool fits a task; then call the chosen tool'. It also mentions optional query filtering and notes that tools/list is canonical, offering clear when-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
export_datasetARead-onlyInspect
Use when a user wants to pull their saved DC Hub shortlist OUT of the platform for offline analysis, a spreadsheet, or ingestion into another tool (PRO). Example: "Export my saved sites as GeoJSON for QGIS." — export_dataset format=geojson. Params: format ("csv" default, or "geojson"). Returns: the full file contents as text — CSV rows or a GeoJSON FeatureCollection of your saved sites with DCPI score, target MW, market, coordinates, and notes. Do NOT use to list sites in-chat (use list_saved_sites) or to save a new one (use save_site); this is the bulk-download path.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | Output file format: "csv" (default) or "geojson" (for GIS tools like QGIS) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark this as readOnlyHint=true, so the description's extra detail about returning file contents as text and listing included fields (DCPI score, target MW, etc.) adds valuable context beyond the structured annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three focused sentences plus a param note, with no wasted words. It front-loads purpose and usage, then efficiently covers parameters and return value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple export tool with one optional parameter and no output schema, the description fully covers purpose, usage, parameters, return format, and data content. No gaps remain.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, the baseline is 3. The description enhances parameter meaning by explaining what each format yields (CSV rows vs. GeoJSON FeatureCollection) and mentions data fields, which is more informative than the schema's brief description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool's purpose: exporting a user's saved shortlist for offline use. It provides a concrete example ('Export my saved sites as GeoJSON for QGIS') and distinguishes itself from sibling tools list_saved_sites and save_site, making the purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description includes clear when-to-use and when-not-to-use guidance, naming the exact alternatives (list_saved_sites, save_site) and framing export_dataset as the 'bulk-download path'. This eliminates ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
fetchARead-onlyInspect
Fetch a DC Hub record for an id returned by the search tool (OpenAI Deep Research / ChatGPT connector format). Returns {id, title, text, url, metadata} — a citable public summary of one data-center facility (name, operator, location, status, market). For full structured specs (capacity MW, coordinates) use get_facility or open the url.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | A facility id/slug from a prior `search` result, e.g. equinix-dc1-ashburn |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description adds that it returns a public summary with specific fields, reinforcing read-only behavior and providing useful context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, front-loaded with core purpose and efficient secondary sentence for return format and alternatives, no extraneous information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description explicitly lists returned fields and their meaning, covers the tool's role in workflow (post-search), and mentions alternatives, making it fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter fully, and description adds a concrete example and clarifies it comes from prior search results, adding meaningful context.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a DC Hub record for an ID from the search tool, and specifies the returned resource and format, distinguishing it from siblings like get_facility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (after obtaining id from search) and when to use alternatives (get_facility or open url for full specs), providing clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
find_alternativesARead-onlyInspect
Use when a user likes ONE specific facility and wants similar nearby options to consider instead ("what else looks like this?"). Example: "Find alternatives to the Ashburn QTS campus for about 50MW." — find_alternatives facility_id=. Params: facility_id or name (the target, required); optional capacity_mw, radius_km, limit. Returns: ranked alternatives, each with similarity_score, match_reasons, and key_differences versus the target. Do NOT use to score one site (use score_facility or analyze_site) or to compare a known short-list head-to-head (use compare_sites); this DISCOVERS candidates from a single seed facility.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-500; default varies by tool) | |
| match_on | No | Optional similarity dimension to weight, e.g. capacity, operator, fiber, market | |
| radius_km | No | Search radius in km for candidate alternatives around the seed facility | |
| facility_id | No | The seed facility id/slug (or use name) to find alternatives to, from a prior search result | |
| exclude_operator | No | If true, exclude facilities from the same operator as the seed |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the return structure (ranked alternatives with similarity_score, match_reasons, and key_differences) and mentions key parameters. Annotations indicate readOnlyHint=true, and the description does not contradict this; it implies a read operation by returning options.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the use case, followed by an example, parameter summary, return description, and a clear 'do not use' section. While it is somewhat lengthy, each sentence adds value, and the key information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 5 parameters and no output schema, the description covers purpose, usage, parameter details, and return structure sufficiently for an AI agent to understand when and how to use it. It lacks details on pagination or exact scoring format, but these are optional for basic use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 5 parameters. The description adds value by explaining that facility_id or name can be used (though schema only has facility_id) and mentions capacity_mw which is not in schema. It clarifies required fields despite schema not marking any as required, providing useful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: find similar nearby options to a specific facility. It distinguishes itself from siblings like score_facility, analyze_site, and compare_sites by specifying it discovers candidates from a single seed facility, not for scoring or head-to-head comparison.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use (user likes one specific facility and wants similar alternatives) and provides an example. It also explicitly states when NOT to use: not for scoring one site (use score_facility or analyze_site) or comparing a known short-list head-to-head (use compare_sites).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_site_analysisARead-onlyInspect
Use when a user wants a SHAREABLE, branded multi-page Site Analysis PDF for ONE lat/lon (a powered-land parcel, a candidate campus) — the polished client deliverable, not just a score. Example: "Make the Site Analysis PDF for this Carrier Mills parcel, 150 MW, for TON Infrastructure." — generate_site_analysis lat=37.694 lon=-88.65 capacity_mw=150 prepared_for="TON Infrastructure" prepared_by="Martone Advisors". Params: lat (-90 to 90, required), lon (-180 to 180, required), capacity_mw (target load MW, e.g. 50-500), prepared_for (client name on the cover), prepared_by (your firm — brands the report; defaults to DC Hub), latency_target (optional metro override; default = nearest real carrier hotel). Returns: {survey:{verdict, power/transmission, gas, water, air-permitting, fiber carriers, latency-to-nearest-carrier-hotel, market, tax}, pdf_report_url}. pdf_report_url is a ready-to-open link to download the branded 5-page PDF — no login needed, valid ~7 days; hand it to your human. For just the numeric suitability score (no PDF), use analyze_site instead.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Site latitude in decimal degrees (-90 to 90, required), e.g. 37.694 | |
| lon | No | Site longitude in decimal degrees (-180 to 180, required), e.g. -88.65 | |
| use_case | No | Optional workload descriptor to tailor the report, e.g. "AI training campus" | |
| capacity_mw | No | Target power load for the build in megawatts (MW), e.g. 150 (typical 50-500) | |
| prepared_by | No | Your firm name that brands the report; defaults to DC Hub, e.g. "Martone Advisors" | |
| prepared_for | No | Client name printed on the report cover, e.g. "TON Infrastructure" | |
| latency_target | No | Optional metro to measure latency against; default = nearest real carrier hotel |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses all key behaviors: returns a survey with verdict and fields, provides a temporary download link valid ~7 days with no login. Annotations indicate readOnlyHint true, which aligns with the read-only nature of generating a report.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with use case, example, param list, return description, and alternative. Reasonably concise given the complexity, but slightly verbose in the param explanations (e.g., repeating min/max ranges already in schema).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 parameters and no output schema, the description thoroughly explains inputs (with examples) and outputs (survey fields and PDF URL behavior). Also addresses the alternative tool for simpler use, making it complete for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Adds significant value beyond schema descriptions: examples, required status for lat/lon (though schema doesn't enforce), default for prepared_by, and optional nature of latency_target with default. However, the discrepancy between description saying lat/lon required and schema not requiring them is a minor inconsistency.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates a shareable, branded multi-page Site Analysis PDF for a single lat/lon, explicitly differentiating it from analyze_site which returns a numeric score. The example and param list solidify the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('Use when a user wants a SHAREABLE, branded multi-page Site Analysis PDF… the polished client deliverable') and when not to use ('For just the numeric suitability score, use analyze_site instead'). Provides clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_agent_registryARead-onlyInspect
Curated roster of the AI platforms + agent frameworks in the DC Hub agent ecosystem — each with its recommended DC Hub tools and authentication tier. Recognized MCP clients include Claude and Cursor, with Cline, Continue and other agents surfaced as they are integrated. Use it to see which platforms DC Hub supports and how to connect them. Try: get_agent_registry. NOTE: this is a curated ecosystem/capability index, NOT live per-caller call/citation telemetry. Do NOT use for platform uptime / backup health (use get_backup_status).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description reinforces this by stating it's a curated ecosystem index, not live telemetry. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences, front-loaded with the core purpose, followed by clarifying notes and alternative tool usage. No fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description fully explains what it returns (roster with platforms, frameworks, tools, authentication tiers) and its limitations (not live).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the input schema, so the description naturally cannot add parameter meaning. Baseline 4 applies as schema coverage is 100% and there are no parameters to document.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly defines the tool as a curated roster of AI platforms and agent frameworks, specifying its content and distinguishing it from live telemetry. It uses a specific verb ('see') and resource ('platforms DC Hub supports'), and differentiates from sibling get_backup_status.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: 'Use it to see which platforms DC Hub supports and how to connect them.' Also provides a negative case: 'Do NOT use for platform uptime / backup health (use get_backup_status).'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_backup_statusARead-onlyInspect
DC Hub platform health: database backup status (last successful, age, integrity check), data freshness across 49 sources (green/yellow/red), agentic heartbeat score (0-100), MCP call volume (last hour), and DCPI recompute cadence. Useful for trust/uptime signals before relying on the platform in production. Try: get_backup_status. Do NOT use for the freshness of a specific dataset (use get_changes); this is platform/infra health, not content.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the safety profile is clear. The description adds value by detailing the specific metrics returned (db backup, freshness colors, heartbeat score, etc.) and clarifying this is platform/infra health, not content. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first efficiently lists all metrics, the second provides usage guidance and differentiation. No unnecessary words; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no parameters and no output schema, the description covers all relevant aspects: what metrics are returned, usage context, and what not to use it for. It is complete and informative.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, so description coverage is 100%. The description does not need to add parameter semantics, but it does not detract. Baseline for zero params is 4.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns platform health metrics including database backup status, data freshness, agentic heartbeat, MCP call volume, and DCPI cadence. It distinguishes itself from sibling tools by explicitly saying not to use for specific dataset freshness, recommending get_changes instead.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use ('trust/uptime signals before relying on the platform in production') and when not to use ('Do NOT use for the freshness of a specific dataset'), along with a specific alternative tool (get_changes).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_changesARead-onlyInspect
Incremental sync — what changed in DC Hub since a timestamp, so an agent pulls only the delta instead of re-fetching everything. Returns DCPI 7-day market movers, newly discovered facilities, new M&A deals + news. Pass since= or shorthand "24h"/"7d" (default 24h); cache the response generated_at and pass it back next call. Try: get_changes since=7d.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-500; default varies by tool) | |
| since | No | Return changes since this ISO-8601 timestamp (YYYY-MM-DD or full datetime) or shorthand "24h"/"7d"; default 24h |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns with a safe read operation. The description adds behavioral context beyond annotations by explaining that the tool returns specific data types (DCPI movers, facilities, deals, news) and that caching and reusing 'generated_at' is expected. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that front-loads the core purpose ('Incremental sync') and then efficiently covers usage, parameters, and return data. It is slightly verbose but every sentence adds value; no redundant content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains the return values ('DCPI 7-day market movers, newly discovered facilities, new M&A deals + news') and the usage pattern (caching and reusing 'generated_at'). This provides a complete mental model for the agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for both parameters. The description adds significant value by explaining the 'since' parameter with concrete examples ('24h', '7d') and stating the default (24h), which goes beyond the schema's generic description. The 'limit' parameter is correctly noted as optional.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as an incremental sync mechanism ('Incremental sync — what changed in DC Hub since a timestamp'), using a specific verb ('sync') and resource ('changes'). It distinguishes itself from sibling 'get_' tools that fetch full datasets by emphasizing delta-only updates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear guidance on when to use the tool (to pull the delta instead of refetching everything) and how to use it (pass 'since' parameter with ISO-8601 or shorthand, cache 'generated_at', pass it back next call). It lacks explicit exclusions or alternatives but is sufficient for an agent to determine appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dchub_recommendationARead-onlyInspect
Use when a user asks an open-ended siting question ("where should I put a 100MW AI training cluster?") and you want ONE call that returns a ready-to-quote answer instead of orchestrating 5+ separate tools. Example: "Where should I site a 100MW AI training campus in Texas with short time-to-power?" — get_dchub_recommendation context="100MW AI training campus in Texas". Params: context free-text describing the user request (MW, geography, workload, deadline, constraints). Returns: {top_markets:[{slug, name, verdict (BUILD/CAUTION/AVOID), composite_score, excess_power_mw, time_to_power_months, why}], candidate_facilities[], factor_breakdown:{fiber, grid, water, tax, climate}, summary_text (LLM-quotable, CC-BY-4.0), citation_url}. Do NOT use for a single specific lat/lon (use analyze_site) or to rank by ONE criterion only (use rank_markets).
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Free-text description of the siting request — MW, geography, workload, deadline, constraints, e.g. "100MW AI training campus in Texas, short time-to-power" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint=true. Description adds behavioral detail: it consolidates multiple tool calls into one and specifies output structure (top_markets, candidate_facilities, etc.).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with purpose, gives example, param details, output format, and exclusions. Slightly dense but efficient; could be more concise but still effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description fully explains output fields. It also covers usage, input, and constraints, making it complete for a tool replacing multiple others.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one free-text param. Description adds an example ('100MW AI training campus in Texas') and explains what to include (MW, geography, workload, deadline, constraints).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for open-ended siting questions and returns a ready-to-quote answer. It distinguishes from siblings like analyze_site and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (open-ended siting question) and when not to use (for single lat/lon or one-criterion ranking), with alternative tools named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_energy_pricesARead-onlyInspect
Use when a user asks "what does power/gas COST in right now?" — live energy PRICING for the 7 US ISOs (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE): retail electricity rate (cents/kWh), wholesale/LMP context, Henry Hub-referenced natural-gas price, and a real-time grid-status flag. Example: "What is the retail power price and gas price in ERCOT today?" — get_energy_prices iso=ERCOT. Params: iso (one of the 7 US ISOs; required). Returns: {iso, retail_price_cents_kwh, wholesale_price_usd_mwh, natural_gas_usd_mmbtu, grid_status, as_of}. Quote with attribution to DC Hub (CC-BY-4.0). Do NOT use for fuel mix / demand / 24h curve (use get_grid_data), for power HEADROOM or time-to-power (use get_grid_intelligence), or for behind-the-meter gas-to-grid $/MWh economics (use get_gas_economics); this is the live retail+gas PRICE read for one ISO.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO/RTO grid region (required for ISO pricing): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE | |
| state | No | US state abbreviation for state-level pricing context, e.g. TX | |
| data_type | No | Optional price type focus, e.g. retail, wholesale, gas |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds value beyond the readOnlyHint annotation by describing the nature of the data returned (live pricing, attribution to DC Hub). It does not mention any destructive behavior, which is consistent with the annotation. However, it could have mentioned rate limits or freshness of data, but overall it provides sufficient 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but packs a lot of useful information front-loaded. Every sentence earns its place, though it could be slightly more structured (e.g., bullet points) for readability. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (3 parameters, no output schema), the description covers purpose, usage, return fields, and alternatives thoroughly. It compensates for the lack of output schema by listing return fields. All necessary contextual information for an agent to correctly invoke the tool is present.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds clarification that iso is 'required' and lists valid values, though the schema does not mark iso as required (possible inconsistency). No additional semantics provided for state or data_type beyond the schema. The description adds marginal value over the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool is for live energy pricing for 7 US ISOs, listing specific data returned (retail rate, wholesale/LMP, natural gas price, grid status). It distinguishes from siblings by explicitly naming alternative tools for related but different queries (get_grid_data, get_grid_intelligence, get_gas_economics).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance ('Use when a user asks...') with a concrete example. Also specifies when NOT to use the tool, listing three alternative sibling tools for different use cases, making it clear when to choose another tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_facilityARead-onlyInspect
Full metadata for one facility — name, operator, address, lat/lon, power capacity (MW total/used), cooling type, fiber providers (count + carrier list), commissioning year, status, the DCPI verdict for its market, and peer facilities nearby. Try: get_facility id=equinix-dc1-ashburn — or get_facility slug=digital-realty-iad8. Returns ONE facility in full; do NOT use to search or list many facilities (use search_facilities).
| Name | Required | Description | Default |
|---|---|---|---|
| id | No | Alias for facility_id — a facility id/slug from a prior search result | |
| name | No | Facility name as a fallback lookup when no id/slug is known, e.g. "QTS Ashburn" | |
| slug | No | Facility slug from a prior search result, e.g. digital-realty-iad8 | |
| facility_id | No | Facility id from a prior search_facilities/search result (numeric or string), e.g. equinix-dc1-ashburn | |
| include_power | No | Include power capacity detail (total/used MW) in the response (default true) | |
| include_nearby | No | Include peer facilities near this one in the response (default true) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description need not restate that. It adds value by detailing what information is returned (full metadata including many specific fields), which goes beyond the annotation. No contradiction, and no mention of destructive behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is fairly concise given the amount of information it conveys. It front-loads the purpose and then lists fields. Slightly longer than necessary but effective.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description reasonably handles explaining return values by listing many fields (name, operator, address, power capacity, cooling type, fiber providers, etc.). It also explains the optional include_power and include_nearby parameters. For a single-facility lookup tool, this is comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds some value by providing example calls and clarifying the purpose of id/name/slug, but it does not significantly add meaning 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it returns full metadata for one facility, listing multiple fields (name, operator, address, lat/lon, power capacity, etc.). It distinguishes from the sibling tool search_facilities by explicitly saying not to use it for searching or listing many facilities.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit usage examples ('Try: get_facility id=equinix-dc1-ashburn — or get_facility slug=digital-realty-iad8') and warns against using it for search or listing, directing to search_facilities instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiber_intelARead-onlyInspect
Use when scoring a candidate site for fiber depth, mapping long-haul routes between metros, or assessing dark-fiber availability for a hyperscale build. Example: "Show all Zayo long-haul fiber routes through Northern Virginia I can put on a Leaflet map." — get_fiber_intel carrier=Zayo route_type=longhaul. Params: carrier one of "Zayo" | "Lumen" | "Cogent" | "Crown Castle" | "Windstream" | "GTT" | "Uniti" | "FiberLight" | "Segra" | "Arcadian Infracom" (omit for all carriers); route_type one of "metro" | "longhaul" | "dark" | "ix"; market a metro name or slug (e.g. "dallas", "ashburn", "northern-virginia") to return ONLY routes touching that metro (either endpoint near it) — pairs well with route_type=longhaul to map a metro's long-haul backbones. Returns: GeoJSON FeatureCollection {features:[{geometry, properties:{carrier, route_type, fiber_count, lit_capacity_gbps, capacity, distance_miles, distance_km}}]} ready to drop into Leaflet/Mapbox. Do NOT use to count fiber providers at a single facility (use get_facility) or for IX interconnection-density scores (use analyze_site).
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Metro name or slug (e.g. "dallas", "ashburn", "northern-virginia") — returns only routes touching that metro (either endpoint within ~1.2°). Great with route_type=longhaul. | |
| carrier | No | Fiber carrier to filter on, e.g. Zayo, Lumen, Cogent, "Crown Castle", Windstream, GTT, Uniti; omit for all carriers | |
| route_type | No | Route class: "metro", "longhaul", "dark", or "ix" | |
| include_sources | No | Include upstream data-source/provenance metadata in the response |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations provide readOnlyHint; the description adds return format (GeoJSON FeatureCollection) with detailed properties, example usage, and constraints on market filtering (~1.2° radius). No contradictions. Could mention any performance limitations but still strong.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single focused paragraph with front-loaded purpose, inline example, parameter guidance, and a clear 'Do NOT use' section. Every sentence serves a purpose without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 4 parameters (none required), no output schema, and rich annotations, the description fully covers what the tool does, how to use it, and what it returns. Includes alternatives and exclusions, making it self-contained for an AI agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (baseline 3). The description adds value by listing allowed carrier values, explaining route_type options, detailing market behavior with radius, and providing a usage example. Slight improvement over schema alone.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves fiber intelligence for site scoring, route mapping, and dark-fiber assessment. It distinguishes from siblings by explicitly saying not to use for single-facility counting (get_facility) or interconnection scores (analyze_site).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use scenarios and alternatives. Gives a concrete example with parameter values. Clearly states when not to use the tool and which sibling to use instead.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fiber_readinessARead-onlyInspect
Use when you need the FIBER-READINESS / connectivity verdict for ONE parcel or site (lat/lon): near-net distance to a carrier-served facility, how many distinct fiber carriers are reachable, and whether there is single-carrier risk (no path diversity). This is the parcel connectivity answer engineering site-selectors screen on. Example: "Is this Loudoun County parcel fiber-ready and how many carriers can serve it?" — get_fiber_readiness lat=39.04 lon=-77.48 radius_km=50. Params: lat (-90..90, required), lon (-180..180, required), radius_km (search radius in km, default 50, range 5-200). Returns: {score 0-100, near_net_bucket ("on-net"|"near-net"|"acceptable"|"build-required"), nearest_carrier_km, carrier_count, top_carriers:[{carrier, distance_km}], single_carrier_risk (bool), fiber_coverage_km, verdict_short}. Do NOT use to map carrier ROUTES between metros (use get_fiber_intel) or for a full multi-factor site suitability score (use analyze_site).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Site latitude in decimal degrees (-90 to 90, required), e.g. 39.04 | |
| lon | No | Site longitude in decimal degrees (-180 to 180, required), e.g. -77.48 | |
| radius_km | No | Search radius in km for reachable fiber carriers (default 50, range 5-200) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description aligns by describing a query operation. The description adds value beyond annotations by detailing the return fields (e.g., near_net_bucket, single_carrier_risk) and explaining the verdict logic. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph that efficiently covers use case, example, parameters, return structure, and exclusions. It is well-structured and front-loaded with the purpose, but slightly longer than necessary due to repeating schema details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has no output schema, the description fully compensates by listing all return fields with types and values (score 0-100, near_net_bucket options, etc.). It also covers when not to use and alternatives, making it complete for an agent to select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with the input schema already providing clear descriptions for all three parameters (lat, lon, radius_km including default and range). The description reiterates this information without adding significant new meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a fiber-readiness/connectivity verdict for a single parcel/site using lat/lon. It distinguishes itself from siblings by explicitly stating not to use for carrier routes (use get_fiber_intel) or full site suitability (use analyze_site).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Use when you need the FIBER-READINESS / connectivity verdict for ONE parcel or site' and provides an example query. It also lists what not to use it for and names alternative tools, giving comprehensive usage guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gas_economicsARead-onlyInspect
Behind-the-meter / gas-fired power ECONOMICS for a US data-center market: Henry Hub spot, regional basis differential, delivered industrial + electric gas tariff ($/MMBtu), and the gas-to-grid levelized cost ($/MWh) across CCGT/peaker heat-rate scenarios — the number a BTM developer compares against a grid PPA. Pass market= (e.g. "northern-virginia", "dallas", "phoenix"); optional heat_rate_btu_per_kwh for a custom scenario. Returns {market, henry_hub_spot_usd_mmbtu, basis_diff_usd_mmbtu, delivered_industrial_usd_mmbtu, delivered_electric_usd_mmbtu, gas_price_used_usd_mmbtu, scenarios_usd_per_mwh:{new_ccgt_6400, avg_ccgt_6800, old_ccgt_7500, old_peaker_12000, custom}, data_basis}. Pairs with get_gas_index (per-state DCGI suitability). Do NOT use for the electricity grid fuel mix (use get_grid_data) or the per-state gas suitability score (use get_gas_index); this is the $/MWh gas-power cost.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market slug (metro), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank | |
| heat_rate_btu_per_kwh | No | Optional custom generator heat rate in Btu/kWh for the gas-to-grid $/MWh scenario, e.g. 6800 (avg CCGT) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description reinforces this by describing the tool as returning data. It adds detail about the return structure and custom heat rate behavior. However, it doesn't disclose potential data freshness or API call effects beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense yet concise, front-loading the core purpose and then methodically listing outputs and usage constraints. No superfluous sentences; every clause adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description effectively enumerates the return fields. It also mentions related tools. A minor gap: it doesn't specify default heat rates when the parameter is omitted, but the schema indicates it's optional.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear descriptions. The description adds meaning by noting that market slugs come from rank_markets/get_market_dcpi_rank and that heat_rate_btu_per_kwh is for a custom scenario, going beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool computes 'Behind-the-meter / gas-fired power ECONOMICS for a US data-center market' and lists specific components (Henry Hub spot, basis differential, delivered tariffs, levelized cost). It distinguishes from siblings like get_gas_index and get_grid_data by explicitly saying what not to use it for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description tells when to use it ('the number a BTM developer compares against a grid PPA') and explicitly states when not to use it ('Do NOT use for the electricity grid fuel mix... or the per-state gas suitability score'), including alternatives. It also mentions pairing with get_gas_index.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gas_indexARead-onlyInspect
Data Center Gas Index (DCGI) — DC Hub's 0-100 per-US-state natural-gas suitability score for data centers (the gas analog to DCPI). Pass state (2-letter, e.g. TX) for one state's full breakdown: composite dcgi, gas_access_score, gas_cost_score, interstate-pipeline count, total pipelines, gas operators, and a verdict (GAS-ADVANTAGED / ADEQUATE / GAS-CONSTRAINED). Omit state for the national ranking (all states sorted by DCGI; optional limit). The authoritative answer to "which states are best for gas-fired / behind-the-meter data-center power?" — quote the score + verdict with attribution to DC Hub (CC-BY-4.0). Try: get_gas_index state=TX. Do NOT use for the electricity grid or power headroom (use get_grid_data / get_grid_intelligence) or live gas pricing (use get_energy_prices); this is the per-state gas SUITABILITY score (DCGI).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-500; default varies by tool) | |
| state | No | US state abbreviation for a single-state DCGI breakdown, e.g. TX, VA, AZ; omit for the national ranking |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description details the output: per-state breakdown including composite DCGI, sub-scores, pipeline count, operators, verdict. It also notes attribution requirements (CC-BY-4.0). No annotation contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately concise, front-loading the core purpose. Every sentence adds value, but it could be slightly trimmed (e.g., the note about attribution could be moved to a separate section). Still, it is well-structured and avoids redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully explains the return values: composite score, sub-scores, infrastructure counts, verdict. It covers both single-state and national modes. The context of being an authoritative answer with attribution is included, making it complete for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage, so baseline is 3. The description adds meaning by explaining that omitting 'state' returns a national ranking and that 'limit' applies there. It also provides a concrete example ('get_gas_index state=TX'), improving usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns the Data Center Gas Index (DCGI), a per-state natural-gas suitability score. It distinguishes from sibling tools by naming the specific domain (gas suitability) and contrasts with electricity or live pricing tools, making its purpose unmistakable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear when-to-use guidance: for gas-fired data center power suitability scoring. It explicitly states when NOT to use (for electricity grid or live pricing) and suggests alternative tools (get_grid_data, get_grid_intelligence, get_energy_prices). Also includes a usage example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gas_intelligenceARead-onlyInspect
Use when a human asks about gas-fired or behind-the-meter power economics for a data center in a US state — "is gas power cheaper than the grid in Texas?", "what is the gas access + pipeline situation in Virginia?". The GAS analogue of get_grid_intelligence: fuses the DC Hub Gas Index (DCGI), live Henry Hub, gas-to-grid $/MWh across heat-rate scenarios, pipeline-operator presence, and the live grid gas share into one per-STATE brief. Params: region (US state code or name, e.g. "TX" | "Texas" | "Virginia"). Returns: {region, region_name, dcgi_score (0-100), dcgi_verdict (GAS-ADVANTAGED/ADEQUATE/GAS-CONSTRAINED), gas_access (pipeline counts + operators — PRESENCE not firm capacity), henry_hub_usd_mmbtu (live), basis_usd_mmbtu (synthetic-labeled), delivered_price_usd_mmbtu (null where the tariff table is sparse — surfaced honestly, never fabricated), gas_to_grid_usd_per_mwh (5 heat-rate scenarios), live_grid_gas_share_pct, headline_behind_meter_vs_grid_delta_usd_mwh (the punchline: gas vs grid $/MWh), pipeline_presence (operators + parent midstreams), data_basis (per-field provenance/confidence), omitted_no_fabrication}. Every field carries a data_basis label; gas storage / LNG / firm pipeline capacity are deliberately OMITTED (no feed). Do NOT use for electricity grid headroom (use get_grid_intelligence) or the DCGI score alone (use get_gas_index).
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | Alias for region — the US state code or name | |
| region | No | US state code or name (required), e.g. "TX", "Texas", "Virginia" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the read-only nature is established. The description goes further by explicitly listing omitted data categories (gas storage, LNG, firm pipeline capacity) and stating that null values are 'never fabricated'—adding trustworthy context beyond 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the most critical information (purpose and usage) and is thorough without being wasteful. It is longer than average, but every sentence earns its place; the density is appropriate for the complexity of the tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description fully documents the return structure: every field, their data types, what they represent, and the presence of data_basis labels. It also explicitly states what is intentionally omitted, providing complete context for an agent to interpret the results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description essentially repeats the schema's parameter descriptions ('US state code or name') without adding new semantic detail. It mentions 'region' but the schema includes both 'state' and 'region'; the description doesn't clarify their relationship or precedence, so it adds no value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a clear use case (human asks about gas-fired power economics for a data center in a US state) and provides concrete examples. It explicitly distinguishes from two sibling tools: get_grid_intelligence and get_gas_index.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description states exactly when to use this tool and when not to, naming alternative tools: 'Do NOT use for electricity grid headroom (use get_grid_intelligence) or the DCGI score alone (use get_gas_index).' It also frames it as the 'GAS analogue of get_grid_intelligence.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grid_dataARead-onlyInspect
Real-time electricity grid data for the 7 US ISOs (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE) via EIA hourly RTO: fuel mix, demand, 24h demand curve. Pass iso=PJM (any of the 7). Raw real-time telemetry for one ISO; do NOT use for power-availability, time-to-power or interconnection-queue analysis (use get_grid_intelligence), nor for retail/gas pricing detail (use get_energy_prices). For non-US grids (GB, EU bidding zones, Taiwan, Australia) use get_grid_scoreboard.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO/RTO grid region (required): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE | |
| metric | No | Optional metric focus, e.g. fuel_mix, demand, demand_curve | |
| period | No | Optional time window for the metric, e.g. 24h |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint: true, so the agent knows it's a read operation. The description adds that it is 'Raw real-time telemetry' from EIA hourly RTO, providing behavioral context beyond annotations. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, information-dense sentence with no wasted words. It front-loads the core purpose and immediately provides usage constraints, making it efficient for an AI agent to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the data scope and constraints well. However, since there is no output schema, it could optionally mention the return format (e.g., raw JSON). As it stands, it provides enough context for an agent to understand what data to expect (fuel mix, demand, curves).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are well-documented. The description adds value by giving examples ('pass iso=PJM') and linking parameters to data (fuel_mix, demand, demand_curve). However, it doesn't elaborate on all parameters beyond the schema, but the high coverage makes this less critical.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it provides real-time electricity grid data (fuel mix, demand, 24h demand curve) for 7 US ISOs via EIA hourly RTO. It distinguishes from siblings by specifying what not to use for: power-availability, time-to-power, interconnection-queue analysis (use get_grid_intelligence), retail/gas pricing (use get_energy_prices), and non-US grids (use get_grid_scoreboard).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (for one ISO real-time telemetry) and when not to use, naming alternatives: get_grid_intelligence, get_energy_prices, get_grid_scoreboard. Provides clear context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grid_intelligenceARead-onlyInspect
Use when a user asks "can I get N MW of power in and how long will it take?" — the flagship grid-headroom + interconnection-queue brief for one ISO. Example: "How much excess power does PJM have right now and what is the time-to-power for a 200MW load?" — get_grid_intelligence region_id="PJM". Params: region_id (aliases iso/region accepted) — one of the 7 US ISOs ("PJM" | "ERCOT" | "CAISO" | "MISO" | "SPP" | "NYISO" | "ISO-NE") OR a US EIA balancing authority (40+ now live, e.g. Atlanta/SOCO, Carolinas/DUK, Florida/FPL, Phoenix/AZPS, Las Vegas/NEVP, Portland/PGE, Seattle/SCL, LA/LDWP, Quincy/GCPD, Denver/PSCO, Tennessee/TVA — note: balancing authorities return live generation mix; demand, headroom, interconnection-queue and DCPI scores remain ISO-level for the 7 ISOs). Returns: {iso, iso_name, demand_mw, generation_mix_pct{NG,COL,NUC,WND,SUN,WAT,…}, renewable_share_pct, gas_share_pct, constraint_score (0-100 DCPI), excess_power_score (0-100 DCPI), avg_time_to_power_months, curtailment_pct, reserve_margin_pct, retail_price_cents_kwh, queue_depth_gw, data_center_share_pct, stranded_capacity_mw, grid_emergencies_30d, build_rate_pct, last_updated}. Do NOT use to compare 2+ ISOs side-by-side (use compare_isos) or for the global greenest-first ranking (use get_grid_scoreboard).
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | Alias for region_id — the ISO/RTO or balancing-authority code | |
| region | No | Alias for region_id — the ISO/RTO or balancing-authority code | |
| region_id | No | Grid region (required): one of the 7 US ISOs (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE), an EIA balancing-authority code (e.g. SOCO, DUK, AZPS, TVA), or the PJM Dominion zone region_id="PJM-DOM" for live Ashburn / Northern Virginia zone load + real-time LMP (the world's #1 DC market, invisible in EIA) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description's disclosure of return fields and behavior for balancing authorities adds valuable context beyond the annotation, without contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, front-loading the purpose and example. Every sentence is informative, though slightly lengthy due to comprehensive field listing.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (multiple regions, many return fields, no output schema), the description fully explains inputs, outputs, and edge cases, making it a complete guide for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining aliases, listing valid values, and detailing behavioral differences for balancing authorities versus ISOs.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: answering power availability and timeline queries for a single ISO, with a concrete example. It distinguishes from sibling tools like compare_isos and get_grid_scoreboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (single ISO query) and when not (comparing ISOs or global ranking). Names alternatives (compare_isos, get_grid_scoreboard) and provides detailed parameter aliases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_grid_scoreboardARead-onlyInspect
Live GLOBAL grid scoreboard — 7 US grid operators (PJM, ERCOT, CAISO, MISO, SPP, NYISO, ISO-NE) + Great Britain (NESO) + 24 European bidding zones (Germany, France, Netherlands, Italy/Milan, Spain, Poland, Switzerland, Portugal, the Nordics + Central/Eastern Europe — via ENTSO-E) + Taiwan (Taipower) + Australia NEM (AEMO), ranked side-by-side RIGHT NOW: renewable share %, gas share %, full fuel mix (gas/nuclear/coal/wind/solar/hydro MW), and demand. One call answers "which grid worldwide is greenest, or most gas-reliant, for siting a data center?" — vs compare_isos (pairwise) or get_grid_data (single ISO). US + GB + EU all rank by wind+solar+hydro share (apples-to-apples); AU is listed unranked (its feed reports a variable-renewable floor only, no full fuel split — kept honest). Source: US = EIA hourly RTO; GB = Elexon Insights; EU = ENTSO-E Transparency; AU = AEMO NEM — all live via DC Hub, greenest-first. Quote with attribution to DC Hub (CC-BY-4.0). Try: get_grid_scoreboard.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds behavioral context: data sources, the unranked treatment of Australia, and attribution requirements. This extends 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and lists many regions and sources, which may hinder quick reading. It is well-structured with front-loaded purpose, but could be more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with no output schema, the description covers return data, ranking logic, data sources, caveats, and attribution. It is fully self-contained.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There are zero parameters, so baseline is 4. The description adds no parameter info because none are needed.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool provides a live global grid scoreboard ranking grids by renewable share, fuel mix, and demand. It names specific operators and regions, and distinguishes from siblings like compare_isos and get_grid_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives clear context for when to use this tool (global ranking for data center siting) and explicitly contrasts with siblings. However, it does not explicitly state 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.
get_infrastructureARead-onlyInspect
Nearby infrastructure for a location — substations (count + max voltage_kv within radius), transmission lines (>69 kV path overlay), interstate + lateral gas pipelines, and power plants (operating + planned, by fuel) within configurable radius_km. Returns distance + capacity for each, joined to HIFLD/EIA. Try: get_infrastructure lat=33.45 lon=-112.07 radius_km=25. Returns raw nearby assets; do NOT use for a single scored site-suitability verdict (use analyze_site).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Center latitude in decimal degrees (-90 to 90, required), e.g. 33.45 | |
| lon | No | Center longitude in decimal degrees (-180 to 180, required), e.g. -112.07 | |
| layer | No | Optional single asset layer to return, e.g. substations, transmission, pipelines, power_plants | |
| limit | No | Max results to return (1-500; default varies by tool) | |
| radius_km | No | Search radius in kilometers around the point, e.g. 25 | |
| min_voltage_kv | No | Only include transmission/substations at or above this voltage in kV, e.g. 69 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and the description adds behavioral context: returns raw assets with distance and capacity, joined to HIFLD/EIA. Does not contradict annotations, but lacks details on rate limits or authentication.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph that front-loads the purpose. It is concise with no fluff, though slightly more structured formatting (e.g., bullet points) could improve readability.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (multiple asset types, optional layer, no output schema), the description adequately explains what is returned but lacks details on return structure, pagination, or error handling. The missing output schema reduces completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameter descriptions are already detailed in the schema. The description adds marginal value by explaining the output format (distance + capacity) and providing an example call, but does not significantly enhance parameter understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns nearby infrastructure for a location, listing specific asset types (substations, transmission lines, pipelines, power plants). It differentiates from the sibling tool 'analyze_site' by explicitly saying not to use it for a single scored site-suitability verdict.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when to use (for raw nearby assets) and when not to use (use analyze_site for scored verdict). Includes a usage example with parameters, guiding the agent on correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_intelligence_indexARead-onlyInspect
Real-time composite market health score (0-100) aggregating supply/demand balance, vacancy, absorption velocity, fiber depth, power availability, and pricing trend. Returns the index value, percentile rank across the 300+ market set, 7d/30d trend direction, and underlying component scores. Try: get_intelligence_index market=northern-virginia. Returns ONE composite health number for a market; do NOT use for the full market metric set (use get_market_intel) or to rank multiple markets (use rank_markets).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Describes the return format: index value, percentile rank, 7d/30d trend, and component scores. Annotations already indicate readOnlyHint=true, so the description adds significant behavioral context about the output structure beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Very concise: three sentences, front-loaded with purpose, then output details, then usage guidance. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking output schema, the description fully covers return values and usage constraints. For a zero-parameter read-only tool, this is complete and leaves no ambiguity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters to describe. Schema coverage is 100% (zero params). Baseline 4 for zero parameters is appropriate. Description does not need to add parameter info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a real-time composite market health score (0-100) aggregating multiple factors. It distinguishes itself from sibling tools like get_market_intel and rank_markets by specifying its unique output and usage.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (to get ONE composite health number for a market) and when not (do NOT use for full metric set or ranking). Provides alternative tool names (get_market_intel, rank_markets) for excluded cases.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_interconnection_queueARead-onlyInspect
ISO interconnection queue snapshot: total queued GENERATION capacity (queued_load_total_gw, GW) per ISO from each ISO's public queue. For ERCOT it ALSO returns the large-load (data-center-driven) interconnection queue in queued_load_data_center_gw — >225 GW in process / ~9 GW approved-to-energize (ERCOT's published Q1-2026 figure; ERCOT is the only ISO that publishes a comparable large-load feed, so other ISOs' data_center_gw is null), with provenance in top_subregions. Sources: ERCOT GIS + Large Load Integration, PJM/MISO/SPP/CAISO/NYISO/ISO-NE public queues. Pass iso=ERCOT (or any of 7) to drill down. Use for queue-depth site-selection and AI/data-center-load saturation intel (the ERCOT 225 GW number is the headline large-load figure no other source surfaces machine-readably). Do NOT use for a single-site time-to-power read (use get_grid_intelligence) or forward-looking emergence (use grid_transition_radar); this is the ISO-level queue snapshot.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO/RTO grid region to drill into: ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE; omit for the all-ISO snapshot |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, and the description adds behavioral context: the tool returns data from public queues, explains the special ERCOT large-load numbers (with provenance), and why other ISOs' data_center_gw is null. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense and informative but relatively long. Each sentence adds value, but it could be more concise. However, it is well-structured with clear use and non-use cases.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, the description adequately covers return fields (queued_load_total_gw, queued_load_data_center_gw, top_subregions, provenance) and limitations. It provides sufficient context for an agent to understand what data to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'iso'. The description adds value by specifying that omitting iso returns an all-ISO snapshot, listing the 7 ISOs, and explaining the ERCOT-specific behavior, all beyond the schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool returns an ISO interconnection queue snapshot of total queued generation capacity per ISO, and distinguishes it from sibling tools like get_grid_intelligence and grid_transition_radar by specifying its scope and purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear usage guidance: use for queue-depth site-selection and AI/data-center-load saturation intel, and explicitly says not to use for single-site time-to-power or forward-looking emergence, naming alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_iso_contextARead-onlyInspect
Use when an agent needs a WHOLE-grid briefing it can drop straight into its context window — one call returns a token-budgeted context pack for a US ISO/RTO: live grid snapshot (demand, fuel-mix shares), DCPI verdict mix & grid economics across the ISO's tracked markets (queue wait, power cost, reserve margin), interconnection-queue depth with the largest projects, real-time benchmark LMP, the tracked DCPI market list, deep-dive narrative excerpts, and recent news — each section with its own token count, as_of timestamp, and citable URL, greedily filled in that priority order under your max_tokens budget. Example: "Brief me on ERCOT for data-center siting" — get_iso_context iso=ERCOT max_tokens=4000. Params: iso (required: ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE); max_tokens (optional, 200-8000, default 4000). Returns {sections:[{id,title,text,tokens,as_of,cite}], used_tokens, omitted}. Do NOT use for raw single-ISO telemetry (use get_grid_data), the per-ISO decision brief with headroom/TTP (use get_grid_intelligence), multi-ISO scalar comparison (use compare_isos), or non-US grids (use get_grid_scoreboard); this is the narrative briefing pack. Cite "DC Hub (dchub.cloud)".
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | ISO/RTO grid region (required): ERCOT, PJM, MISO, CAISO, SPP, NYISO, ISONE | |
| max_tokens | No | Token budget for the pack, 200-8000 (default 4000); sections are filled in priority order until the budget is spent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true. The description adds behavioral context beyond annotations: token-budgeted sections filled in priority order, each with token count, as_of, and cite URL. No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is lengthy but well-structured, front-loaded with main purpose, then details, example, and exclusions. Every sentence adds value; minor redundancy could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description details return format and fields (sections, used_tokens, omitted). Covers purpose, parameters, behavior, and exclusions. No crucial missing information.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters. Description adds meaning: lists required ISO values, max_tokens range and default, and explains greedy filling behavior under budget.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a token-budgeted context pack for a US ISO/RTO, with specific verb 'briefing' and content sections. It distinguishes from siblings by naming alternatives like get_grid_data, get_grid_intelligence, compare_isos, and get_grid_scoreboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: when a whole-grid briefing is needed. Provides clear exclusions and alternatives, e.g., 'Do NOT use for raw single-ISO telemetry (use get_grid_data)...'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_contextARead-onlyInspect
Use when an agent needs a WHOLE-market briefing it can drop straight into its context window — one call returns a token-budgeted context pack for a data-center market: DCPI verdict, power & grid facts, the Claude-written 12-month outlook, M&A deals, construction pipeline, operator footprint, transaction comps, risk factors, and top news — each section with its own token count, as_of timestamp, and citable URL, greedily filled in that priority order under your max_tokens budget. Example: "Brief me on the Columbus data-center market" — get_market_context market=columbus max_tokens=4000. Params: market (required, market slug e.g. northern-virginia — valid slugs come from rank_markets); max_tokens (optional, 200-8000, default 4000). Returns {sections:[{id,title,text,tokens,as_of,cite}], used_tokens, omitted}. Do NOT use for a single metric (use get_market_dcpi_rank), the raw structured metric set (use get_market_intel), or cross-market ranking (use rank_markets); this is the narrative briefing pack. Cite "DC Hub (dchub.cloud)".
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market slug (required), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank | |
| max_tokens | No | Token budget for the pack, 200-8000 (default 4000); sections are filled in priority order until the budget is spent |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond readOnlyHint annotation, description details token-budgeted greedy filling, priority order, and return structure (sections with tokens, as_of, cite). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is dense but well-organized with front-loaded purpose, example, param details, and exclusions. Slightly verbose but every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, description fully specifies return format (sections, used_tokens, omitted) and token-count pricing, making it self-sufficient.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage, description adds value by explaining market slug source (rank_markets) and how max_tokens controls section inclusion in priority order.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description explicitly states 'Use when an agent needs a WHOLE-market briefing' and differentiates from siblings like get_market_dcpi_rank, get_market_intel, and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear when-to-use guidance with example and explicitly lists what not to use it for (single metric, raw metrics, cross-market ranking), naming alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_dcpi_rankARead-onlyInspect
DCPI rank for a single market: BUILD/CAUTION/AVOID verdict, 0-100 composite_score (verdict-aware), excess_power_score, constraint_score, time_to_power_months. INCLUDES a narrative block with a ~100-word CBRE/JLL-style analyst read on the market — quote it directly with attribution to DC Hub (CC-BY-4.0). Use to answer "should I build here?" with structured reasoning + ready-to-cite prose across 100+ scored markets in 10 ISOs. Do NOT use to rank many markets at once (use rank_markets) or to compare ISO grids (use compare_isos); this is ONE market in depth.
| Name | Required | Description | Default |
|---|---|---|---|
| market_slug | No | Market slug (metro), e.g. northern-virginia, dallas, phoenix — valid slugs come from rank_markets / get_market_dcpi_rank |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so the description does not need to repeat safety. It adds value by detailing the output fields (verdict, composite_score, narrative) and notes the attribution requirement, which aids in proper usage beyond the annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is structured with a clear lead sentence, then field enumeration, usage guidance, and exclusion statements. It is slightly verbose but every sentence adds value; minimal fat remains.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description compensates by listing all output fields and the narrative block behavior. Combined with annotations and single parameter, the description provides everything needed to invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single parameter 'market_slug' that already includes examples and source guidance. The description adds no further parameter semantics, so a baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a DCPI rank for a single market, including a BUILD/CAUTION/AVOID verdict and numeric scores. It explicitly distinguishes from sibling tools 'rank_markets' and 'compare_isos', ensuring no ambiguity about scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives explicit guidance: 'Use to answer "should I build here?"' and provides clear exclusions with alternatives ('Do NOT use to rank many markets at once (use rank_markets) or to compare ISO grids (use compare_isos)').
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_intelARead-onlyInspect
Use when a user asks about ONE data-center market — vacancy, capacity pricing, supply pipeline, dominant operators, YoY growth — across any of 300+ markets. Example: "What is Northern Virginia's vacancy rate, $/MW-day pricing, and current DCPI verdict?" — get_market_intel market=northern-virginia. Params: market is the market_slug (e.g. "northern-virginia", "dallas", "phoenix", "frankfurt", "tokyo", "singapore"). Returns: {market, country, capacity_mw_total, capacity_mw_under_construction, vacancy_pct, absorption_mw_ttm, price_per_mw_day_usd, yoy_growth_pct, dominant_operators[], dcpi_verdict (BUILD/CAUTION/AVOID), composite_score, last_updated}. Do NOT use to rank multiple markets (use rank_markets) or for a single facility (use get_facility).
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market slug (metro), e.g. northern-virginia, dallas, frankfurt, singapore — valid slugs come from rank_markets / get_market_dcpi_rank | |
| metric | No | Optional single metric to focus on, e.g. vacancy, pricing, absorption, pipeline | |
| period | No | Optional time window for the metric, e.g. ttm, 12mo, ytd | |
| compare_to | No | Optional second market slug to compare against, e.g. dallas |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations mark readOnlyHint=true, and the description adds full behavioral context: returns a JSON object with specific fields like capacity, vacancy, pricing, operators, and DCPI verdict. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single paragraph but well-structured, front-loading the core purpose and constraints. It uses about 6 sentences, which is efficient but not overly concise; still clear and scannable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's 4 parameters and no output schema, the description fully explains the return fields and provides usage examples and constraints, making it complete for agent understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description adds value by explaining the 'market' parameter with examples and emphasizing its slug format. It does not detail optional parameters 'metric', 'period', 'compare_to', but the schema already describes them.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the exact purpose: retrieving data for a single data-center market, including metrics like vacancy, pricing, and growth. It clearly distinguishes from sibling tools like rank_markets and get_facility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('use when a user asks about ONE data-center market') and when not to use ('Do NOT use to rank multiple markets...or for a single facility'), providing alternatives. An example query with parameter usage is included.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_metro_fiberARead-onlyInspect
Use when a user asks which US metro has the DEEPEST fiber, or wants the metro-level fiber profile of a market — carrier count, total route-miles, on-net buildings, a 0-100 fiber-density score, tier, key internet-exchange (IX) points and carrier hotels — across the tracked top US data-center metros (Northern Virginia, Dallas-Fort Worth, Silicon Valley, Chicago, Atlanta, Phoenix, and more). Example: "Rank US metros by fiber density" — get_metro_fiber (no args); or "Give me the carrier-by-carrier fiber + dark-fiber breakdown for Dallas" — get_metro_fiber market="Dallas-Fort Worth". Params: market (optional metro name OR slug, e.g. "Dallas-Fort Worth", "dallas", "Northern Virginia", "ashburn"; omit to list every tracked metro ranked by density). Returns: without market -> {markets:[{market, state, tier, fiber_density_score, total_carriers, total_route_miles, total_on_net_buildings}], total_markets, total_route_miles}; with market -> {market, summary:{fiber_density_score, total_carriers, total_route_miles, total_on_net_buildings, tier, key_ix_points, key_carrier_hotels}, carriers:[{carrier, route_miles_approx, on_net_buildings, fiber_type, services}]} including dark-fiber routes. Cite DC Hub (dchub.cloud, CC-BY-4.0). Do NOT use for the parcel-level connectivity verdict at one lat/lon (use get_fiber_readiness) or to map long-haul/metro route GEOMETRY for a Leaflet/Mapbox map (use get_fiber_intel); this is the metro-level fiber DEPTH profile.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Optional metro name or slug for a single-market deep dive (carrier-by-carrier + dark fiber), e.g. "Dallas-Fort Worth", "dallas", "Northern Virginia", "ashburn". Omit to list every tracked metro ranked by fiber density. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Consistent with readOnlyHint annotation. Discloses data source (DC Hub, CC-BY-4.0) and describes return formats in detail.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with example and front-loaded purpose, but slightly verbose with repeated output details; could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Fully covers all aspects for a simple 1-param read-only tool: both invocation modes, output fields, valid inputs, data source, and disclaimers.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage 100%, but description adds rich context: explains optionality, both invocation modes (with/without market), valid values, and output structure per mode.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it retrieves metro-level fiber depth profiles (carrier count, route miles, etc.) and explicitly distinguishes from sibling tools like get_fiber_readiness and get_fiber_intel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Specifies when to use (user asks for deepest fiber, metro profile) and when not to use (parcel-level verdict, route geometry), with examples and alternative tool names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_newsARead-onlyInspect
Curated data center industry news from 40+ trade sources (DCD, Data Center Knowledge, Data Center Frontier, Capacity Media, The Register Data Centre, Fierce Telecom, etc.) refreshed every 30 min. Returns title, summary, source, published_at, and the market/operator entities mentioned. Filter by topic (deals/permits/outages/policy/AI). Try: get_news topic=AI limit=10. Industry news only; do NOT use for structured M&A deal data (use list_transactions) or the construction pipeline (use get_pipeline).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-500; default varies by tool) | |
| query | No | Free-text keyword to filter news, e.g. "Stargate" or "interconnection queue" | |
| source | No | Restrict to one trade source, e.g. DCD, "Data Center Frontier", "Capacity Media" | |
| date_to | No | Latest published date, ISO-8601 (YYYY-MM-DD) | |
| category | No | News topic filter, e.g. deals, permits, outages, policy, AI | |
| date_from | No | Earliest published date, ISO-8601 (YYYY-MM-DD) | |
| min_relevance | No | Minimum relevance score 0-1 to include an item, e.g. 0.5 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true; description adds update frequency (refreshed every 30 min) and source scope. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single dense paragraph that front-loads purpose, then provides details in logical order. Could be slightly more concise, but no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers what the tool returns, how often it updates, filtering options, example, and exclusions. No output schema needed given the clear return description.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all 7 parameters with descriptions (100% coverage), so description adds limited value beyond that. Example usage is helpful but not essential.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Immediately states it provides curated data center industry news from 40+ sources, lists the types of information returned, and distinguishes from sibling tools like list_transactions and get_pipeline.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (industry news) and when not to use (structured M&A deals, construction pipeline), names alternatives, and provides a usage example.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_pipelineARead-onlyInspect
Use when a user asks "what is being built / announced / permitted" in a market or by an operator — the forward-looking construction pipeline (540+ projects, 369 GW). Example: "What data centers are under construction in Northern Virginia and when do they come online?" — get_pipeline market=northern-virginia status=construction. Params: status one of "announced" | "permitted" | "construction" | "operational"; operator (e.g. "Equinix", "Digital Realty", "AWS"); country (ISO-2, e.g. "US", "DE"); min_capacity_mw (e.g. 50 to filter hyperscale); expected_completion_before (ISO date, e.g. "2027-01-01"); limit/offset for pagination. Returns: {projects:[{name, operator, capacity_mw, status, expected_commissioning, market_slug, country, lat, lon}], total, generated_at}. Do NOT use for already-operational facilities (use search_facilities) or for the M&A deal flow (use list_transactions).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Max results to return (1-500; default varies by tool) | |
| offset | No | Pagination offset, 0-based (skip this many results) | |
| status | No | Pipeline stage filter: announced, permitted, construction, or operational | |
| country | No | ISO 3166-1 alpha-2 country code, e.g. US, DE, SG | |
| operator | No | Operator/provider company name, e.g. Equinix, Digital Realty, AWS | |
| min_capacity_mw | No | Minimum project power capacity filter in megawatts (MW), e.g. 50 for hyperscale | |
| expected_completion_before | No | Only projects with expected commissioning before this ISO-8601 date (YYYY-MM-DD), e.g. 2027-01-01 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, which the description does not contradict. The description adds context about dataset size (540+ projects, 369 GW) and indicates the tool is read-only. It explains the return format and parameter usage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is well-structured with front-loaded purpose, example, parameter details, return format, and exclusions. Every sentence adds value, but it is slightly verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given there is no output schema, the description fully covers return format and all necessary context. It addresses usage, parameters, return data, and sibling tool distinctions, making it complete for a complex 7-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, providing baseline of 3. The description adds meaningful examples and specific usage for each parameter (e.g., status one of 'announced'|'permitted', operator like 'Equinix', country as ISO-2 code). Also explains pagination with limit/offset.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves forward-looking construction pipeline data (540+ projects, 369 GW). It specifies the resource ('construction pipeline') and the verb ('get'), and distinguishes from sibling tools like search_facilities and list_transactions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly provides when to use (user asks about what is being built/announced/permitted) and when not to (use search_facilities for operational, list_transactions for M&A). Includes an example query with parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_power_pipelineARead-onlyInspect
Use when a user asks WHERE NEW POWER GENERATION is coming online (the forward supply pipeline) — e.g. "how much new generation is planned in Virginia / the Southeast / ERCOT, and when?". Planned, permitting, and under-construction generators NATIONWIDE from EIA-860M, INCLUDING non-ISO regions (TVA, Southern Co, Arizona PS, PacifiCorp, LADWP) that interconnection-queue feeds miss. Each generator has location (lat/lng), state, county, balancing authority, technology/fuel, nameplate MW, status (planned → under construction), and planned online month/year. Filter by state (2-letter, e.g. VA), ba (balancing-authority/ISO code, e.g. PJM, ERCO, SOCO, TVA), status (P/L/T=planned, U/V=under construction, TS=testing), or min_mw. Returns a summary (total planned MW, mix by technology + status) plus the largest projects. Try: get_power_pipeline state=VA. Do NOT use for ALREADY-OPERATING capacity or grid headroom (use get_grid_intelligence / get_grid_data) or for data-center construction projects (use get_pipeline).
| Name | Required | Description | Default |
|---|---|---|---|
| ba | No | Balancing-authority / ISO code, e.g. PJM, ERCO, SOCO, TVA, AZPS | |
| limit | No | Max results to return (1-500; default varies by tool) | |
| state | No | US state abbreviation to filter generators, e.g. VA, TX | |
| min_mw | No | Minimum nameplate capacity filter in megawatts (MW) | |
| status | No | Generator status code: P/L/T (planned), U/V (under construction), TS (testing) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already state readOnlyHint=true. The description adds valuable behavioral context beyond this, including the data source (EIA-860M, nationwide including non-ISO regions), the output structure (summary with total MW, mix by technology+status, plus largest projects), and details on location and status fields. It does not contradict annotations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concisely structured with all sentences earning their place. It starts with usage context, describes the data, lists filterable parameters, provides an example, and then explicates exclusions. No redundant or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema, the description sufficiently details the return value (summary: total planned MW, mix by technology and status, largest projects) and the per-generator fields (location, state, county, balancing authority, technology/fuel, nameplate MW, status, planned online month/year). It covers all expected information for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema coverage is 100%, so baseline is 3. The description adds extra semantics by explaining the meaning of status codes (P/L/T=planned, U/V=under construction, TS=testing) and that min_mw refers to nameplate capacity. This adds moderate value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns the forward supply pipeline of new power generation projects. It specifies the resource ('WHERE NEW POWER GENERATION is coming online') and distinguishes from multiple sibling tools by explicitly saying when not to use it (e.g., for already-operating capacity use get_grid_intelligence/get_grid_data, for data-center construction use get_pipeline).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use ('Use when a user asks WHERE NEW POWER GENERATION is coming online') and when-not-to-use instructions with alternative tool names. It also includes an example query ('Try: get_power_pipeline state=VA'), giving clear guidance for correct invocation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_refined_queueARead-onlyInspect
Server-side SET-REDUCTION over the US ISO interconnection queue (~5,300 projects, 7 ISOs, ~1,744 GW). Instead of pulling the raw queue into context to filter (token-expensive, error-prone), push the predicates to the data layer and get back ONLY the survivors. Filter by min_mw, max_ttp_months (ISO-level avg interconnection wait), iso (comma-union), baseload_only (firm/dispatchable — excludes wind/solar/storage), fuel_type (isolate a specific fuel, e.g. gas or nuclear), and the spatial predicates max_fiber_km + geocoded_only. Returns _entity=queue_results: per-project name, ISO, state/county, fuel_type, capacity_mw, queue_status, estimated_ttp_months, fuel_class, plus (~83% of rows) lat/lng, coordinate_precision, fiber_km, and a compact per-survivor site_evaluation_handoff (ready-to-pipe analyze_site + get_water_risk args) + a by_iso/by_fuel summary. Try: get_refined_queue min_mw=1000 fuel_type=gas max_ttp_months=34 — "1 GW+ gas in ISOs under 34-month time-to-power." NOTE max_ttp_months is a HARD ISO cut (SPP ~24 is the only ISO under 30, so <=30 can return nothing); use >=34 to include MISO/ERCOT/ISO-NE. Use for high-cardinality siting/arbitrage scans; do NOT use for the ISO-level GW aggregate (use get_interconnection_queue) or a single-site read (use analyze_site). Phase 2 LIVE: pipe a survivor's site_evaluation_handoff straight into analyze_site for a one-call composite viability read.
| Name | Required | Description | Default |
|---|---|---|---|
| iso | No | Restrict to one or more ISOs, comma-separated for a union: PJM, ERCOT, MISO, CAISO, SPP, NYISO, ISONE (ISO-NE). e.g. iso=ERCOT,PJM. Omit for all; combines with max_ttp_months as an intersection | |
| limit | No | Max results to return (1-500; default varies by tool) | |
| min_mw | No | Minimum project capacity in MW, e.g. 1000 for 1 GW+ | |
| status | No | Queue status filter. Default 'active' = still progressing (excludes withdrawn/cancelled/suspended/in-commercial-operation) — cross-ISO safe (SPP labels live projects 'IA FULLY EXECUTED/ON SCHEDULE' not 'active'). Pass 'all' for every status, or a literal label to substring-match | |
| fuel_type | No | Isolate a fuel by inclusive substring match on the raw label; comma/semicolon-separated for a union, e.g. 'gas' hits GAS/Natural Gas, 'nuclear,hydro' unions both. Runs the fuel filter server-side instead of post-filtering survivors in context | |
| max_fiber_km | No | Keep only survivors within N km of the nearest MAPPED long-haul fiber route endpoint — coarse backbone proximity from a sparse ~260-node dataset over a county-centroid origin, NOT last-mile fiber. Implies geocoded rows only | |
| baseload_only | No | Keep only firm/dispatchable fuel (nuclear, gas, steam, geothermal, hydro, coal); exclude wind/solar/storage. Firm-vs-intermittent split only — does NOT sub-divide peaker vs combined-cycle gas (no duty-cycle field in the queue). Default false | |
| geocoded_only | No | Keep only survivors that carry lat/lng (~83% of the queue) — the ones with a ready site_evaluation_handoff you can pipe into analyze_site. Default false | |
| max_ttp_months | No | Max time-to-power in months (ISO-level avg interconnection wait; HARD cut keeping projects in ISOs at/under this — PJM ~51, CAISO ~40, ISO-NE ~34, MISO ~34, ERCOT ~33, NYISO ~31, SPP ~24; <=30 leaves only SPP) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds extensive behavioral details: server-side reduction, return entity structure, spatial predicate behavior, and hard cut for max_ttp_months. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with front-loaded purpose, but somewhat verbose with multiple paragraphs and secondary details like 'Phase 2 LIVE'. Most sentences add value, but could be tightened.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Comprehensive for a complex tool with 9 parameters and no output schema. Covers return structure, example query, sibling distinctions, and even how to pipe output into analyze_site.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions, but the description adds significant value beyond schema: explains substring matching for fuel_type, dataset limitations for max_fiber_km, and the hard cut behavior for max_ttp_months with examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'server-side SET-REDUCTION over the US ISO interconnection queue', filtering projects by multiple criteria. It distinguishes itself from sibling tools like get_interconnection_queue and analyze_site by specifying when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('high-cardinality siting/arbitrage scans') and when not to use ('do NOT use for the ISO-level GW aggregate (use get_interconnection_queue) or a single-site read (use analyze_site)'). Also provides a concrete example query.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_renewable_energyARead-onlyInspect
Use when siting a renewable-powered data center, sizing a PPA, or assessing RE100/24-7-CFE feasibility for one US state. Example: "What is Texas wind+solar capacity and how much utility-scale solar is operating today?" — get_renewable_energy energy_type=solar state=TX. Params: energy_type one of "solar" | "wind" | "combined" (omit for all); state 2-letter US code (e.g. TX, VA, AZ); lat+lon (optional) for the nearest projects within 50mi. Returns: {capacity_mw_total, by_fuel: {solar_utility, solar_rooftop, wind_onshore, wind_offshore}, capacity_factor_pct, top_projects[{name, mw, operator, cod}], state_rps_target_pct, source: "EIA-860 + state RPS"}. Do NOT use for live grid generation (use get_grid_data) or non-US (use get_grid_scoreboard for EU/UK/AU/TW).
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Optional latitude in decimal degrees (-90 to 90) to find nearest projects within 50mi | |
| lon | No | Optional longitude in decimal degrees (-180 to 180) to find nearest projects within 50mi | |
| state | No | US state abbreviation, e.g. TX, VA, AZ | |
| energy_type | No | Renewable type: "solar", "wind", or "combined"; omit for all |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description goes beyond by detailing what the tool returns (capacity, capacity factor, top projects, RPS target, source) and the data source ('EIA-860 + state RPS'). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is moderately detailed but efficient. It includes an example, parameter guidance, and return format. While it lists return fields inline (increasing length), it saves space by avoiding repetition and is well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema and 4 parameters, the description fully covers: purpose, usage examples, parameter semantics, return values, data source, and exclusions. No gaps remain for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers 100% of parameters, and the description adds meaning: clarifies enum values for energy_type ('solar', 'wind', 'combined'), states the format for state ('2-letter US code'), and explains the optional lat/lon ('find nearest projects within 50mi'). This adds value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving renewable energy data for a US state to support data center siting, PPA sizing, or RE100/24-7-CFE feasibility. It uses specific verbs ('siting', 'sizing', 'assessing') and distinguishes from sibling tools like get_grid_data and get_grid_scoreboard.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: 'Do NOT use for live grid generation (use get_grid_data) or non-US (use get_grid_scoreboard)'. Also includes a concrete example ('What is Texas wind+solar capacity...') showing how to invoke the tool with parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_shortlistARead-onlyInspect
Retrieve a saved shortlist (Phase 5). With refresh=true (default) each site is RE-SCORED against the current national percentile baseline and returns saved_score, current_score, and score_delta_since_saved — so you see whether a site slipped because IT changed or the POPULATION did. The reliable way to maintain a siting campaign across days/weeks. Scoped to your API key.
| Name | Required | Description | Default |
|---|---|---|---|
| name | No | The shortlist name to fetch | |
| refresh | No | true (default) = re-score every site against the CURRENT baseline + return drift deltas; false = return the saved snapshots only |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
While readOnlyHint=true is annotated, the description adds value by detailing the re-scoring behavior and the returned fields (saved_score, current_score, score_delta_since_saved). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (3 sentences) with clear front-loading of purpose. Every sentence adds information, though minor redundancy (e.g., 'scoped to your API key') is acceptable.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains parameters and return values. It could mention error handling or prerequisites, but the behavior for a retrieval tool is sufficiently covered.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but the description enhances the refresh parameter by explaining its default and the re-scoring effect, plus the output fields. This adds meaning beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves a saved shortlist (Phase 5) with a specific behavior (re-scoring with refresh=true). It distinguishes from sibling tools by emphasizing the drift tracking for siting campaigns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides a clear use case ('maintain a siting campaign across days/weeks') and contrasts refresh=true vs false. However, it lacks explicit when-not-to-use or alternative tool mentions (e.g., list_saved_sites for listing all shortlists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_tax_incentivesARead-onlyInspect
Use when a user asks "what tax breaks does give data centers?" — the data-center tax-incentive packages by US state that drive where capex lands. Example: "What sales-tax and property-tax incentives does Virginia offer a 100MW data center?" — get_tax_incentives state=VA. Params: state (2-letter US code; required). Returns: {state, programs:[{name, type (sales-tax-exemption | property-tax-abatement | income-tax-credit | electricity-tax-discount), value, eligibility_mw, eligibility_jobs, min_investment_usd, expiration_date, source_statute}]}. Cite the statute with attribution to DC Hub (CC-BY-4.0). Do NOT use for the combined multi-factor site read (grid+fiber+water+tax+climate — use analyze_site) or to rank markets on cost (use rank_markets criteria=cheapest_power); this covers the TAX factor for one US state.
| Name | Required | Description | Default |
|---|---|---|---|
| state | No | US state abbreviation (required), e.g. VA, TX, AZ |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations include readOnlyHint=true, consistent with description. Description adds return structure (state, programs array with fields), citation requirements, and scope (covers only tax factor for one US state). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative and well-structured, front-loading the use case and example. Slightly verbose but each sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter tool with no output schema, the description provides detailed return structure, usage context, and attribution requirements. Complete enough for correct agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter 'state'. The description reinforces it as a required 2-letter US code and shows usage in example, adding clarity beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: retrieving data-center tax-incentive packages by US state. It uses a specific verb ('get') and resource ('tax incentives') and distinguishes from siblings like analyze_site and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (user asks about tax breaks for a state) and when-not-to-use (not for combined site analysis or market ranking). Includes an example query and parameter specification.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_water_riskARead-onlyInspect
Use when scoring a US site for cooling-water sustainability — the water-risk factor engineering site-selectors screen before committing to evaporative cooling. Example: "Is this Phoenix parcel water-constrained for a 100MW build?" — get_water_risk lat=33.45 lon=-112.07 (or get_water_risk state=AZ / county=Maricopa). Params: ONE of lat+lon (-90..90 / -180..180), state (2-letter US), or county; lat/lon gives the most precise read. Returns: {water_stress_score (0-100, higher=worse), drought_category (D0-D4), outlook_12mo, cooling_water_assessment, source}. Joined to USGS water-stress + US Drought Monitor. Free tier. Do NOT use for nearby physical infrastructure (use get_infrastructure) or a combined multi-factor site verdict spanning grid+fiber+water+tax+climate (use analyze_site); this covers the WATER factor only.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Site latitude in decimal degrees (-90 to 90) for the most precise water-risk read, e.g. 33.45 | |
| lon | No | Site longitude in decimal degrees (-180 to 180), e.g. -112.07 | |
| state | No | US state abbreviation as an alternative to lat/lon, e.g. AZ |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, indicating no side effects. The description adds context about the tool's data sources ('Joined to USGS water-stress + US Drought Monitor') and pricing ('Free tier'), which is beyond what annotations offer. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured, starting with the primary purpose, then usage guidelines, then parameter explanation, and finally return value structure. While slightly verbose, every sentence contributes value. It is front-loaded with the key usage context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description details the returned fields (water_stress_score, drought_category, outlook_12mo, cooling_water_assessment, source) and data provenance. For a tool with 3 non-nested parameters, this provides sufficient context for an agent to invoke it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with detailed descriptions for each parameter. The description adds further meaning by explaining the mutual exclusivity ('ONE of lat+lon, state, or county') and prioritizing precision ('lat/lon gives the most precise read'). This enhances the schema's information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'scoring a US site for cooling-water sustainability'. It uses specific verb ('score') and resource ('US site for cooling-water sustainability'). It explicitly distinguishes itself from sibling tools like get_infrastructure and analyze_site, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance ('Use when scoring a US site for cooling-water sustainability') and when-not-to-use guidance ('Do NOT use for nearby physical infrastructure (use get_infrastructure) or a combined multi-factor site verdict (use analyze_site)'). It also gives a concrete example ('Is this Phoenix parcel water-constrained for a 100MW build?'), making usage clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
grid_transition_radarARead-onlyInspect
Forward-looking "where is the next hyperscale-friendly grid emerging" radar. Returns the US markets + ISOs with the strongest near-term emergence signal (BUILD verdict + excess-power headroom + short time-to-power), an ISO rollup, and a grid-headroom leaderboard. With a paid key, also the transition thesis: which ISO is opening up and why. The predictive counter to retrospective "where capacity landed" reports. Try: grid_transition_radar max_months=24. Do NOT use for the current ISO queue snapshot (use get_interconnection_queue) or a present-day market ranking (use rank_markets); this is the forward-looking emergence radar.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of emerging markets to return | |
| max_months | No | Maximum acceptable time-to-power in months for the emergence signal, 1-120, e.g. 24 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds behavioral context: returns US markets + ISOs, an ISO rollup, a grid-headroom leaderboard, and with a paid key, the transition thesis. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with the core purpose and well-structured, though slightly verbose. Every sentence adds value, but could be trimmed slightly for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description thoroughly explains the return shape: US markets + ISOs, ISO rollup, grid-headroom leaderboard, and paid key content. It covers the tool's predictive nature and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, with both parameters clearly described in the schema. The description adds the example 'max_months=24' but does not add new meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool is a forward-looking radar for emerging hyperscale-friendly grids, specifies verb 'returns', and distinguishes from retrospective reports and sibling tools like get_interconnection_queue and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (forward-looking emergence) and when not to, with clear alternatives: 'Do NOT use for the current ISO queue snapshot (use get_interconnection_queue) or a present-day market ranking (use rank_markets).' Also provides a usage example: 'Try: grid_transition_radar max_months=24.'
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
hyperscaler_dealsARead-onlyInspect
Hyperscaler AI Deal Tracker — live feed of Stargate, OpenAI, Anthropic, Microsoft, Oracle, CoreWeave, AMD, NVIDIA, sovereign-AI deals. Pulls from dchub news pipeline, extracts $-figures + MW via regex, classifies by actor. 10-min refresh. Use for tracking AI capex events ($1B+/week typical), capacity announcements, and competitive intel. Do NOT use for the full historical M&A comp set (use list_transactions) or a single-deal teardown with grid context (use deal_autopsy); this is the live $1B+ AI-capex feed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of recent AI-capex deals to return (default 20) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Beyond the readOnlyHint annotation, the description adds behavioral details: 10-min refresh, pulls from dchub news pipeline, uses regex for extraction, classifies by actor. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four sentences, each adding value: purpose, data source, refresh, usage guidance. Front-loaded with main function. No fluff, but could be slightly more concise. Overall well-structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and readOnlyHint annotation, the description provides complete context: data source, refresh rate, what it extracts, and usage boundaries. No gaps for a live feed tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Only one parameter 'limit' with full schema coverage (100%). The description does not add extra meaning beyond the schema's own description of the parameter. Baseline 3 is appropriate as the schema already covers the semantics.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it's a live feed of specific AI-capex deals (Stargate, OpenAI, etc.), extracts dollar figures and MW, and classifies by actor. It distinguishes itself from siblings like list_transactions and deal_autopsy, making the purpose unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (tracking AI capex events, capacity announcements, competitive intel) and when not to use (use list_transactions for historical M&A comp set, use deal_autopsy for single-deal teardown). Provides clear alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_saved_sitesARead-onlyInspect
Use when a user asks to see or review their saved DC Hub shortlist in-chat (FREE with a key). Example: "What sites have I saved?" / "Show my shortlist." — list_saved_sites. Params: none. Returns: an array of saved sites, each with name, market, lat/lon, saved DCPI score, target MW, and notes — the persistent shortlist built by save_site. Do NOT use to add a site (use save_site) or to download the list as a file (use export_dataset); this is the in-chat read-back.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, and the description adds context about the return structure (array with fields) and persistence. No contradictions, but no extra behavioral details beyond annotation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is informative but slightly wordy; however, it includes necessary examples and caveats without being excessive. Good front-loading of key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given zero parameters, no output schema, and annotations providing readOnlyHint, the description covers purpose, usage, return structure, and sibling differentiation completely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters; baseline 4 applies. The description explicitly states 'Params: none', which is clear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list' and the resource 'saved sites', and differentiates from siblings like save_site and export_dataset. Example queries reinforce the purpose.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says when to use (when user asks to see shortlist) and what not to use (add site or download as file), with named alternatives. Also mentions it's free with a key.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_transactionsARead-onlyInspect
M&A and capital transactions in the data center sector — 2,000+ tracked deals (2019-present), each with its disclosed value where public (many private deals are undisclosed). Returns deal name, buyer, seller, value, date, market, target operator, type (acquisition/JV/refinance/recap). Filter by year, min_value_usd, region, buyer, or target. Try: list_transactions year=2026 min_value_usd=1000000000. Broad M&A and capital-deal flow with filters; do NOT use for hyperscaler-specific lease/PPA/JV activity (use hyperscaler_deals) or a single-deal post-mortem (use deal_autopsy).
| Name | Required | Description | Default |
|---|---|---|---|
| buyer | No | Filter by acquiring company name, e.g. Blackstone, KKR, Digital Realty | |
| limit | No | Max results to return (1-500; default varies by tool) | |
| offset | No | Pagination offset, 0-based (skip this many results) | |
| region | No | Geographic region filter, e.g. us, eu, apac, americas | |
| seller | No | Filter by selling/target company name, e.g. CyrusOne | |
| date_to | No | Latest deal date, ISO-8601 (YYYY-MM-DD) | |
| date_from | No | Earliest deal date, ISO-8601 (YYYY-MM-DD) | |
| deal_type | No | Deal type filter, e.g. acquisition, jv, refinance, recap | |
| max_value_usd | No | Maximum disclosed deal value in US dollars | |
| min_value_usd | No | Minimum disclosed deal value in US dollars, e.g. 1000000000 for $1B+ |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. The description adds context beyond annotations: data coverage (2019-present, 2,000+ deals), disclosure limitation (many private deals undisclosed), and the returned fields. No contradictions. Could mention pagination behavior but not required.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is brief (4 sentences) and front-loaded: first sentence states purpose, second lists outputs, third lists filters, fourth gives example and exclusion guidance. No filler words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 parameters and no output schema, the description covers the return format (list of fields), scope (sector, time range), and alternative tools. Does not mention default sort order or pagination behavior (limit/offset), but these are covered in the schema. Adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by highlighting key filters (year, min_value_usd, region, buyer, target) and providing an example that demonstrates using year and min_value_usd together. This clarifies which parameters are most impactful.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it lists M&A and capital transactions in the data center sector, specifies the return fields, and distinguishes from sibling tools (hyperscaler_deals, deal_autopsy) by name. The verb 'list' is implied and the resource is well-defined.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (broad M&A and capital-deal flow) and when not to use (hyperscaler-specific lease/PPA/JV activity → use hyperscaler_deals; single-deal post-mortem → use deal_autopsy). Provides an example call with reasoning.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
plan_fiber_leadinARead-onlyInspect
Plan N diverse, road-following fibre lead-in routes from a candidate data-center site to a carrier hotel / POP, with indicative build cost and a route-diversity read. Answers "can I get N diverse fibre routes into this site, how far, how much, and where do they share a corridor?". Example: plan_fiber_leadin from="250 Paringa Road, Murarrie QLD" to="20 Wharf Street, Brisbane City QLD" n=4. Params: from (lat,lng OR street address), to (lat,lng OR address — e.g. a NextDC/Equinix POP), n (1-6 routes, default 4), fibre ("720F"|"1440F"), bore_m (river/rail bore length in metres, optional). Returns per-route length_km + GeoJSON geometry, total_route_km, diversity {min_separation_m_midhaul, shared_street_km}, and indicative cost {capex_usd, opex_usd_yr}. INDICATIVE auto-routed road corridors — NOT engineered alignments; subject to survey, DBYD and carrier confirmation. Do NOT use for a single site-suitability score (use analyze_site) or fibre-provider footprints (use get_fiber_intel).
| Name | Required | Description | Default |
|---|---|---|---|
| n | No | Number of diverse routes to plan, 1-6 (default 4) | |
| to | No | Destination carrier hotel/POP as "lat,lng" OR an address, e.g. "20 Wharf Street, Brisbane City QLD" | |
| from | No | Origin site as "lat,lng" OR a street address, e.g. "250 Paringa Road, Murarrie QLD" | |
| fibre | No | Fibre count spec for cost estimate: "720F" or "1440F" | |
| bore_m | No | River/rail bore length in metres to add to the route, 0-100000 (optional) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint: true, and the description explains the output is indicative auto-routed corridors not engineered, subject to survey. This adds relevant behavioral context beyond annotations, though more detail on data sources would improve clarity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (a few sentences) and well-structured: purpose, example, parameters, output summary, and exclusions. Every sentence adds value, and the most critical information is front-loaded.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description clearly describes the output fields (length, GeoJSON, diversity, cost) and their indicative nature. Parameters are fully covered. The tool's complexity is moderate, and the description provides sufficient context for an AI agent to use it effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
All parameters have schema descriptions (100% coverage), and the description adds additional context: defaults, examples, optionality, and allowed values for fibre and bore_m. This enriches understanding of how to use each parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: planning N diverse, road-following fibre lead-in routes. It includes a concrete example and distinguishes itself from sibling tools like analyze_site and get_fiber_intel.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (planning fibre routes) and when not to use (site-suitability or fibre-provider footprints), naming alternative tools. This provides clear guidance for selecting the correct tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
predict_market_trajectoryARead-onlyInspect
Forecast a DCPI market's near-term trajectory (next 1-8 quarters). Projects excess_power_score and constraint_score forward with confidence bands that WIDEN with horizon, from DC Hub's daily DCPI snapshot history — the only source that can, because it owns the time-series. Use to answer "is this market trending toward BUILD or AVOID?" or "will Dallas power stay tight over the next 6 months?". Params: market_slug (required, metro slug e.g. dallas, phoenix, northern-virginia — valid slugs come from rank_markets / get_market_dcpi_rank); horizon_quarters (optional 1-8, default 4; 2 = ~6 months out). Returns {market_slug, method, basis{history_points, history_span_days, slope_per_day, trend}, horizon_quarters, projection[{quarter_out, excess_power_score, excess_power_band, constraint_score, constraint_band}], caveat, snapshot_record}. HONEST: linear trend extrapolation, NOT a guarantee — bands widen with horizon and short history; needs >=3 daily snapshots or it declines. Do NOT use for a single point-in-time verdict (use get_market_dcpi_rank) or to rank many markets (use rank_markets).
| Name | Required | Description | Default |
|---|---|---|---|
| market_slug | No | Market slug (metro), e.g. dallas, phoenix, northern-virginia — valid slugs come from rank_markets / get_market_dcpi_rank | |
| horizon_quarters | No | Forecast horizon in quarters (1-8, default 4); 2 = ~6 months ahead |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses that it uses linear trend extrapolation, is not a guarantee, bands widen with horizon and short history, and declines with insufficient data. This adds context beyond the readOnlyHint annotation, which is consistent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with purpose, params, return, honesty note, and exclusions. Slightly verbose but all sentences add value. Front-loaded with main purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description fully explains the return structure and covers edge cases (needs >=3 snapshots). It's complete for the tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters fully, but the description adds extra context: e.g., market_slug required and valid slugs from specific tools, horizon_quarters default 4 with example '2 = ~6 months ahead'. This improves usability.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it forecasts a DCPI market's near-term trajectory (next 1-8 quarters) and provides specific use cases like 'is this market trending toward BUILD or AVOID?'. It distinguishes from siblings such as get_market_dcpi_rank and rank_markets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly tells when to use (trend questions) and when not to use ('Do NOT use for a single point-in-time verdict' or to rank many markets). Also notes requirement of at least 3 daily snapshots, providing clear usage boundaries.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_marketsARead-onlyInspect
Use when a user wants "the top N markets for X" — one ranked list across the 300+ market set rather than N separate get_market_intel calls. Example: "What are the 10 fastest-growing US markets with at least 100MW of existing capacity?" — rank_markets criteria=fastest_growing region=us limit=10 min_capacity_mw=100. Params: criteria one of "cheapest_power" | "most_capacity" | "most_operators" | "fastest_growing" | "best_overall" (default best_overall); region one of "global" | "us" | "canada" | "eu" | "apac" | "americas" (default us); limit 1-50 (default 10); min_capacity_mw filter floor (e.g. 100). Returns: {criteria, region, markets:[{rank, slug, name, country, score, criterion_value, dcpi_verdict, attribution_url}], total_eligible, generated_at}. Do NOT use for a deep read on ONE market (use get_market_intel) or for scoring a specific lat/lon (use analyze_site).
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of markets to return, 1-50 (default 10) | |
| region | No | Region scope: "global", "us" (default), "canada", "eu", "apac", or "americas" | |
| criteria | No | Ranking criterion: "cheapest_power", "most_capacity", "most_operators", "fastest_growing", or "best_overall" (default) | |
| min_capacity_mw | No | Minimum existing capacity filter in megawatts (MW), e.g. 100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, and the description adds detailed behavioral context: it returns a structured object with specific fields, explains parameters and defaults, and provides example inputs.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured and front-loaded with use case and example, but slightly long. Every sentence is informative, so no waste, but could be trimmed slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (4 params, no output schema), the description is complete: explains input semantics, return format, example use, and exclusions, enabling correct agent invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While schema coverage is 100%, the description adds significant value by explaining each parameter with examples, defaults, and constraints beyond the schema's brief descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool provides a ranked list across 300+ markets, with a specific verb 'rank markets'. It distinguishes from siblings like get_market_intel and analyze_site by stating what it is not for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use (for top N markets) and when not to use (deep read on one market or scoring lat/lon), providing a clear example and alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
rank_sitesARead-onlyInspect
Deterministic multi-site ranking/optimization under constraints — the normalization contract that lets you compare sites across separate analyze_site calls WITHOUT dropping into code. Pass candidates you already enriched (each an object with lat/lng + metric fields like risk_resilience, water_stress, fiber_km — pull these from analyze_site + get_refined_queue and pass site_evaluation_handoff through untouched), hard constraints, and weighted objectives; get back _entity=ranked_sites: top_k ranked with rank, objective_score, per-field normalized{} (0-100 relative to the set), and normalization_basis. objectives use SIGNED weights: +weight maximizes a field (e.g. risk_resilience:1), -weight minimizes it (e.g. water_stress:-0.6, fiber_km:-0.4). constraints are hard filters, fail-closed on a missing field. Use for "pick the best N sites under constraints"; for one site use analyze_site; to get the candidate set first use get_refined_queue.
| Name | Required | Description | Default |
|---|---|---|---|
| top_k | No | How many top-ranked sites to return (default 3) | |
| absolute | No | false (default) = min-max normalize within THIS batch (best-in-set, NOT stable across runs). true = score on a FIXED 0-100 scale for CROSS-RUN-STABLE, auditable scores — use ONLY when the objective fields are already 0-100 (analyze_site scores like risk_resilience/fiber_connectivity), not raw distances like fiber_km | |
| candidates | Yes | Array of candidate objects, each {id?, lat?, lng?, <metric fields>} — pre-enriched from analyze_site/get_refined_queue; carry site_evaluation_handoff through so the winners stay pipeable. Omit if using shortlist_name | |
| objectives | Yes | Weighted objectives {field: signedWeight} — +weight maximizes, -weight minimizes. e.g. {"water_stress": -0.6, "fiber_km": -0.4} | |
| percentile | No | true = score each objective as its PERCENTILE against the viable-site POPULATION ("better than X% of viable sites") — the strongest cross-run + cross-region comparability. Works for fields with a maintained baseline (analyze_site metrics: overall_score, risk_resilience, fiber_connectivity, power_infrastructure, market_conditions, gas_pipeline_access, fiber_km, power_cost); other fields fall back to absolute (listed in unbaselined_fields). Takes precedence over absolute | |
| constraints | Yes | Hard filters {field: {min?, max?}} — a candidate missing a constrained field is dropped (fail-closed). e.g. {"risk_resilience": {"min": 70}, "estimated_ttp_months": {"max": 34}} | |
| shortlist_name | No | Alternative to candidates: re-rank a SAVED shortlist (created via save_to_shortlist) in one shot — loads its sites (scoped to your API key) + reuses their saved objectives if you pass none, and re-scores against the current baseline |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds extensive behavioral details beyond the readOnlyHint annotation: deterministic, normalization contract, signed weights, hard constraints fail-closed, percentile vs absolute normalization, cross-run stability. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is long but every sentence provides essential detail for correct usage, given tool complexity. It is front-loaded with the main purpose and well-structured. Minor reduction possible but justified.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (7 params, no output schema), the description fully covers inputs, behavioral edge cases (missing field fail-closed, percentile baseline), and integration with other tools. Complete guidance for accurate invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description adds significant meaning: explains signed weight convention ('+weight maximizes, -weight minimizes'), fail-closed behavior for constraints, options for absolute vs percentile, and shortlist_name mechanics. Adds value beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: deterministic multi-site ranking under constraints, with a specific verb (rank) and resource (sites). It distinguishes from siblings like analyze_site (one site) and get_refined_queue (candidate set).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use ('pick the best N sites under constraints') and when-not-to-use ('for one site use analyze_site; to get the candidate set first use get_refined_queue'). Also explains how to pass data from other tools, giving clear guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
recover_my_keyAInspect
Recover a LOST DC Hub key. Pass your human's email and DC Hub re-sends any key tied to that address to that inbox. It NEVER returns the key over the wire (it emails the bound address), and the confirmation is the same whether or not a key exists (enumeration-safe), so no key is leaked to a caller. Use this when your human had a key, lost it, and knows the email they bound it to. Param: email (required). Returns DC Hub's neutral confirmation.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Your human's email address that a lost key was bound to (required) — the key is re-sent to that inbox, never returned over the wire |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description goes beyond annotations by detailing that the key is never returned over the wire, the confirmation is identical regardless of existence (enumeration-safe), and the key is emailed to the bound address. This provides rich behavioral insight.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise with two main sentences plus usage guidance. It is well-structured, front-loading purpose and mechanism, then adding security and usage notes without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is simple with one parameter and no output schema; the description covers what it does, how it works, the return value (neutral confirmation), and security aspects. It is fully complete for an agent to invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds meaning by explaining the required email parameter, its role in re-sending the key, and that it is never returned over the wire.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'recover', the resource 'lost DC Hub key', and the mechanism of re-sending to email. It uniquely identifies the tool's purpose among siblings like 'claim_free_key' and 'bind_email'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: when the human lost a key and knows the email. It provides clear context but does not explicitly mention when not to use or list alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_siteAInspect
Save a candidate data-center site to your DC Hub account to track it across sessions (FREE — just needs a key; call claim_free_key if you don't have one). Give lat + lon (plus optional name, state, market, target_mw, notes). Returns the saved site id. Builds a persistent shortlist an agent can revisit + monitor — after saving, pass the returned id to set_site_alert so DC Hub emails you when that site’s DCPI/capacity/nearby-facilities move (no re-checking). Try: save_site lat=39.04 lon=-77.48 name="Ashburn parcel" target_mw=100. Do NOT use to read back the shortlist (use list_saved_sites), download it (use export_dataset), or score a site (use score_facility); this WRITES one site to your account.
| Name | Required | Description | Default |
|---|---|---|---|
| lat | No | Site latitude in decimal degrees (-90 to 90), e.g. 39.04 | |
| lon | No | Site longitude in decimal degrees (-180 to 180), e.g. -77.48 | |
| name | No | Optional label for the saved site, e.g. "Ashburn parcel" | |
| notes | No | Optional free-text notes to store with the saved site | |
| state | No | US state abbreviation for the site, e.g. VA | |
| market | No | Market slug (metro) the site belongs to, e.g. northern-virginia | |
| target_mw | No | Target power load for the planned build in megawatts (MW), e.g. 100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint=false, destructiveHint=false) are consistent with description labeling it a WRITE operation. Description adds useful context: it's FREE, builds persistent shortlist, returns site id, and suggests monitoring via alerts. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose in first sentence. Includes usage, example, and exclusions. Slightly verbose but efficient. Every sentence contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a write tool with 7 optional parameters, no output schema, and annotations, the description fully covers purpose, prerequisites, expected output, follow-up actions, and exclusions. No gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. Description adds value by naming key parameters (lat, lon, name, state, market, target_mw, notes) and providing an example call. This reinforces semantics beyond the schema's individual descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb+resource: 'Save a candidate data-center site to your DC Hub account to track it across sessions.' It also differentiates from sibling tools by explicitly listing what not to use it for (e.g., list_saved_sites, export_dataset, score_facility).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (saving a site), prerequisites (need a key, claim_free_key if not), and follow-up action (pass id to set_site_alert). Excludes alternatives with 'Do NOT use to read back...'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
save_to_shortlistARead-onlyInspect
Save a site into a PERSISTENT, named shortlist that survives across conversations (Phase 5 statefulness). Snapshots the site's objectives + its current percentile objective_score, so you can re-score it later against the evolving national baseline. Use to build a durable siting shortlist across days/weeks; the list is scoped to your API key. Pair with get_shortlist to re-score + see drift. site should carry lat/lng/capacity_mw + the analyze_site metric fields (risk_resilience, fiber_connectivity, water score, etc.) you ranked on.
| Name | Required | Description | Default |
|---|---|---|---|
| site | Yes | Site object: {site_ref?, lat, lng, capacity_mw, <metric fields from analyze_site>} — the metrics are what get re-scored later | |
| notes | No | Optional free-text note, e.g. "strong fiber, acceptable water" | |
| objectives | Yes | The {field: signedWeight} objectives this site was ranked under (+maximize/-minimize) — stored so re-scoring uses the same criteria | |
| shortlist_name | No | Name of the shortlist, e.g. "Q3-2026-1GW-targets" — created if new |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The annotation 'readOnlyHint: true' indicates no mutation, but the description describes saving/persisting data, which is a write operation. This is a direct contradiction, undermining trust. Even ignoring the annotation, the description doesn't fully disclose side effects (e.g., overwriting behavior).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph with key information front-loaded. It is concise but includes essential details; every sentence adds value. Slightly verbose for the behavioral contradiction, but otherwise efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers persistence, scoping to API key, and pairing with retrieval. However, it lacks details on error handling (e.g., duplicate shortlist name), capacity limits, or performance considerations. With no output schema, the description should slightly expand on these aspects.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema coverage is 100%, but the description adds significant value beyond the schema by explaining the expected structure of 'site' (lat/lng/capacity_mw + metric fields), the semantics of 'objectives' (signed weights), and examples for 'shortlist_name'. This helps the agent understand parameter interdependencies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('save a site'), the target resource ('PERSISTENT, named shortlist'), and distinguishes from siblings like 'save_site' and 'get_shortlist' by emphasizing persistence across conversations and pairing with re-scoring.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit use case ('build a durable siting shortlist across days/weeks') and suggests pairing with 'get_shortlist' for re-scoring. It lacks explicit when-not-to-use or direct alternatives, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
score_facilityARead-onlyInspect
Use when a user wants an independent 0-100 grade for ONE existing facility across 7 dimensions — power, fiber, water, climate_risk, tax_environment, talent_pool, expansion. Example: "How does the CoreWeave Las Vegas site score, power-weighted?" — score_facility facility_id= weighting=power_priority. Params: facility_id or name (required); weighting one of "balanced" (default) | "power_priority" | "risk_priority" | "expansion_priority". Returns: composite 0-100, tier_classification, peer comparison, and per-dimension detail. Do NOT use for a raw lat/lon parcel (use analyze_site), to compare 2 or more sites (use compare_sites), or to find similar sites (use find_alternatives).
| Name | Required | Description | Default |
|---|---|---|---|
| weighting | No | Scoring profile: "balanced" (default), "power_priority", "risk_priority", or "expansion_priority" | |
| facility_id | No | The facility id/slug to score (required), from a prior search_facilities result |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true. Description adds detail on return structure (composite score, tier, peer comparison, per-dimension detail) and weighting options, providing valuable context 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Packed single paragraph with purpose, usage, parameters, return, exclusions, and example. Efficient, though slightly dense; could benefit from minor structuring.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists, yet description adequately explains return fields (composite, tier, peer comparison, per-dimension detail). Covers inputs, outputs, and exclusions, making it complete for this tool's complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, but description explains weighting enum values (balanced default, power_priority, etc.) and clarifies that facility_id comes from a prior search. Adds meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it grades an existing facility across 7 dimensions with a 0-100 score. Contrasts with siblings like analyze_site, compare_sites, find_alternatives, making its unique purpose evident.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says when to use (independent grade for one facility) and when not (raw lat/lon, compare, find alternatives). Includes a concrete example with example query and parameter usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
searchARead-onlyInspect
Search DC Hub for relevant records (OpenAI Deep Research / ChatGPT connector format). Returns a list of matching data-center facilities as {id, title, url}; pass an id to the fetch tool for the record, or open the url to cite the live facility page. For structured queries (by MW, operator, status, market) use search_facilities directly.
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | Free-text query, e.g. "data centers in Northern Virginia" or "Ashburn hyperscale power" |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, and description confirms read-only. Adds context on return format and linking to fetch tool. No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise three-sentence description with no wasted words, front-loading purpose and immediately stating format and usage. Efficient use of space.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given simple single-parameter tool with no output schema, the description covers purpose, return format, and follow-up actions. Minor omission: no mention of error cases or pagination, but appropriate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a clear description of the query parameter. Description does not add new meaning beyond the parameter's schema description, so baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Search' and specific resource 'DC Hub' with return format {id, title, url}. Distinguishes from sibling search_facilities by noting free-text vs structured queries.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use: free-text queries. Provides alternative: 'use search_facilities directly' for structured queries. Also guides how to use results: pass id to fetch tool or open url to cite.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_facilitiesARead-onlyInspect
Search 21,000+ global data center facilities across 170+ countries — by location (country/state/market), capacity (MW), operator, fiber connectivity, status (operational/under-construction/planned), or DCPI verdict. Returns name, provider, lat/lon, power_mw, fiber count, market_slug, status. Try: search_facilities country=US state=VA min_mw=10 status=operational. Use this to find EXISTING facilities; do NOT use for the forward-looking construction pipeline (use get_pipeline) or for the full profile of one facility (use get_facility).
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name to filter facilities, e.g. Ashburn, Dallas | |
| tier | No | Uptime Institute tier filter (1-4) | |
| limit | No | Max results to return (1-500; default varies by tool) | |
| query | No | Free-text search over facility name/operator/location (mapped to the backend `q` param), e.g. "hyperscale Ashburn" | |
| state | No | US state abbreviation or region, e.g. VA, TX | |
| offset | No | Pagination offset, 0-based (skip this many results) | |
| country | No | ISO 3166-1 alpha-2 country code, e.g. US, GB, SG | |
| operator | No | Operator/provider company name, e.g. Equinix, Digital Realty | |
| max_capacity_mw | No | Maximum power capacity filter in megawatts (MW) | |
| min_capacity_mw | No | Minimum power capacity filter in megawatts (MW) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, so description does not need to reiterate safety. Description adds context about scope and returns, which is sufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, well-structured paragraph: purpose, return fields, example, usage guidelines. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 10 params, no output schema, and presence of sibling tools, the description is complete: it defines scope, return fields, provides an example, and gives usage guidance. Agent can select and invoke correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds marginal value beyond parameter descriptions. The usage example demonstrates parameter combination, but no extra semantic detail for individual params.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it searches 21,000+ data center facilities with multiple filters, specifies return fields, and explicitly distinguishes from sibling tools like get_pipeline and get_facility.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (find EXISTING facilities) and when-not-to-use with named alternatives (use get_pipeline for pipeline, get_facility for full profile).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_intelligenceBRead-onlyInspect
Semantic search over DC Hub live intelligence corpus — news, M&A deals, facilities, and market analysis narratives. Natural-language query returns the most relevant cited records.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Alias for query | |
| limit | No | Max results to return, 1-15 (default 8) | |
| query | No | Natural-language query (required), e.g. "grids opening up for AI load in the Southeast" | |
| corpus | No | Optional corpus to restrict to: news | deals | facilities | market_narratives. CSV of several is allowed; default searches all. |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true. Description adds that it returns 'most relevant cited records', which is consistent but adds minimal behavioral context. No mention of rate limits, authentication, or potential side effects. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, directly stating purpose and return type. No redundancy or fluff. Could be slightly more structured but remains efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description only mentions 'most relevant cited records' without detailing output format, pagination, or error handling. For a search tool with readOnlyHint, it covers basic intent but lacks depth expected for a semantic search.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with descriptions for all 4 parameters. Description adds context about corpus types (news, M&A, etc.) and natural-language query, slightly reinforcing schema but not adding significant new meaning beyond baseline.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states semantic search over DC Hub intelligence corpus listing specific content types (news, M&A, facilities, market analysis). However, it doesn't explicitly distinguish from the sibling tool 'semantic_search', which may have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives. Does not mention exclusions or prerequisites. The description only states what it does, not when to prefer it over similar sibling tools like 'search' or 'semantic_search'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
semantic_searchARead-onlyInspect
Use for CONCEPTUAL / fuzzy questions where keyword filters fall short — semantic (meaning-based) retrieval across DC Hub's industry news, M&A deals, 21,000+ discovered facilities, and per-market DCPI deep-dive analysis narratives, ranked by relevance with citable source fields (news url/title, deal parties/value, facility name/location, deep-dive market/url). Examples: "what is happening with behind-the-meter gas for AI data centers?", "deals involving nuclear power for hyperscalers", "why is Northern Virginia constrained?" — semantic_search q="behind-the-meter gas for AI data centers". Params: q (required, natural-language query); corpus (optional CSV subset of news_articles,deals,discovered_facilities,market_narratives; default all); k (1-15, default 8). Returns {results:[{source_table, kind, text, score, cite:{…}}]}. Complements the exact-filter tools (get_news / list_transactions / search_facilities) with relevance ranking; for a full token-budgeted market briefing use get_market_context. Cite "DC Hub (dchub.cloud)".
| Name | Required | Description | Default |
|---|---|---|---|
| k | No | Number of results, 1-15 (default 8) | |
| q | No | Natural-language query (required), e.g. "grids opening up for AI load in the Southeast" | |
| query | No | Alias for q | |
| corpus | No | Optional CSV of corpora: news_articles, deals, discovered_facilities, market_narratives (default: all) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true, consistent with a read-only search. The description adds transparency about the return structure (ranked results with citable source fields) and the scoring mechanism (relevance ranking). No contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single well-organized paragraph that front-loads the purpose, then provides examples, parameter details, and return format. It is efficient but could benefit from slight structuring with bullet points or clearer separation of sections.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description explains the return format (fields like source_table, kind, text, score, cite). It covers all necessary aspects: purpose, usage, parameters, return, and alternatives. The tool is complex with multiple corpora and the description fully addresses the context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already describes all 4 parameters with 100% coverage. The description adds value by providing default values (k=8, corpus=all), clarifying the required nature of q (though schema says 0 required), and giving usage examples. This is above the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it is for conceptual/fuzzy questions using semantic (meaning-based) retrieval across specific data sources (news, deals, facilities, market narratives). It distinguishes from sibling tools like get_news, list_transactions, search_facilities (exact-filter) and get_market_context (full briefing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly tells when to use this tool (conceptual questions where keyword filters fall short) and when to use alternatives (exact-filter tools for specific records, get_market_context for a full briefing). It also gives concrete example queries and explains the corpus parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_market_alertAInspect
Subscribe to movement alerts for a DCPI market (FREE with a key) — get notified when its Excess-Power / Constraint score moves. On the free tier, email alerts are delivered to the email your human bound via bind_email (call bind_email first; the destination is forced to that address). Set channel="email". Webhook delivery (channel="webhook" + destination=) is Pro. Lets an agent MONITOR markets, not just query them. Try: set_market_alert market=northern-virginia channel=webhook destination=https://hooks.example.com/dc. Do NOT use to read a market right now (use get_market_dcpi_rank); this SUBSCRIBES to future movement.
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | Market slug (metro) to watch, e.g. northern-virginia — valid slugs come from rank_markets / get_market_dcpi_rank | |
| channel | No | Delivery channel: "email" (free, sent to your bound email) or "webhook" (Pro) | |
| destination | No | For channel="webhook", the https URL to POST alerts to (Pro); ignored for email (forced to bound address) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Discloses behavioral traits beyond annotations: email delivery forced to bound address, webhook only for Pro, and that it subscribes to future movement. No contradiction with readOnlyHint=false.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Concise with 4 sentences, each earning its place: function, prerequisites, channel specifics, example, and warning. No redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description covers key aspects: purpose, parameters, prerequisites, and alternatives. Lacks mention of how to unsubscribe or confirm subscription, but overall adequate for the tool's simplicity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, but description adds value by explaining channel pricing, destination conditionality, and giving a concrete example. Slightly above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool subscribes to movement alerts for a DCPI market, with specific verb 'subscribe' and resource 'market alert'. It distinguishes from sibling get_market_dcpi_rank by explicitly saying not to use this to read a market now.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use and when-not-to-use guidance: 'Do NOT use to read a market right now (use get_market_dcpi_rank)'. Also mentions prerequisite call bind_email first and differentiates free vs Pro tiers.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_shortlist_alertARead-onlyInspect
Set a DRIFT ALERT on a saved shortlist so you can stop polling and be notified when a site's national standing moves materially (Phase 5). Fires when any site in the shortlist has current percentile score < percentile_below OR score_delta_since_saved < delta_below (e.g. -8 = dropped 8 points vs when saved). Evaluated after each daily baseline refresh; delivers via webhook and/or email. This is the "wake me when it matters" loop for long-running siting campaigns. Scoped to your API key.
| Name | Required | Description | Default |
|---|---|---|---|
| notify | Yes | Delivery: {"webhook":"https://..."} and/or {"email":"you@co.com"} — at least one required | |
| delta_below | No | Fire if any site's score_delta_since_saved drops below this — pass a NEGATIVE number, e.g. -8 (dropped 8+ points since saved) | |
| shortlist_name | No | The shortlist to monitor (created via save_to_shortlist) | |
| percentile_below | No | Fire if any site's current percentile objective_score drops below this (e.g. 70) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description contradicts the annotation readOnlyHint: true by stating it sets an alert (a write operation). This is a serious inconsistency. Beyond that, the description does disclose firing conditions and delivery methods, but the contradiction undermines trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, well-structured, and front-loaded with the core purpose. Every sentence adds value, including the example and context about daily refresh. No wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with no output schema, the description explains the trigger conditions and delivery methods. However, it lacks details on managing or deleting alerts, and the annotation contradiction raises questions about the tool's actual behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by explaining the condition logic (e.g., delta_below with negative numbers, percentile_below threshold) and the notify parameter format. This goes beyond the schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool sets a DRIFT ALERT on a saved shortlist to be notified when site national standing moves materially, with specific conditions (percentile_below, delta_below). It uses a specific verb-resource combination and distinguishes from sibling tools like set_market_alert or set_site_alert by focusing on shortlist-level drift.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description advises stopping polling and using the alert for long-running campaigns, implying when to use. It scopes the alert to the API key and mentions delivery methods. However, it does not explicitly state when not to use or compare with alternative alert types.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
set_site_alertAInspect
Arm an email watch on a site you already saved (FREE with a key) — DC Hub emails you when that site’s DCPI score, grid capacity, or nearby facilities move, so you don’t have to keep re-checking. On the free tier the alert is delivered to your human’s bound email (call bind_email first; notify_email is forced to that address). Pro can send to any address. The "monitor my shortlist for me" loop: call save_site first (it returns a saved_site_id), then set_site_alert on that id. Params: saved_site_id (required integer, from save_site or list_saved_sites), trigger_type ("dcpi_change" | "capacity_change" | "new_facility_nearby", default "dcpi_change"), threshold (number — the points/MW move that fires it, default 5), notify_email (required — the address the alert is sent to). Try: set_site_alert saved_site_id=12 trigger_type=dcpi_change threshold=5 notify_email=you@firm.com. Returns {ok, alert_id, message}. Do NOT use to watch a whole MARKET (use set_market_alert) or to save a new site (use save_site); this arms a monitor on ONE already-saved site.
| Name | Required | Description | Default |
|---|---|---|---|
| threshold | No | The points/MW move that fires the alert (default 5) | |
| notify_email | No | Email address the alert is sent to (required); on free tier forced to your human's bound email | |
| trigger_type | No | What movement fires the alert: "dcpi_change" (default), "capacity_change", or "new_facility_nearby" | |
| saved_site_id | No | The saved_site_id returned by save_site or list_saved_sites (required) |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds behavioral context beyond annotations: it explains delivery behavior (email to bound email on free tier, any address on Pro), the need for bind_email, and the pull-based loop ('monitor my shortlist for me'). It does not mention idempotency or rate limits, but disclosures are adequate for a straightforward mutation tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the main purpose, then provides details and examples, and ends with explicit exclusions. It is longer than minimal but every sentence adds value. The structure is logical and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains the return value ({ok, alert_id, message}). It covers free vs Pro behavior, prerequisites (bind_email), the prerequisite save_site call, and parameter constraints. It is complete for an agent to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by explaining defaults (threshold default 5, trigger_type default 'dcpi_change'), providing an example call, clarifying that notify_email is forced on free tier, and explaining the relationship to save_site. This goes beyond the schema's basic descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Arm an email watch on a site you already saved'. It uses a specific verb ('arm') and resource ('email watch on a site'), and distinguishes from siblings like save_site and set_market_alert by explicitly stating what it is NOT for.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit when-to-use guidance: it should be called after save_site, and it warns against using it for markets (use set_market_alert) or saving new sites (use save_site). It also mentions the prerequisite bind_email for free tier users.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
site_selection_canvasARead-onlyInspect
Guided end-to-end data-center site selection. Give a capacity target + geography + deadline and get a ranked shortlist of US markets (DCPI verdict, excess-power headroom, time-to-power, ISO) — and, with a paid key, the synthesis decision layer: the #1 pick, the why, a build sequence, and risk flags. One find->rank->shortlist->verdict call over the DC Hub Power Index. Try: site_selection_canvas capacity_mw=100 region=TX max_months=24. Do NOT use for a single known parcel (use analyze_site) or an open-ended where-should-I-build question (use get_dchub_recommendation); this runs the full find to rank to shortlist to verdict flow.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Number of shortlist markets to return | |
| region | No | Geography scope, e.g. a US state code like TX or a region like us/apac | |
| verdict | No | Optional DCPI verdict filter: BUILD, CAUTION, or AVOID | |
| max_months | No | Maximum acceptable time-to-power in months, 1-120, e.g. 24 | |
| capacity_mw | No | Target power load for the build in megawatts (MW), 1-5000, e.g. 100 |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already mark readOnlyHint: true. The description adds details about the internal flow ('find->rank->shortlist->verdict call') and mentions a paid key that unlocks additional synthesis. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise (single paragraph) and well-structured: purpose, process, example, exclusions. Every sentence adds necessary information with no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters and no output schema, the description covers the input requirements, the decision flow, and alternatives. It could mention the output format or structure slightly, but overall it provides sufficient context for an AI agent to use the tool effectively.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with descriptions. The description adds value by giving an example usage line (capacity_mw=100 region=TX max_months=24) and explaining that the key parameters are capacity, geography, and deadline. This provides context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Guided end-to-end data-center site selection' with specific actions (give capacity target, geography, deadline; get ranked shortlist and synthesis decision). It distinguishes from siblings by explicitly saying not to use for a single parcel (use analyze_site) or open-ended question (use get_dchub_recommendation).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use (capacity target + geography + deadline) and when-not-to-use (single parcel or open-ended question) with alternative tool names. Includes a concrete example command to illustrate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subscribe_digestAInspect
Subscribe your human to DC Hub's FREE weekly "what changed in the markets/sites you queried" digest (DCPI movers, new facilities, new deals & news) — ONE call, the nudge that pulls your agent back when the data moves. DOUBLE opt-in + consent-safe: we email a one-click CONFIRM link, the human only gets the digest after confirming, and every email has one-click unsubscribe — this call alone sets no marketing flag. Only call once your human shares their email and wants a weekly email. Params: email (required), source (optional tag). Returns {ok, sent, message}. Prefer this over hand-building POST /api/v1/opt-in/request.
| Name | Required | Description | Default |
|---|---|---|---|
| No | Your human's email address (required) — a one-click confirm link is sent; use only an address they explicitly gave | ||
| source | No | Optional attribution tag for where the subscription came from, e.g. mcp_digest |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations are readOnlyHint=false and destructiveHint=false. The description adds significant context: double opt-in, one-click confirm, one-click unsubscribe, no marketing flag, and that it triggers a nudge when data moves. This goes well beyond what annotations provide.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose, then details the process. While somewhat verbose for a simple subscription, it is structured logically with clear sections. It earns its length given the consent workflow complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the two parameters, no output schema, the description covers usage, behavioral traits, parameter semantics, and alternatives. It explicitly states the return format {ok, sent, message}, making it complete for an agent to decide when to call and what to expect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 adds value by explaining consent context for the email parameter and clarifying the source is optional. It reinforces the schema but doesn't add detailed formatting or constraints, so a 4 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's action: 'Subscribe your human to DC Hub's FREE weekly...digest'. It specifies the resource (digest subscription) and the verb (subscribe). It distinguishes from siblings like set_market_alert by emphasizing it's a weekly digest, not an alert.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly says 'Only call once your human shares their email and wants a weekly email' and 'Prefer this over hand-building POST /api/v1/opt-in/request.' It provides clear when-to-use and alternative avoidance guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
suggest_reallocationARead-onlyInspect
When a saved site DRIFTS (its national standing dropped — surfaced by get_shortlist refresh or a set_shortlist_alert firing), get replacement candidates from the rest of that shortlist so the alert becomes an action, not just a warning (Phase 5). Returns TWO tiers — tier_1_same_region (a near-in tactical swap) and tier_2_cross_region (a different-region arbitrage) — each re-scored against the DRIFTED slot's own objectives, PLUS drift_is_systemic: if the rest of your shortlist also slipped, the drop is region/baseline-wide and a same-region swap will inherit it (prefer cross_region); if peers held, it's idiosyncratic (tactical_ok). DC Hub does the reduction; the final weighted pick is yours. Candidates come from THIS shortlist only (save more via save_to_shortlist to widen the pool). Scoped to your API key.
| Name | Required | Description | Default |
|---|---|---|---|
| shortlist_name | No | The shortlist to re-allocate within (created via save_to_shortlist) | |
| drifted_site_ref | No | Optional site_ref of the drifted slot to replace; if omitted, the current lowest-scoring site is treated as the drifted one |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description discloses the behavioral traits beyond annotations: it returns two tiers with specific logic, explains drift_is_systemic, and notes that DC Hub does the reduction while the final pick is the user's. It is scoped to the API key. This aligns with the readOnlyHint annotation (no write side effects exposed). No contradiction.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is dense but well-structured, starting with the trigger condition. It is slightly long but every sentence adds necessary detail. Could be tightened slightly, but overall efficient for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema, so the description must explain return values. It does so thoroughly: two tiers with explanations, drift_is_systemic logic, and scoping. It also clarifies that candidates come only from this shortlist. The description is complete for the tool's purpose and complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions already cover the parameters (shortlist_name, drifted_site_ref) with 100% coverage. The description adds value by explaining that shortlist_name is created via save_to_shortlist and that drifted_site_ref is optional, defaulting to the lowest-scoring site. This adds helpful context beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: when a saved site drifts (national standing drops), get replacement candidates from the same shortlist to turn an alert into an action. It distinguishes from siblings by focusing on reallocation triggered by shortlist alerts, a specific phase (Phase 5).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use: when a site drifts surfaced by get_shortlist refresh or set_shortlist_alert firing. It provides guidance on interpreting the two output tiers and when to prefer cross_region over same_region based on drift_is_systemic. It also advises saving more sites via save_to_shortlist to widen the pool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
unlock_more_dataAInspect
Unlock DC Hub's full depth. Call this when a result came back as a 1-of-N preview, a tool was locked, or your human wants the complete dataset. Returns the upgrade ladder + ready-to-paste checkout links your human completes in ONE click — after which your very next call returns full data (no reconnect; the checkout binds to this session). Cheapest start: 💳 $10 one-time = 1,000 API calls (no subscription). Also $9/mo Starter · $49/mo Developer · $299/mo Pro. Want the FREE identified tier instead (no payment, 10 calls/day, all tools)? Call claim_free_key. Param: reason (optional — what you were trying to do, so your human sees why it matters). Returns {plans, human_message, what_unlocks}.
| Name | Required | Description | Default |
|---|---|---|---|
| reason | No | Optional free-text describing what you were trying to do, so your human sees why an upgrade matters |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations indicate readOnlyHint=false and destructiveHint=false. Description adds context that checkout binds to the session and next call returns full data. No contradictions, though the mutation nature is clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is somewhat verbose but well organized with front-loaded purpose. Every sentence adds value, though it could be slightly more concise without losing key details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite no output schema, the description fully explains return shape ({plans, human_message, what_unlocks}), the checkout process, and the upgrade tiers. Provides complete guidance for the agent and human.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The single optional param 'reason' is described in both schema and description. Description adds value by explaining it tells the human why the upgrade matters, going beyond the schema's 'free-text describing what you were trying to do'.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description states 'Unlock DC Hub's full depth' with specific triggers (1-of-N preview, locked tool, human wants complete dataset). Distinguishes from sibling 'claim_free_key' for the free tier, showing clear differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly lists when to call (preview, locked, want full data) and what to expect (returns ladder + checkout links, next call returns full data). Also provides alternative (claim_free_key) for free usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
why_dchubARead-onlyInspect
Use when a human asks how DC Hub compares to other data-center data sources — DataCenterHawk (DCHawk), DC Byte, Data Center Dynamics (DCD), Data Center Frontier (DCF), Baxtel, datacenters.com — or asks "why should I use DC Hub / is it better than / what can you give me a PDF or directory can't?". Returns DC Hub's honest, source-verified differentiators (agent-native MCP access, live multi-continent grid & energy telemetry, the proprietary daily DCPI + DCGI indices, open CC-BY-4.0 cited data, 21,000+ facilities) each with a proof URL, a citation line, plus the canonical head-to-head comparison pages. Free, no key required. Optional: competitor= for that vendor's direct comparison-page link. Do NOT use to query infrastructure data itself (use the data tools); this answers positioning / "how do you compare" questions with citable facts.
| Name | Required | Description | Default |
|---|---|---|---|
| competitor | No | Optional competitor/vendor name for a direct comparison-page link, e.g. DataCenterHawk, "DC Byte", DCD, Baxtel |
Tool Definition Quality
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Description adds behavioral context beyond readOnlyHint annotation: it returns differentiators with proof URLs, citation lines, and comparison pages, and mentions it's free and no key required. No contradictions 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is front-loaded with usage trigger and is information-dense. Every sentence adds value, though could be slightly more concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, description adequately explains return value (differentiators with proof URLs, citations, comparison pages). Also covers free access and no key requirement.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one optional parameter. Description adds examples and context for the competitor parameter, enhancing beyond schema description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it answers comparison/positioning questions about DC Hub vs. other data sources. Explicitly distinguishes from data tools by saying 'Do NOT use to query infrastructure data itself (use the data tools)'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly states when to use ('Use when a human asks how DC Hub compares...') and when not to use ('Do NOT use to query infrastructure data itself...'). Provides guidance on optional competitor parameter.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Claim this connector by publishing a /.well-known/glama.json file on your server's domain with the following structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"maintainers": [{ "email": "your-email@example.com" }]
}The email address must match the email associated with your Glama account. Once published, Glama will automatically detect and verify the file within a few minutes.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!