Model Context Protocol

Ask your AI assistant about any network

BGPScout exposes 90 tools over MCP. Connect it to ChatGPT, Claude, Cursor or OpenWebUI and ask routing questions in plain language. Every example below is real output captured on 2026-07-30 — not a mockup.

Connect it

Endpoint: https://bgpscout.io/mcp · 90 tools on a free account, 96 with an organisation · 60 requests/minute.

ChatGPT and claude.ai

Add it as a connector and authorise with OAuth. No key to paste.

Claude Code, Cursor and OpenWebUI

Use an API key from Account Settings.

Full setup guide →

Demo 1

"What is 8.8.8.8?"

The question everyone starts with. One call returns routing, geolocation, registration, RPKI and DNS — where it used to take four.

lookup(target="8.8.8.8")

{
  "ip": "8.8.8.8",
  "address_family": "IPv4",
  "routing":      { "covering_prefix": "8.8.8.0/24",
                    "origin_asn": 15169,
                    "asn_name": "Google LLC" },
  "geo":          { "city": "Mountain View", "region": "California",
                    "country": "US", "winning_source": "ipinfo" },
  "registration": { "registry": "arin", "prefix": "8.8.8.0/24",
                    "alloc_date": "2023-12-28" },
  "rpki":         { "state": "Valid", "roa": "8.8.8.0/24",
                    "max_length": 24, "ta": "arin" },
  "rdns":         { "forward_count": 5 }
}

Note the winning_source. Geolocation comes from several sources that can disagree, so the tool returns which one won and lists the others rather than presenting one city as fact.

Demo 2

"Is this prefix RPKI valid?"

Validated against a ROA set covering all five RIR trust anchors, refreshed nightly.

lookup(target="193.35.46.1", sections=["routing", "rpki"])

{
  "ip": "193.35.46.1",
  "covering": "193.35.46.0/24",
  "origin": 1,
  "state": "Invalid",
  "why": "Announcement /24 from AS1 is contradicted by 1 covering
          ROA(s); 1 authorise a different origin. An authorisation
          exists and this announcement does not satisfy it."
}

Three states, not two. Valid, Invalid and NotFound stay distinct. About half the routing table is still unsigned, so NotFound means "no ROA covers this" — it is not a failure, and we do not render it as one.

Demo 3

"What address space does AS577 have in Toronto?"

Not a count — the actual CIDRs, with how many geolocated IPs sit in that city.

get_asn_geo_prefixes(asn=577, city="Toronto")

{
  "asn": 577,
  "returned": 5,
  "total_located_prefixes": 16532,
  "prefixes": [
    { "prefix": "142.120.0.0/16", "ip_count": 65536,
      "city": "Toronto", "country": "CA" },
    { "prefix": "142.127.0.0/16", "ip_count": 65536,
      "city": "Toronto", "country": "CA" },
    { "prefix": "142.172.0.0/16", "ip_count": 65536,
      "city": "Toronto", "country": "CA" },
    { "prefix": "142.185.0.0/16", "ip_count": 65536,
      "city": "Toronto", "country": "CA" },
    { "prefix": "142.186.0.0/16", "ip_count": 65536,
      "city": "Toronto", "country": "CA" }
  ]
}

Sizing a prospect's real presence in a market — not its registered address, and not what it declared in PeeringDB. The tool also reports when it has no city label for a network, so an empty answer is never mistaken for "not present".

Demo 4

IPv6 is first-class

Every tool takes v6 addresses and prefixes. No separate call, no second tool.

lookup(target="2606:4700:4700::1111", sections=["routing", "rpki"])

{
  "ip": "2606:4700:4700::1111",
  "address_family": "IPv6",
  "covering": "2606:4700:4700::/48",
  "origin": 13335,
  "rpki": "Valid"
}

What else it answers

90 tools across ASN lookup and comparison, facility and IXP presence, registry allocations and transfers, geographic search, traceroutes and boomerang detection, CDN cache locations, domain intelligence, prospecting and lead scoring. Some questions that map to a single call:

Honest about coverage

Several tools return coverage notes alongside their answers, and we leave them in the demos above rather than trimming them for a tidier page. Geolocated IP footprint covers about 6,500 networks; registry contact data is ARIN-only today; traceroute-observed transit handoffs cover far fewer networks than BGP adjacency does.

An agent that cannot say how confident it is will state a guess as fact. The tools are built so it can tell the difference, and absence of data is never reported as absence of the thing.

Try it

A free account gets all 90 tools at 60 requests a minute. No credit card.

Create a free account  Setup guide

Examples captured 2026-07-30 against production. Re-captured when tool output changes.