Skip to main content
Glama

Market Intelligence

get_market_intel
Read-onlyIdempotent

Use this whenever the user asks about a data-center market: supply, operators, pipeline or pricing context for a metro. Call when the user asks about one data-center market: facility count, tracked MW, status mix, top providers, recent facilities or lease pricing. Pass market as a slug (e.g. northern-virginia). Returns stats, by_status, top_providers, recent_facilities, market_pricing (quote its basis). Verdict: use get_market_dcpi_rank. Keyless: a trimmed preview; a free key gets more. Ex: "1 MW colo price in Los Angeles?" Get the market slug from rank_markets or get_market_dcpi_rank; 404 = unrecognised market, use one of those slugs.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketNoMarket slug (metro), e.g. northern-virginia, dallas, frankfurt, singapore — valid slugs come from rank_markets / get_market_dcpi_rank
metricNoOptional single metric to focus on, e.g. vacancy, pricing, absorption, pipeline
periodNoOptional time window for the metric, e.g. ttm, 12mo, ytd
mpp_payNoStripe MPP step 1: true returns a signed per-call payment challenge (a quote; no money moves) instead of the free preview. Agents only.
compare_toNoOptional second market slug to compare against, e.g. dallas
mpp_credentialNoStripe MPP step 2: the Shared Payment Token minted for challenges[0]; pays that challenge for this one call.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
quotaNoCaller quota state (remaining calls, tier).
statsNoHeadline market stats
_gatedNotrue when parts of the payload were withheld by tier
marketNoThe market identity block
_entityNoPayload class (facility|market|iso_grid|queue_results|deal|report|response); branch on it.
successNotrue when the market lookup succeeded
citationNoHow to attribute DC Hub: {source, url, license, cite_as, retrieved_at}, or the attribution line as a string.
by_statusNoFacility counts keyed by status (Operational, Under Construction, Planned, Announced, active)
provenanceNoSource, method, as_of, verification_counts, license, cite_as; quote it when citing.
_front_doorNoFirst-tool hint: plan_query(intent) returns the ordered plan.
_return_loopNoNext-session delta call (get_changes).
related_intelNoRAG-grounded related intelligence passages (cited)
top_providersNoDominant operators, largest first
recent_facilitiesNoRecently added / discovered facilities in the market
site_evaluation_handoffNoFollow-up calls [{tool, parameters, why}] when the payload carries coordinates.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Added
  2. Removed
  3. Changed2 schema fields changed
    • changedInput schema / properties / mpp_credential / description
      Previous value: -"Autonomous payment (Stripe MPP), step 2: the Shared Payment Token you minted for challenges[0]. Set it here to pay $0.50 for this single call and receive the full result — no API key, no subscription, no human. One payment covers one call."New value: +"Autonomous payment (Stripe MPP), step 2: the Shared Payment Token you minted for challenges[0]. Set it here to pay that challenge for this single call and receive the full result — no API key, no subscription, no human. One payment covers one call."
    • changedInput schema / properties / mpp_pay / description
      Previous value: -"Autonomous payment (Stripe MPP), step 1: set true to receive a signed $0.50 payment challenge for this call instead of the free preview. No money moves — a challenge is a price quote. Humans never set this, so it does not affect the normal free/trial funnel."New value: +"Autonomous payment (Stripe MPP), step 1: set true to receive a signed per-call payment challenge (the challenge states the amount) for this call instead of the free preview. No money moves — a challenge is a price quote. Humans never set this, so it does not affect the normal free/trial funnel."
  4. 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#"
  5. Changed2 schema fields changed
    • addedInput schema / properties / mpp_credential
      Added value: +{
      +  "description": "Autonomous payment (Stripe MPP), step 2: the Shared Payment Token you minted for challenges[0]. Set it here to pay $0.50 for this single call and receive the full result — no API key, no subscription, no human. One payment covers one call.",
      +  "type": "string"
      +}
    • addedInput schema / properties / mpp_pay
      Added value: +{
      +  "description": "Autonomous payment (Stripe MPP), step 1: set true to receive a signed $0.50 payment challenge for this call instead of the free preview. No money moves — a challenge is a price quote. Humans never set this, so it does not affect the normal free/trial funnel.",
      +  "type": "boolean"
      +}
  6. Changed5 schema fields changed
    • 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"
  7. Changed1 schema field changed
    • addedOutput schema / properties / _front_door
      Added value: +{
      +  "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"
      +}
  8. Changed14 schema fields changed
    • 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: +"One-market intelligence read: identity, stats, status mix, operators, recent facilities, cited related intel — alongside the DC Hub envelope keys."
    • addedOutput schema / properties / _gated
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "true when parts of the payload were withheld by tier"
      +}
    • addedOutput schema / properties / by_status
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Facility counts keyed by status (Operational, Under Construction, Planned, Announced, active)"
      +}
    • addedOutput schema / properties / market
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "cities": {
      +          "description": "Cities composing the market"
      +        },
      +        "id": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Market slug"
      +        },
      +        "name": {
      +          "anyOf": [
      +            {
      +              "type": "string"
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Market display name"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "The market identity block"
      +}
    • addedOutput schema / properties / recent_facilities
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "city": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "City"
      +          },
      +          "discovered_at": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "When DC Hub first tracked it"
      +          },
      +          "id": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Facility id"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Facility name"
      +          },
      +          "power_mw": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Capacity, MW"
      +          },
      +          "provider": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Operator"
      +          },
      +          "status": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Facility status"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Recently added / discovered facilities in the market"
      +}
    • addedOutput schema / properties / related_intel
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "citation": {
      +            "description": "Citation payload"
      +          },
      +          "cosine": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Retrieval similarity score"
      +          },
      +          "kind": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Passage kind"
      +          },
      +          "source": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Source name"
      +          },
      +          "text": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Cited passage text"
      +          },
      +          "title": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Passage title"
      +          },
      +          "url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Source URL"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "RAG-grounded related intelligence passages (cited)"
      +}
    • removedOutput schema / properties / site_evaluation_handoff / additionalProperties
      Removed value: -{}
    • addedOutput schema / properties / site_evaluation_handoff / anyOf
      Added value: +[
      +  {
      +    "items": {
      +      "additionalProperties": {},
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "type": "array"
      +  },
      +  {
      +    "additionalProperties": {},
      +    "properties": {},
      +    "type": "object"
      +  }
      +]
    • changedOutput schema / properties / site_evaluation_handoff / description
      Previous value: -"Pre-built follow-up call (analyze_site / get_water_risk args) when the payload carries coordinates."New value: +"Pre-built follow-up calls (analyze_site / get_water_risk args) when the payload carries coordinates — an array of {tool, parameters, why} entries."
    • removedOutput schema / properties / site_evaluation_handoff / properties
      Removed value: -{}
    • removedOutput schema / properties / site_evaluation_handoff / type
      Removed value: -"object"
    • addedOutput schema / properties / stats
      Added value: +{
      +  "anyOf": [
      +    {
      +      "additionalProperties": {},
      +      "properties": {
      +        "avg_power_mw": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Average facility capacity, MW"
      +        },
      +        "facility_count": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Tracked facilities in the market"
      +        },
      +        "provider_count": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Distinct operators"
      +        },
      +        "total_power_mw": {
      +          "anyOf": [
      +            {
      +              "anyOf": [
      +                {
      +                  "type": "number"
      +                },
      +                {
      +                  "type": "string"
      +                }
      +              ]
      +            },
      +            {
      +              "type": "null"
      +            }
      +          ],
      +          "description": "Total tracked capacity, MW"
      +        }
      +      },
      +      "type": "object"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Headline market stats"
      +}
    • addedOutput schema / properties / success
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "boolean"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "true when the market lookup succeeded"
      +}
    • addedOutput schema / properties / top_providers
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "facilities": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Facility count"
      +          },
      +          "name": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Operator name"
      +          },
      +          "power_mw": {
      +            "anyOf": [
      +              {
      +                "anyOf": [
      +                  {
      +                    "type": "number"
      +                  },
      +                  {
      +                    "type": "string"
      +                  }
      +                ]
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Aggregate capacity, MW"
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Dominant operators, largest first"
      +}
  9. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "$schema": "http://json-schema.org/draft-07/schema#",
      +  "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"
      +    },
      +    "_return_loop": {
      +      "additionalProperties": {},
      +      "description": "Suggested next-session delta call (get_changes since=24h) so you pull only what changed.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "citation": {
      +      "additionalProperties": {},
      +      "description": "Machine-readable citation: how to attribute DC Hub (dchub.cloud) for this payload.",
      +      "properties": {},
      +      "type": "object"
      +    },
      +    "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": {
      +      "additionalProperties": {},
      +      "description": "Pre-built follow-up call (analyze_site / get_water_risk args) when the payload carries coordinates.",
      +      "properties": {},
      +      "type": "object"
      +    }
      +  },
      +  "type": "object"
      +}
  10. Changed4 schema fields changed
    • addedInput schema / properties / compare_to / description
      Added value: +"Optional second market slug to compare against, e.g. dallas"
    • addedInput schema / properties / market / description
      Added value: +"Market slug (metro), e.g. northern-virginia, dallas, frankfurt, singapore — valid slugs come from rank_markets / get_market_dcpi_rank"
    • addedInput schema / properties / metric / description
      Added value: +"Optional single metric to focus on, e.g. vacancy, pricing, absorption, pipeline"
    • addedInput schema / properties / period / description
      Added value: +"Optional time window for the metric, e.g. ttm, 12mo, ytd"
  11. Changed11 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / compare_to / default
      Removed value: -""
    • removedInput schema / properties / compare_to / title
      Removed value: -"Compare To"
    • removedInput schema / properties / market / default
      Removed value: -""
    • removedInput schema / properties / market / title
      Removed value: -"Market"
    • removedInput schema / properties / metric / default
      Removed value: -""
    • removedInput schema / properties / metric / title
      Removed value: -"Metric"
    • removedInput schema / properties / period / default
      Removed value: -"current"
    • removedInput schema / properties / period / title
      Removed value: -"Period"
    • removedInput schema / title
      Removed value: -"get_market_intelArguments"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_market_intelOutput",
      -  "type": "object"
      -}New value: +null
  12. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "title": "Result",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "title": "get_market_intelOutput",
      +  "type": "object"
      +}
  13. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_market_intelOutput",
      -  "type": "object"
      -}New value: +null
  14. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "title": "Result",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "title": "get_market_intelOutput",
      +  "type": "object"
      +}
  15. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_market_intelOutput",
      -  "type": "object"
      -}New value: +null
  16. First observed

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description still adds meaningful behavior: keyless calls return a trimmed preview while a free key unlocks more, and a 404 signals an unrecognized market. It also notes the payment challenge is a quote where no money moves. It does not explain pagination or return volume, but the disclosure is above expectations.

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?

