netip-mcp
Provides public IP detection, edge location, and network information via Cloudflare's trace endpoint, and DNS lookups through Cloudflare's DNS-over-HTTPS resolver.
Provides DNS lookups, reverse DNS, and blocklist checks using Google's DNS-over-HTTPS resolver.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@netip-mcpwhat runs on port 3389 and should it be exposed?"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
netip-mcp
The whatismynetip.com toolbox as tools your coding agent can call. Subnet math, "what runs on this port and should it be open", MAC vendor lookups, DNS and blocklist checks, the certificate a host actually serves, and the IP the internet sees you as.
Free, MIT, no account, no telemetry. The site's own tools run in your browser; this runs the same logic next to your agent.
Install
Pin the version.
Claude Code
claude mcp add netip -- npx -y github:labaccessnow/netip-mcp#v0.1.0Claude Desktop, Cursor, or any client with a JSON config
{
"mcpServers": {
"netip": {
"command": "npx",
"args": ["-y", "github:labaccessnow/netip-mcp#v0.1.0"]
}
}
}Docker
{
"mcpServers": {
"netip": {
"command": "docker",
"args": ["run", "-i", "--rm", "ghcr.io/labaccessnow/netip-mcp:0.1.0"]
}
}
}Node 18 or newer for the npx route. Also in the official MCP registry as io.github.labaccessnow/netip-mcp.
Related MCP server: NetworkCalc MCP Server
Tools
Tool | What it answers | Network |
| Network, mask, wildcard, broadcast, host range and counts for a CIDR — IPv4 and IPv6, /31 and /32 done right | none |
| Is this address inside that block? | none |
| IPv4 as dotted, integer, hex, binary — from any of them | none |
| Expanded and RFC 5952 compressed forms, and what kind of address it is | none |
| Vendor from the full IEEE registry (~40,000 assignments, bundled), plus the multicast and locally-administered bits | none |
| What runs on a port, and whether to expose it — 100 ports written up by hand, searchable by service | none |
| A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, PTR, SRV over DNS-over-HTTPS | DoH |
| PTR for an IPv4 or IPv6 address | DoH |
| Five common blocklists, honest about the ones that refuse public resolvers | DoH |
| The certificate a host actually serves: expiry, SANs, chain verification, protocol, cipher | direct TLS |
| The address the internet sees, edge location, ASN, reverse DNS, datacenter/VPN hint | Cloudflare trace + Team Cymru DNS |
lookup_port
The one I reach for most. The port pages on the site are opinionated — every port carries a verdict:
Port 3389/tcp+udp — RDP (Remote Desktop Protocol)
Category remote access
Software Windows Remote Desktop Services, xrdp, FreeRDP server, Windows Admin Center hosts
Exposure NEVER — do not expose to the internet
Internet-facing RDP is the most common initial-access route for ransomware crews, who
credential-stuff it around the clock; put it behind WireGuard, Tailscale or an RD Gateway …Ask by number, or search: lookup_port with query: "redis" finds 6379. detail: true adds the full
write-up and FAQ.
What it does not do
No account, no signup, no key.
No telemetry. Nothing about your usage goes anywhere.
Nothing of yours is read from disk. The only file it opens is its own bundled OUI table.
The local tools never open a socket. The network tools talk only to public services — Cloudflare and Google's DNS-over-HTTPS resolvers, Cloudflare's trace endpoint, Team Cymru's ASN DNS, and whichever host you point
tls_inspectat.tls_inspectrefuses anything that resolves to private or reserved space, so it cannot be turned on your own network."Is my port reachable from outside?" needs a machine outside your NAT to try the connection. That is what whatismynetip.com/port-checker does; a local tool cannot.
The port data and the calculators are the same ones the site uses, so the two stay in step.
Licence
MIT. Written by James Son — network, security, and automation engineer. Corrections and additions to the port write-ups are welcome.
Available Tools
11 toolsdnsbl_checkA
Check an IPv4 address against five common spam/abuse blocklists (Spamhaus ZEN, SpamCop, SORBS, Barracuda, s5h). Honest about lists that refuse public-resolver queries — those come back n/a, never a false 'clean'.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | IPv4 address. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It openly explains that lists refusing public-resolver queries return 'n/a' rather than a misleading 'clean', which is valuable honesty about result semantics. It does not mention other traits like rate limits or network dependency, but the n/a disclosure is significant and well beyond a basic restatement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, zero filler. The main action is front-loaded, and the crucial caveat about n/a results is delivered in a compact follow-up. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, no-output-schema tool, the description covers the essential operational aspects: what it checks, which lists it uses, and how to interpret one ambiguous result. It does not spell out the full return shape, but the n/a explanation and list of blocklists make the tool's behavior sufficiently predictable for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: the only parameter, 'ip', is described as 'IPv4 address' in the schema. The description adds no new meaning about the parameter beyond the schema's own description, so the baseline of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Check'), a precise resource ('IPv4 address'), and enumerates the exact blocklists queried (Spamhaus ZEN, SpamCop, SORBS, Barracuda, s5h). This makes the tool's purpose unmistakable and clearly differentiates it from general DNS or IP tools among the siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The context is clear: use this tool to check an IPv4 address against spam/abuse blocklists. It does not explicitly name when not to use it or suggest an alternative, so it lacks the explicit exclusion guidance needed for a 5, but the intended use case is unambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
dns_lookupA
Resolve a DNS name over DNS-over-HTTPS. Record types: A, AAAA, MX, TXT, NS, CNAME, CAA, SOA, PTR, SRV. Returns every answer with its TTL, and says why when there is none (NXDOMAIN vs no record of that type).
| Name | Required | Description | Default |
|---|---|---|---|
| name | Yes | Hostname, e.g. example.com or _dmarc.example.com | |
| type | No | Record type (default A). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and discloses meaningful behavior: it uses DoH, returns every answer with its TTL, and distinguishes NXDOMAIN from a missing record type. It does not cover all edge cases, such as handling of unsupported types, but the core response semantics are clear.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with no filler: the action is front-loaded, the accepted record types are compactly listed, and the output behavior is stated in a single clause. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a two-parameter lookup with no output schema, the description is sufficiently complete: it names the input, enumerates valid types, and describes both the success return (answers with TTL) and the no-answer distinction. An agent has enough to invoke it correctly and interpret results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3; the description adds value by enumerating the valid record types for the type parameter, which the schema does not. It reinforces the name parameter's role without duplicating the schema's hostname examples.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific verb and resource: "Resolve a DNS name over DNS-over-HTTPS." It enumerates supported record types, which makes the tool's function clear, though it does not explicitly contrast itself with siblings like reverse_dns.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage is implied through the record-type list and the hostname example, but there is no explicit statement of when to choose this tool over alternatives like reverse_dns, dnsbl_check, or lookup_port. No exclusion criteria or recommended contexts are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_convertA
Convert an IPv4 address between dotted decimal, unsigned 32-bit integer, hex and dotted binary. Accepts any of the four as input.
| Name | Required | Description | Default |
|---|---|---|---|
| value | Yes | e.g. 192.168.1.1, 3232235777, 0xC0A80101, or 11000000.10101000.00000001.00000001 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral burden. It clearly discloses accepted input formats, but it does not specify the output format, whether all representations are returned, or how invalid inputs are handled.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise sentences with no filler. The primary action is stated first, followed by the acceptable input scope, making it easy to parse quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter conversion tool, the description covers the input contract well. However, since there is no output schema and no annotations, the lack of explicit return-format information leaves a meaningful gap for an agent trying to use the result.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the parameter description includes concrete examples for each accepted format. The description reinforces those formats but adds little beyond the schema, so the baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb ('Convert') with a clear resource ('IPv4 address') and enumerates the exact formats involved. It also differentiates itself from siblings like ipv6_normalize by explicitly limiting scope to IPv4.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use the tool: converting IPv4 addresses among the four listed formats. However, it does not explicitly state when not to use it or point to alternatives such as ipv6_normalize for IPv6 addresses.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ip_in_subnetA
Check whether an IP address falls inside a CIDR block, and show that block's first-to-last range. IPv4 and IPv6.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes | The address to test. | |
| cidr | Yes | The block, e.g. 10.10.0.0/16. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full behavioral burden. It does disclose output behavior by mentioning the range display and protocol scope, but it does not cover edge cases like invalid IP/CIDR input, exact return format, or whether the operation is purely read-only.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, tightly-packed sentence: primary action first, secondary output second, and protocol coverage last. There is no filler or redundancy, and every clause contributes meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with fully documented schema, this description covers the core behavior and output sufficiently. It lacks only edge-case handling and precise return structure details, which is a minor gap given there is no output schema and the operation is straightforward.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both params. The description adds no extra parameter-level detail beyond what is already present, such as format requirements or examples, so the baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific operation: checking whether an IP address is inside a CIDR block. It also names the secondary output (first-to-last range) and declares IPv4/IPv6 support, which distinguishes it from sibling tools like subnet_calc and ip_convert that serve different purposes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage context is implied by the description: use it when a membership test is needed. However, it gives no explicit guidance about when not to use it or how it compares to sibling alternatives such as subnet_calc, ip_convert, or ipv6_normalize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ipv6_normalizeA
Show the fully expanded form and the correct RFC 5952 compressed form of an IPv6 address, plus what kind of address it is (global, ULA, link-local, loopback, documentation…).
| Name | Required | Description | Default |
|---|---|---|---|
| address | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the three concrete outputs (expanded form, compressed form, address type) and scopes the operation to IPv6 normalization. It does not describe invalid-input handling or exact return structure, but for a pure formatting tool the core behavior is adequately transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The whole description is one focused sentence with no filler. The primary output is front-loaded, and every phrase carries meaningful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only formatting tool with no output schema, the description is largely complete: it enumerates the expected outputs and clarifies the input type. It could additionally describe error behavior or output layout, but that is a minor gap rather than a blocking omission.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
There is a single required parameter 'address' with no schema description coverage, and the description adds the key semantic that it must be an IPv6 address. However, it does not specify allowed input formats (e.g., brackets, uppercase, IPv4-mapped), nor what happens for invalid addresses, so the compensation is partial.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Show') and a specific resource ('fully expanded form and correct RFC 5952 compressed form of an IPv6 address'), plus a third output category (address type). This clearly distinguishes it from siblings like ip_convert or subnet_calc by focusing specifically on IPv6 normalization and classification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the usage context clear: use this tool when you need expanded or RFC 5952-compressed forms of an IPv6 address and its classification. It does not explicitly name alternatives or state when not to use it, so it does not reach the explicit-when-not/alternatives level.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
lookup_portA
What runs on a port and whether it is safe to expose. Covers the 100 ports whatismynetip.com documents by hand: service, protocols, category, common software, an exposure verdict (never / caution / normal) with the reasoning, and related ports. Give a port number, or a query like 'redis' or 'wireguard' to search by service. detail:true adds the full explainer and FAQ.
| Name | Required | Description | Default |
|---|---|---|---|
| port | No | Port number, 0–65535. | |
| query | No | Search by service, software or category instead of a number. | |
| detail | No | Include the long explainer and FAQ (default false). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral disclosure burden. It discloses the output fields (service, protocols, category, software, exposure verdict with reasoning, related ports), the supported input modes, and the limitation that it covers only the 100 ports documented by whatismynetip.com. This gives an agent a clear model of what to expect.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is compact and front-loaded: it states the core question first, then summarizes return content, then gives usage examples and the optional detail flag. Every sentence contributes information, with no filler or repetition of the tool name.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that there is no output schema, the description compensates well by enumerating the response components and the verdict categories. It also explains both numeric and textual query modes. It could add a note about handling unknown ports or no matches, but overall it is sufficient for an agent to call the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds useful meaning by providing concrete query examples ('redis', 'wireguard') and clarifying that detail:true appends the long explainer and FAQ. This goes slightly beyond the schema's descriptions without being redundant.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a specific purpose: 'What runs on a port and whether it is safe to expose.' It clearly identifies the resource (ports) and the kind of answer provided (service, protocols, exposure verdict), and it is distinct from all sibling tools like reverse_dns, dns_lookup, and mac_lookup.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives concrete input guidance: provide a port number or search by service with examples like 'redis' or 'wireguard', and mentions the detail flag for extended output. It does not explicitly contrast with alternative tools, but the sibling tools serve clearly different purposes, so this is a minor gap.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
mac_lookupA
Identify the vendor behind a MAC address from the full IEEE MA-L registry (about 40,000 assignments, bundled — no network), and decode the multicast and locally-administered bits. Explains randomised/privacy MACs.
| Name | Required | Description | Default |
|---|---|---|---|
| mac | Yes | Any format: 00:1A:2B:3C:4D:5E, 00-1a-2b-3c-4d-5e, 001a.2b3c.4d5e, or just the first three octets. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It explicitly discloses that the lookup is bundled and works without network, notes the registry size, and mentions extra behavior around multicast, locally-administered bits, and privacy MACs. It doesn't cover error handling or output shape, but the core behavioral traits are well stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two compact sentences with no filler. Main behavior is front-loaded, and the registry/offline constraint plus secondary capabilities are conveyed efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple one-parameter read-only lookup, the description is nearly complete: input is fully documented in the schema, and the description explains offline behavior, registry scope, and what the tool can tell the agent. A note about the exact return format would be nice, but it is not essential here.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already documents all accepted MAC formats with 100% coverage. The description adds no additional parameter-level meaning beyond the overall lookup purpose, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Uses a specific verb ('Identify') with a clear resource ('vendor behind a MAC address'), then adds the registry source and secondary decoding behavior. This clearly differentiates it from the sibling DNS, IP, and subnet tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use case obvious: look up a MAC address vendor, including offline capability. It doesn't name alternatives or exclusion criteria, but the sibling tools are unrelated and the context is unambiguous enough for an agent to decide when to call it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
my_public_ipA
The public IP address the internet sees this machine as, with the edge location that saw it, reverse DNS, the network's ASN and organisation, and a datacenter/VPN hint. Needs an outside observer, so this one talks to Cloudflare's trace endpoint and Team Cymru's ASN DNS.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full behavioral disclosure burden and does so well. It transparently reveals that the tool makes external network calls to Cloudflare's trace endpoint and Team Cymru's ASN DNS, and explains why an outside observer is needed. This gives the agent important context about network dependence and external service usage without any contradictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no wasted words. The first sentence front-loads the tool's output and core value, while the second sentence adds necessary behavioral context about external dependencies. Every phrase contributes meaning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter tool with no output schema, the description is complete: it enumerates all returned data fields, explains the mechanism, and implies the need for internet connectivity. An agent can decide to invoke the tool and know what to expect from the response.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has zero parameters, and the baseline for zero-parameter tools is 4. The description reinforces that the tool operates on 'this machine' and requires no caller-supplied input, so an agent knows there are no arguments to configure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states exactly what the tool returns: the public IP address as seen from the internet, plus edge location, reverse DNS, ASN, organisation, and datacenter/VPN hint. It clearly identifies a specific resource and outcome, though it lacks an explicit verb like 'gets' or 'returns.' The subject matter also differentiates it from siblings like reverse_dns and dns_lookup, which focus on other DNS/IP lookups.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Usage context is implied rather than stated: the description indicates this tool requires an outside observer and external network calls, so it should be used when an agent needs the machine's egress/public IP. However, it does not explicitly say when not to use it or name alternative tools for related needs, such as reverse_dns for a specific IP's PTR record.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
reverse_dnsA
PTR lookup for an IPv4 or IPv6 address — what name the address maps back to, if any.
| Name | Required | Description | Default |
|---|---|---|---|
| ip | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It states the operation is a PTR lookup and that the result is the mapped name 'if any', which covers the core behavior. It does not disclose response format, error behavior for invalid IPs, or what happens when no PTR record exists.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single focused sentence with no filler. It front-loads the core verb and adds useful scope details ('IPv4 or IPv6', 'if any') without wasting words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter, read-only DNS utility with no output schema, the description covers the input domain and the general return value. The only gaps are explicit failure/response formatting details, which are minor given how simple the operation is.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema provides only a bare 'ip' string with no description, and the description compensates by specifying that it accepts an IPv4 or IPv6 address and that the lookup maps that address to a name. It lacks format examples or edge-case constraints, but for a single simple parameter this is adequate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific operation ('PTR lookup') and clarifies the direction of the mapping ('what name the address maps back to'). This clearly distinguishes reverse_dns from sibling tools like dns_lookup, even without naming them explicitly.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies this tool is for IP-to-name lookup rather than name-to-IP lookup, which is sufficient context given the sibling list. However, it does not explicitly state when to prefer this tool over dns_lookup or other alternatives, leaving usage decisions to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
subnet_calcA
Work out a subnet from a CIDR or an address plus dotted mask: network, netmask, wildcard, broadcast, usable host range and counts. IPv4 and IPv6. Handles /31 point-to-point and /32 host routes correctly.
| Name | Required | Description | Default |
|---|---|---|---|
| cidr | Yes | e.g. 10.10.1.0/24, 192.168.1.37/255.255.255.0, or 2001:db8::/48 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the transparency burden. It discloses IPv4/IPv6 support and explicitly highlights correct /31 and /32 handling, which are meaningful edge-case behaviors. Its output list also makes clear this is a pure calculation with no side effects, though it does not state what happens on invalid input.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The definition is exactly two sentences with no filler. The first sentence front-loads the purpose and expected outputs; the second concisely adds protocol support and special cases. Every phrase contributes information an agent needs.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter, low-complexity calculator with no annotations and no output schema, the description lists the outputs, accepted input forms, and important edge cases. It could strengthen by naming exact return field keys or invalid-input behavior, but an agent can select and invoke the tool correctly with the information provided.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the parameter description already gives examples of CIDR, dotted-mask, and IPv6 forms. The tool description reinforces this and adds edge-case context, but does not meaningfully extend the semantic meaning of the cidr parameter. Baseline 3 applies because the schema already documents the parameter well.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific action ('work out a subnet') and the resource (CIDR or address/dotted mask), then enumerates concrete outputs (network, netmask, wildcard, broadcast, usable range, counts). This clearly dsistinguishes it from siblingtools such as ip_in_subent (membership check) and ip_convert (format conversion).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The usage is implied by the operation ('work out a subnet'), so the agent can infer when to call it. However, the description does not explicitly mention alternatives or provide when-not-to-use guidance, even though sibling tools exist in the same domain. No routing language distinguishes it from ip_in_subnet or ipv6_normalize.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
tls_inspectA
Connect to a public host and report the TLS certificate it actually serves: subject, issuer, validity window and days left, SANs, protocol and cipher, whether the chain verifies, and the SHA-256 fingerprint. Any port (default 443). Accepts a URL. Refuses hosts that resolve to private or reserved addresses.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | Hostname, host:port, or a URL. | |
| port | No | Port (default 443, or taken from host:port / the URL). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the behavioral burden and does this well by stating that it makes a live connection, reports the certificate actually served, and refuses private/reserved addresses. It does not discuss edge cases like timeouts or whether the connection performs full validation, but it discloses key operational behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences with no filler. The first sentence front-loads the tool's outputs, and the second sentence adds port and host constraints. Every clause adds useful information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
There is no output schema and no annotations, yet the description fully enumerates the returned certificate data and the main input constraints. An agent can predict what the tool does, what it returns, and when it refuses to operate, making the definition complete for this complexity level.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%: host and port are already documented in the schema. The description adds minor reinforcement ('Accepts a URL', 'Any port default 443') but does not materially expand parameter meaning beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description names a specific verb ('Connect') and resource ('TLS certificate'), then enumerates exactly what it reports. It is clearly distinct from sibling network tools like dns_lookup, reverse_dns, or lookup_port because only this one inspects live TLS certificates.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description makes the intended use clear: connect to a public host and inspect its served certificate. It also specifies that private or reserved addresses are refused, which helps the agent know when the tool will not work. It does not explicitly name alternative tools, but the context is sufficient for selection among the siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
11 tool updates
v0.1.0- First observed
dns_lookup - First observed
dnsbl_check - First observed
ip_convert - First observed
ip_in_subnet - First observed
ipv6_normalize - First observed
lookup_port - First observed
mac_lookup - First observed
my_public_ip - First observed
reverse_dns - First observed
subnet_calc - First observed
tls_inspect
TDQS
Scored across 11 tools
Every tool targets a distinct networking task: reverse DNS, public IP discovery, subnet math, membership testing, format conversion, MAC lookup, port information, DNS resolution, blocklist checks, and TLS inspection. The only mild adjacency is reverse_dns and dns_lookup's PTR support, but their stated inputs and purposes remain clearly separate.
Most names use an object_action snake_case style like ip_convert, mac_lookup, and tls_inspect, but lookup_port reverses that pattern, and my_public_ip, reverse_dns, and ip_in_subnet are noun phrases. The style is readable and consistent in casing, but the verb placement and phrase structure are not uniform.
Eleven tools is a well-scoped size for a network/IP utility server. Each tool contributes a meaningful, non-redundant capability, and the set does not feel padded or overwhelming.
The toolset covers IPv4/IPv6 conversion, subnetting, DNS and reverse DNS, blocklist checks, MAC vendor identification, port lookup, TLS cert inspection, and public IP details. The main minor gap is arbitrary-address ownership/ASN or WHOIS lookup, but the existing workflows are coherent and do not leave core IP tasks stranded.
Maintenance
Related MCP Connectors
Utility tools for AI agents: hashing, text stats, validation, DNS, currency, GEO audits.
49 free agent tools: WHOIS, PDF to text, email checks, FX rates, X12 EDI, JSON repair. No API key.
Free no-key IP intelligence: geolocation, VPN detection, DNS, WHOIS, blacklists, breach checks
Look up DNS information for any domain to troubleshoot issues and gather insights. Get fast, relia…
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePerform DNS lookups, WHOIS queries, connectivity testing, TLS certificate analysis, HTTP endpoint monitoring, and hostname resolution, all from your trusty AI.10MIT
- AlicenseNot gradedqualityDmaintenanceProvides network utility tools including DNS lookup, WHOIS lookup, SPF record inspection, SSL/TLS certificate checking, and subnet/CIDR analysis powered by networkcalc.com services.1MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to perform real network diagnostics on the local machine, including ping, traceroute, DNS lookups, TLS checks, and more.MIT
- AlicenseAqualityDmaintenanceNetwork diagnostics tool for AI agents that provides DNS lookup, IP geolocation, SSL certificate inspection, WHOIS queries, and HTTP latency testing.522 npm1MIT