phpIPAM MCP 服务器
    
为phpIPAM IP地址管理和网络基础设施提供模型上下文协议服务器。
安装
先决条件
- Python 3.10+
- 具有API访问权限的phpIPAM实例
- 在phpIPAM中配置的应用程序,采用“带有应用程序代码令牌的SSL”安全方式
从 PyPI(发布时)
pip install phpipam-mcp-server来自源(或“来源”)
git clone https://github.com/InfraMCP/phpipam-mcp-server.git
cd phpipam-mcp-server
pip install -e .开发安装
pip install -e ".[dev]"使用方法
作为MCP服务器
在您的MCP客户端配置中添加:
{
"mcpServers": {
"phpipam": {
"command": "phpipam-mcp-server",
"env": {
"PHPIPAM_URL": "https://ipam.example.com/",
"PHPIPAM_APP_ID": "your_app_id",
"PHPIPAM_APP_CODE": "your_app_code_token"
}
}
}
}可用工具
list_sections(include_fields="")
列出phpIPAM中的所有IP段。
include_fields用逗号分隔的字段或“all”表示全部数据
get_section_subnets(section_id, include_usage=True, include_fields="", limit=20)
获取特定部分内的子网。
section_id要查询的段落IDinclude_usage包含使用统计信息(默认:True)include_fields字段过滤选项limit返回的最大结果数(默认:20,最大:100)
search_addresses(ip_or_hostname, limit=10)
搜索IP地址或主机名。
ip_or_hostname要搜索的IP地址或主机名limit要返回的最大结果数(默认:10,最大:50)
get_subnet_details(subnet_id, include_addresses=False, address_limit=10)
获取详细的子网信息。
subnet_id要查询的子网IDinclude_addresses在子网中包含IP地址(默认:False)address_limit显示的最大地址数(默认:10,最大:50)
list_vlans(domain_id=None, limit=20)
从phpIPAM中列出VLAN。
domain_id可选的域ID过滤器limit返回的最大结果数(默认:20,最大:100)
list_vrfs(limit=20)
从phpIPAM中列出VRF实例。
limit返回的最大结果数(默认:20,最大:100)
list_locations(limit=20)
列出网络基础设施的物理位置。
limit要返回的最大结果数(默认:20,最大:100)
list_nameservers(limit=20)
列出带有配置详情的DNS名称服务器。
limit返回的最大结果数(默认:20,最大:100)
search_subnets(query, limit=10)
通过CIDR、描述或其他标准搜索子网。
query搜索词(CIDR、描述等)limit返回的最大结果数(默认:10,最大:50)
写入操作
create_subnet(section_id, subnet, mask, *, description="", vlan_id=None)
在phpIPAM中创建一个新的子网。
section_id将创建子网的区段IDsubnet网络地址(例如,“192.168.1.0”)mask子网掩码(例如,“24”)description子网的可选描述vlan_id可选的VLAN ID
reserve_ip_address(subnet_id, ip=None, hostname="", description="", owner="")
在子网中预留一个IP地址。
subnet_id将保留IP的子网IDip要保留的特定IP地址(可选 - 将自动查找第一个可用地址)hostnameIP地址的主机名descriptionIP地址的描述ownerIP地址的所有者
update_ip_address(address_id, hostname=None, description=None, owner=None)
更新现有的IP地址记录。
address_id要更新的IP地址的IDhostname新的主机名(可选)description新描述(可选)owner新车主(可选)
delete_ip_address(address_id)
删除/释放IP地址预留。
address_id要删除的IP地址的ID
update_subnet(subnet_id, description=None, vlan_id=None, vrf_id=None)
更新现有的子网。
subnet_id要更新的子网的IDdescription新描述(可选)vlan_id新的VLAN ID(可选)vrf_id新的VRF ID(可选)
delete_subnet(subnet_id)
删除一个子网(警告:这将删除子网中的所有IP地址)。
subnet_id要删除的子网的ID
配置
phpIPAM 安装设置
- 在phpIPAM管理界面创建一个API应用程序
- 将安全设置设置为“使用应用程序代码令牌的SSL”
- 记下应用ID和应用代码
- 为应用程序设置适当的权限
认证
此服务器使用静态应用代码令牌进行身份验证:
- 无令牌过期
- 简单配置
- 通过HTTPS安全连接
发展
代码质量
# Run pylint
python -m pylint src/phpipam_mcp_server/
# Run tests (when available)
python -m pytest
# Format code
python -m black src/
python -m isort src/项目结构
src/phpipam_mcp_server/
├── __init__.py # Package initialization
└── server.py # Main MCP server implementationAPI 文档
查看 docs/ 详细API文档的目录:
api-overview.md通用API信息controllers.md- 可用的端点和数据结构examples.md- 请求/响应示例mcp-design.md- MCP服务器设计与架构
许可证
MIT 许可证 - 详情请参阅 LICENSE 文件。
做出贡献
- 为仓库创建分支
- 创建一个特性分支
- 在测试中进行更改
- 运行代码质量检查
- 提交拉取请求
支持
- GitHub Issues(问题跟踪页面): https://github.com/InfraMCP/phpipam-mcp-server/issues
- 文档链接:https://github.com/InfraMCP/phpipam-mcp-server#readme
