关于 mcp-server-ntopng
mcp-server-ntopng 将 ntopng 的网络监控数据通过 MCP 提供给 AI Agent 查询,适用于需要检查流量、主机和告警的场景。它依赖 ClickHouse 保存的历史流量与告警数据。
主要功能
- 01查询接口 ID 与主机位置
- 02查看本地和远程通信方排名
- 03获取各类告警统计
- 04查询详细流量与热门流
- 05检查并查询 ntopng 数据库
适用场景
- 01按接口检查本地或远程通信方
- 02汇总流量、主机或系统告警
- 03查询历史流量记录
- 04查看数据库表结构并执行查询
MCP 相关
该 MCP 服务向 MCP 客户端提供 ntopng 接口、主机、流量、告警和数据库查询工具;不提供资源或提示词。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
mcp-server-ntopng
NTOPNG Model Context Protocol 服务
一个适用于 NTOPNG 的 Model Context Protocol 服务实现,可让 AI Agent 使用 NTOPNG 数据库查询网络监控数据。
此 MCP 服务假定 ntopng 使用 ClickHouse 存储历史流量和告警。查看 ntopng Clickhouse
工具
fetch_ntopng_all_ifids
- 获取 ntopng 中所有可用的接口 ID。
get_ntopng_hosts_location
- 获取主机的地理位置和其他信息。
fetch_ntopng_top_local_talkers
- 获取指定接口中排名前 10 的本地通信方。
fetch_ntopng_top_remote_talkers
- 获取指定接口中排名前 10 的远程通信方。
get_ntopng_all_alert_stats
- 获取所有告警的统计信息。
get_ntopng_flow_alert_stats
- 获取流量告警的统计信息。
get_ntopng_host_alert_stats
- 获取主机告警的统计信息。
get_ntopng_interface_alert_stats
- 获取接口告警的统计信息。
get_ntopng_mac_alert_stats
- 获取 MAC 告警的统计信息。
get_ntopng_network_alert_stats
- 获取网络告警的统计信息。
get_ntopng_snmp_device_alert_list
- 获取 SNMP 设备告警列表。
get_ntopng_snmp_device_alert_stats
- 获取 SNMP 设备告警的统计信息。
get_ntopng_system_alert_stats
- 获取系统告警的统计信息。
query_ntopng_flows_data
- 从 ntopng 流量数据库中获取详细的流量数据。
get_ntopng_top-k_flows
- 从 ntopng 流量数据库中获取排名前 k 的流量数据。
get_ntopng_user_alert_stats
- 获取用户告警的统计信息。
get_ntopng_flow_devices_stats
- 获取所有流量设备的统计信息。
get_ntopng_sflow_devices_stats
- 获取所有 sFlow 设备的统计信息。
list_tables_ntopng_database
- 列出 ntopng 数据库的表结构。
query_ntopng_database
- 查询 ntopng Clickhouse 数据库。
状态
可与 Claude Desktop 应用以及其他符合 MCP 规范的主机和客户端配合使用。
配置
-
创建或编辑位于以下位置的 Claude Desktop 配置文件:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%/Claude/claude_desktop_config.json
- macOS:
-
添加以下内容:
{
"mcpServers": {
"mcp-ntopng": {
"command": "/path/to/your/uv-binary",
"args": ["run", "--with", "mcp-ntopng", "--python", "3.13", "mcp-ntopng"]
"env": {
"NTOPNG_HOST": "<ntopng-host>",
"NTOPNG_DBPORT": "<ntopng-dbport>",
"NTOPNG_DBUSER": "<ntopng-dbuser>",
"NTOPNG_DBPASSWORD": "<ntopng-dbpassword>",
"NTOPNG_SECURE": "true",
"NTOPNG_VERIFY": "true",
"NTOPNG_CONNECT_TIMEOUT": "30",
"NTOPNG_SEND_RECEIVE_TIMEOUT": "300",
"NTOPNG_API_KEY": "NTOPNG_TOKEN"
}
}
}
}
-
将
/path/to/your/uv-binary替换为uv可执行文件的绝对路径。使用which uv查找路径。这样可确保启动服务时使用正确版本的uv。 -
重启 Claude Desktop 以应用更改。
开发
- 在
claude_desktop_config.json文件中设置环境变量,或在仓库根目录下的.env文件中设置。
NTOPNG_HOST=localhost
NTOPNG_PORT=9000
NTOPNG_USER=default
NTOPNG_PASSWORD=
-
运行
uv sync安装依赖项。按照此处的说明安装uv。然后运行source .venv/bin/activate。 -
在项目主目录下运行
uv pip install -e .安装mcp-ntopng包。 -
为了方便测试,可以运行
mcp dev mcp_ntopng/mcp_server.py来启动 MCP 服务。替换为合适的聊天客户端
环境变量
以下环境变量用于配置数据库连接:
NTOPNG_HOST:ntopng服务的主机名NTOPNG_DBUSER:Clickhouse DB 身份验证的用户名NTOPNG_DBPASSWORD:Clickhouse DB 身份验证的密码NTOPNG_API_KEY:ntopng身份验证令牌。
可选
NTOPNG_DBPORT:ntopng服务中 Clickhouse DB 的端口号- 默认值:启用 HTTPS 时为
9000,禁用时为8123 - 通常无需设置,除非使用非标准端口
- 默认值:启用 HTTPS 时为
NTOPNG_SECURE:启用/禁用 TLS 连接- 默认值:
false - 设置为
true可启用安全的 TLS 连接
- 默认值:
NTOPNG_VERIFY:启用/禁用 SSL 证书验证- 默认值:
true - 设置为 `false to disable certificate verification (not recommended for production)
- 默认值:
NTOPNG_CONNECT_TIMEOUT:连接超时时间(秒)- 默认值:`30
- 如果遇到连接超时,请增大此值
NTOPNG_SEND_RECEIVE_TIMEOUT:发送/接收超时时间(秒)- 默认值:
300 - 对于长时间运行的查询,请增大此值
- 默认值:
有关如何设置到 Clickhouse 的 TLS 连接,请参阅
ntopng文档中的 TLS 设置。
开发
在本地计算机上安装此软件包:
$ uv sync
$ uv pip install -e .
运行 MCP Inspector
$ 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
在 Claude Desktop 中使用本地库。
查找: /Users/marco/Library/Application\ Support/Claude/claude_desktop_config.json
编辑 claude_desktop_config.json,修改本地路径:
{
"mcpServers": {
"mcp-ntopng": {
"command": "/Users/marco/Development/claude/mcp-server-ntopng/.venv/bin/python",
"args": [
"/Users/marco/Development/claude/mcp-server-ntopng/run_mcp_ntopng.py"
],
"env": {
"NTOPNG_HOST": "marcoeg-nod004.ntoplink.com",
"NTOPNG_DBPORT": "9000",
"NTOPNG_DBUSER": "default",
"NTOPNG_DBPASSWORD": "",
"NTOPNG_SECURE": "false",
"NTOPNG_VERIFY": "false",
"NTOPNG_CONNECT_TIMEOUT": "30",
"NTOPNG_SEND_RECEIVE_TIMEOUT": "300",
"SELECT_QUERY_TIMEOUT_SECS": "30",
"NTOPNG_API_KEY": "NTOPNG_TOKEN"
}
}
}
}
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。