Front-loaded with the primary use case and tightly packed, with every clause carrying routing or behavior information. However it is telegraphic to the point of choppiness, and the second sentence partially restates the first's 'one data-center market' trigger, which is minor redundancy.

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?

With an output schema present, the description needn't explain return values, yet it still names the top-level fields and flags the pricing basis to quote. Combined with alternative routing, slug prerequisites, preview/key behavior and error handling, an agent has everything needed to call this correctly.

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

Parameters3/5

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

Schema description coverage is 100%, so the schema already documents all six parameters, including the MPP pay/credential flow and slug sourcing. The description largely restates slug format and the rank_markets source rather than adding syntax or semantics beyond the schema, so the baseline 3 applies.

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 (retrieve data-center market intelligence) and enumerates the exact content: facility count, tracked MW, status mix, top providers, recent facilities, lease pricing. It explicitly differentiates from the sibling get_market_dcpi_rank by routing verdict-style questions there, so an agent can distinguish the two without opening either 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?

Gives explicit trigger conditions ('whenever the user asks about a data-center market', 'one data-center market'), an exclusion/alternative ('Verdict: use get_market_dcpi_rank'), a concrete example query, and prerequisite guidance for obtaining a valid slug from rank_markets/get_market_dcpi_rank. This is close to a complete routing decision.

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.