MCP 服务器

Packetrove

io.github.euyuil/packetrove
云与基础设施 安全 公开且可连接 MCP 2025-11-25

此 MCP 可以做什么

Performs IP and CIDR calculations for network ranges, firewall rules, allowlists, blocklists, and public IP lookup.

cidr-cover
Smallest Covering CIDR
Use when combining a selected group of firewall allowlist or blocklist entries into one smallest covering CIDR, or when checking the exact extra coverage. Accept 1 to 1,000 IP addresses or CIDRs from one address family, up to 64 characters each; normalize host bits and count overlaps once. Return the canonical CIDR, inclusive range, and exact decimal-string counts, including additionalAddressCount. The range may allow or block additional addresses. This computes one CIDR for the supplied inputs; it does not optimize an entire list against an entry limit or change firewall rules. Remote MCP calls submit inputs to this server; the calculation makes no outbound network requests. Operational events record the tool name, success or error, and a controlled error code; they exclude inputs and results. Cloudflare may attach platform metadata. Privacy policy: https://packetrove.com/privacy.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['inputs'], 'properties': {'inputs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000, 'minItems': 1, 'description': 'IP addresses or CIDRs from one address family. Surrounding whitespace is ignored during parsing; CIDRs with host bits are normalized.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['family', 'normalizedInputs', 'cidr', 'range', 'inputAddressCount', 'coveredAddressCount', 'additionalAddressCount'], 'properties': {'cidr': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'The smallest single canonical CIDR containing every input address.'}, 'range': {'type': 'object', 'required': ['first', 'last'], 'properties': {'last': {'type': 'string', 'minLength': 1}, 'first': {'type': 'string', 'minLength': 1}}, 'additionalProperties': False}, 'family': {'enum': ['ipv4', 'ipv6'], 'type': 'string'}, 'normalizedInputs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000, 'minItems': 1, 'description': 'Canonical CIDRs in input order. Individual addresses become /32 or /128. Duplicates are retained here.'}, 'inputAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Number of distinct addresses in the union of the inputs.'}, 'coveredAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Number of all addresses in the resulting CIDR.'}, 'additionalAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Covered address count minus input address count.'}}, 'additionalProperties': False}
cidr-subtract
CIDR Subtraction
Use to prepare WireGuard AllowedIPs exceptions or calculate remaining address space relative to supplied include and exclude lists. Compute union(include) minus union(exclude) as a minimal sorted canonical CIDR list, without adding addresses. Use one address family, a nonempty include list, and at most 1000 entries across both lists, up to 64 characters each. Exclude may be empty. Normalize host bits and count overlaps once. Return cidrs, normalizedInclude, normalizedExclude, and exact decimal-string includedAddressCount, removedAddressCount, remainingAddressCount. Complete removal returns an empty list; more than 10000 output CIDRs returns an error without a partial result. Error issues identify include or exclude and the zero-based entry index. Remote calls submit inputs to this server; the browser calculates locally. This does not inspect live allocation, configure WireGuard, or change firewall rules. Operational events record the tool name, success or error, and a controlled error code; they exclude inputs and results. Cloudflare may attach platform metadata. Privacy policy: https://packetrove.com/privacy.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['include', 'exclude'], 'properties': {'exclude': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000, 'description': 'Ranges to remove from the included address space. An empty array simplifies the exact include union.'}, 'include': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000, 'minItems': 1, 'description': 'The nonempty included address space. Use at most 1,000 entries across include and exclude, from one address family.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['family', 'normalizedInclude', 'normalizedExclude', 'cidrs', 'includedAddressCount', 'removedAddressCount', 'remainingAddressCount'], 'properties': {'cidrs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 10000}, 'family': {'enum': ['ipv4', 'ipv6'], 'type': 'string'}, 'normalizedExclude': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000}, 'normalizedInclude': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 1000, 'minItems': 1}, 'removedAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Exact number of addresses as a base-10 string, including network and broadcast addresses.'}, 'includedAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Exact number of addresses as a base-10 string, including network and broadcast addresses.'}, 'remainingAddressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Exact number of addresses as a base-10 string, including network and broadcast addresses.'}}, 'additionalProperties': False}
public-ip
Current Public IP
Use to inspect the public IPv4 or IPv6 address observed for the connection making this MCP tool call. Takes an empty object and returns ip and family. This is the MCP client connection: a hosted AI client may observe its own exit address, not the user device address. If the user needs their browser or computer connection, direct them to the web tool or a CLI running on that machine. A VPN or proxy changes the observed path. One call observes one address family; it does not discover private local addresses, an address before a proxy, or both address families. The application does not store or log results, and no firewall rules are changed. Cloudflare Worker subrequests can have platform-specific address semantics; the result is not an identity proof. Operational events record the tool name, success or error, and a controlled error code; they exclude inputs and results. Cloudflare may attach platform metadata. Privacy policy: https://packetrove.com/privacy.
只读 可访问外部资源 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'properties': {}, 'additionalProperties': False}
输出模式
{'type': 'object', 'oneOf': [{'type': 'object', 'required': ['family', 'ip'], 'properties': {'ip': {'type': 'string', 'format': 'ipv4', 'pattern': '^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$'}, 'family': {'type': 'string', 'const': 'ipv4'}}, 'additionalProperties': False}, {'type': 'object', 'required': ['family', 'ip'], 'properties': {'ip': {'type': 'string', 'format': 'ipv6', 'pattern': '^(([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$'}, 'family': {'type': 'string', 'const': 'ipv6'}}, 'additionalProperties': False}], '$schema': 'https://json-schema.org/draft/2020-12/schema', 'description': 'The IP address observed for this request. A VPN, proxy, or hosted client can change whose exit address is observed. One request observes one address family.'}
range-to-cidrs
IP Range to CIDRs
Use to prepare an exact CIDR allowlist from one inclusive start/end IPv4 or IPv6 range. Pass start and end IP addresses of the same family, without CIDR prefixes, at most 64 characters each; end must be at or after start. Return canonical range.first and range.last, minimal sorted cidrs, cidrCount, and exact decimal-string addressCount, without adding addresses. Equal endpoints return one /32 or /128; complete address spaces return /0. Invalid inputs identify the start or end field; reversed endpoints are never swapped. Browser calculations stay local; remote MCP calls submit endpoints to this server. This does not inspect live address usage, modify firewall rules, or export vendor-specific ACLs. Operational events record the tool name, success or error, and a controlled error code; they exclude inputs and results. Cloudflare may attach platform metadata. Privacy policy: https://packetrove.com/privacy.
只读 幂等
输入模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['start', 'end'], 'properties': {'end': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Inclusive end IP address, in the same family and at or after start. Endpoints are never silently swapped.'}, 'start': {'type': 'string', 'maxLength': 64, 'minLength': 1, 'description': 'Inclusive start IP address. Use IPv4 or IPv6 without a CIDR prefix; surrounding whitespace is ignored.'}}, 'additionalProperties': False}
输出模式
{'type': 'object', '$schema': 'https://json-schema.org/draft/2020-12/schema', 'required': ['family', 'range', 'cidrs', 'cidrCount', 'addressCount'], 'properties': {'cidrs': {'type': 'array', 'items': {'type': 'string', 'maxLength': 64, 'minLength': 1}, 'maxItems': 254, 'minItems': 1, 'description': 'Complete minimal CIDR list, sorted by network address, with no gaps, overlaps, or additional addresses.'}, 'range': {'type': 'object', 'required': ['first', 'last'], 'properties': {'last': {'type': 'string'}, 'first': {'type': 'string'}}, 'description': 'Canonical inclusive start and end IP addresses.', 'additionalProperties': False}, 'family': {'enum': ['ipv4', 'ipv6'], 'type': 'string'}, 'cidrCount': {'type': 'integer', 'maximum': 254, 'minimum': 1}, 'addressCount': {'type': 'string', 'pattern': '^(0|[1-9][0-9]*)$', 'description': 'Exact number of addresses as a base-10 string, including network and broadcast addresses.'}}, 'additionalProperties': False}
已添加
public-ip
2026年10月4日 02:40
已添加
range-to-cidrs
2026年10月4日 02:40
已添加
cidr-subtract
2026年10月4日 02:40
已添加
cidr-cover
2026年10月4日 02:40