Skip to main content
Glama
netdiag-server
by ZANYANBU

Network MCP Server with a Diagnosis Agent

Tells you which network layer is broken, and how to fix it.

tests Python 3.10+ MCP Windows · macOS · Linux MIT

21CSC302J Computer Networks · SRM Institute of Science and Technology

When the Internet stops working you only see the symptom: "YouTube won't load." The cause can sit at any layer: a weak Wi-Fi signal, a missing IP address, a wrong gateway, a broken route at the ISP, or a DNS server that has stopped answering.

This project gives an AI agent the same tests a network engineer would run, through the Model Context Protocol (MCP), plus a diagnosis method that works from the bottom layer up and stops at the first failure.

Contents

Related MCP server: sanitycheck-mcp

What it does

Part

Command

Needs an API key

MCP server with 11 read-only network tools

netdiag-server

No

Diagnosis: every check, bottom-up, with a plain-English answer

netdiag diagnose youtube.com

No

Agent: ask in your own words and Claude picks the tools

netdiag-agent "YouTube is not loading"

Yes

A real run on a home network:

And the same command when the DNS server stops answering (simulated, as in the tests):

Quick start

Python 3.10 or newer.

git clone https://github.com/ZANYANBU/network-mcp-diagnosis-agent.git
cd network-mcp-diagnosis-agent
python3 -m venv .venv
source .venv/bin/activate          # Windows: .venv\Scripts\activate
pip install -e ".[test]"
netdiag diagnose youtube.com       # full check, no AI needed
netdiag ping 8.8.8.8
netdiag traceroute 8.8.8.8
netdiag dns youtube.com --server 1.1.1.1
netdiag ipconfig
netdiag wifi

Add --json to diagnose for machine-readable output.

The agent

export ANTHROPIC_API_KEY=...       # from console.anthropic.com
netdiag-agent "YouTube is not loading"
netdiag-agent                      # interactive

The agent starts the MCP server itself, hands Claude its tools, and prints each tool call as it happens.

How the diagnosis works

Each layer depends on the ones below it, so the first failure is the answer. Two checks do extra work to give a precise diagnosis:

  • Internet unreachable: a traceroute to 8.8.8.8 finds the last hop that replied, which separates "your router's uplink" from "inside the ISP".

  • DNS fails: the same lookup is retried through 1.1.1.1. If that works, your DNS server is at fault; if not, the name itself is wrong.

Even when everything passes, it warns about packet loss, high latency, jitter and a weak Wi-Fi signal.

The tools

Tool

Layer

What it tells you

interfaces

Physical, data link

Up or down, addresses, MAC, speed, frame errors

wifi_signal

Physical

Signal in dBm: strong, ok or weak

ip_config

Network

IPv4 address, default gateway, DNS servers

ping

Network

Replies, packet loss, latency, jitter

traceroute

Network

Every router on the path, and where replies stop

route_table

Network

The routing table, including the default route

arp_table

Data link

IP-to-MAC pairs on the local network

dns_lookup

Application

Name to IP, through the system DNS or a chosen server

port_check

Transport

A TCP three-way handshake to a port

http_check

Application

HTTP status code and response time

diagnose

All

The whole bottom-up sequence in one call

Safe by design. Every tool only reads; none changes a setting. Host names are validated, and commands run as argument lists without a shell, so a request like 8.8.8.8; rm -rf / is refused.

Live demo in Cisco Packet Tracer

The packet-tracer/ folder holds a ready-made network, Network-Diagnosis-Demo.pkt, built and tested in Packet Tracer 9.0.1.

  • Home LAN 192.168.1.0/24: the PCs get their addresses from HomeRouter's DHCP server.

  • Link between routers 10.0.0.0/30, with OSPF area 0 on both routers.

  • ISP side 203.0.113.0/24: a DNS server that resolves youtube.com, and the web server it points to.

The same checks the agent runs, typed on PC0 in the saved network:

The demo breaks one layer at a time (a shut switch port, a wrong gateway, a removed OSPF network, the DNS service turned off) and diagnoses each live. Step-by-step instructions, the router configurations and what to say are in Packet-Tracer-Live-Demo.pdf.

Use it from Claude

Claude Code

claude mcp add network-diagnosis -- /full/path/to/.venv/bin/netdiag-server

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "network-diagnosis": { "command": "/full/path/to/.venv/bin/netdiag-server" }
  }
}

Any other MCP client works the same way: it starts netdiag-server and talks to it over standard input and output.

