Skip to main content
Glama
bgphorizon

bgphorizon-mcp

Official
by bgphorizon

path_diversity

Check whether an ASN or prefix has redundant transit by mapping how its BGP announcements spread across upstreams, revealing single-threaded or diverse connectivity.

Instructions

How an origin's announcements FAN OUT through its upstreams toward our collectors — the observed propagation / path-diversity tree, weighted by how many vantage points take each branch.

Built ONLY from real observed AS paths (no inference), so it answers with high confidence: which upstreams actually carry this network's routes, and how lopsided that is. Each level-1 branch's share is the fraction of vantage points (of the total_vantage_points that see the origin) that reach it via that upstream, counted as DISTINCT collector+peer feeds. Shares are per-upstream coverage, not a partition — a network reached through several upstreams will have several high shares, so they can sum past 1.0. One dominant upstream with the rest low = effectively single-threaded; several high shares = redundant transit. is_tier1 marks where a branch reaches the Tier-1 core.

Pass prefix (a CIDR the ASN originates) to scope the tree to ONE prefix — useful for a MOAS prefix or to check a specific route's redundancy; the % then reflects just that prefix's paths.

NOT a traceroute: this is the control-plane spread of routes across upstreams as seen from route collectors, not the data-plane path a packet takes (peering and IXP handoffs are invisible to collectors). diverse=false means the origin is single-threaded or too thinly observed for a meaningful diversity view — read reason. Default window is 14 days (current routing); widen it for more history.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
asnYes
endNo
startNo
prefixNo
Install Server

TDQS

A4.3/5.0
Behavior5/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It reveals that data comes strictly from observed AS paths (no inference), that shares are per-upstream coverage and can sum past 1.0, that `is_tier1` marks Tier-1 core, that `diverse=false` indicates single-threaded or thinly observed behavior with a `reason` field, and that the view is control-plane rather than data-plane. It also states the default window and what widening it does.

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-structured: a one-sentence lead, then layered detail on semantics, usage, and caveats. Backticks and line breaks make fields and concepts scannable. Some concepts like observed-vs-inferred and control-plane vs data-plane are repeated across paragraphs, but the length is largely justified by the tool's complexity.

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

Completeness4/5

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

Despite no output schema, the description documents key return concepts (`share`, `total_vantage_points`, `is_tier1`, `diverse`, `reason`) and explains how to interpret them. It also covers the default time window, the optional `prefix` parameter, and the tool's limitations. It does not specify date string formats or include an example, but for a read-only analysis tool this is nearly complete.

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?

The input schema provides only names and types with no descriptions. The description adds meaningful context for `prefix` (a CIDR the ASN originates, useful for MOAS or specific route redundancy) and implies the role of `start`/`end` via the default 14-day window. However, it does not clarify the expected format for `start`/`end` or explicitly define `asn` beyond the general origin-network context, so compensation is only partial.

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 states a specific, concrete function: computing the observed propagation/path-diversity tree of an origin's announcements as they fan out through upstreams to collectors. It clearly identifies the resource (origin ASN, upstreams, collectors) and distinguishes itself from a data-plane traceroute, which helps separate it from sibling path-oriented 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?

The description gives clear context for when to use the tool: to see which upstreams actually carry a network's routes and how lopsided that distribution is. It also explains when to pass the `prefix` parameter (for MOAS prefixes or checking a specific route's redundancy) and notes the default 14-day window. However, it does not explicitly compare against any sibling tools or state when not to use it beyond the traceroute caveat.

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

Other Tools

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/bgphorizon/bgphorizon-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server