子网计算服务

一个基于Model Context Protocol的服务,提供IPv4子网规划工具,包括子网大小计算、通配符掩码生成、网关选择和主机验证等功能。

  • by sanjayshreeyans
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 sanjayshreeyans/subnet-calculator-mcp

使用说明

子网计算器MCP服务器

subnet-calculator-mcp 生产准备好了吗 模型上下文协议 该服务器为LLM驱动的助手提供可靠的IPv4子网规划实用程序。它通过提供快速、经过良好测试的子网大小、通配符掩码生成、网关选择和主机验证工具,消除了繁琐的手动计算。

为什么要使用此服务器?

  • 🔢 将主机要求转换为准确的子网掩码和CIDR前缀
  • 🌐 生成思科友好的OSPF通配符掩码和网络语句
  • ✅ 验证IP是否属于子网,包括网关提示和地址位置
  • 🔄 从虚线掩码反向计算或立即找到第N个可用地址
  • ⚙️ 基于官方Python MCP SDK构建,具有全面的类型提示、验证和测试

安装并运行

该包发布在PyPI上: https://pypi.org/project/subnet-calculator-mcp/

使用pip安装

pip install subnet-calculator-mcp
python -m subnet_calculator_mcp.server

立即运行(无需安装)

uvx subnet-calculator-mcp

作为可重用的CLI安装

uv tool install subnet-calculator-mcp
# later
subnet-calculator-mcp

客户端配置

克劳德桌面/克劳德Windows版

将服务器添加到 claude_desktop_config.json.

macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

窗户: %APPDATA%\Claude\claude_desktop_config.json

{
  "mcpServers": {
    "subnet-calculator": {
      "command": "uvx",
      "args": ["subnet-calculator-mcp"]
    }
  }
}

如果您是通过安装的 uv tool install 或 pip,将命令更改为 "subnet-calculator-mcp" 并省略 args.

通用的 mcp.json

许多编辑器(Cursor、Windsurf等)使用 mcp.json 文件。添加以下条目:

{
  "subnet-calculator": {
    "command": "uvx",
    "args": ["subnet-calculator-mcp"],
    "env": {}
  }
}

集 command 到 "subnet-calculator-mcp" 如果二进制文件是全局安装的。

工具参考

calculate_subnet

  • 输入: network_base (IPv4地址), hosts_needed (int),可选 return_format ("detailed" 或 "simple").
  • 退货:CIDR前缀、点掩码、通配符掩码、可用范围、广播、二进制表示、总/可用主机计数。
  • 使用它:导出可以承载所请求数量的可用地址的最小子网。

calculate_wildcard_mask

  • 输入: ip_address (子网中的任何IP), cidr_prefix (0–32),可选 include_ospf_command (布尔)。
  • 退货:网络地址、掩码、通配符掩码、二进制通配符字符串和可选 network ... area 0 声明。
  • 使用它:创建依赖通配符掩码的OSPF配置或ACL。

validate_ip_in_subnet

  • 输入: ip_address, network (CIDR字符串),可选 return_gateway (布尔)。
  • 退货:成员标志、掩码、前缀、网络/广播标志、可用性、可能的网关、位置索引和剩余可用地址。
  • 使用它:快速验证分配并识别第一跳路由器地址。

calculate_subnet_from_mask

  • 输入: ip_address, subnet_mask (小数点)。
  • 退货:网络边界、前缀、通配符掩码、可用范围、广播和主机计数。
  • 使用它:分析提供虚线掩码而不是CIDR表示法的遗留配置。

get_nth_usable_ip

  • 输入: network (CIDR字符串), position (基于1的指数)。
  • 退货:该位置的IP地址、是否最后可用、可用主机总数和相关网络地址。
  • 使用它:分配确定性主机位置(第一服务器、第二路由器等)。

调用示例:

{
  "tool": "calculate_subnet",
  "arguments": {
    "network_base": "172.16.0.16",
    "hosts_needed": 14
  }
}

开发工作流程

git clone https://github.com/sanjayshreeyans/subnet-calculator-mcp.git
cd subnet-calculator-mcp

# Install dependencies (dev group includes pytest, mypy, ruff, black)
uv sync --group dev

# Run the automated test suite
uv run pytest

# Type-check, lint, and format
uv run mypy src
uv run ruff check src tests
uv run black --check src tests

# Build distribution artifacts
uv build

许可证

MIT许可证——见 LICENSE 了解详情。