Token导航 LogoToken导航TokenDH.com
Bgp Lg MCP logo
运维云端stdio官方级别未说明来源级核验

Bgp Lg MCP

MCP Server

一个提供实时BGP路由信息查询、IP地址ping和网络路径追踪的MCP服务器,适用于网络诊断和路由分析。

工具数

7

提示词数

0

GitHub Stars

4

资源数

0
PythonClaude云端部署Claude DesktopClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

simonpainter

提供方

simonpainter

最后核验

2026/5/17 20:20

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

pip install -e .

详细介绍

BGP窥镜MCP服务器

通过Claude Desktop或任何MCP客户端从公共路由服务器查询实时BGP路由信息、ping IP地址并跟踪网络路径。

这是什么?

A. BGP观察镜 是一种可访问互联网的服务,它公开BGP(边界网关协议)路由数据。BGP是为互联网路由基础设施提供动力的协议。通过观察眼镜,您可以看到特定BGP说话者已经学习了哪些路由,以及它将如何将流量路由到给定的目的地。

该项目将13个公共RouteViews服务器打包成一个 MCP(模型上下文协议)服务器,使BGP查询、ping和traceroute可供Claude Desktop和其他AI助手使用。现在,你可以向克劳德询问有关实时权威数据的互联网路由。

示例问题克劳德可以回答:

  • “通往8.8.0.0/24的AS路径是什么?”
  • “此前缀是否路由?”
  • “Linx路由服务器有多少BGP邻居?”
  • “谁拥有AS15169?”
  • “IP 1.1.1.1位于哪个国家?”
  • “您能从不同的服务器ping 8.8.8.8并比较延迟吗?”
  • “显示Google DNS的网络路径”
  • “将不同地区的路线与1.1.1.1进行比较”

特性

  • 查询实时BGP路由 来自13个全球分布的公共路由服务器
  • Ping IP地址 从路由服务器到测试连接和测量延迟
  • 追踪路线 访问IP地址以查看网络路径并识别涉及哪些AS
  • 查找IP地理位置和BGP元数据 使用BGPKit公共API
  • 查找ASN所有权 使用BGPKit公共API
  • 检索BGP摘要统计信息 包括路由器ID、AS号、邻居计数
  • IPv4和IPv6支持 -适用于两个地址家族
  • CIDR符号支持 -查找整个子网
  • 公共IP验证 -为了安全起见,阻止私有/保留地址范围
  • 简单、快速的设置 -使用Claude Desktop只需几分钟
  • 直接telnet连接 -没有严重的依赖关系或复杂的基础设施
  • 实时数据 -从公共路由服务器查询实时BGP数据

快速开始

1.安装

pip install -e .

2.配置克劳德桌面

将此添加到 ~/Library/Application Support/Claude/claude_desktop_config.json:

{
  "mcpServers": {
    "bgp-lg": {
      "command": "python3",
      "args": ["/path/to/bgp-lg-mcp/server.py", "--stdio"]
    }
  }
}

3.重新启动克劳德桌面

BGP Looking Glass工具将出现在您的MCP工具列表中。开始询问BGP!

可用工具

JSON响应格式

所有工具均支持 文本 (默认)和 JSON 响应格式,以灵活使用数据。

使用JSON格式:

# Get structured JSON instead of text
route_lookup(destination="8.8.8.0/24", format="json")
bgp_summary(format="json")
asn_owner(asn="AS15169", format="json")
ip_lookup(ip="8.8.8.8", format="json")
list_servers(format="json")

JSON格式的优点:

  • 程序化解析 -易于解析和处理结构化数据
  • 类型安全性 -Pydantic模型验证所有响应
  • 结构一致 -所有工具都遵循相同的JSON模式
  • 错误处理 -错误还会返回结构化JSON
  • API集成 -更适合在MCP服务器之上构建

JSON响应示例:

{
  "type": "ip_lookup",
  "ip": "8.8.8.8",
  "country": "US",
  "asn": 15169,
  "prefix": "8.8.8.0/24",
  "name": "Google, YouTube (for Google Fiber see AS16591 record)",
  "rpki": "valid",
  "updated_at": "2026-02-25T10:00:00"
}