Project layout

netdiag/
  tools.py        the read-only network checks, one function each
  parse.py        turns ping, traceroute, route and ARP output into data (Windows, macOS, Linux)
  diagnose.py     the bottom-up diagnosis and its plain-English report
  server.py       the MCP server
  agent.py        the Claude agent that uses the server
  cli.py          the netdiag command
tests/            parsers and every fault scenario
packet-tracer/    the demo network, router configs and the demo guide
docs/             diagrams, screenshots and the presentation slides

Tests

pytest

The tests feed saved command outputs from all three operating systems into the parsers, and run the diagnosis on a made-up network broken one layer at a time: link down, DHCP failure, wrong gateway, a routing break inside the ISP, a dead DNS server, a misspelt name and a closed port. They run on Windows, macOS and Linux on every push.

Syllabus mapping

Unit

Where it shows up

1 · Introduction to networks

Interfaces, transmission media, Wi-Fi signal, latency, jitter, packet loss

2 · Addressing

IPv4, subnet masks, DHCP and 169.254 addresses, default gateway

3 · Routing

Routing table, default route, traceroute and TTL, OSPF in the demo

4 · Medium access control

MAC addresses, ARP, frame error counters

5 · Transport and application

TCP handshake, ports, DNS, HTTP

The presentation slides walk through each unit with diagrams.

Released under the MIT License.

Available Tools

11 tools
arp_tableC

IP-to-MAC address pairs this computer has learned on the local network.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it discloses almost nothing behavioral: no statement that this is a read-only lookup, no scope limits (local subnet only, cached entries, staleness), no output shape. The phrase 'has learned' hints at cached/dynamic state, which is the only real behavioral signal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One short, front-loaded sentence with no filler or repetition. It is efficient, though a fragment rather than a complete statement of action.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists and the tool is parameterless, so the description needn't explain return values. Still, it omits the read-only nature and entry scope, which are the only things an agent would need beyond the schema — leaving it minimally adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, and the description correctly implies a no-argument retrieval with no filtering options. Baseline 4 applies since there is nothing to document.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely — IP-to-MAC pairs learned on the local network — which is clearly the ARP table and distinguishably not route_table or interfaces. But it is a bare noun phrase with no verb, so it reads as a description of return data rather than stating what the tool does (retrieve/return the table).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No indication of when to call this versus siblings like route_table, ip_config, or interfaces, all of which overlap in the local-network diagnostics space. The agent must infer usage from the sentence alone; there are no exclusions or alternative routing hints.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

diagnoseB

Run the full bottom-up diagnosis against a site and say which layer fails and how to fix it.

Args: target: Host name or IP address the user is trying to reach, e.g. youtube.com. port: TCP port of the service, 443 for websites.

NameRequiredDescriptionDefault
portNo
targetNogoogle.com

Output Schema

NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden. It says the tool diagnoses layers and suggests fixes, but it does not disclose whether it performs active network probes, requires permissions, has timeout or rate-limit behavior, or is strictly 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.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded in one clear sentence, followed by only the necessary parameter notes. There is no redundant or filler text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description gives enough to invoke the tool with target and port, and an output schema exists so return values need not be explained. However, for a composite diagnostic surrounded by many single-purpose network siblings, it should explicitly clarify when to use this tool versus those alternatives.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: target is explained as a host name or IP address with an example, and port is explained as the TCP service port with 443 as the website example. The schema defaults are not mentioned, but the core semantics of both parameters are clear.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action and outcome: run a full bottom-up diagnosis against a site and report which layer fails plus how to fix it. The phrase 'full bottom-up diagnosis' implies a composite check distinct from single-purpose siblings, though it does not explicitly name alternatives.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by 'against a site' and the target example of a host the user is trying to reach. However, the description never states when to choose this composite diagnostic over siblings like ping, traceroute, dns_lookup, port_check, or http_check.

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 name to IP addresses with the system's DNS, or with a given DNS server such as 1.1.1.1.

Args: name: Host name to look up, e.g. youtube.com. server: Optional DNS server IP to ask instead of the system's own.

