Skip to main content
Glama
azmartone67

DC Hub: Data Center, Power Grid & Energy Intelligence

Source Capacity

source_capacity
Read-onlyIdempotent

Search data center and colocation capacity to buy or lease by size (kW/MW) and location, matched against the capacity listings can actually deliver.

Instructions

Use this when the user needs data center or colocation capacity to buy or lease: search DC Hub Capacity Source by size (kW or MW) and/or location (a region such as North America or Europe, a country, a state or a metro). Example: "500 kW anywhere in Europe" → min_kw=500, region=europe. Size is min_kw (in kW) or min_mw (in MW), and it is matched against what a listing can ACTUALLY deliver rather than against its headline total: contiguous_kw is the largest single contiguous block available and min_contract_kw the smallest chunk the provider will contract, so a colocation with a large total but a small contiguous block does NOT answer a large search, while a large site willing to contract small chunks does; a listing that declares neither is matched on its total. Location is region (a region key or alias) or location (free text matched against each listing's region, country, state and metro); market, state, delivery_type and available_by narrow further. Listings are powered land, powered shells, turnkey capacity and colocation to buy or lease, for enterprise and agent-led procurement.

Input Schema

NameRequiredDescriptionDefault
slugNoOne listing: its slug or numeric id exactly as items[].slug / items[].id return it. Omit to browse teaser cards
limitNoMax results to return (1-500; default varies by tool)
stateNoBrowse filter: two-letter US state, e.g. "TX"
marketNoBrowse filter: market name as it appears on a listing, e.g. "Dallas"
min_kwNoBrowse filter: the size your human needs, in kW (min_mw is the same filter in MW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and…
min_mwNoBrowse filter: the size your human needs, in MW (min_kw is the same filter in kW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and…
regionNoBrowse filter: comma-separated regions from north_america, latin_america, europe, asia_pacific and middle_east_africa; the aliases emea, apac, latam and americas also work, e.g. "europe" or "emea, apac"
locationNoBrowse filter: comma-separated free text matched against each listing's region, country, state and metro, e.g. "Germany" or "Texas, Phoenix"
max_sitesNoMatch mode: how many listings the requirement may be split across. Default one, which allows exact fits only; raise it to allow bundles
target_kwNoMatch mode: the whole requirement, in kW (target_mw is the same in MW; give one)
target_mwNoMatch mode: the whole requirement, in MW (target_kw is the same in kW; give one). Returns exact fits, bundles and a shortfall instead of teaser cards. Needs a signed-in human
available_byNoBrowse filter: only listings available by this date, as YYYY-MM or YYYY-MM-DD. With a target it is the date the whole requirement must be deliverable by
min_chunk_kwNoMatch mode: the smallest piece, in kW, your human will contract at any one listing. Default: no minimum
delivery_typeNoBrowse filter: how the capacity is delivered: land, powered_shell, turnkey or colocation
max_providersNoMatch mode: how many different providers a bundle may use. Default: the same as max_sites

Output Schema

NameRequiredDescriptionDefault

No arguments

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed11 schema fields changedv2.12.45
    • changedInput schema / properties / min_kw / description
      Previous value: -"Browse filter: the size your human needs, in kW (min_mw is the same filter in MW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and min_contract_kw the smallest chunk the provider will contract, so a listing answers only when this size fits the block it declares — a site with a big total but a small contiguous block is not a hit, and a big site willing to contract small chunks is. A listing that declares neither is matched on its total."New value: +"Browse filter: the size your human needs, in kW (min_mw is the same filter in MW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and…"
    • changedInput schema / properties / min_mw / description
      Previous value: -"Browse filter: the size your human needs, in MW (min_kw is the same filter in kW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and min_contract_kw the smallest chunk the provider will contract, so a listing answers only when this size fits the block it declares — a site with a big total but a small contiguous block is not a hit, and a big site willing to contract small chunks is. A listing that declares neither is matched on its total."New value: +"Browse filter: the size your human needs, in MW (min_kw is the same filter in kW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and…"
    • changedOutput schema / additionalProperties
      Previous value: -{}New value: +true
    • removedOutput schema / description
      Removed value: -"DC Hub envelope: tool data fields ride at the top level beside these keys."
    • removedOutput schema / properties / _entity
      Removed value: -{
      -  "description": "Payload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it.",
      -  "type": "string"
      -}
    • removedOutput schema / properties / _front_door
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "First-tool hint: plan_query(intent) returns the ordered plan.",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / _return_loop
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Next-session delta call (get_changes).",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / citation
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "additionalProperties": {},
      -      "properties": {},
      -      "type": "object"
      -    },
      -    {
      -      "type": "string"
      -    }
      -  ],
      -  "description": "How to attribute DC Hub: {source, url, license, cite_as, retrieved_at}, or the attribution line as a string."
      -}
    • removedOutput schema / properties / provenance
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Source, method, as_of, verification_counts, license, cite_as; quote it when citing.",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / quota
      Removed value: -{
      -  "additionalProperties": {},
      -  "description": "Caller quota state (remaining calls, tier).",
      -  "properties": {},
      -  "type": "object"
      -}
    • removedOutput schema / properties / site_evaluation_handoff
      Removed value: -{
      -  "anyOf": [
      -    {
      -      "items": {
      -        "additionalProperties": {},
      -        "properties": {},
      -        "type": "object"
      -      },
      -      "type": "array"
      -    },
      -    {
      -      "additionalProperties": {},
      -      "properties": {},
      -      "type": "object"
      -    }
      -  ],
      -  "description": "Follow-up calls [{tool, parameters, why}] when the payload carries coordinates."
      -}
  2. Changed8 schema fields changedv2.12.43
    • changedOutput schema / description
      Previous value: -"DC Hub envelope: structuredContent mirrors the JSON payload in content[0].text — tool-specific data fields ride at the top level alongside these envelope keys."New value: +"DC Hub envelope: tool data fields ride at the top level beside these keys."
    • changedOutput schema / properties / _entity / description
      Previous value: -"Payload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest."New value: +"Payload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it."
    • changedOutput schema / properties / _front_door / description
      Previous value: -"In-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan."New value: +"First-tool hint: plan_query(intent) returns the ordered plan."
    • changedOutput schema / properties / _return_loop / description
      Previous value: -"Suggested next-session delta call (get_changes since=24h) so you pull only what changed."New value: +"Next-session delta call (get_changes)."
    • changedOutput schema / properties / citation / description
      Previous 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."New value: +"How to attribute DC Hub: {source, url, license, cite_as, retrieved_at}, or the attribution line as a string."
    • changedOutput schema / properties / provenance / description
      Previous value: -"Collection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing."New value: +"Source, method, as_of, verification_counts, license, cite_as; quote it when citing."
    • changedOutput schema / properties / quota / description
      Previous value: -"Caller quota state (remaining calls, tier) when available."New value: +"Caller quota state (remaining calls, tier)."
    • changedOutput schema / properties / site_evaluation_handoff / description
      Previous value: -"Pre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries."New value: +"Follow-up calls [{tool, parameters, why}] when the payload carries coordinates."
  3. Changed6 schema fields changedv2.12.21
    • changedInput schema / properties / available_by / description
      Previous value: -"Browse filter: only listings available by this date, as YYYY-MM or YYYY-MM-DD"New value: +"Browse filter: only listings available by this date, as YYYY-MM or YYYY-MM-DD. With a target it is the date the whole requirement must be deliverable by"
    • addedInput schema / properties / max_providers
      Added value: +{
      +  "description": "Match mode: how many different providers a bundle may use. Default: the same as max_sites",
      +  "maximum": 6,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / max_sites
      Added value: +{
      +  "description": "Match mode: how many listings the requirement may be split across. Default one, which allows exact fits only; raise it to allow bundles",
      +  "maximum": 6,
      +  "minimum": 1,
      +  "type": "integer"
      +}
    • addedInput schema / properties / min_chunk_kw
      Added value: +{
      +  "description": "Match mode: the smallest piece, in kW, your human will contract at any one listing. Default: no minimum",
      +  "type": "number"
      +}
    • addedInput schema / properties / target_kw
      Added value: +{
      +  "description": "Match mode: the whole requirement, in kW (target_mw is the same in MW; give one)",
      +  "type": "number"
      +}
    • addedInput schema / properties / target_mw
      Added value: +{
      +  "description": "Match mode: the whole requirement, in MW (target_kw is the same in kW; give one). Returns exact fits, bundles and a shortfall instead of teaser cards. Needs a signed-in human",
      +  "type": "number"
      +}
  4. Changed2 schema fields changedv2.12.15
    • changedInput schema / properties / min_kw / description
      Previous value: -"Browse filter: only listings with at least this much capacity, in kW (min_mw is the same filter in MW)"New value: +"Browse filter: the size your human needs, in kW (min_mw is the same filter in MW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and min_contract_kw the smallest chunk the provider will contract, so a listing answers only when this size fits the block it declares — a site with a big total but a small contiguous block is not a hit, and a big site willing to contract small chunks is. A listing that declares neither is matched on its total."
    • changedInput schema / properties / min_mw / description
      Previous value: -"Browse filter: only listings with at least this much capacity, in MW"New value: +"Browse filter: the size your human needs, in MW (min_kw is the same filter in kW). Matched against what a listing can ACTUALLY deliver, not just its headline total: contiguous_kw is the largest single contiguous block available and min_contract_kw the smallest chunk the provider will contract, so a listing answers only when this size fits the block it declares — a site with a big total but a small contiguous block is not a hit, and a big site willing to contract small chunks is. A listing that declares neither is matched on its total."
  5. Changed5 schema fields changedv2.12.14
    • addedInput schema / properties / available_by
      Added value: +{
      +  "description": "Browse filter: only listings available by this date, as YYYY-MM or YYYY-MM-DD",
      +  "type": "string"
      +}
    • addedInput schema / properties / delivery_type
      Added value: +{
      +  "description": "Browse filter: how the capacity is delivered: land, powered_shell, turnkey or colocation",
      +  "enum": [
      +    "land",
      +    "powered_shell",
      +    "turnkey",
      +    "colocation"
      +  ],
      +  "type": "string"
      +}
    • addedInput schema / properties / location
      Added value: +{
      +  "description": "Browse filter: comma-separated free text matched against each listing's region, country, state and metro, e.g. \"Germany\" or \"Texas, Phoenix\"",
      +  "type": "string"
      +}
    • addedInput schema / properties / min_kw
      Added value: +{
      +  "description": "Browse filter: only listings with at least this much capacity, in kW (min_mw is the same filter in MW)",
      +  "type": "number"
      +}
    • addedInput schema / properties / region
      Added value: +{
      +  "description": "Browse filter: comma-separated regions from north_america, latin_america, europe, asia_pacific and middle_east_africa; the aliases emea, apac, latam and americas also work, e.g. \"europe\" or \"emea, apac\"",
      +  "type": "string"
      +}
  6. Addedv2.12.13

TDQS

A4.7/5.0
Behavior5/5

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

It goes far beyond basic annotations by detailing crucial operational behavior. It explains that size matching is against what the listing can ACTUALLY deliver (contiguous_kw, min_contract_kw) rather than just the headline total, which is vital for accurate query generation.

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 necessarily dense due to the complexity of the matching logic. However, it front-loads the purpose and provides highly efficient, information-rich sentences throughout.

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?

Given the high number of parameters and the advanced business logic involved in capacity matching, the description is extremely complete. It defines the core search rules, location parsing, and supported listing types.

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

Parameters5/5

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

Although the schema coverage is 100%, the description adds indispensable semantic depth. It clarifies exactly how size parameters are evaluated (the 'actual delivery' constraint) and how the location parameter functions (free text match vs. region alias).

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 clearly defines the tool's purpose: finding data center or colocation capacity for buying or leasing. This distinction targets a specific high-value use case, effectively separating it from general site analysis or index lookup tools.

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

Usage Guidelines4/5

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

It provides a very strong 'when to use' condition (user needs capacity to buy or lease). While it does not explicitly list competing siblings, the defined domain narrows the usage scope successfully.

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