______________________________________________________________________

route_lookup -查询BGP路由

查找特定IP地址或子网的路由方式。

参数:

  • destination -IPv4/IPv6地址或CIDR子网(例如。, 8.8.8.0/24)
  • server -要查询的路由服务器(默认:RouteViews Linx)
  • format -响应格式: text (默认)或 json

退货: 原始BGP查找输出,包括匹配路由、AS路径、下一跳信息和路由属性(如果format=“JSON”,则为结构化JSON)。

例子:

route_lookup(destination="1.1.1.1")
route_lookup(destination="2001:4860:4860::8888", server="Equinix Sydney")
route_lookup(destination="8.8.8.0/24", format="json")

______________________________________________________________________

bgp_summary -获取路由器统计信息

从路由服务器检索BGP摘要信息。

参数:

  • server -要查询的路由服务器(默认:RouteViews Linx)
  • format -响应格式: text (默认)或 json

退货: BGP摘要输出显示:

  • 路由器BGP ID和AS号
  • 学习路线数量(RIB条目)
  • BGP邻居总数及其状态
  • 包含对等体信息、会话正常运行时间和前缀计数的详细邻居表

例子:

bgp_summary()
bgp_summary(server="Equinix Ashburn")
bgp_summary(format="json")

使用案例:

  • 验证路由服务器是否正常
  • 监控主要网络的BGP会话状态
  • 查看哪些同行正在积极宣传路线

______________________________________________________________________

list_servers -显示可用服务器

显示所有已配置的BGP窥镜服务器。

参数:

  • format -响应格式: text (默认)或 json

退货: 服务器名称、状态(启用/禁用)、主机名和连接方法。

例子:

list_servers()
list_servers(format="json")

______________________________________________________________________

asn_owner -查找ASN所有者

使用BGPKit API检索自治系统编号(ASN)的所有者名称。

参数:

  • asn -格式为“AS123”或“123”的自治系统编号(例如,“AS15169”、“64512”)
  • format -响应格式: text (默认)或 json

退货: ASN的所有者名称。

例子:

asn_owner(asn="AS15169")
asn_owner(asn="15169")
asn_owner(asn="AS64512")
asn_owner(asn="AS15169", format="json")

JSON示例响应:

{
  "type": "asn_owner",
  "asn": "AS15169",
  "owner": "GOOGLE - Google LLC"
}

使用案例:

  • 确定谁操作特定的AS
  • 分析路由信息时验证AS所有权
  • 了解BGP路径中涉及的实体

______________________________________________________________________

ip_lookup -地理位置和BGP元数据

使用BGPKit API查找IP地址的地理位置信息和BGP元数据。

参数:

  • ip -IPv4或IPv6地址(例如。, 8.8.8.82001:4860:4860::8888)

- 必须是公共地址(出于安全考虑,私人/保留地址被拒绝)

  • format -响应格式: text (默认)或 json

退货: IP地理定位数据包括:

  • 国家 -GeoIP国家代码
  • 自治系统号 -宣布IP的自治系统编号
  • 前缀 -覆盖IP的CIDR前缀
  • 名称 -组织名称(如有)
  • 资源公钥基础设施 -RPKI验证状态(有效/无效/未知)
  • 更新 -上次更新的时间戳

例子:

ip_lookup(ip="8.8.8.8")
ip_lookup(ip="1.1.1.1")
ip_lookup(ip="2001:4860:4860::8888")
ip_lookup(ip="8.8.8.8", format="json")

文本输出示例:

IP Lookup: 8.8.8.8
Country: US
ASN: 15169
Prefix: 8.8.8.0/24
Name: Google, YouTube (for Google Fiber see AS16591 record)
RPKI Status: valid
Updated: 2026-02-25T10:00:00

JSON输出示例:

{
  "type": "ip_lookup",
  "ip": "8.8.8.8",
  "country": "US",
  "asn": 15169,
  "prefix": "8.8.8.0/24",
  "name": "Google, YouTube (for Google Fiber see AS16591 record)",
  "rpki": "valid",
  "updated_at": "2026-02-25T10:00:00"
}

