IP网络MCP客户端示例
Python示例演示如何使用 IP网络监视器 用于网络监控自动化的MCP(模型上下文协议)API。
概述
IP网络监视器 是一个全面的网络监控解决方案,为监控配置和数据的编程访问提供了MCP API。此存储库包含示例脚本,显示如何:
- 连接到IPNetwork MCP服务器
- 创建和管理主机和主机组
- 配置各种监视器类型(Ping、HTTP、SNMP等)
- 设置警报规则和通知
- 查询监视器状态和统计信息
先决条件
- Python 3.10或更高版本
- 启用MCP的IP网络监视器
- MCP身份验证令牌(用于配置更改的读写)
安装
- 克隆此存储库:
git clone https://github.com/IPNetwork-Monitor-LLC/ipnetwork-mcp-examples.git
cd ipnetwork-mcp-examples- 创建虚拟环境(推荐):
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate- 安装依赖项:
pip install -r requirements.txt配置
在运行示例之前设置以下环境变量:
| 变量 | 描述 | 示例 |
|---|---|---|
MCP_URL | IP网络MCP端点的URL | https://your-server:8888/mcp |
MCP_TOKEN | 身份验证令牌(来自IPNetwork MCP设置) | 7954AAA9-B736-4FD7-B10D-255C0FDF030D |
Linux/macOS
export MCP_URL="https://your-ipnetwork-server:8888/mcp"
export MCP_TOKEN="your-token-here"Windows(命令提示符)
set MCP_URL=https://your-ipnetwork-server:8888/mcp
set MCP_TOKEN=your-token-hereWindows(PowerShell)
$env:MCP_URL = "https://your-ipnetwork-server:8888/mcp"
$env:MCP_TOKEN = "your-token-here"项目结构
ipnetwork-mcp-examples/
├── README.md # This file
├── requirements.txt # Python dependencies
├── LICENSE # MIT License
├── .gitignore # Git ignore rules
├── src/
│ ├── __init__.py
│ └── mcp_client.py # Reusable MCP client wrapper
└── examples/
├── 01_basic_connection.py # Basic connection example
├── 02_create_host.py # Create hosts and monitors
├── 03_alerting_setup.py # Configure alerting
├── 04_monitor_state.py # Query monitor states
├── 05_bulk_operations.py # Bulk configuration example
└── 06_check_monitor_status.py # Check specific monitor status例子
快速开始
运行基本连接示例以验证您的设置:
python examples/01_basic_connection.py示例说明
| 示例 | 说明 |
|---|---|
01_basic_connection.py | 连接到MCP服务器并列出可用代理 |
02_create_host.py | 创建具有Ping和HTTP监视器的主机 |
03_alerting_setup.py | 设置电子邮件警报和警报规则 |
04_monitor_state.py | 查询当前状态和历史数据 |
05_bulk_operations.py | 从列表批量创建多个主机 |
06_check_monitor_status.py | 按名称、限定名或ID检查特定监视器的状态 |
SSL/TLS证书
默认情况下,IPNetwork Monitor使用自签名证书。这些示例包括禁用测试证书验证的选项。 用于生产用途,您应该:
- 在IPNetwork Monitor服务器上安装有效的SSL证书
- 将自签名证书添加到系统的受信任存储中
要禁用证书验证(仅限测试):
from src.mcp_client import IPNetworkMCPClient
async with IPNetworkMCPClient(url, token, verify_ssl=False) as client:
# Your code hereAPI 参考
有关API的完整文档,请参阅:
常见操作
列出代理
agents = await client.call_tool("list-agents")创建主机
host = await client.call_tool("create-host", {
"parentId": hostgroup_id,
"name": "My Server",
"config": {
"hostDef": {"ip": "192.168.1.100"}
}
})创建监视器
monitor = await client.call_tool("create-monitor", {
"parentType": "host",
"parentId": host_id,
"name": "HTTPS Check",
"type": "http",
"config": {
"URL": "https://example.com/health"
}
})获取监视器状态
state = await client.call_tool("monitor-state", {
"type": "current",
"id": monitor_id
})检查特定监视器状态
按ID、名称或限定名查找监视器并显示其当前状态:
# By monitor ID
python examples/06_check_monitor_status.py 27
# By monitor name (case-insensitive search across all agents)
python examples/06_check_monitor_status.py "HTTP(S)"
# By qualified name: " on "
python examples/06_check_monitor_status.py "Ping Check on Test Host"当使用纯监视器名称时,如果多个监视器共享同一名称 对于不同的主机,脚本会列出所有匹配项,并要求您使用 特定ID或限定名称。限定名格式 " on " 通过将搜索限制在 指定的主机。
退出代码: 0 =好, 1 =警告或未找到, 2 =下降。
错误处理
所有示例都包括正确的错误处理。MCP客户端包装器提供结构化错误响应:
try:
result = await client.call_tool("get-host", {"id": 999})
except MCPError as e:
print(f"MCP Error: {e.message}")贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支(
git checkout -b feature/my-feature) - 提交您的更改(
git commit -am 'Add new feature') - 推到分支(
git push origin feature/my-feature) - 打开拉取请求
支持
- 产品网站: https://ipnetwork-monitor.com/
- 问题:使用 用于错误报告和功能请求
许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
致谢
- IP网络监视器 -网络监控解决方案
- MCP(模型上下文协议) -协议规范
