Skip to main content
Glama

Source Capacity

source_capacity
Read-onlyIdempotent

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_byNoMonth-granular deadline (YYYY-MM or YYYY-MM-DD; day ignored). Browse keeps listings with some scheduled capacity by that month, not necessarily the full requested amount.
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. Changed1 schema field changed
    • changedInput schema / properties / available_by / description
      Previous 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"New value: +"Month-granular deadline (YYYY-MM or YYYY-MM-DD; day ignored). Browse keeps listings with some scheduled capacity by that month, not necessarily the full requested amount."
  2. Changed7 schema fields changed
    • removedOutput schema / properties / _entity
      Removed value: -{
      -  "type": "string"
      -}
    • removedOutput schema / properties / _front_door
      Removed value: -{
      -  "type": "object"
      -}
    • removedOutput schema / properties / _return_loop
      Removed value: -{
      -  "type": "object"
      -}
    • removedOutput schema / properties / citation
      Removed value: -{}
    • removedOutput schema / properties / provenance
      Removed value: -{
      -  "type": "object"
      -}
    • removedOutput schema / properties / quota
      Removed value: -{
      -  "type": "object"
      -}
    • removedOutput schema / properties / site_evaluation_handoff
      Removed value: -{}
  3. Changed21 schema fields changed
    • 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 / description
      Removed value: -"Payload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it."
    • removedOutput schema / properties / _front_door / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / _front_door / description
      Removed value: -"First-tool hint: plan_query(intent) returns the ordered plan."
    • removedOutput schema / properties / _front_door / properties
      Removed value: -{}
    • removedOutput schema / properties / _return_loop / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / _return_loop / description
      Removed value: -"Next-session delta call (get_changes)."
    • removedOutput schema / properties / _return_loop / properties
      Removed value: -{}
    • removedOutput schema / properties / citation / anyOf
      Removed value: -[
      -  {
      -    "additionalProperties": {},
      -    "properties": {},
      -    "type": "object"
      -  },
      -  {
      -    "type": "string"
      -  }
      -]
    • removedOutput schema / properties / citation / description
      Removed value: -"How to attribute DC Hub: {source, url, license, cite_as, retrieved_at}, or the attribution line as a string."
    • removedOutput schema / properties / provenance / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / provenance / description
      Removed value: -"Source, method, as_of, verification_counts, license, cite_as; quote it when citing."
    • removedOutput schema / properties / provenance / properties
      Removed value: -{}
    • removedOutput schema / properties / quota / additionalProperties
      Removed value: -{}
    • removedOutput schema / properties / quota / description
      Removed value: -"Caller quota state (remaining calls, tier)."
    • removedOutput schema / properties / quota / properties
      Removed value: -{}
    • removedOutput schema / properties / site_evaluation_handoff / anyOf
      Removed value: -[
      -  {
      -    "items": {
      -      "additionalProperties": {},
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "type": "array"
      -  },
      -  {
      -    "additionalProperties": {},
      -    "properties": {},
      -    "type": "object"
      -  }
      -]
    • removedOutput schema / properties / site_evaluation_handoff / description
      Removed value: -"Follow-up calls [{tool, parameters, why}] when the payload carries coordinates."
  4. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "additionalProperties": {},
      +  "description": "DC Hub envelope: tool data fields ride at the top level beside these keys.",
      +  "properties": {
      +    "_entity": {
      +      "description": "Payload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it.",
      +      "type": "string"
      +    },
      +    "_front_door": {
      +      "additionalProperties": {},
      +      "description": "First-tool hint: plan_query(intent) returns the ordered plan.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "_return_loop": {
      +      "additionalProperties": {},
      +      "description": "Next-session delta call (get_changes).",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "citation": {
      +      "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."
      +    },
      +    "provenance": {
      +      "additionalProperties": {},
      +      "description": "Source, method, as_of, verification_counts, license, cite_as; quote it when citing.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "quota": {
      +      "additionalProperties": {},
      +      "description": "Caller quota state (remaining calls, tier).",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "site_evaluation_handoff": {
      +      "anyOf": [
      +        {
      +          "items": {
      +            "additionalProperties": {},
      +            "properties": {},
      +            "type": "object"
      +          },
      +          "type": "array"
      +        },
      +        {
      +          "additionalProperties": {},
      +          "properties": {},
      +          "type": "object"
      +        }
      +      ],
      +      "description": "Follow-up calls [{tool, parameters, why}] when the payload carries coordinates."
      +    }
      +  },
      +  "type": "object"
      +}
  5. Changed6 schema fields changed
    • 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"
      +}
  6. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "additionalProperties": {},
      -  "description": "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.",
      -  "properties": {
      -    "_entity": {
      -      "description": "Payload class discriminator (e.g. facility|market|iso_grid|queue_results|deal|report|response) — branch on this before parsing the rest.",
      -      "type": "string"
      -    },
      -    "_front_door": {
      -      "additionalProperties": {},
      -      "description": "In-band front-door hint (first workflow-entry tool of a session): call plan_query(intent) first for the ordered multi-step plan.",
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "_return_loop": {
      -      "additionalProperties": {},
      -      "description": "Suggested next-session delta call (get_changes since=24h) so you pull only what changed.",
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "citation": {
      -      "anyOf": [
      -        {
      -          "additionalProperties": {},
      -          "properties": {},
      -          "type": "object"
      -        },
      -        {
      -          "type": "string"
      -        }
      -      ],
      -      "description": "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."
      -    },
      -    "provenance": {
      -      "additionalProperties": {},
      -      "description": "Collection-level provenance block: {source, method, as_of, verification_counts, cite_url_template, license, cite_as}. Quote the verification level when citing.",
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "quota": {
      -      "additionalProperties": {},
      -      "description": "Caller quota state (remaining calls, tier) when available.",
      -      "properties": {},
      -      "type": "object"
      -    },
      -    "site_evaluation_handoff": {
      -      "anyOf": [
      -        {
      -          "items": {
      -            "additionalProperties": {},
      -            "properties": {},
      -            "type": "object"
      -          },
      -          "type": "array"
      -        },
      -        {
      -          "additionalProperties": {},
      -          "properties": {},
      -          "type": "object"
      -        }
      -      ],
      -      "description": "Pre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries."
      -    }
      -  },
      -  "type": "object"
      -}New value: +null
  7. Changed2 schema fields changed
    • 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."
  8. Changed5 schema fields changed
    • 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"
      +}
  9. Added

TDQS

A4.7/5.0
Behavior5/5

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

Annotations already cover the read-only, idempotent, non-destructive profile, and the description adds substantial context beyond them: how matching works against contiguous_kw/min_contract_kw rather than headline totals, that listings declaring neither match on total, that browse returns teaser cards while match mode returns exact fits, bundles and a shortfall, and that match mode needs a signed-in human. Those are real behavioral and auth facts an agent could not derive from 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 trigger, example, and matching semantics are front-loaded in that order, and the density is justified for a 15-parameter tool. It is a single unbroken paragraph and restates some schema content (region aliases, contiguous_kw definition) that already lives in parameter descriptions, which is the main cost.

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 15 optional parameters, an output schema, and full annotation coverage, the description supplies everything an agent needs to choose the tool and construct a call: trigger context, size/location mechanics, browse-vs-match mode distinction, inventory types, and the sign-in prerequisite. Return shapes are covered by the output schema and only summarized here, which is correct.

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?

Schema coverage is already 100%, so the baseline is 3, but the description goes further by explaining the matching model that gives min_kw/target_kw/max_sites meaning, plus a concrete mapping example ('500 kW anywhere in Europe' → min_kw=500, region=europe) and the region-alias behavior. That tells an agent how to combine parameters, not just what each one is.

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

Purpose5/5

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

States a specific verb and resource: search DC Hub Capacity Source for data center or colocation capacity to buy or lease, filtered by size (kW/MW) and location. The scope sentence naming the inventory types (powered land, powered shells, turnkey, colocation) separates it cleanly from adjacent siblings like get_hosting_capacity or search_facilities.

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?

Opens with an explicit trigger ('Use this when the user needs data center or colocation capacity to buy or lease') and gives a worked example mapping a natural-language ask to parameters. It does not name a specific alternative tool or state when NOT to use this one, so routing between this and siblings such as find_sites or get_facility still requires inference.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.