mcp-server-ntopng

mcp-server-ntopng

site icon
2025.03.22 0
Python网络监控数据分析位置服务
mcp-server-ntopng 是一个基于 Model Context Protocol (MCP) 的服务器实现,专门用于与 NTOPNG 网络监控工具集成。它允许 AI 代理通过查询 NTOPNG 数据库来获取网络监控数据。该服务假设 NTOPNG 使用 ClickHouse 存储历史流量和警报数据。
View on GitHub

Overview

基本能力

产品定位

mcp-server-ntopng 是一个网络监控数据查询服务,通过 MCP 协议为 AI 代理提供访问 NTOPNG 数据库的能力。

核心功能

  • 提供多种工具查询 NTOPNG 数据库中的网络监控数据
  • 支持获取接口 ID、主机地理位置、流量统计、警报统计等信息
  • 支持查询详细的流量数据和数据库表结构

适用场景

  • 网络监控数据分析
  • 网络安全事件调查
  • 网络性能优化
  • 流量模式分析

工具列表及能力

  1. fetch_ntopng_all_ifids - 获取所有可用的接口 ID
  2. get_ntopng_hosts_location - 获取主机的物理位置和附加信息
  3. fetch_ntopng_top_local_talkers - 获取指定接口的前 10 个本地通信主机
  4. fetch_ntopng_top_remote_talkers - 获取指定接口的前 10 个远程通信主机
  5. 各种警报统计工具(主机、接口、MAC、网络等)
  6. query_ntopng_flows_data - 从 NTOPNG 流量数据库获取详细流量数据
  7. list_tables_ntopng_database - 列出 NTOPNG 数据库的表结构
  8. query_ntopng_database - 查询 NTOPNG Clickhouse 数据库

常见问题解答

  • 需要确保 NTOPNG 使用 ClickHouse 存储数据
  • 需要正确配置环境变量连接数据库
  • 支持 TLS 连接但默认禁用
  • 连接超时默认为 30 秒,可调整

使用教程

使用依赖

  1. 需要安装 Python 环境
  2. 需要安装 uv 工具:pip install uv

安装教程

  1. 设置环境变量(在 .env 文件或配置文件中):
NTOPNG_HOST=localhost
NTOPNG_PORT=9000
NTOPNG_USER=default
NTOPNG_PASSWORD=
  1. 安装依赖:uv sync
  2. 激活虚拟环境:source .venv/bin/activate
  3. 安装包:uv pip install -e .

调试方式

  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. 验证数据库连接
  3. 测试各工具功能

许可证

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