返回市场
wireshark-mcp

wireshark-mcp

作者:sarthaksiddha11 星标更新:2025-05-06

项目介绍

Wireshark MCP (模型上下文协议)

MIT 许可证 Python 3.8+

这是一个用于集成Wireshark网络分析能力与AI系统(如Claude)的模型上下文协议(MCP)服务器。此实现提供了直接与Claude集成的功能,无需手动复制粘贴提示。

Wireshark MCP是什么?

Wireshark MCP提供了一种标准化的方式,使AI助手能够通过Wireshark访问和分析网络数据包。它通过实现模型上下文协议,弥合了低级网络数据与高级AI理解之间的差距。

<p align="center"> <img src="https://raw.githubusercontent.com/sarthaksiddha/Wireshark-mcp/main/docs/images/wireshark-mcp-flow.png" alt="Wireshark MCP 流程" width="600"/> </p>

该服务器提供了以下工具:

  1. 捕获实时网络流量
  2. 分析现有的pcap文件
  3. 提取特定协议的信息
  4. 汇总网络流

快速开始

安装

# 克隆仓库
git clone https://github.com/sarthaksiddha/Wireshark-mcp.git
cd Wireshark-mcp

# 安装依赖
pip install -e .

运行MCP服务器

# 使用stdio传输运行(适用于Claude桌面)
python mcp_server.py --stdio

# 使用SSE传输运行(适用于其他MCP客户端)
python mcp_server.py --host 127.0.0.1 --port 5000

配置Claude桌面

要配置Claude桌面以使用Wireshark MCP服务器:

  1. 打开Claude桌面
  2. 前往设置 > 开发者 > 编辑配置
  3. 添加以下配置:
{
  "mcpServers": {
    "wireshark": {
      "command": "python",
      "args": [
        "/path/to/wireshark-mcp/mcp_server.py",
        "--stdio"
      ]
    }
  }
}

/path/to/wireshark-mcp替换为实际的仓库路径。

可用工具

Wireshark MCP服务器提供了以下工具:

  • capture_live_traffic:使用tshark捕获实时网络流量
  • analyze_pcap:分析现有的pcap文件
  • get_protocol_list:获取支持的协议列表

在Claude中的示例用法

一旦配置完成,您可以在Claude中使用Wireshark MCP服务器进行如下查询:

  • "捕获我系统上30秒的网络流量并展示发生了什么"
  • "分析我的network.pcap文件并告诉我是否有可疑活动"
  • "在分析网络流量时我可以关注哪些协议?"

主要特性

  • 数据包汇总:将大型pcap文件转换为优化的摘要
  • 协议智能:增强常见协议(如HTTP、DNS、TLS、SMTP等)的上下文
  • 流跟踪:将相关数据包分组为对话流
  • 异常突出显示:强调不寻常或可疑的模式
  • 查询模板:预构建的常见网络分析任务提示
  • 可视化生成:创建基于文本的网络模式表示
  • 多级抽象:从原始字节到高级行为的数据视图
  • Web界面:基于浏览器的UI,便于分析和可视化
  • 代理到代理(A2A)集成:将数据包分析作为兼容A2A的代理暴露
  • 高级安全框架:全面的数据保护和通信安全控制
  • IP地址保护:多种策略来匿名化敏感网络地址
  • 安全通信:强大的消息签名,确保代理间的安全通信
  • 跨平台:在Windows、macOS和Linux上运行

文档

基本用法

from wireshark_mcp import WiresharkMCP, Protocol
from wireshark_mcp.formatters import ClaudeFormatter

# 使用pcap文件初始化
mcp = WiresharkMCP("capture.pcap")

# 生成基本的数据包摘要
context = mcp.generate_context(
    max_packets=100,
    focus_protocols=[Protocol.HTTP, Protocol.DNS],
    include_statistics=True
)

# 为Claude格式化
formatter = ClaudeFormatter()
claude_prompt = formatter.format_context(
    context,
    query="在这个HTTP流量中你看到了哪些不寻常的模式?"
)

# 保存到文件以便在Claude中使用
with open("claude_prompt.md", "w") as f:
    f.write(claude_prompt)

与Claude结合使用

有三种主要方式可以将Wireshark MCP与Claude结合使用:

1. 直接MCP集成(新)

为了无缝地与Claude桌面集成:

# 使用stdio传输运行MCP服务器
python mcp_server.py --stdio

然后按照“配置Claude桌面”部分所述配置Claude桌面。这种方法提供了直接集成,无需任何复制粘贴。

2. 简单脚本方法

对于快速分析而无需复杂设置(需要复制粘贴):

python scripts/simple_pcap_analysis.py path/to/your/capture.pcap

这会生成一个markdown文件,您可以将其复制并粘贴到Claude.ai

3. API集成

为了与Claude的API进行程序化集成:

from claude_client import ClaudeClient  # 您的实现
from wireshark_mcp import WiresharkMCP
from wireshark_mcp.formatters import ClaudeFormatter

# 处理PCAP文件
mcp = WiresharkMCP("capture.pcap")
context = mcp.generate_context()

# 为Claude格式化
formatter = ClaudeFormatter()
prompt = formatter.format_context(context, query="分析这个网络流量")

# 发送到Claude API
client = ClaudeClient(api_key="your_api_key")
response = client.analyze(prompt)

参见Claude集成指南获取详细的API指令。

要求

  • Python 3.8+
  • 已安装并添加到PATH中的Wireshark/tshark
  • fastmcp Python包

贡献

欢迎贡献!特别需要帮助的地方包括:

  • 额外的协议分析器
  • 性能优化
  • 文档和示例
  • 使用多样化的数据包捕获进行测试
  • Web界面改进

详情请参阅CONTRIBUTING.md

许可证

该项目采用MIT许可证 - 详情请参阅LICENSE文件。 </中文翻译>