Skip to main content
Glama

Peeringdb Ix

peeringdb_ix

Search PeeringDB for Internet Exchange Points (IXPs) and retrieve exchange details, location, and connected networks. Optionally fetch the member list for a specific exchange by name or ID.

Instructions

Search for Internet Exchange Points (IXPs) in PeeringDB.

Returns exchange name, location, website, and the number of connected networks (total_members) for every match. With include_members, the member list (ASN, LAN addresses, port speed, route-server flag) is fetched for ONE exchange only: the exact name match if there is one, otherwise the first result. That entry has members_included=true. To get members of a specific exchange, query by its numeric IX id.

Data source: PeeringDB. A name search that returns nothing falls back to a city search. total_members comes from PeeringDB's net_count and costs no extra requests. If error is set the search or the member fetch failed upstream and the payload may be empty or partial.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
queryYesIXP name or city to search (e.g. 'AMS-IX', 'Amsterdam', 'DE-CIX'), or a numeric PeeringDB IX id for an exact lookup.
include_membersNoFetch the member list for the best-matching exchange only (exact name match if present, otherwise the first result). Costs one extra request; use a specific name or IX id to target the exchange you want.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
errorNoSet when the PeeringDB request failed; other fields may be empty or partial.
queryYesThe search string that was used.
totalNoNumber of exchanges returned.
sourceNoData source name.PeeringDB
exchangesNoMatching exchanges (at most 20).

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observedv0.1.0

TDQS

A4.7/5.0
Behavior5/5

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

With no annotations, the description carries the full behavioral burden, and it does so thoroughly. It discloses the fallback from name to city search, that 'total_members' comes from PeeringDB's net_count and costs no extra requests, the selection rule for include_members (exact match else first, flagged with members_included=true), and that an error field may indicate a partial or empty payload. This is more than sufficient transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

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

The description is concise yet comprehensive. Every sentence earns its place: purpose, returned fields, optional member behavior, data source and fallback, and error semantics. It is front-loaded with the core purpose and uses no filler or repetition. The structure is easy to parse and directly actionable.

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 output schema exists and the tool has only two parameters, the description covers all necessary context for correct invocation. It explains the tricky aspects (fallback, member selection, error handling) and notes cost implications. An agent has everything needed to call this tool correctly without additional inference.

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 coverage is 100%, so the baseline is 3. The description adds meaning beyond the schema: it explains that a numeric query is an exact PeeringDB IX id, that a name search falling back to city search changes the semantics of the query parameter, and that include_members adds one extra request—context not present in the schema. This extra nuance justifies a 4.

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 and resource: 'Search for Internet Exchange Points (IXPs) in PeeringDB.' It then enumerates the returned fields (name, location, website, total_members) and the optional member-list enrichment. This clearly distinguishes the tool from siblings like peeringdb_facility and peeringdb_network, which target different PeeringDB entities.

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 provides clear operational guidance: query by name, city, or numeric ID; name searches fall back to city searches; include_members fetches only one exchange (exact match else first result); and members for a specific exchange require querying by numeric ID. It does not explicitly name alternative tools, but the purpose is clear enough that an agent can select it confidently. The lack of explicit sibling exclusions keeps it from a 5.

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