使用案例:

  • 确定IP地址位于哪个国家
  • 查找运营IP的组织
  • 验证已宣布前缀的RPKI签名状态
  • 将流量来源映射到组织
  • 验证前缀所有权

______________________________________________________________________

ping_host -平安IP地址

从BGP外观的服务器Ping IP地址,以测试连接并测量往返时间。

参数:

  • ip -IPv4或IPv6地址到ping(例如。, 8.8.8.8, 1.1.1.1)
  • server -使用哪个路由服务器进行ping(默认:RouteViews Linx)
  • format -响应格式: text (默认)或 json

退货: Ping统计数据包括:

  • 成功率 -成功ping的百分比(0-100%)
  • 发送/接收的数据包 -数据包总数和成功返回的数据包
  • 往返次数 -最小、平均和最大延迟(毫秒)

例子:

ping_host(ip="8.8.8.8")
ping_host(ip="1.1.1.1", server="RouteViews Main")
ping_host(ip="2001:4860:4860::8888", format="json")

文本输出示例:

Ping Results for 8.8.8.8
Server: RouteViews Linx
Packets sent: 5
Packets received: 5
Success rate: 100%
Round-trip times (ms): min=10.5, avg=11.2, max=12.3

JSON输出示例:

{
  "type": "ping",
  "ip": "8.8.8.8",
  "server": "RouteViews Linx",
  "stats": {
    "sent": 5,
    "received": 5,
    "success_rate": 100,
    "min_ms": 10.5,
    "avg_ms": 11.2,
    "max_ms": 12.3
  },
  "raw_output": "Success rate is 100 percent (5/5), round-trip min/avg/max = 10.5/11.2/12.3 ms"
}

支持的服务器:

  • 路线视图主✅
  • Linx路线视图❌ (命令不可用)
  • 路线视图2❌ (命令不可用)
  • 其他服务器❌ (访问受限)

使用案例:

  • 测试与远程IP地址的连接
  • 测量不同地理位置的延迟
  • 验证IP地址是否可访问
  • 通过比较延迟来诊断网络问题
  • 监控往返时间随时间的变化

______________________________________________________________________

traceroute_host -跟踪到IP地址的路由

跟踪从BGP窥镜服务器到IP地址的网络路径(跳数)。

参数:

  • ip -要跟踪的IPv4或IPv6地址(例如。, 8.8.8.8, 1.1.1.1)
  • server -使用哪个路由服务器进行跟踪(默认:RouteViews Linx)
  • format -响应格式: text (默认)或 json

退货: 追踪路线结果包括:

  • 跳数 -从源到目标的顺序跳转
  • 主机名 -跃点的DNS名称(如果可用)
  • IP地址 -跳的IP地址
  • AS编号 -自治系统跳数
  • 响应时间 -每个探头的往返时间(通常每跳3个探头)

例子:

traceroute_host(ip="8.8.8.8")
traceroute_host(ip="1.1.1.1", server="Equinix Sydney")
traceroute_host(ip="2001:4860:4860::8888", format="json")

文本输出示例:

Traceroute to 8.8.8.8
Server: RouteViews Linx
Target hostname: dns.google
Total hops: 12

 1. gw.example.com (10.0.0.1) 1.2 1.1 1.3 ms
 2. isp-gateway.net (203.0.113.1) [AS 64500] 5.2 5.1 5.3 ms
 3. * (no response)
 4. core-router.example.net (203.0.114.1) [AS 65001] 10.5 10.2 10.8 ms
 ...
12. dns.google (8.8.8.8) [AS 15169] 25.3 25.1 25.5 ms

JSON输出示例:

{
  "type": "traceroute",
  "ip": "8.8.8.8",
  "target_hostname": "dns.google",
  "server": "RouteViews Linx",
  "total_hops": 12,
  "hops": [
    {
      "hop_number": 1,
      "host": "gw.example.com",
      "ip": "10.0.0.1",
      "asn": null,
      "times_ms": [1.2, 1.1, 1.3],
      "rtt_avg_ms": 1.2
    },
    {
      "hop_number": 2,
      "host": "isp-gateway.net",
      "ip": "203.0.113.1",
      "asn": 64500,
      "times_ms": [5.2, 5.1, 5.3],
      "rtt_avg_ms": 5.2
    },
    {
      "hop_number": 3,
      "host": "*",
      "ip": null,
      "asn": null,
      "times_ms": [],
      "rtt_avg_ms": null
    }
  ],
  "raw_output": "..."
}

