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.
Endpoint: https://bgpscout.io/mcp · 90 tools on a free account, 96 with an organisation · 60 requests/minute.
Add it as a connector and authorise with OAuth. No key to paste.
Use an API key from Account Settings.
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.
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.
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".
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"
}
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:
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.
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.