Skip to main content
Glama
azmartone67

DC Hub — Data Center & Energy Intelligence

Permitting & Moratorium Intel

get_permitting_intel
Read-onlyIdempotent

Identify active moratoriums, zoning limits, and utility pauses that affect data-center site selection, filtered by state or record class.

Instructions

Data center PERMITTING & MORATORIUM intelligence — curated, HUMAN-VERIFIED jurisdiction records: moratoriums, zoning restrictions, tax changes, utility pauses. Each record is stage-tagged (read the detail prefix: "Enacted" / "Proposed" / "Speculative"), with jurisdiction, state/country, the source article URL, and map coordinates. The permitting-risk axis for site selection that no other machine-readable source serves — e.g. New York's statewide >=50MW moratorium, county-level halts. FREE and full for every caller. Answers "is there a moratorium where I want to build", "which jurisdictions just tightened data-center zoning". Try: get_permitting_intel class=moratorium — or state=MN. Rendered live as the Permitting & Zoning layer on https://dchub.cloud/land-power-map. Do NOT use for tax INCENTIVE programs by state (use get_tax_incentives); this tracks restrictions and risk per jurisdiction.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
classNoRecord class: "moratorium" | "zoning" | "tax" | "utility_pause" (optional)
stateNoUS state filter, e.g. NY or MN (optional)

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
quotaNoCaller quota state (remaining calls, tier) when available.
_entityNoPayload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest.
citationNoMachine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload. Normally an OBJECT {source, url, license, cite_as, retrieved_at}; a bare string is accepted and carries the attribution line itself.
provenanceNoCollection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing.
_front_doorNoIn-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan.
_return_loopNoSuggested next-session delta call (get_changes since=24h) so you pull only what changed.
site_evaluation_handoffNoPre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed2 schema fields changed
    • removedInput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
    • removedOutput schema / $schema
      Removed value: -"http://json-schema.org/draft-07/schema#"
  2. Changed5 schema fields changedv2.3.20
    • removedOutput schema / properties / citation / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / citation / anyOf
      Added value: +[
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  },
      +  {
      +    "type": "string"
      +  }
      +]
    • changedOutput schema / properties / citation / description
      Previous value: -"Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload."New value: +"Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload. Normally an OBJECT {source, url, license, cite_as, retrieved_at}; a bare string is accepted and carries the attribution line itself."
    • removedOutput schema / properties / citation / properties
      Removed value: -{}
    • removedOutput schema / properties / citation / type
      Removed value: -"object"
  3. Addedv2.3.12

TDQS

A4.8/5.0
Behavior5/5

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

The annotations already mark this read-only, idempotent, and non-destructive; the description adds meaningful behavioral context beyond that: data is 'HUMAN-VERIFIED', records are stage-tagged with Enacted/Proposed/Speculative prefixes, every record includes source URL and coordinates, and the tool is 'FREE and full for every caller'. It also notes the data powers a specific live map layer. This materially informs what the agent should expect without repeating the annotations.

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

Conciseness4/5

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

The description is longer than minimal but every major part earns its place: value proposition, record contents, example queries, and an explicit exclusion. A few sentences are more promotional (e.g. 'no other machine-readable source serves', the live map URL), but the core guidance is front-loaded and remains skimmable.

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

Completeness5/5

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

For a non-mutating lookup tool with zero required parameters, an output schema present, and read-only annotations, the description is complete. It tells the agent what kind of data to expect, how the records are structured and tagged, how to filter, what the tool is not for, and where the data appears. Nothing critical for selecting or invoking the tool is missing.

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

Parameters4/5

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

The schema already documents both parameters at 100% coverage, so the baseline is 3. The description adds value beyond the schema by mapping the class categories to real record types (moratoriums, zoning restrictions, tax changes, utility pauses) and showing concrete example usages like class=moratorium and state=MN. It could go further with formatting details, but the schema covers the essential semantics.

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

Purpose5/5

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

The description names a specific object ('permitting & moratorium intelligence') and the exact record types it covers, and pairs it with concrete questions it answers ('is there a moratorium where I want to build'). It also explicitly differentiates itself from the sibling get_tax_incentives, so an agent can confidently distinguish it from nearby tools without opening the schema.

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

Usage Guidelines5/5

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

Usage guidance is explicit: it tells the agent when to use the tool ('answers moratorium/zoning questions'), gives concrete example invocations (class=moratorium, state=MN), and clearly states a do-not-use case ('Do NOT use for tax INCENTIVE programs by state') with the correct alternative named. This is model guidance for when to choose this tool over a sibling.

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

Deploy Server

Other Tools