支持的服务器:

  • 路线视图主✅
  • Linx路线视图❌ (命令不可用)
  • 路线视图2❌ (命令不可用)
  • 其他服务器❌ (访问受限)

了解跟踪路线输出:

  • 随时间跳跃 -已成功响应延迟数据
  • 啤酒花\* -路由器没有响应跟踪路由探测(有时路由器会阻止ICMP/UDP)
  • AS编号 -显示路径中涉及哪些自治系统(网络)
  • 延迟增加 -随着距离源越来越远,每一跳都应该有更高的延迟

使用案例:

  • 识别互联网上两点之间的网络路径
  • 诊断网络问题发生的位置(哪个跃点失败)
  • 了解哪些AS参与了流量路由
  • 验证网络之间的直接对等关系
  • 绘制网络拓扑和互连图
  • 通过识别慢跳来调试延迟问题

______________________________________________________________________

支持的路由服务器

13个全球分布的公共RouteViews服务器,均可免费访问:

服务器位置支持\_ ping支持\_ traceroute
RouteViews Linx英国伦敦
RouteViews Main俄勒冈州,美国
RouteViews2美国俄勒冈州falsefalse
Equinix Ashburn美国阿什本
DE-CIX纽约美国纽约
Equinix芝加哥美国芝加哥
NWAX波特兰美国波特兰
AMS-IX阿姆斯特丹荷兰阿姆斯特丹
Equinix新加坡新加坡
HKIX香港香港虚假虚假
Equinix悉尼澳大利亚悉尼falsefalse
IX.br圣保罗巴西圣保罗
RouteViews WIDE日本东京

所有服务器都是:

  • ✅ 可公开访问(无需注册)
  • ✅ 全天候免费提供
  • ✅ 从BGP源实时更新
  • ✅ 由俄勒冈大学路线景观项目维护

配置

编辑 config.json 修改路由服务器或添加新服务器:

{
  "servers": [
    {
      "name": "RouteViews Linx",
      "host": "route-views.linx.routeviews.org",
      "port": 23,
      "connection_method": "telnet",
      "username": "",
      "password": "",
      "prompt": ">",
      "timeout": 15,
      "enabled": true
    }
  ]
}

配置字段

  • 名字 -服务器标识符(指定要查询的服务器时使用)
  • 主机 -BGP路由器的主机名或IP地址
  • 港口 -Telnet端口(几乎总是23)
  • 连接方法 -目前为“telnet”;可以添加SSH支持
  • 用户名 -登录用户名(空=匿名访问)
  • 密码 -登录密码
  • 提示 -命令提示指示器(用于检测响应何时完成)
  • 超时 -连接超时(秒)
  • 启用 -启用/禁用而不从配置中删除

出站速率限制

为了保护公共基础设施免受连接洪水的影响,对出站请求进行了限制:

  • 每台服务器的telnet限制: BGP_PER_SERVER_MAX_CONNECTIONS (默认值: 2)
  • 通过telnet+BGPKit API调用的全局出站限制: BGP_GLOBAL_MAX_OUTBOUND (默认值: 10)

当达到限制时,新的请求会等待可用的插槽。

运行服务器

MCP标准模式(建议用于克劳德桌面)

python3 server.py --stdio

这是Claude Desktop集成的默认设置。服务器在后台运行,并通过stdin/stdout进行通信。

流式HTTP模式

对于基于web的MCP客户端或测试:

python3 server.py

开始 http://127.0.0.1:8000 MCP端点位于 /mcp

服务器支持两种传输模式:

  • 工作室 (--stdio)-适用于Claude Desktop等本地MCP客户端
  • 流式HTTP (默认)-用于基于web的MCP客户端和远程访问

运作原理

  1. 你问克劳德一个BGP问题 -“AS通往1.1.1.1的路径是什么?”
  2. Claude调用适当的MCP工具 - route_lookup 与您的查询
  3. 该工具连接到公共路由服务器 通过telnet
  4. 执行BGP命令 - show ip bgp
  5. 返回原始路由器输出 致克劳德
  6. 克劳德解读和总结 结果给你

