Skip to main content
Glama

netdiag-mcp

English | 日本語

MCP-сервер для сетевой диагностики по требованию — DNS-запросы (с проверкой DNSSEC AD-bit), ping, трассировка маршрута на основе mtr, проверка TCP-портов, проверка HTTP-статусов/редиректов, проверка TLS-сертификатов и WHOIS — всё с одного сервера.

Создан для разбора жалоб вида «не могу достучаться до X» / «DNS ещё не распространился» без необходимости заходить по SSH на каждый хост ради разового dig/ping/curl.

Инструменты

Инструмент

Назначение

dns_lookup

Разрешение DNS-записи через dig (A/AAAA/MX/TXT/NS/CNAME/SOA/PTR/CAA), опционально с указанием конкретного резолвера и через обычный DNS/DoT/DoH

dnssec_check

Запрос к валидирующему резолверу и проверка, установлен ли бит AD (authenticated data) — единственный надёжный способ подтвердить валидность DNSSEC, поскольку наличие RRSIG в обычном ответе dig само по себе ничего не доказывает

ping_host

ICMP-ping (количество попыток ограничено диапазоном 1–10)

traceroute_path

Пошаговый отчёт о маршруте и потерях через mtr --report (фиксированный цикл, не непрерывный мониторинг)

tcp_port_check

Открыт ли TCP-порт — простая проверка соединения, а не сканирование портов

http_check

HEAD/GET-запрос к URL: статус, цепочка редиректов и задержки

tls_cert_check

Получение сертификата, который представляет хост: субъект, издатель, срок действия, SANs

whois_lookup

WHOIS-запрос по домену

asn_lookup

Определение ASN и кода страны по IP-адресу, либо информации об организации по номеру AS, через whois-сервис Team Cymru — без API-ключа и без локальной GeoIP-базы

health_check

Версия сервера и список обёрнутых бинарников (dig/ping/mtr/whois), присутствующих в PATH

Все инструменты доступны только для чтения и работают с одной целью (без пакетного режима и массового перебора) — это удобная обёртка над командами, которые оператор и так выполнил бы вручную, а не сканер. Массовое сканирование множества хостов или портов в стиле nmap сознательно вынесено за рамки: массовый перебор хостов или портов — это действие с гораздо более высоким радиусом поражения, которое заслуживает отдельного инструмента и отдельного процесса согласования.

tcp_port_check, http_check и tls_cert_check используют собственный стек Python (socket/ssl/httpx), а не вызывают внешние nc/curl/openssl, поэтому эти три инструмента работают даже на хосте, где установлены только dig/ping/mtr/whois (или вообще ничего — health_check сообщит, чего не хватает, не роняя весь сервер).

dns_lookup/dnssec_check поддерживают DNS-over-TLS и DNS-over-HTTPS через transport="dot"/"doh" (флаги +tls/+https у dig). Для этого нужен dig из BIND 9.18+ — более старый dig просто отвергнет флаг, а не станет молча делать обычный DNS-запрос, так что устаревший бинарник приведёт к явной ошибке, а не к ложному ощущению, что проверка прошла по шифрованному каналу.

tls_cert_check/http_check по «голому» IP-адресу могут завершиться ошибкой рукопожатия TLS («handshake failure» или похожей) на ресурсах, которые стоят за SNI-ориентированными или CDN-фронтендами (например, за Cloudflare) — расширение SNI в TLS передаёт только имена хостов, поэтому IP-литерал не может привести к нужному сертификату на общем edge-сервере. Это нормальное поведение TLS, а не баг инструмента; при работе с такими ресурсами указывайте имя хоста.

Related MCP server: Keel

Установка

1. Системные зависимости

dns_lookup, dnssec_check, ping_host, traceroute_path и whois_lookup вызывают внешние бинарники dig, ping, mtr и whois соответственно. Установите те из них, которые вам нужны:

# Debian/Ubuntu
sudo apt install dnsutils iputils-ping mtr-tiny whois

mtr требует доступа к raw-сокетам. Пакет mtr-tiny в Debian/Ubuntu выдаёт cap_net_raw хелперу mtr-packet при установке, так что обычно всё работает и для непривилегированного сервисного пользователя — если traceroute_path сообщает об ошибке прав на сокет, проверьте вывод getcap "$(command -v mtr-packet)". Без этой возможности traceroute_path завершится чистой ошибкой ToolError, а не уронит сервер.

2. Установка

pip install netdiag-mcp
# or
uv tool install netdiag-mcp

