mcpField
S
Sharkmcp

Sharkmcp

本地服务
github.com/kriztalz安全3572 周前更新

关于 Sharkmcp

Sharkmcp 是基于 Wireshark/tshark 的抓包与分析 MCP 服务,面向调查网络流量的 AI 助手。它既可管理实时抓包,也能分析现有 PCAP 文件。

主要功能

  1. 01启动带过滤条件的后台抓包
  2. 02分析现有 PCAP 文件
  3. 03输出 JSON、字段或文本
  4. 04使用密钥日志解密 TLS
  5. 05保存并复用配置

适用场景

  1. 01调试程序时检查请求流量
  2. 02筛选并检查 TLS 握手
  3. 03查看先前捕获的网络流量

MCP 相关

向 MCP 客户端提供启动和停止抓包、分析 PCAP 文件以及保存或加载配置的工具。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

SharkMCP - 网络数据包分析 MCP 服务

一个通过集成 Wireshark/tshark 提供网络数据包捕获与分析能力的 Model Context Protocol (MCP) 服务。专为 AI 助手执行网络安全分析、故障排查和数据包检查而设计。

此服务旨在适用于你希望让 Agent 调试发送请求的程序并验证数据包流量的场景,支持以下工作流:

  • 开始录制数据包
  • 运行工具或执行请求
  • 停止录制并分析结果

架构

SharkMCP 提供了一种简单的、专注于本地开发的架构:

┌─────────────────────────────────────────────────────────┐
│                    SharkMCP Server                      │
├─────────────────────────────────────────────────────────┤
│  MCP Protocol Layer                                     │
│  ├─ start_capture_session                               │
│  ├─ stop_capture_session                                │
│  ├─ analyze_pcap_file                                   │
│  └─ manage_config                                       │
├─────────────────────────────────────────────────────────┤
│  tshark Integration Layer                               │
│  ├─ Cross-platform executable detection                 │
│  ├─ Process management                                  │
│  └─ Output parsing (JSON/fields/text)                   │
├─────────────────────────────────────────────────────────┤
│  Host System Integration                                │
│  ├─ Local tshark installation                           │
│  ├─ Direct network interface access                     │
│  └─ Native file system operations                       │
└─────────────────────────────────────────────────────────┘

功能特性

  • 异步数据包捕获:以可配置的过滤器和超时启动后台捕获会话。
  • PCAP 文件分析:分析现有的数据包捕获文件
  • 灵活的输出格式:JSON、自定义字段或传统文本输出
  • SSL/TLS 解密:支持使用 SSL keylog 文件解密 HTTPS 流量
  • 可复用配置:保存并复用捕获/分析配置

/!\ 数据包信息可能非常庞大。请确保使用限定范围的显示过滤器,以免超出对话上下文容量。

前置条件

系统要求
  • Wireshark/tshark:必须已安装且可访问
  • Node.js:版本 18+
  • pnpm:包管理器(推荐)
安装 Wireshark/tshark

macOS(使用 Homebrew):

brew install wireshark

Ubuntu/Debian:

sudo apt update
sudo apt install tshark wireshark-common

Windows: 从 wireshark.org 下载

安装

  1. 克隆仓库:
git clone https://github.com/kriztalz/SharkMCP.git
cd SharkMCP
  1. 安装依赖:
pnpm install
  1. 构建项目:
pnpm run build
  1. 运行服务:
pnpm start

测试

SharkMCP 包含全面的集成测试,用于验证数据包捕获功能。

运行测试
# Run all tests
pnpm test

配置

MCP 客户端设置
{
  "mcpServers": {
    "sharkmcp": {
      "command": "node",
      "args": ["/path/to/SharkMCP/dist/index.js"],
    }
  }
}
SSL/TLS 解密(可选)

要解密 HTTPS 流量,请导出 SSLKEYLOGFILE 环境变量:

export SSLKEYLOGFILE=/path/to/sslkeylog.log

然后配置你的应用程序将 SSL 密钥记录到此文件。设置该环境变量后,许多应用程序会自动支持此功能。

然后将日志文件路径传递给 MCP 服务中的 stop_capture_session 工具。

使用方法

可用工具
  1. start_capture_session:启动后台数据包捕获
  2. stop_capture_session:停止捕获并分析结果
  3. analyze_pcap_file:分析现有的 PCAP 文件
  4. manage_config:保存/加载可复用配置
基本示例

启动捕获会话:

Interface: en0
Capture Filter: port 443
Timeout: 30 seconds

分析捕获的流量:

Display Filter: tls.handshake.type == 1
Output Format: json

保存配置:

{
  "name": "https-monitoring",
  "description": "Monitor HTTPS traffic",
  "captureFilter": "port 443",
  "displayFilter": "tls.handshake.type == 1",
  "outputFormat": "json",
  "timeout": 60,
  "interface": "en0"
}

开发

项目结构
SharkMCP/
├── src/
│   ├── index.ts              # Main server setup
│   ├── types.ts              # TypeScript interfaces
│   ├── utils.ts              # Utility functions
│   └── tools/                # Individual tool implementations
│       ├── start-capture-session.ts
│       ├── stop-capture-session.ts
│       ├── analyze-pcap-file.ts
│       └── manage-config.ts
├── test/                     # Test files
│   └── integration.test.js   # Integration tests
├── package.json
└── README.md
开发命令
# Development mode with auto-reload
pnpm run dev

# Build for production
pnpm run build

# Run tests
pnpm run test

# Type checking
pnpm run build

安全注意事项

  • 网络权限:数据包捕获需要提升权限
  • 文件访问:临时文件创建在 /tmp/ 目录中
  • Docker 安全:容器以非 root 用户运行
  • SSL Keylog:敏感的 SSL 密钥应安全处理

故障排查

常见问题

"tshark not found":

  • 确保已安装 Wireshark 且 tshark 在 PATH 中
  • 使用以下命令检查安装:tshark -v

数据包捕获权限被拒绝:

  • 在 Linux 上:将用户添加到 wireshark 组或以 sudo 运行
  • 在 macOS 上:在系统偏好设置中授予终端网络访问权限
  • 在 Windows 上:以管理员身份运行

未捕获到任何数据包:

  • 验证网络接口名称(Linux 上使用 ip link,macOS 上使用 ifconfig)
  • 检查捕获过滤器语法
  • 确保接口上有流量

贡献(非常欢迎!)

  1. Fork 仓库
  2. 创建功能分支
  3. 遵循现有代码风格进行修改
  4. 为新功能添加测试
  5. 提交 pull request

许可证

MIT License

问题 / 建议

如有任何问题或建议,欢迎提交 issue。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。