所有通信都使用简单的按需telnet连接,没有持久会话,也没有复杂的基础设施。

项目结构

服务器由以下部分组成:

  • 服务器.py -配备所有工具的主MCP服务器
  • bgp_lg.py -具有工作函数的库(telnet客户端、IP验证、ASN查找、配置管理)
  • config.json -可用路由服务器的配置
  • pyproject.toml -Python依赖关系

示例

检查子网是否已路由

User: Is 203.0.113.0/24 currently routed to the internet?
Claude: route_lookup(destination="203.0.113.0/24")
Result: [Shows all routes matching that prefix from the route server]
Claude: Based on the BGP data, this subnet is being announced by AS65001 with these paths...

查找ASN所有者

User: Who operates AS15169?
Claude: asn_owner(asn="AS15169")
Result: Google LLC
Claude: AS15169 is operated by Google LLC, which owns several large networks...

比较不同地区的路线

User: How does traffic to Google DNS (8.8.8.8) route from different regions?
Claude: Calls route_lookup for 8.8.8.8 with different servers
Claude: Shows how different route servers see the path to Google's infrastructure

监视路由服务器运行状况

User: Is the Linx route server operating normally?
Claude: bgp_summary(server="RouteViews Linx")
Result: Shows 63 active BGP neighbors, millions of routes, healthy sessions
Claude: Yes, the Linx route server is operating normally with X neighbors...

需求

  • Python 3.7+
  • 中列出的依赖关系 requirements.txt (FastAPI、uvicorn、mcp)

安装

git clone https://github.com/yourusername/bgp-lg-mcp.git
cd bgp-lg-mcp
pip install -e .

发展

使用开发依赖项进行安装:

pip install -e ".[dev]"

演出

  • 连接时间:50毫秒-1.1秒(取决于服务器)
  • 命令执行:通常\<500ms
  • 总查询时间:每次查询0.5秒-1.5秒
  • 无启动延迟 -工具立即可用

故障排除

Claude桌面中的连接错误

错误: “连接错误-检查您的MCP服务器是否正在运行…”

解决方案: 确保服务器正在运行:

python3 server.py --stdio

并验证中的配置路径 claude_desktop_config.json 是正确的。

路由查找未返回任何结果

可能的原因:

  • 目标是私有IP(10.x.x.x、192.168.x.x等)-为了安全起见,这些IP被阻止
  • 路由服务器暂时无法访问
  • 服务器过载(请尝试其他服务器)

解决方案: 尝试其他服务器或验证IP是否为公共:

route_lookup(destination="1.1.1.1", server="Equinix Ashburn")

服务器无法启动

检查:

  • Python 3.7+已安装: python3 --version
  • 已安装依赖项: pip install -e .
  • 端口8000未使用(用于流式http模式): lsof -i :8000

局限性

  • 仅限Telnet -目前仅支持telnet连接(兼容RFC 854)
  • 仅限公共IP -专用/保留地址范围被阻止
  • 不要求进行验证 -所有配置的服务器都是公共和免费的
  • 出站请求限制 -强制执行每台服务器和全局并发限制

贡献

欢迎投稿!感兴趣的领域:

  • SSH支持不支持telnet的服务器
  • 其他公共路由服务器
  • 性能优化
  • 其他BGP查询类型
  • 更好的错误处理和诊断

许可证

麻省理工学院

关于BGP和窥镜

BGP(边界网关协议) 是互联网的路由协议。它允许自治系统(网络)交换路由信息。

镜子 是一种公开BGP说话者路由表并允许查询的服务。它们在以下方面具有不可估量的价值:

  • 解决路由问题
  • 验证前缀公告
  • 监控BGP会话运行状况
  • 网络运营和可见性

了解更多:

支持

如果您遇到问题或有建议,请在GitHub上打开问题或查看上面的故障排除部分。

目录标签

目录标签

PythonClaude云端部署BGP查询本地部署网络诊断路由分析IP追踪MCP服务器

支持客户端

Claude DesktopClaude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

7

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP