mcp-server-ntopng

mcp-server-ntopng

site icon
2025.05.09 0
Python网络监控流量分析警报统计位置服务位置服务开发效率
mcp-server-ntopng 是一个基于 Model Context Protocol (MCP) 的服务器实现,专为 NTOPNG 网络流量分析工具设计。它允许 AI 代理通过查询 NTOPNG 数据库来获取网络监控数据。该服务特别适用于需要实时或历史网络流量分析、警报统计和主机位置信息的场景。
View on GitHub

Overview

基本能力

产品定位

mcp-server-ntopng 是一个网络流量分析工具的服务端实现,旨在通过 MCP 协议为 AI 代理提供网络监控数据的查询能力。

核心功能

  • 查询 NTOPNG 数据库中的网络流量数据
  • 获取主机的地理位置信息
  • 检索各种类型的警报统计数据
  • 支持多种网络设备的统计信息查询

适用场景

  • 网络流量监控与分析
  • 网络安全警报统计
  • 主机位置追踪
  • 网络性能优化

工具列表及能力

  1. fetch_ntopng_all_ifids - 获取所有可用的接口 ID
  2. get_ntopng_hosts_location - 获取主机的地理位置信息
  3. fetch_ntopng_top_local_talkers - 获取指定接口的本地通信量前十的主机
  4. fetch_ntopng_top_remote_talkers - 获取指定接口的远程通信量前十的主机
  5. 多种警报统计工具 - 获取各种类型的警报统计数据
  6. query_ntopng_flows_data - 查询详细的流量数据
  7. list_tables_ntopng_database - 列出 NTOPNG 数据库的表结构
  8. query_ntopng_database - 直接查询 NTOPNG Clickhouse 数据库

常见问题解答

  • 需要确保 NTOPNG 使用 ClickHouse 存储历史流量和警报数据
  • 需要正确配置环境变量以连接数据库
  • 可能需要调整超时设置以处理长时间运行的查询

使用教程

使用依赖

  1. 确保已安装 NTOPNG 并配置使用 ClickHouse
  2. 安装 uv 工具:
# 安装 uv 工具
# 参考 https://docs.astral.sh/uv/

安装教程

  1. 克隆或下载项目
  2. 安装依赖:
uv sync
uv pip install -e .
  1. 配置环境变量(在 .env 文件中或直接设置):
NTOPNG_HOST=localhost
NTOPNG_PORT=9000
NTOPNG_USER=default
NTOPNG_PASSWORD=

调试方式

  1. 启动开发服务器:
cd mcp_ntopng
source .env
CLIENT_PORT=8077 SERVER_PORT=8078 mcp dev run_mcp_ntopng.py --with clickhouse-driver --with python-dotenv --with uvicorn --with pip-system-certs
  1. 检查日志输出以确认连接状态
  2. 使用提供的工具进行测试查询

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。