NameRequiredDescriptionDefault
nameYes
serverNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It discloses the resolution mechanism (system DNS vs. explicit server), which is useful, but says nothing about failure modes (NXDOMAIN, timeouts), whether the query is read-only/safe, or what the response contains.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence plus a compact Args block; no filler. The Args section is slightly redundant in style but earns its place given the empty schema descriptions.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

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, and the description never says what comes back (list of A/AAAA records? ordering? address family?). For a lookup tool this is a real gap, though the call mechanics are otherwise clear.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the docstring Args block does real work: it defines 'name' as a host name with an example and 'server' as an optional DNS server IP used instead of the system's own. Both parameters are covered, though the accepted format of 'server' (port? hostname?) is not stated.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: resolve a host name to IP addresses, with the system resolver or an explicit server. That is clearly distinct from ping/traceroute/port_check siblings, although the description never names or contrasts them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The phrase 'or with a given DNS server such as 1.1.1.1' implies when the optional server argument is worth supplying, but there is no explicit when-to-use/when-not guidance or comparison against siblings like ping or http_check that also trigger resolution.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

http_checkA

Request a web page's headers and report the HTTP status code and response time.

Args: url: Address such as https://youtube.com; https is assumed if no scheme is given.

NameRequiredDescriptionDefault
urlYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden, and it does disclose the outputs (status code, response time), which is valuable given there is no output schema. However, it omits timeout behavior, redirect following, whether the body is downloaded, and any failure-mode or rate-limit context an agent would want before probing an endpoint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two sentences plus a single-argument block, front-loaded with what the tool does and immediately followed by the parameter detail. No padding or repetition.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a single-parameter diagnostic with no output schema and no annotations, the description covers purpose, the returned values, and the scheme default. It is close to complete; only timeout/redirect/error behavior is left to be discovered at runtime.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 0%, so the description must compensate, and it does: it gives an example value and, critically, the default behavior that 'https is assumed if no scheme is given'. That is exactly the kind of semantic the bare `string` schema does not convey.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Request a web page's headers') plus the two outputs ('HTTP status code and response time'), which is far more precise than a bare name. It implicitly separates itself from the raw-network siblings (ping, traceroute, port_check) by being an application-layer HTTP probe, though it never names an alternative.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The usage is only implied by the purpose: an agent can infer this is for checking whether an HTTP endpoint responds and how fast. There is no explicit 'use this instead of port_check when...' or 'use when you need an application-layer response rather than TCP reachability', and no exclusions or prerequisites.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

interfacesA

List network interfaces: up or down, IPv4/IPv6 addresses, MAC, speed and error counters (physical and data link layers).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full disclosure burden. It does imply a non-mutating enumeration and tells the agent what data categories come back, which is real value, but it says nothing about privileges needed, whether interfaces are discovered locally vs remotely, or whether results include down interfaces by default. Not contradictory, just thin.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with the verb first and the returned fields packed into one efficient clause. No filler, no restatement of the tool name.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a no-argument read tool with an output schema already documenting return values, this is nearly complete. The only gap worth naming is whether down interfaces are included and what scope of host is inspected, both of which would affect interpretation of results.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Zero parameters with 100% schema coverage, so the baseline of 4 applies. The description adds no parameter information because there is none to add.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Opens with a specific verb and resource ('List network interfaces') and enumerates exactly what is reported: up/down state, IPv4/IPv6 addresses, MAC, speed and error counters. The parenthetical 'physical and data link layers' hints at how it differs from the IP-focused sibling ip_config, but the differentiation is left implicit rather than stated.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied by the enumeration of link-layer fields; there is no explicit 'use this when...' and no sibling is named, even though ip_config, arp_table and wifi_signal all overlap in the network-diagnostics space. An agent can infer this is the interface-inventory call, but must reason it out.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

ip_configA

This computer's IPv4 addresses, default gateway and DNS servers, like ipconfig.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description must carry behavioral load, and it does disclose the key trait: scope is strictly local ("This computer's") and limited to IPv4. It does not state that the operation is read-only, whether it can fail or return partial data, or how the output is structured, which are notable omissions for a diagnostic tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence that names the returned fields first and adds the analogy last as reinforcement. No filler, nothing to trim.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

