使用说明
phpIPAM MCP服务器
phpIPAM的完整模型上下文协议服务器 -通过人工智能助手进行专业的IP地址管理和网络基础设施自动化。
通过与Claude或其他兼容MCP的AI助手进行自然语言对话来管理您的整个IP基础设施。
🌟 特性
- 63综合工具 -完整的phpIPAM API覆盖范围
- 10个核心模块 -节、子网、地址、VLAN、VRF、设备、位置等
- 自然语言接口 -通过AI助手与您的网络互动
- 生产就绪 -Docker部署、健康检查、全面日志记录
- 高级搜索 -按IP、主机名、MAC地址或标签查找资源
- 实时使用情况统计 -监控子网利用率和容量
- 网络规划 -计划分配、查找空闲IP、管理层次结构
📑 目录
🚀 快速开始
Docker部署(推荐)
# Clone repository
git clone https://github.com/0xEkho/phpIPAM-MCP.git
cd phpIPAM-MCP/deploy
# Configure credentials
cp .env.example .env
nano .env # Add your phpIPAM URL and credentials
# Start server
docker-compose up -d
# Verify health
curl http://localhost:8081/healthz
Python安装
# Install
pip install -e .
# Set environment variables
export PHPIPAM_URL="https://ipam.example.com"
export PHPIPAM_APP_ID="mcp-server"
export PHPIPAM_APP_CODE="your_app_code_token"
# Run server
phpipam-mcp-server
📥 安装
先决条件
- Python 3.11+或Docker
- 具有API访问权限的phpIPAM实例
- API应用程序配置了“带应用程序代码令牌的SSL”安全性
phpIPAM API设置
- 以管理员身份登录phpIPAM
- 导航到 行政 → phpIPAM设置 → API
- 点击 创建API应用程序
- 配置:
- 应用程序ID:
mcp-server(或你的选择) - 应用程序权限:根据需要读/写
- 应用程序安全:
SSL with App code token
- 应用程序ID:
- 保存并复制 应用程序代码 令牌
来源
git clone https://github.com/0xEkho/phpIPAM-MCP.git
cd phpIPAM-MCP
pip install -r requirements.txt
pip install -e .
💡 使用示例
浏览以下实用示例 示例/ 目录:
示例:搜索IP
自然语言(与克劳德):
“查找有关IP地址192.168.1.100的所有信息”
MCP工具调用:
{
"tool": "phpipam.addresses.search",
"args": {
"search_term": "192.168.1.100"
}
}
示例:保留IP
自然语言(与克劳德):
“为生产web服务器保留主机名为web-server-01的IP 10.0.1.50”
MCP工具调用:
{
"tool": "phpipam.addresses.create",
"args": {
"subnet_id": "42",
"ip": "10.0.1.50",
"hostname": "web-server-01",
"description": "Production web server",
"owner": "IT Team"
}
}
🛠️ 可用工具
63综合工具
| 模块 | 工具 | 说明 |
|---|---|---|
| 章节 | 6 | 将IP地址空间组织成若干部分 |
| 子网 | 11 | 完整的子网生命周期管理 |
| 地址 | 11 | IP地址分配和跟踪 |
| 虚拟局域网 | 10 | VLAN和L2域管理 |
| 虚拟随机函数 | 7 | 虚拟路由和转发 |
| 设备 | 8 | 网络设备清单 |
| 位置 | 6 | 物理位置跟踪 |
| 域名服务器 | 2 | DNS名称服务器管理 |
| 工具 | 2 | 全球搜索和实用程序 |
关键操作
章节
phpipam.sections.list-列出所有部分phpipam.sections.get-获取部分详细信息phpipam.sections.get_subnets-在节中列出子网phpipam.sections.create/update/delete-管理部门
子网
phpipam.subnets.list-列出所有子网phpipam.subnets.get-获取具有使用情况统计信息的子网phpipam.subnets.search-按CIDR搜索phpipam.subnets.get_first_free-查找下一个可用IPphpipam.subnets.get_slaves-列出子网phpipam.subnets.create/update/delete-管理子网
地址
phpipam.addresses.search-按IP或主机名搜索phpipam.addresses.search_mac-按MAC地址搜索phpipam.addresses.create-保留IP地址phpipam.addresses.update/delete-管理地址phpipam.addresses.ping-平安IP地址phpipam.addresses.tags.*-管理地址标签
虚拟局域网
phpipam.vlans.list-列出所有VLANphpipam.vlans.get_subnets-VLAN中的子网phpipam.vlans.domains.*-管理L2域phpipam.vlans.create/update/delete-管理VLAN
VRF、设备、位置
- 完成每种资源类型的CRUD操作
- 搜索和过滤功能
- 关系跟踪(设备↔ 地址、地点↔ 子网)
看 示例/ 了解每个工具的详细使用方法。
⚙️ 配置
环境变量
# Required
PHPIPAM_URL=https://ipam.example.com
PHPIPAM_APP_ID=mcp-server
PHPIPAM_APP_CODE=your_app_code_token
# Optional
PHPIPAM_VERIFY_SSL=true
PHPIPAM_TIMEOUT=30
LOG_LEVEL=INFO
配置文件
或者,使用 config.yaml:
phpipam:
url: "https://ipam.example.com"
app_id: "mcp-server"
app_code: "your_app_code_token"
verify_ssl: true
timeout: 30
server:
host: "0.0.0.0"
port: 8081
log_level: "INFO"
MCP客户端配置
Claude 桌面版 (~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"phpipam": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "PHPIPAM_URL=https://ipam.example.com",
"-e", "PHPIPAM_APP_ID=mcp-server",
"-e", "PHPIPAM_APP_CODE=your_token",
"phpipam-mcp-server"
]
}
}
}
或者用Python:
{
"mcpServers": {
"phpipam": {
"command": "python",
"args": ["-m", "phpipam_server.main"],
"env": {
"PHPIPAM_URL": "https://ipam.example.com",
"PHPIPAM_APP_ID": "mcp-server",
"PHPIPAM_APP_CODE": "your_token"
}
}
}
}
🐳 部署
完整的部署指南可在 部署/README.md.
Docker Compose
cd deploy
docker-compose up -d
Docker构建
docker build -t phpipam-mcp-server -f deploy/Dockerfile .
docker run -d -p 8081:8081 \
-e PHPIPAM_URL="..." \
-e PHPIPAM_APP_ID="..." \
-e PHPIPAM_APP_CODE="..." \
phpipam-mcp-server
健康检查
curl http://localhost:8081/healthz
🔧 发展
设置开发环境
# Clone and install
git clone https://github.com/0xEkho/phpIPAM-MCP.git
cd phpIPAM-MCP
python -m venv .venv
source .venv/bin/activate # Windows: .venv\Scripts\activate
pip install -r requirements.txt
pip install -e ".[dev]"
运行测试
pytest tests/
pytest --cov=phpipam_server tests/
代码质量
# Format
black phpipam_server/
isort phpipam_server/
# Lint
ruff check phpipam_server/
mypy phpipam_server/
项目结构
phpIPAM-MCP/
├── phpipam_server/ # Main application code
│ ├── main.py # FastAPI server
│ ├── api_client.py # phpIPAM API client
│ ├── config.py # Configuration management
│ ├── tools.py # MCP tools implementation
│ ├── tool_definitions.py # Tool metadata
│ └── modules/ # API modules (10 modules)
├── deploy/ # Docker deployment
│ ├── Dockerfile
│ ├── docker-compose.yml
│ └── README.md
├── examples/ # Usage examples (.md files)
├── tests/ # Test suite
├── requirements.txt # Python dependencies
├── pyproject.toml # Package configuration
└── README.md # This file
🔒 安全
- 认证:基于应用程序代码令牌(静态,无过期)
- 运输:生产需要HTTPS
- 权限:在phpIPAM中配置适当的API权限
- 环境:安全地存储凭据,从不泄露机密
- 码头工人:以非root用户身份运行
- SSL验证:默认启用
🤝 贡献
欢迎投稿!拜托:
- 分叉存储库
- 创建要素分支
- 进行更改
- 如果适用,添加测试
- 提交拉取请求
📄 许可证
此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。
🙏 致谢
- 专为 模型上下文协议 通过Anthropic
- 灵感源自 ALE OmniSwitch MCP
- 基于 phpIPAM API
📞 支持
- 问题: GitHub Issues
- 示例: 使用示例
- 部署: 部署指南
- phpIPAM API: 官方文件
由以下材料制成❤️ 用于网络自动化和人工智能辅助的IPAM操作