IP地址管理服务器

phpIPAM MCP Server是一款专业的IP地址管理和网络基础设施自动化工具,通过AI助手实现自然语言交互。

  • by 0xEkho
  • Python
  • 本地部署
  • 2 星标
  • 更新于
在 GitHub 查看 0xEkho/phpIPAM-MCP

使用说明

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设置

  1. 以管理员身份登录phpIPAM
  2. 导航到 行政 → phpIPAM设置 → API
  3. 点击 创建API应用程序
  4. 配置:
    • 应用程序ID: mcp-server (或你的选择)
    • 应用程序权限:根据需要读/写
    • 应用程序安全: SSL with App code token
  5. 保存并复制 应用程序代码 令牌

来源

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 -查找下一个可用IP
  • phpipam.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 -列出所有VLAN
  • phpipam.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验证:默认启用

🤝 贡献

欢迎投稿!拜托:

  1. 分叉存储库
  2. 创建要素分支
  3. 进行更改
  4. 如果适用,添加测试
  5. 提交拉取请求

📄 许可证

此项目根据MIT许可证获得许可-请参阅 许可证 文件以获取详细信息。

🙏 致谢

📞 支持


由以下材料制成❤️ 用于网络自动化和人工智能辅助的IPAM操作