There is no output schema, and the description compensates by enumerating the returned data (IPv4 addresses, gateway, DNS). The IPv4-only restriction is stated, which is the main completeness risk. Minor gap: no mention of what happens if networking is down or how addresses are ordered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing to disambiguate and the baseline of 4 applies. The description correctly exposes no input surface an agent could misuse.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource precisely (this machine's IPv4 addresses, default gateway, DNS servers) and anchors it to the familiar `ipconfig` command, so an agent knows exactly what comes back. It is not differentiated from the sibling `interfaces` or `route_table`, which overlap on address/gateway data.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No when-to-use or when-not-to-use guidance; the only hint is the `ipconfig` analogy, which implies a quick local lookup. Nothing tells the agent whether to prefer this over `interfaces` for interface enumeration or `route_table` for the gateway, so the choice is left to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pingA

Ping a host: replies, packet loss, average latency and jitter.

Args: host: Host name or IP address. count: Number of echo requests, 1 to 10.

NameRequiredDescriptionDefault
hostYes
countNo

TDQS

A3.5/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. It does disclose the return content (replies, packet loss, latency, jitter), which is genuinely useful, but says nothing about blocking duration, timeouts, failure behavior, or the fact that this is a non-destructive read-only network probe. Decent but incomplete for an unannotated tool.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The operative sentence is front-loaded and dense with real information, and the Args block is short. There is mild redundancy in restating parameter titles the schema already exposes, but the added range limit earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter network probe with no annotations and no output schema, the description covers purpose, both parameters, and the shape of the result. It stops short of telling the agent what happens on an unreachable host or how long the call may block, which matters for a latency-bound operation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: both parameters are documented, and it adds a constraint absent from the schema (count is bounded 1 to 10) plus the meaning of host as name-or-IP. Only minor gaps remain, such as units or behavior at the bound.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a concrete verb and resource ("Ping a host") and goes further by naming the measurements returned: replies, packet loss, average latency and jitter. That distinguishes it in substance from siblings like traceroute or dns_lookup, though it never names those alternatives explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is for reachability/latency checks against a single host, but the description never says when to prefer it over traceroute (path), port_check (service), or dns_lookup (resolution). No prerequisites, exclusions, or preconditions are given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

port_checkA

Try a TCP three-way handshake to host:port and report open, refused or timed out.

Args: host: Host name or IP address. port: TCP port, e.g. 443 for HTTPS, 80 for HTTP, 53 for DNS.

NameRequiredDescriptionDefault
hostYes
portNo

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations exist, so the description carries the full burden. It does disclose the important behavior — a real handshake is attempted and the three possible result states are enumerated — but says nothing about timeout duration, whether results are cached, or what a slow/filtered port yields versus a timed-out one.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One front-loaded sentence states purpose and outcomes, followed by a compact Args block. No filler and no repetition of schema metadata.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a two-parameter diagnostic tool with no output schema and no annotations, the description covers purpose, both parameters, and the shape of the result. Only timeout/timing expectations are missing, which is a minor gap for an agent deciding whether to wait on the call.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must compensate, and it does: host is defined as hostname or IP, and port is defined with concrete examples (443/HTTPS, 80/HTTP, 53/DNS) that implicitly clarify it takes a numeric TCP port. It does not restate the 443 default already in the schema, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Names a precise mechanism (TCP three-way handshake) against a precise target (host:port) and states what is reported (open, refused, timed out). That mechanism framing alone separates it from ping (ICMP) and http_check (application layer) in the sibling list, so an agent can pick it without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is only implied: an agent can infer this is the tool for 'is this TCP port reachable'. There is no explicit when-to-use statement, no exclusion, and no mention of the closest alternatives (http_check for a full HTTP request, ping for host liveness).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

route_tableC

The computer's routing table, including the default route (0.0.0.0/0).

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the full behavioral burden, yet it omits that this is a read-only, no-argument, local-host query and that it returns nothing about remote targets. It does at least scope the data to 'the computer's' own table rather than a remote host, which is a meaningful constraint.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single short sentence with zero filler, front-loaded on the resource. Its brevity flirts with under-specification rather than waste, but nothing in it fails to earn its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With zero parameters and an output schema covering return values, the bar is low, and the description adequately identifies the data. However, for a diagnostic toolset this dense, it leaves the agent without a reason to pick this over ip_config or arp_table.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so the baseline is 4; there is nothing for the description to explain and it correctly implies no inputs are needed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the resource (the routing table) and adds one substantive detail (default route 0.0.0.0/0), but it is a noun phrase with no verb, so the action (retrieve/display) is only inferred. It never contrasts itself with the adjacent siblings ip_config or arp_table, which an agent could easily confuse with routing information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus ip_config, arp_table, or traceroute, and no mention of prerequisites or context. The agent must infer usage purely from the tool name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

tracerouteB

List every router on the path to a host and where the replies stop.

Args: host: Host name or IP address. max_hops: Most routers to try, 1 to 30.

NameRequiredDescriptionDefault
hostYes
max_hopsNo

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and it says nothing about expected duration, hop timeouts, whether non-responsive hops are skipped or shown, or that the operation is a harmless read. 'Where the replies stop' gestures at the result shape but doesn't disclose 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.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two tightly packed statements with zero filler, and the core behavior is front-loaded before the Args block. The Args formatting is slightly mechanical but costs little.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

A simple two-parameter, no-output-schema tool, so the bar is modest, but with no annotations the definition should at least flag cost/latency or the read-only nature and what happens with unresponsive hops. The essential call information is present and correct.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description must carry parameter meaning, and it partially does: it clarifies host as a name or IP and adds the 1-30 bound for max_hops that the schema does not encode. It omits the default (15), which only the schema's 'default' field supplies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'List every router on the path to a host', plus the outcome it surfaces ('where the replies stop'). This is clearly distinct from siblings like ping and route_table in practice, though the description never names or contrasts them.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance, and siblings such as ping, route_table, and diagnose are not mentioned. However, 'where the replies stop' implies the diagnostic scenario (finding where connectivity breaks), giving implied rather than stated usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

wifi_signalA

Wi-Fi signal strength in dBm and a strong/ok/weak rating, if the computer is on Wi-Fi.

NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden; it does disclose the units (dBm) and the derived qualitative rating, which is real behavioral value. The critical gap is what happens when the machine is not on Wi-Fi — error, empty result, or message — which is left ambiguous for an agent deciding whether to call it.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence with the measurement, units, rating scheme, and applicability condition all front-loaded. No filler, nothing repeated from structured fields.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a zero-argument read tool with no output schema, naming the return values and units is close to complete. The only missing piece is the non-Wi-Fi failure mode, which matters for result interpretation but not for invocation.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description does not need to explain any inputs and correctly spends its words on output semantics instead.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific resource (Wi-Fi signal strength) and pre-describes the return shape (dBm value plus strong/ok/weak rating), which no sibling tool covers. It is clear against siblings like interfaces or ip_config by virtue of the wireless-specific metric, though it never names an alternative explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'if the computer is on Wi-Fi' communicates a precondition, implying this is a wireless-connectivity diagnostic. However, it offers no when-to-use guidance versus siblings such as interfaces or ping, and no statement about what to do for wired hosts.

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.

  1. 11 tool updatesv0.1.0
    • First observedarp_table
    • First observeddiagnose
    • First observeddns_lookup
    • First observedhttp_check
    • First observedinterfaces
    • First observedip_config
    • First observedping
    • First observedport_check
    • First observedroute_table
    • First observedtraceroute
    • First observedwifi_signal

TDQS

A3.6/5.0

Scored across 11 tools

Disambiguation4/5

Each tool maps to a distinct diagnostic layer or probe (interface listing, Wi-Fi, IP config, routing, ARP, DNS, ping, traceroute, port, HTTP), so boundaries are mostly crisp. The only mild overlap is the aggregate `diagnose` versus the individual probes it presumably invokes, but its 'identify failing layer and fix' framing distinguishes it.

Naming Consistency4/5

Most names follow a noun_noun or noun-phrase convention (wifi_signal, ip_config, dns_lookup, port_check, http_check, route_table, arp_table) with `interfaces` as a plain noun. `diagnose`, `ping`, and `traceroute` are verb/vague outliers, but they are conventional names for these utilities and remain readable.

Tool Count5/5

Eleven tools is well within the ideal 3-15 range and each covers a distinct layer or probe in a bottom-up network diagnosis workflow. Nothing feels redundant or missing at the count level.

Completeness4/5

The surface covers physical/data-link (interfaces, wifi_signal), network (ip_config, route_table, arp_table), transport (ping, traceroute, port_check), and application (dns_lookup, http_check) layers, plus an aggregate `diagnose`. Minor gaps exist—no active connection listing (netstat-equivalent), DHCP/lease info, or bandwidth/MTU test—but core diagnostic workflows are covered.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    Enables AI agents to check the health of internet infrastructure and specific services, helping diagnose whether issues are local or external.
    3
    15 npm
    ISC
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI agents to debug local networks in plain language by pinging, sweeping subnets, tracing routes, resolving DNS, scanning ports, inspecting ARP tables and active connections, and checking URL reachability.
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to safely troubleshoot networks through read-only tools for device inventory, interface status, VLAN paths, BGP neighbors, route lookups, and interface error detection. Integrates with Microsoft Copilot Studio and Teams for natural-language-driven network diagnostics.
    -