Skip to main content
Glama

DC Hub — Data Center Site Selection & Colocation: Electricity, Power Grid, Gas, Fiber

Fiber Intelligence

get_fiber_intel
Read-onlyIdempotent

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).

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
marketNoMetro 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.
carrierNoFiber carrier to filter on, e.g. Zayo, Lumen, Cogent, "Crown Castle", Windstream, GTT, Uniti; omit for all carriers
mpp_payNoAutonomous 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.
route_typeNoRoute class: "metro", "longhaul", "dark", or "ix"
mpp_credentialNoAutonomous 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.
include_sourcesNoInclude upstream data-source/provenance metadata in the response

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
typeNo"FeatureCollection" — the payload is GeoJSON, ready for Leaflet/Mapbox
quotaNoCaller quota state (remaining calls, tier) when available.
totalNoTotal routes matching the filter (null when withheld by tier)
_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.
featuresNoFiber route features
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. 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"
      +}
  3. 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"
  4. 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"
      +}
  5. Changed9 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: +"Fiber-route intelligence as a GeoJSON FeatureCollection (carrier, route_type, capacity, distance per feature) — alongside the DC Hub envelope keys."
    • addedOutput schema / properties / features
      Added value: +{
      +  "anyOf": [
      +    {
      +      "items": {
      +        "additionalProperties": {},
      +        "properties": {
      +          "geometry": {
      +            "description": "GeoJSON geometry (LineString/MultiLineString route path)"
      +          },
      +          "properties": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": {},
      +                "properties": {
      +                  "capacity": {
      +                    "anyOf": [
      +                      {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Capacity (carrier-reported units) when known"
      +                  },
      +                  "carrier": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Fiber carrier, e.g. Zayo, Lumen, Cogent"
      +                  },
      +                  "distance_km": {
      +                    "anyOf": [
      +                      {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Route length, km"
      +                  },
      +                  "distance_miles": {
      +                    "anyOf": [
      +                      {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Route length, miles"
      +                  },
      +                  "fiber_count": {
      +                    "anyOf": [
      +                      {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Fiber strand count when known"
      +                  },
      +                  "lit_capacity_gbps": {
      +                    "anyOf": [
      +                      {
      +                        "anyOf": [
      +                          {
      +                            "type": "number"
      +                          },
      +                          {
      +                            "type": "string"
      +                          }
      +                        ]
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "Lit capacity, Gbps, when known"
      +                  },
      +                  "route_type": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "description": "metro | longhaul | dark | ix"
      +                  }
      +                },
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "Route attributes"
      +          },
      +          "type": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "description": "\"Feature\""
      +          }
      +        },
      +        "type": "object"
      +      },
      +      "type": "array"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Fiber route features"
      +}
    • 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 / total
      Added value: +{
      +  "anyOf": [
      +    {
      +      "anyOf": [
      +        {
      +          "type": "number"
      +        },
      +        {
      +          "type": "string"
      +        }
      +      ]
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "Total routes matching the filter (null when withheld by tier)"
      +}
    • addedOutput schema / properties / type
      Added value: +{
      +  "anyOf": [
      +    {
      +      "type": "string"
      +    },
      +    {
      +      "type": "null"
      +    }
      +  ],
      +  "description": "\"FeatureCollection\" — the payload is GeoJSON, ready for Leaflet/Mapbox"
      +}
  6. 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"
      +}
  7. Changed1 schema field changed
    • addedInput schema / properties / market
      Added value: +{
      +  "description": "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.",
      +  "type": "string"
      +}
  8. Changed3 schema fields changed
    • addedInput schema / properties / carrier / description
      Added value: +"Fiber carrier to filter on, e.g. Zayo, Lumen, Cogent, \"Crown Castle\", Windstream, GTT, Uniti; omit for all carriers"
    • addedInput schema / properties / include_sources / description
      Added value: +"Include upstream data-source/provenance metadata in the response"
    • addedInput schema / properties / route_type / description
      Added value: +"Route class: \"metro\", \"longhaul\", \"dark\", or \"ix\""
  9. Changed9 schema fields changed
    • addedInput schema / $schema
      Added value: +"http://json-schema.org/draft-07/schema#"
    • removedInput schema / properties / carrier / default
      Removed value: -""
    • removedInput schema / properties / carrier / title
      Removed value: -"Carrier"
    • removedInput schema / properties / include_sources / default
      Removed value: -true
    • removedInput schema / properties / include_sources / title
      Removed value: -"Include Sources"
    • removedInput schema / properties / route_type / default
      Removed value: -""
    • removedInput schema / properties / route_type / title
      Removed value: -"Route Type"
    • removedInput schema / title
      Removed value: -"get_fiber_intelArguments"
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_fiber_intelOutput",
      -  "type": "object"
      -}New value: +null
  10. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -nullNew value: +{
      +  "properties": {
      +    "result": {
      +      "title": "Result",
      +      "type": "string"
      +    }
      +  },
      +  "required": [
      +    "result"
      +  ],
      +  "title": "get_fiber_intelOutput",
      +  "type": "object"
      +}
  11. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_fiber_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_fiber_intelOutput",
      +  "type": "object"
      +}
  13. Changed1 schema field changed
    • changedOutput schema / (root)
      Previous value: -{
      -  "properties": {
      -    "result": {
      -      "title": "Result",
      -      "type": "string"
      -    }
      -  },
      -  "required": [
      -    "result"
      -  ],
      -  "title": "get_fiber_intelOutput",
      -  "type": "object"
      -}New value: +null
  14. Added

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true, idempotentHint=true, destructiveHint=false, so the safety profile is covered. The description adds genuine behavioral context beyond that: it specifies the '~1.2°' proximity rule for market filtering, explains the GeoJSON return structure, and clarifies that the tool returns ONLY routes touching the named metro. The mpp_pay/mpp_credential parameters are also transparently explained in the schema. 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.

Conciseness4/5

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

The description is dense but well-organized: usage context first, then a concrete example, then the market-scoping behavior, then the return shape, then exclusions. Every sentence earns its place and the structure front-loads the most decision-relevant information. The return schema and param enums are not needlessly duplicated, though the description is fairly long and could be trimmed slightly.

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 read-only geodata query with six parameters, zero required fields, an output schema, and 100% schema coverage, the description is complete. It states the geographic scoping rule, names the sibling alternatives for the two most likely misconceptions, documents the payment flow, and describes the GeoJSON shape. An agent can select this tool, set parameters, and interpret the result without any additional tool discovery.

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?

Schema description coverage is 100%, so the schema already documents every parameter. The description nevertheless adds value by explaining the market filter's ~1.2° proximity behavior, giving concrete enum examples for carrier and route_type, and showing how route_type=longhaul pairs with market. It also covers the free-vs-paid semantics of mpp_pay. This exceeds the baseline-3 for fully covered schemas.

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 opens with a specific verb-resource pairing ('scoring a candidate site for fiber depth, mapping long-haul routes between metros, or assessing dark-fiber availability') and immediately distinguishes the tool from siblings by name ('Do NOT use ... use get_acility' and 'use analyze_site'). The worked example with carrier=Zayo route_type=longhaul further anchors what the tool returns and how it is invoked.

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?

The description provides explicit when-to-use guidance ('Use when scoring a candidate site for fiber depth, mapping long-haul routes...') and also explicit when-not-to-use guidance with named alternatives ('Do NOT use to count fiber providers at a single facility (use get_acility) or for IX interconnection-density scores (use analyze_site)'). It even includes a concrete example query and parameter mapping, leaving little to 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.