3. Claude Code (вручную)

claude mcp add netdiag -- netdiag-mcp

Никаких переменных окружения не требуется.

CLI

netdiag-mcp --version   # print version
netdiag-mcp --check     # report which wrapped binaries are present (exit 0 when all are)

Замечания по безопасности

  • Каждый вызов внешнего бинарника передаёт список аргументов (argv), а не строку для shell, так что ни один аргумент инструмента не может выйти за пределы и выполнить произвольную команду.

  • Аргументы «хост/IP» и «порт» проходят валидацию и ограничение по диапазону значений перед использованием — входные данные инструментов считаются недоверенными, как и в любом другом интерфейсе вызова инструментов.

  • tcp_port_check подключается ровно к одному хосту и одному порту за вызов; никаких циклов по спискам или диапазонам — это сделано намеренно.

Разработка

Живой смоук-тест

Модульные тесты проверяют логику на фикстурах; они не способны заметить, что инструмент перестал возвращать реальные данные (умер бинарник dig/ping/mtr/whois, сломалось хранилище доверенных TLS-сертификатов, сеть блокирует исходящий ICMP). scripts/smoke_test.py запускает каждый зарегистрированный инструмент против реальных публичных конечных точек и падает при пустом, некорректном или ошибочном ответе:

uv run python scripts/smoke_test.py
uv run python scripts/smoke_test.py --only ping --traceback
  • Никакого инвентаря целей — каждая цель это фиксированная публичная конечная точка: 1.1.1.1 от Cloudflare и example.com от IANA (зарезервированы для тестирования и документации, см. RFC 2606). Сервер не имеет конфигурации и не из чего строить список целей, в отличие от MCP-серверов для управления парком устройств.

  • tests/test_smoke_probes.py — офлайн-часть: проверяет только, что у каждого зарегистрированного инструмента есть соответствующий пробник (и наоборот), так что CI поймает инструмент, добавленный без решения о том, как проверять его работу, не требуя доступа в сеть.

Лицензия

MIT

Available Tools

12 tools
asn_lookupA

ASN + country-code lookup for an IP, or org info for an AS number (e.g. AS15169 or 15169).

Via Team Cymru's whois service — no API key or GeoIP database needed. Takes an IP literal or AS number, not a hostname; resolve first with dns_lookup if you only have a name.

ParametersJSON Schema
NameRequiredDescriptionDefault
targetYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the backend service (Team Cymru's whois), notes that no API key or GeoIP database is needed, and constrains inputs. However, it does not describe the output shape, pagination, or failure behavior, and does not explicitly state that this is a read-only operation.

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?

Three tight sentences with no filler. The core purpose is front-loaded, the service fact and input constraints follow naturally, and every sentence earns its place.

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 lookup tool with no output schema and no annotations, the description is quite complete: it gives the service, the accepted input forms, the exclusions, and the fallback resolution path. The only clear gap is the exact return structure, though the purpose line already hints at ASN, country code, and org info.

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 schema only provides 'target' with no description (0% coverage), so the description must compensate. It does: it explains that target can be an IP literal, an ASN like AS15169, or a bare number like 15169, and clarifies what is not acceptable (hostname). This adds real meaning beyond the schema.

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?

The description names a specific verb+resource: 'ASN + country-code lookup for an IP, or org info for an AS number'. It immediately tells the agent what the tool does and distinguishes it from sibling tools like dns_lookup or whois_lookup.

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

Usage Guidelines5/5

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

Explicitly states the input domain: takes an IP literal or AS number, not a hostname, and directs the agent to 'resolve first with dns_lookup if you only have a name'. This gives clear when-to-use guidance and names the alternative.

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

current_timeA

Current date, time and weekday in an IANA timezone (e.g. "Asia/Tokyo").

Call this rather than deriving the weekday from a date yourself — that is calendar arithmetic and it fails silently. Returns the date, the 24h time, the weekday in English and Japanese, the offset, UTC and the epoch, so it also serves as a clock check on this server.

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoUTC

TDQS

A4.4/5.0
Behavior4/5

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

No annotations are supplied, so the description carries the full burden, and it does most of the work: it enumerates the returned payload (date, 24h time, weekday in English and Japanese, offset, UTC, epoch) and even surfaces a secondary use as a clock check on the server. It never states the operation is a safe read, but for a time query that is self-evident.

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?

Front-loaded with what it returns, then the routing advice, then the return payload — a sensible order with no filler. The return-field enumeration is slightly listy but each item is informative, so nothing is clearly wasteful.

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

Completeness5/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, so the description takes on both jobs and does so: it lists the return fields and justifies the tool's existence versus computing the date locally. Nothing an agent needs to call it correctly is missing.

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% for the single timezone parameter, so the description must compensate; it names the expected identifier format ('IANA') and gives a concrete example ('Asia/Tokyo'). The UTC default is left to the schema, which is a minor omission given only one parameter.

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?

States a specific verb+resource ('current date, time and weekday') and scopes it to 'an IANA timezone'. It is unmistakably distinct from every sibling (dnssec_check, ping_host, traceroute_path, etc.), so the agent can route between them without reading schemas.

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

Usage Guidelines4/5

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

Explicitly tells the agent to prefer this over self-computed calendar arithmetic, and explains why ('it fails silently'), which is real when-to-use guidance. It stops short of stating edge cases such as what happens if the server clock is wrong or which timezone to pick by default, so not a full 5.

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 record via dig. record_type: A/AAAA/MX/TXT/NS/CNAME/SOA/PTR/CAA.

Pass resolver to query a specific nameserver instead of the host default (e.g. to check whether a change has propagated to a given resolver). transport: "plain" (UDP/TCP 53, default), "dot" (DNS-over-TLS, 853) or "doh" (DNS-over-HTTPS, 443). Requires dig from BIND 9.18+; an older dig rejects dot/doh outright instead of silently querying over plain DNS.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYes
resolverNo
transportNoplain
record_typeNoA

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral transparency burden. It discloses transport behavior, default ports, and the critical dependency on dig BIND 9.18+, including how older dig versions fail. It does not cover every edge case, but the important behavioral quirks are transparent.

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 description is dense but purposeful, with each sentence adding meaningful technical information. It front-loads the core action, then organizes parameter details and dependency caveats cleanly. No filler or redundant restatement of the 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?

Given an output schema exists, return values are covered elsewhere. The description adds essential context about transports, resolvers, and the dig version requirement. It is complete enough for correct invocation, though it could mention edge cases like PTR record hostname formatting or timeout behavior.

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 explain the parameters, and it largely does. It enumerates record_type values, defines resolver usage, and clarifies transport options with ports and defaults. Hostname is left implicit, but that is a well-understood parameter for a DNS lookup tool.

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?

The description opens with a specific verb and resource: 'Resolve a DNS record via `dig`.' It lists supported record types and clearly distinguishes itself from sibling tools like dnssec_check, whois_lookup, and asn_lookup. An agent can immediately tell what this tool does.

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

Usage Guidelines4/5

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

The description explains when to use the resolver parameter, such as checking whether a change has propagated to a given resolver. It gives clear operational context, though it does not explicitly contrast with sibling tools or state when not to use it. Overall, usage intent is well implied.

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

dnssec_checkA

Check whether a name validates DNSSEC against a known-validating resolver (AD bit).

transport: "plain" (default), "dot" or "doh" — compare validation over plain DNS vs. an encrypted transport when port 53 may be intercepted.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostnameYes
resolverNo1.1.1.1
transportNoplain

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/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 discloses useful behavior, such as relying on a known-validating resolver's AD bit and comparing plain DNS against encrypted transports. However, it does not explicitly state that live network queries are sent or describe potential side effects, leaving some behavior implicit.

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 description is short and the first sentence front-loads the main purpose. The transport fragment is slightly awkwardly embedded in the description rather than formatted as a parameter note, but there is no redundancy or wasted wording.

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 three-parameter network check with an output schema, the description covers the core operation and the key transport decision. It omits caveats like resolver prerequisites or explicit when-not-to-use guidance, but the sibling tool list and output schema supply much of the remaining context.

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 compensate. It adds meaningful detail for 'transport' (plain/dot/doh and interception rationale) and loosely implies 'hostname' via 'a name' and 'resolver' via 'known-validating resolver.' It does not provide explicit per-parameter explanations, but the essential meaning of all parameters is inferable.

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?

The description states a specific action ('Check') and resource ('whether a name validates DNSSEC') and adds the AD-bit criterion, which clearly separates it from the sibling dns_lookup. This is not a tautology or vague restatement of the tool name.

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

Usage Guidelines4/5

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

The description gives a concrete usage context: choose plain DNS vs. dot/doh 'when port 53 may be intercepted.' It does not explicitly list exclusions or alternative tools, but the transport comparison provides clear situational guidance.

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

health_checkA

Service health: version and which wrapped binaries are present on PATH.

Returns a fixed shape (status/service/version + backend fields) so a monitoring caller never has to branch on missing keys. status is "healthy" when every wrapped binary is found, "degraded" when at least one is missing (the corresponding tools will fail at call time).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden, and it does well by explaining the fixed return shape and the exact healthy/degraded semantics. It also tells the caller that missing binaries mean corresponding tools will fail at call time, which is valuable behavioral context.

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 description is compact and front-loaded: the first sentence states the core purpose, and the second paragraph adds the crucial return-shape and status semantics without any filler. Every sentence contributes useful information.

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-parameter, no-output-schema tool, the description is fairly complete: it names the top-level return fields and explains status values. The main gap is that 'backend fields' are not enumerated, but the overall behavior is still clear enough for an agent to invoke the tool correctly.

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?

There are zero parameters, so the baseline is 4. The input schema already documents this completely, and the description confirms no inputs are needed, which is sufficient.

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?

The description clearly identifies a specific resource (service health) and the operation: reporting version and which wrapped binaries are present on PATH. It also differentiates this tool from the network-diagnostic siblings by framing it as a meta/service-level check rather than a network operation.

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 intended use is implied: a monitoring caller should use this to check service health without branching on missing keys. However, it does not explicitly say when to prefer this over sibling tools or state any exclusions, leaving the guidance somewhat indirect.

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

http_checkB

HEAD/GET a URL and report status, redirect chain and latency.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/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 of behavioral disclosure. It does communicate the request method, the reported metrics, and that redirects are followed or tracked. It does not mention potential side effects of GET requests, timeout behavior, authentication requirements, or error handling, which are relevant for a network 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?

The description is a single, well-structured sentence that front-loads the action and lists the key outputs. Every phrase contributes meaning, and there is no redundant or filler content.

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 tool is simple and an output schema exists, so return-value details need not be in the description. Still, important context is missing: no guidance on when to prefer http_check over health_check, no timeout semantics, and no note on whether GET requests may trigger side effects. It is minimally viable but not complete.

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

Parameters2/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. It mentions 'a URL', which aligns with the required 'url' parameter, but it adds no meaning to the 'timeout' parameter, leaving units, interpretation, and behavior undocumented. The description adds only marginal value over the parameter names.

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 uses a specific verb and resource ('HEAD/GET a URL') and names concrete outputs: status, redirect chain, and latency. This makes the tool's HTTP-focused purpose clear, though it does not explicitly distinguish it from the similarly named 'health_check' sibling.

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 description implies the tool is for checking HTTP endpoints via HEAD or GET requests, and the sibling list suggests DNS, TCP, TLS, and other diagnostic alternatives. However, it does not provide explicit when-to-use or when-not-to-use guidance, leaving the agent to infer the appropriate context from the tool name and siblings.

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

http_getA

GET a URL and return the response body (text/JSON/XML only, capped at max_bytes, hard cap 1 MiB).

Use this to read a JSON endpoint or inspect an error page. For status/latency only, use http_check instead.

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
timeoutNo
max_bytesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden and does well: it discloses the accepted content types (text/JSON/XML only), the byte cap behavior, and a hard cap of 1 MiB, which are real limits an agent must know. It omits redirect handling, auth requirements, and non-2xx behavior, which keeps it short of a 5.

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 short sentences, front-loaded with the core behavior and limits, ending with the routing hint. Every clause earns its place with no filler.

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?

An output schema exists, so return values need not be described, and the description covers content types and size limits well. The remaining gap is the undocumented timeout parameter, which matters for an agent tuning request behavior.

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

Parameters2/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 for all three parameters. It explains max_bytes semantics (capped output, 1 MiB hard cap) but says nothing about the url format or the timeout unit/behavior, leaving two of three params undocumented anywhere.

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?

States a specific verb (GET) and resource (URL) and specifies what is returned (response body). It also names the sibling http_check and the scope it does not cover (status/latency only), so an agent can distinguish 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 Guidelines5/5

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

Explicitly says when to use it (read a JSON endpoint, inspect an error page) and names the alternative (http_check) with the condition that selects it (status/latency only). Nothing 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.

ping_hostB

ICMP ping a host or IP. count is clamped to 1-10.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
countNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/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 discloses the core behavior 'ICMP ping' and a notable constraint: 'count is clamped to 1-10.' However, it omits other operationally relevant details such as timeouts, permission requirements, or behavior on unreachable hosts.

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 description is two short sentences with no filler. The primary purpose is stated first, followed immediately by the single important parameter constraint. Every word 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 simple diagnostic tool with an output schema present, the description covers the essentials: what it pings and the count limit. It lacks guidance on choosing this tool among the sibling network diagnostics and does not mention edge-case behavior, but the scope is simple enough that the main gaps are about selection rather than 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?

Schema description coverage is 0%, but the description compensates by clarifying that 'host' accepts a hostname or IP address and that 'count' is clamped to 1-10. It does not explicitly say count is the number of ping packets, but that is strongly implied by context.

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 clearly states a specific action and target: 'ICMP ping a host or IP.' The protocol qualifier 'ICMP' helps distinguish it from siblings like http_check and tcp_port_check, though it does not explicitly name or contrast any sibling.

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 about when to choose this tool over alternatives such as tcp_port_check, http_check, or health_check. The description implies usage for ICMP reachability but provides no exclusions, prerequisites, or decision rules.

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

tcp_port_checkA

Check whether a TCP port is open (plain socket connect, no port scanning).

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
portYes
timeoutNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.9/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden for behavioral disclosure. It does reveal the mechanism ('plain socket connect') and expressly rules out scanning, but it does not mention timeout behavior, error/closed-port semantics, or other operational details that could affect the agent's expectation.

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 no wasted words. The core action is front-loaded, and the clarifying exclusion is concise and useful.

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 simple single-port connectivity check, the description is nearly sufficient, especially because an output schema exists. It lacks explicit timeout semantics and host resolution behavior, but these are relatively minor gaps for this straightforward tool.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not explain host, port, or timeout. The phrase 'TCP port' clarifies that port refers to a TCP port number, but no units for timeout, host format, or range constraints are provided, so the description adds little beyond the schema.

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?

The description uses a specific verb ('check'), a clear resource ('TCP port'), and a defined method ('plain socket connect'), making the tool's purpose immediately understandable. The explicit exclusion 'no port scanning' helps distinguish it from broader network-scanning tools and sibling diagnostics.

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

Usage Guidelines4/5

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

The description clearly indicates the tool is for checking whether a single TCP port is open, which gives strong contextual guidance for when to select it. It also explicitly excludes port scanning, but it does not name sibling tools or state when to prefer alternatives like http_check or ping_host.

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

tls_cert_checkA

Fetch the TLS certificate presented on host:port and report subject/issuer/validity/SANs.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
portNo

Output Schema

ParametersJSON 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 burden. It honestly conveys that this is a read-only network fetch and lists the returned certificate aspects. It does not disclose edge behavior such as whether the cert chain is validated, what happens with expired/cinvalid certs, or failure modes, but for a simple fetch/report tool the disclosed behavior is reasonably transparent.

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 states the operation first and then the output scope. There is no filler or repetition, every phrase 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?

The tool has only two parameters, one of which has a default, and an output schema exists, so the description does not need to enumerate return values. It covers the core operation but lacks explicit usage guidance and parameter conventions, making it minimally viable rather than richly complete.

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 compensate. It does clarify that the tool connects to 'host:port', giving meaning to both parameters. However, it does not explain host format, port range, or relationship to the default port, leaving most parameter detail to the schema's names and default.

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?

The description states a specific verb ('Fetch'), a concrete resource ('the TLS certificate presented on host:port'), and the reported fields (subject/issuer/validity/SANs). This clearly distinguishes the tool from sibling network checks like tcp_port_check or dns_lookup.

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 description implies usage: call this when you need TLS certificate details rather than just connectivity or DNS information. However, it does not explicitly state when not to use it or name an alternative tool, so the guidance is implicit rather than explicit.

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

traceroute_pathB

Path/MTU-style hop report via mtr --report (fixed cycles, not a live run). cycles clamped 1-10.

ParametersJSON Schema
NameRequiredDescriptionDefault
hostYes
cyclesNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burdin of behavior disclosure. It adds useful behavioral constraints: the tool runs `mtr --report` in fixed cycles (not live) and clamps cycles to 1-10. However, it does not mention that it relies on an external mtr command, potential permission/network requirements, timeouts, or result interpretation beyond the output schema.

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?

Very concise: a single sentence that fronts the core purpose and then adds a key behavioral constraint. Every phrase earns its place with no redundancy or fluff.

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 simple two-parameter tool with an output schema, the description provides the core function and a parameter constraint. However, it omits operational details that an agent would need, such as whether the tool depends on an external mtr binary, what network protocol it uses (ICMP/UDP), and potential timeout or failure behavior. These are not covered by annotations either.

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 compensate. It provides meaningful semantics for the `cycles` parameter by noting it is clamped to 1-10 and implies a fixed-cycle behavior. The `host` parameter is self-evident from the tool name and purpose. No detail on default values or special formats, but the essential meanings are conveyed.

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 function (Path/MTU-style hop report) via `mtr --report`, which clearly indicates a network path tracing/mtr tool. It is distinguishable from sibling tools like ping_host and dns_lookup by the focus on hop-level path reporting. Lacks an explicit verb like 'traces' or 'generates', but the noun phrase plus the mtr reference is clear enough.

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 explicit guidance on when to use this tool versus siblings like ping_host or health_check. The only contextual hint is 'fixed cycles, not a live run', which distinguishes it from an interactive/live traceroute but does not explain when an agent should choose this tool over alternatives.

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

whois_lookupC

WHOIS lookup for a domain.

ParametersJSON Schema
NameRequiredDescriptionDefault
domainYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

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

No annotations are present, so the description carries the full burden of disclosing behavioral traits. 'Lookup' implies a non-mutating network query, but the description does not mention rate limits, failure behavior, network dependency, or whether WHOIS data may be redacted or aggregated.

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

Conciseness3/5

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

The description is one short sentence with no wasted words, which is structurally clean. However, it is so sparse that it reads more like under-specification than a deliberately complete, well-structured help entry.

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?

Given that the tool has only one required parameter and an output schema exists, the minimal description is close to viable. Still, it lacks input-format guidance and any usage context relative to the sibling tools, leaving an agent to guess at correct invocation details.

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

Parameters2/5

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

Schema description coverage is 0%, so the description needed to compensate. It only repeats that the operation is 'for a domain' without adding format constraints like whether a bare domain is required, whether URLs/schemes are accepted, or whether IDN/punycode handling is supported.

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 uses a specific verb ('lookup') and resource ('domain') and names the WHOIS protocol, which distinguishes it from sibling tools like dns_lookup and tls_cert_check. It is clear, though minimal, and does not elaborate on what WHOIS data is actually returned.

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 about when to use this tool versus any of the sibling tools. It does not mention alternatives, exclusions, or typical use cases such as registrant/registration-status investigations, so the agent must infer applicability from the sibling names alone.

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. 2 tool updatesv0.6.0
    • Addedcurrent_time
    • Addedhttp_get
  2. 10 tool updatesv0.1.0
    • First observedasn_lookup
    • First observeddns_lookup
    • First observeddnssec_check
    • First observedhealth_check
    • First observedhttp_check
    • First observedping_host
    • First observedtcp_port_check
    • First observedtls_cert_check
    • First observedtraceroute_path
    • First observedwhois_lookup

TDQS

A3.8/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct network diagnostic action or resource: DNS resolution, DNSSEC validation, WHOIS, ASN, ping, TCP port, TLS certificate, traceroute, HTTP body retrieval, HTTP status/latency, service health, and time. The descriptions explicitly clarify potential overlaps, such as http_get vs http_check and dns_lookup vs dnssec_check. No two tools appear to do the same thing.

Naming Consistency4/5

All tool names use snake_case and are readable, with most following a subject_action pattern like dns_lookup, tcp_port_check, or tls_cert_check. Minor inconsistency exists because ping_host and traceroute_path use verb_noun ordering, and current_time is not action-oriented. Still, the convention is predictable overall.

Tool Count5/5

The server has 12 tools, which is well within the ideal 3–15 range and appropriate for a network diagnostic toolkit. Each tool covers a distinct protocol or diagnostic layer, and none feels redundant or excessive.

Completeness5/5

The surface covers core network diagnostics comprehensively: DNS record resolution and DNSSEC, WHOIS/ASN, ICMP ping, TCP port checks, traceroute/MTU, TLS certificate inspection, HTTP checks, and service health. No obvious lifecycle or operational gaps exist for a read-only diagnostic server.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    A
    quality
    D
    maintenance
    MCP server for DNS lookups, reverse DNS, WHOIS, and domain checks. Zero auth, zero config.
    5
    53 npm
    3
    MIT
  • A
    license
    A
    quality
    C
    maintenance
    Network diagnostics — ping, traceroute, DNS lookup, port scanning, and connectivity testing via MCP.
    14
    MIT
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for network diagnostics providing tools like ping, DNS lookup, port check, traceroute, speed test, Wake-on-LAN, SSL certificate check, and MAC address lookup.
    8
    MIT

Appeared in Searches