Skip to main content
Glama

Syncthing MCP

A configurable Model Context Protocol server for Syncthing, using the official Python MCP SDK. Supports stdio and authenticated Streamable HTTP, multiple instances, typed operations, bounded responses, and opt-in writes. Tested against Syncthing 2.1.5.

Read-only by default. Destructive and administrative operations require separate environment gates. Disabled tools are absent from discovery and rejected by the service layer. There is no arbitrary REST proxy.

Run

Python 3.12 or newer; install the locked release from this repository:

uv sync --locked --no-dev
export SYNCTHING_URL=http://127.0.0.1:8384
export SYNCTHING_MCP_API_KEY_FILE=/run/secrets/syncthing-api-key
uv run --no-sync syncthing-mcp

The default transport is stdio. Configure your MCP client to launch that command with these environment variables. Standard output is reserved for MCP messages.

For HTTP, add:

export SYNCTHING_MCP_TRANSPORT=http
export SYNCTHING_MCP_HOST=127.0.0.1
export SYNCTHING_MCP_PORT=8080
export SYNCTHING_MCP_AUTH_TOKEN_FILE=/run/secrets/mcp-bearer-token
export SYNCTHING_MCP_ALLOWED_HOSTS='["127.0.0.1:8080"]'
uv run --no-sync syncthing-mcp

Connect at http://127.0.0.1:8080/mcp with Authorization: Bearer <mcp-token>. Generate an independent random token of at least 32 characters; never reuse Syncthing's key. HTTP is stateless with JSON responses; standalone SSE GET and subscriptions are not supported. Both modern SDK v2 and actual SDK v1 clients are tested.

This static bearer mode is for trusted private deployments, not a full MCP OAuth authorization server. Use HTTPS at a reverse proxy for remote access, pass the Authorization header, set the exact external Host allowlist, and restrict network access. /healthz and /readyz are public, process-only health checks. They intentionally do not check Syncthing availability.

Published container: ghcr.io/sharkusmanch/syncthing-mcp. Use a release tag and verified digest, bind HTTP to 0.0.0.0 inside the container, run as UID/GID 10001, with a read-only filesystem and no capabilities. No Syncthing data volume is needed. The digest-pinned Chainguard Python runtime contains no shell or package manager; use python for operational probes.

Related MCP server: tailscale-mcp

Configure coverage and authority

All settings below use the SYNCTHING_MCP_ prefix unless shown otherwise. Lists accept JSON arrays (preferred) or comma-separated names. Unknown tool/group names and invalid booleans fail startup. Booleans accept exactly true or false.

Setting

Default / purpose

SYNCTHING_URL, SYNCTHING_API_KEY

Single backend URL and key; alternatively API_KEY_FILE

INSTANCES

JSON list of {name,url,api_key} or api_key_file; optional allowed_paths, path_style

TRANSPORT

stdio or http

HOST, PORT

127.0.0.1, 8080

AUTH_TOKEN, AUTH_TOKEN_FILE

HTTP client credential; supply only one

ALLOWED_HOSTS

Exact HTTP Host values, including port when present; set explicitly for HTTP clients

ALLOWED_ORIGINS

Empty; supplied Origin must match exactly, absent Origin is allowed

PROFILE

full; core reduces discovery to common monitoring/operational tools

GROUPS

Optional group allowlist; diagnostics excluded unless explicitly enabled

ENABLED_TOOLS

Optional exact tool allowlist, replacing profile selection but never bypassing permissions

DISABLED_TOOLS

Exact denylist, always wins

ALLOW_WRITES

false; permits ordinary mutations

ALLOW_DESTRUCTIVE

false; also requires writes; destructive calls require confirm=true

ALLOW_ADMIN

false; also requires writes; trust, sharing, security and global administration

ALLOWED_PATHS, PATH_STYLE

Single-instance destination roots; empty denies destination changes; posix default or windows

CA_FILE

Optional CA bundle for upstream HTTPS; certificate validation cannot be disabled

REQUEST_TIMEOUT, SCAN_TIMEOUT

30 / 300 seconds; overview shares one request deadline across all folder reads; scan has a longer finite deadline

MAX_REQUEST_BYTES

262144; HTTP body and tool argument budget

MAX_OUTPUT_BYTES

262144; HTTP response and tool-result budget

MAX_UPSTREAM_BYTES

4194304; maximum streamed upstream response

MAX_PAGE_SIZE

100; ceiling for list operations

CONCURRENCY

8; upstream calls and active HTTP request ceiling

HTTP_RATE_LIMIT

120 authenticated requests per minute, shared-principal token bucket

Examples:

# Small monitoring catalog:
export SYNCTHING_MCP_PROFILE=core
# Broader reads are the default. Exact exclusions can narrow them:
export SYNCTHING_MCP_DISABLED_TOOLS='["syncthing_events","syncthing_disk_events"]'
# Ordinary writes, without destructive or administrative authority:
export SYNCTHING_MCP_ALLOW_WRITES=true

Multiple instances:

[
  {"name":"hub","url":"https://syncthing.example:8384","api_key_file":"/run/secrets/hub-key"},
  {"name":"lab","url":"http://syncthing-lab:8384","api_key_file":"/run/secrets/lab-key","allowed_paths":["/data"],"path_style":"posix"}
]

One bearer authorizes all configured instances. Read calls without an instance select the first configured instance; writes require an explicit instance when more than one exists. There are no per-user or per-folder read ACLs. Use separate deployments for separate trust domains. Path roots constrain destination changes, not data visibility; they are lexical checks, not protection against symlinks on the remote host.

See coverage for tool names and exclusions, mutation policy for accepted fields and outcomes, and security for the trust boundary.

Results and token use

Discovery is deterministic and paginated. Lists return bounded pages with returned, next_cursor, truncated, and pagination semantics. fields selects top-level fields after safe configuration projection; it cannot recover hidden secrets. Offset pages reflect live state and are not stable snapshots. Event retention can create gaps; event results report completeness limitations explicitly.

Overview returns partial: true when folder status reads fail or exhaust its aggregate request deadline. Completed statuses are retained, unavailable statuses are null, and deadline_exceeded distinguishes budget exhaustion. Failure before the initial system/folder snapshot returns an error.

Configuration credentials and unknown configuration fields are omitted. Diagnostic tools expose potentially sensitive operational text and are off by default. Known-secret redaction is defense in depth; arbitrary remote text is untrusted data, never an instruction to the client.

Tool output includes structured content and compact JSON text for older clients. Errors use isError and sanitized codes. Oversized results return an actionable error instead of malformed/truncated JSON. Complete HTTP envelopes are capped, including SDK metadata and reflected request IDs. The official stdio transport reads complete lines before validation: its framing and request IDs are not protected by the HTTP byte cap. Stdio is intended for a trusted local parent process; tool argument/result limits still apply.

Measured catalog/result sizes and the reproducible measurement command are recorded in efficiency. Bytes are reported directly; token counts depend on the client's tokenizer.

Build, verify and maintain

uv sync --locked --group dev --group build
uv run ruff check .
uv run ruff format --check .
uv run mypy src
uv run pytest --cov=syncthing_mcp --cov-branch --cov-fail-under=80
uv run --project tests/legacy-client --locked python scripts/legacy_smoke.py --server-python "$PWD/.venv/bin/python"
sh scripts/install-test-syncthing.sh /tmp/syncthing-fixture
SYNCTHING_TEST_BINARY=/tmp/syncthing-fixture/syncthing-linux-amd64-v2.1.5/syncthing uv run pytest tests/test_live_syncthing.py
uv sync --locked --group dev --group build
uv build --no-build-isolation

The live test creates a temporary Syncthing profile, disables discovery/relays/NAT/upgrades, removes default folders, and only mutates disposable data. CI gates releases on those tests, Python 3.12/3.14, lint, types, coverage, runtime dependency auditing, and a restricted container smoke test.

Release workflow builds linux/amd64 and linux/arm64 images, emits per-platform BuildKit SBOM/provenance, scans both platform digests, signs the multiarch index with GitHub artifact attestations, verifies it, then promotes that exact digest to release tags. Release verification explains independent verification. Renovate GitHub App configuration maintains dependencies, lockfiles, Action SHAs and image digests; automerge is disabled.

MIT licensed. This project is independently maintained and is not an official Syncthing project.

Available Tools

40 tools
syncthing_configD
Read-only

Config.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds zero behavioral context beyond that — no mention of what fields/instance select, no read semantics, nothing.

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

Conciseness1/5

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

"Config." is not concise but under-specified — it conveys no information and is not front-loaded with anything usable. There is nothing here that earns its place.

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

Completeness1/5

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

For a tool with two undocumented parameters, no output schema, and no annotation-explained scope, the description is completely inadequate. It gives the agent nothing to invoke the tool correctly.

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

Parameters1/5

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

Two parameters (fields, instance) exist with 0% schema description coverage, and the description says nothing about them. The agent gets no hints on what 'fields' filters or what 'instance' refers to.

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

Purpose1/5

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

The description is the single word "Config.", which merely restates part of the tool name and conveys no verb or scope. With four sibling config tools (syncthing_device_config, syncthing_folder_config, syncthing_gui_config, syncthing_ldap_config), an agent cannot tell what distinguishes this

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

Usage Guidelines1/5

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

There is no guidance at all about when to use this tool, when not to, or which sibling config tool it replaces. The one-word description leaves the agent with no routing information.

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

syncthing_device_configD
Read-only

Device config.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes
fieldsNo
instanceNo

TDQS

D1.1/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, but the description adds zero behavioral context beyond them. It does not say whether it reads or mutates config, what it returns, or any instance-scoping behavior, so it contributes nothing to understanding the operation.

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

Conciseness2/5

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

It is extremely short, but this is under-specification rather than conciseness - the two-word fragment carries no usable information. There is no structure or front-loaded content to reward.

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

Completeness1/5

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

For a 3-parameter tool with no schema descriptions, no output schema, and no annotations covering parameter meaning, the description is completely inadequate. An agent cannot determine what this tool returns or how to shape its arguments.

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

Parameters1/5

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

Schema description coverage is 0% across 3 parameters (device, fields, instance), so the description must compensate and does not. Nothing explains what 'device' identifies, what 'fields' filters, or what 'instance' selects.

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

Purpose1/5

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

The description 'Device config.' is a bare noun phrase that merely restates the tool name syncthing_device_config. It gives no verb, no scope, and no way to distinguish it from siblings like syncthing_device_defaults, syncthing_devices, or syncthing_folder_config.

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

Usage Guidelines1/5

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

There is no guidance whatsoever about when to use this tool, when not to, or which sibling to prefer for related device/config queries. The agent is left to guess entirely.

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

syncthing_device_defaultsD
Read-only

Device defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is known, yet the description adds zero behavioral context beyond that. It says nothing about what is returned, whether defaults are per-instance, or how it differs from live config.

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

Conciseness2/5

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

It is only two words, so there is no filler to trim, but this is under-specification rather than conciseness. Brevity here is a defect, not a virtue.

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

Completeness1/5

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

For a tool with two undocumented parameters, no output schema, and a broad neighboring toolset, the description leaves everything an agent needs unresolved. It is not remotely complete.

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

Parameters1/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 mention either parameter. 'fields' (a field-selector list) and 'instance' (instance selection) are completely undocumented in both schema and description.

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

Purpose2/5

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

The description 'Device defaults.' merely restates the tool name and does not state a verb or resource action (e.g. 'Read the default device configuration template'). It gives no way to distinguish this from the many sibling tools such as syncthing_device_config or syncthing_folder_defaults.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no mention of alternatives like syncthing_device_config or syncthing_folder_defaults, and no stated preconditions. An agent has nothing to route on.

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

syncthing_devicesD
Read-only

Devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. However, the description adds nothing beyond that: no mention of pagination behavior, what is enumerated, or the remote/open-world nature of the call implied by openWorldHint.

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

Conciseness1/5

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

One word is short but not concise in a useful sense — it is under-specification rather than economy. There is no front-loaded statement of purpose to build on.

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

Completeness1/5

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

For a tool with four undocumented parameters, no output schema, and a large family of near-identically named device/folder siblings, the description is completely inadequate. An agent has no basis for selecting or correctly invoking this tool.

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

Parameters1/5

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

Schema description coverage is 0% across all four parameters (limit, cursor, fields, instance). The description does not name, explain, or hint at any of them, so pagination via limit/cursor and field projection via fields are entirely undocumented.

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

Purpose1/5

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

The description is the single word "Devices.", which merely restates the tool name syncthing_devices. It gives no verb and no indication of what is being done with devices (list, fetch, summarize), so an agent cannot distinguish it from syncthing_device_config, syncthing_device_defaults, syncthing_device_statistics, or syncthing_pending_devices.

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

Usage Guidelines1/5

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

There is no guidance whatsoever about when to use this tool, when not to, or which sibling to prefer for device-related data. The agent must guess based on the name alone.

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

syncthing_device_statisticsD
Read-only

Device statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations cover the safety profile (readOnlyHint=true, openWorldHint=true, destructiveHint=false), so that burden is lifted. However, the description offers nothing beyond that: no mention of pagination behavior, what statistics are returned, or the open-world implication of querying live device data. For a tool with zero added context, a 2 is appropriate.

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

Conciseness2/5

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

Two words are maximally concise but at the cost of meaning — this is under-specification masquerading as conciseness. There is nothing to front-load because nothing substantive is provided.

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

Completeness1/5

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

For a 4-parameter tool with 0% schema coverage, no output schema, and no explanation of return values, the description is completely inadequate. An agent cannot determine what statistics are returned, how to filter them, or how to interpret the paginated result.

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

Parameters1/5

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

Schema description coverage is 0% across 4 parameters (limit, cursor, fields, instance), so the description must compensate but instead says nothing. An agent gets no explanation of whether 'instance' refers to a device identifier, what 'fields' can contain, or how cursor pagination works. This is a serious gap.

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

Purpose2/5

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

The description "Device statistics." is essentially a tautology that restates the tool name verbatim, adding no verb or scope detail. It's unclear whether this returns per-device transfer stats, connection stats, or something else, and it doesn't distinguish itself from sibling statistics tools like syncthing_folder_statistics.

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

Usage Guidelines1/5

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

There is no guidance whatsoever on when to use this tool versus alternatives such as syncthing_folder_statistics, syncthing_devices, or syncthing_system_connections. The agent must guess based on the name alone.

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

syncthing_disk_eventsD
Read-only

Disk events.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
eventsNo
fieldsNo
timeoutNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing on top of that: it does not say whether events are streamed, polled, buffered, or how limit/since/timeout affect behavior, which are exactly the traits an agent needs for this endpoint.

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

Conciseness2/5

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

It is short, but that brevity is under-specification rather than conciseness. Two words carry no informational value and are not front-loaded around any actionable content.

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

Completeness1/5

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

For a six-parameter, zero-coverage tool with no output schema and a large sibling family, the description is completely inadequate. It leaves the agent with no basis for selecting or invoking the tool correctly.

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

Parameters1/5

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

Six parameters with 0% schema description coverage and no default-help beyond field titles; the description mentions none of them. limit, since, events, fields, timeout, and instance are left entirely unexplained in both structured and unstructured data.

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

Purpose2/5

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

'Disk events.' is effectively a restatement of the tool name with no verb, no scope, and no indication of what a 'disk event' contains or how it differs from the sibling syncthing_events or syncthing_local_changes. An agent cannot distinguish this from other event-related tools.

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

Usage Guidelines1/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 tool, what problem it solves, or how it relates to the numerous sibling tools. No alternatives or conditions are mentioned at all.

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

syncthing_eventsD
Read-only

Events.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
sinceNo
eventsNo
fieldsNo
timeoutNo
instanceNo

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true and destructiveHint=false, so the safety profile is covered by structured data. The description adds nothing beyond that, not even the long-poll/timeout semantics implied by the 'timeout' parameter, so it contributes no behavioral context of its own.

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

Conciseness2/5

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

A single word is technically terse, but this is under-specification rather than conciseness. Nothing is front-loaded because there is no content to front-load.

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

Completeness1/5

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

For a six-parameter, open-world, event-streaming tool with no output schema, the description is completely inadequate. An agent cannot determine return shape, pagination behavior, or how the since/limit/timeout parameters interact.

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

Parameters1/5

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

Six parameters (limit, since, events, fields, timeout, instance) are present with 0% schema description coverage, so the description carries the full burden of explaining them. "Events." explains none of them, leaving filters, pagination and the timeout semantics undocumented anywhere.

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

Purpose1/5

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

The description is the single word "Events.", which merely restates the tool name and gives no verb or resource specificity. It does not distinguish this tool from siblings like syncthing_disk_events or syncthing_local_changes, leaving an agent unable to tell what it actually returns.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool, what alternatives exist, or what conditions select it. With such a large sibling set of event/status tools, this omission is severe.

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

syncthing_file_metadataD
Read-only

File metadata.

ParametersJSON Schema
NameRequiredDescriptionDefault
fileYes
fieldsNo
folderYes
instanceNo

TDQS

D1.1/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, but the description adds nothing on top of them: no mention of folder/instance scoping, whether the file must exist, or how missing files are reported. With the safety profile already covered by annotations, the remaining behavioral burden is entirely unmet.

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

Conciseness2/5

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

Two words contain no waste, but this is under-specification rather than conciseness; the fragment fails to convey any actionable information.

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

Completeness1/5

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

A four-parameter, two-required read tool with 0% schema coverage, no output schema, and no annotations detail in the description leaves the agent without the information needed to call it correctly.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters, and the description supplies no meaning for folder, file, fields, or instance. In particular the purpose of the 'fields' projection parameter and the multi-instance 'instance' selector are completely undocumented.

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

Purpose1/5

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

"File metadata." is a tautological restatement of the tool name (syncthing_file_metadata) rather than a statement of what the tool does. It names no verb and gives no way to distinguish this from sibling syncthing_file_versions or syncthing_needed_files.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool, when not to, or which sibling handles related needs such as version history or needed files. The agent is left to infer everything from the name.

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

syncthing_file_versionsD
Read-only

File versions.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
folderYes
instanceNo

TDQS

D1.3/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, openWorldHint=true, so the safety profile is covered, but the description adds nothing on top: no pagination behavior, no auth/instance requirements, no note on what version set is returned. It contributes zero behavioral context beyond the structured fields.

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

Conciseness2/5

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

Two words is technically brief, but this is under-specification rather than conciseness; there is no front-loaded verb or scope sentence that earns its place. Mirrors the calibration's 'Process' case.

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

Completeness1/5

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

For a 5-parameter, paginated, folder-scoped query tool with no output schema and no parameter documentation, the description is wholly inadequate. An agent cannot form a correct call from it.

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

Parameters1/5

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

Schema description coverage is 0% across 5 parameters (folder, limit, cursor, fields, instance). The short description mentions no parameter at all, so an agent gets no meaning for required 'folder', the cursor/limit paging contract, or the 'fields' projection list.

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

Purpose2/5

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

"File versions." is a noun phrase that essentially restates the tool name rather than stating an action. It signals the resource (file version history) but gives no verb, no scope, and no way to distinguish it from siblings like syncthing_file_metadata or syncthing_folder_browse.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool, when not to, or which sibling to prefer. With 37 sibling tools in the family, the absence of routing information is a serious gap.

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

syncthing_folder_browseD
Read-only

Folder browse.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
folderYes
levelsNo
prefixNo
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing on top: it does not say whether browsing hits the local or a remote instance, whether the folder must exist/be configured, how recursion via levels behaves, or how pagination via cursor/limit is surfaced.

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

Conciseness2/5

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

It is short, but brevity here reflects under-specification rather than economy: two words that carry no actionable content and are not front-loading anything useful.

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

Completeness1/5

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

For a read tool with seven parameters, pagination, recursion depth, and field selection, plus no output schema to explain returns, two words are wholly inadequate. An agent cannot determine what will be browsed or what comes back.

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

Parameters1/5

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

Seven parameters (folder, prefix, levels, limit, cursor, fields, instance) with 0% schema description coverage, and the description explains none of them. Terms like levels (recursion depth) and prefix (path scoping) are non-obvious and go completely undefined, so the description fails to compensate for the schema gap.

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

Purpose2/5

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

"Folder browse." is essentially a restatement of the tool name (syncthing_folder_browse) with no distinguishing detail. It does not explain what browsing returns (directory listing? sync state? file tree?) or how it differs from siblings like syncthing_folder_status, syncthing_folder_completion, or syncthing_local_changes.

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, prerequisites, or alternatives are given. It is not misleading, just silent, so this is pure absence of guidance rather than an error.

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

syncthing_folder_completionD
Read-only

Folder completion.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceNo
fieldsNo
folderYes
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond them — no indication of whether results are per-device, whether they reflect live state, or what the completion percentage refers to.

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

Conciseness2/5

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

The description is short but only because it is under-specified rather than efficient; two words that duplicate the tool name carry no information. Brevity here is a symptom, not a virtue.

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

Completeness1/5

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

With four undocumented parameters, no output schema, and no annotations beyond the generic read-only hints, the description is completely inadequate for an agent to invoke this tool correctly. Nothing about scope, defaults, or return shape is conveyed.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters, and the description supplies none of the missing meaning for folder, device, fields, or instance. In particular, the relationship between the required 'folder' and optional 'device' scope is left entirely undefined.

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

Purpose2/5

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

"Folder completion" merely restates the tool name and names a resource without stating what operation it performs or what it returns. It never says whether this reports sync completion status, triggers completion, or configures completion, so an agent cannot tell what calling it actually does.

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 use this tool versus siblings such as syncthing_folder_status or syncthing_folder_statistics, nor any prerequisites or exclusions. Nothing in the description helps an agent route here over the many other folder-related tools.

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

syncthing_folder_configD
Read-only

Folder config.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
folderYes
instanceNo

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is clear. However, the description adds zero behavioral context beyond that – it doesn't say what configuration data is returned, whether instances are required, or any other operational trait. No contradiction with annotations.

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

Conciseness2/5

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

Two words that are far too terse to be useful; this is under-specification rather than conciseness. The description fails to front-load any useful information because there is none to front-load.

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

Completeness1/5

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

For a tool that likely retrieves folder configuration with three parameters and no output schema, the description is completely inadequate. It leaves the agent unable to invoke the tool correctly or understand its role among 39 sibling tools.

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

Parameters1/5

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

Schema description coverage is 0% across three parameters (folder, fields, instance), and the description says nothing about any parameter. With low schema coverage, the description must compensate, but it provides no semantic detail whatsoever.

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

Purpose1/5

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

Description is 'Folder config.' – a noun phrase that restates the tool name without a verb, scope, or any distinguishing detail. It reads as a label rather than a purpose statement, leaving the agent unable to tell what the tool does or how it differs from sibling tools like syncthing_folder_defaults or syncthing_config.

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

Usage Guidelines1/5

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

No guidance whatsoever on when to use this tool versus the many sibling folder/config tools. There are no prerequisites, exclusions, or alternative suggestions.

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

syncthing_folder_defaultsD
Read-only

Folder defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered by structured data. The description adds nothing beyond that — no note on whether defaults are instance-specific, how the optional instance parameter affects scope, or what the OpenWorld behavior means here. It does not contradict the annotations, but it contributes zero 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.

Conciseness2/5

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

Two words is short, but this is under-specification rather than conciseness — there is no front-loaded statement of action or result to be concise about. The single fragment carries no information beyond the tool name.

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

Completeness1/5

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

With no output schema and no description of return values, an agent has no idea what this read operation yields (a config object? a list of field names? defaults for which instance?). For a two-parameter tool with zero parameter documentation, the definition is completely inadequate.

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?

Both parameters ('fields' and 'instance') have 0% schema description coverage and receive no explanation in the description. The optional 'fields' array (max 30 items) and the 'instance' selector are left entirely unexplained, so the description fails to compensate for the documentation gap.

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

Purpose2/5

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

"Folder defaults." is a noun phrase that essentially restates the tool name (syncthing_folder_defaults) without stating a verb or what is actually returned. An agent cannot tell from this whether it fetches default folder configuration, resets folders to defaults, or lists default settings — and it is not distinguished from siblings like syncthing_folder_config or syncthing_ignore_defaults.

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 when-to-use guidance, no mention of alternatives such as syncthing_folder_config, and no stated preconditions. The description offers no signal about when this tool should be preferred over the many other folder-related siblings.

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

syncthing_folder_errorsD
Read-only

Folder errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
folderYes
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that — no indication of what error records contain, whether results are paginated, or how errors are scoped to a folder.

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

Conciseness2/5

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

Two words is not conciseness but under-specification; nothing is front-loaded because nothing is said. The text is trivially short yet conveys no usable information.

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

Completeness1/5

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

A five-parameter, paginated read tool with no output schema and no annotation-level detail demands far more than a two-word description. An agent has no basis to construct a correct call beyond guessing from parameter names.

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

Parameters1/5

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

Schema description coverage is 0% across five parameters (folder, instance, limit, cursor, fields), and the description compensates for none of it. It does not explain that folder is required, that instance selects among configured Syncthing instances, or how cursor/limit drive pagination.

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

Purpose2/5

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

The description "Folder errors." merely restates the tool name (syncthing_folder_errors) without a verb or any statement of what action is performed. An agent cannot tell whether it lists, retrieves, or clears folder errors, nor how it differs from the many sibling folder_* and system_errors tools.

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 when-to-use guidance, no mention of alternatives such as syncthing_system_errors or syncthing_folder_status, and no prerequisites. The agent receives no signal for when this tool is the right choice.

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

syncthing_foldersD
Read-only

Folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered externally. However, the description adds nothing at all beyond that, not even that this is a paged listing of configured folders. There is no contradiction with the annotations, so it is not a 1.

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

Conciseness2/5

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

A single word is not conciseness but under-specification. There is no structure, front-loading, or content to evaluate, so brevity here is a defect rather than a virtue.

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

Completeness1/5

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

For a paged list endpoint with four undocumented parameters, an open-world read annotation, and no output schema, the description is completely inadequate. An agent cannot call this correctly on the basis of the definition.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters (limit, cursor, fields, instance), and the description provides no compensating explanation. Nothing tells the agent what 'fields' or 'instance' select or how pagination works.

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

Purpose1/5

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

"Folders." is a tautology that merely restates the tool name's resource with no verb and no scope. It does not distinguish this tool from siblings like syncthing_folder_config, syncthing_folder_status, or syncthing_folder_defaults.

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

Usage Guidelines1/5

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

The description offers no when-to-use guidance, no prerequisites, and no mention of alternatives. An agent has no basis for choosing this over the many folder-related siblings.

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

syncthing_folder_statisticsD
Read-only

Folder statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered externally. The description adds nothing beyond them — no indication that results are paged, what the stats represent, or any freshness/aggregation behavior. With annotations reducing the bar, a total absence of added context still warrants a low score.

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

Conciseness2/5

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

Two words is not conciseness here but under-specification: there is no content to be front-loaded. Nothing is wasted, but nothing is said, so it scores at the level of the tautological 'Process' example rather than earning credit for tight writing.

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

Completeness1/5

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

For a paginated read tool with four undocumented parameters, no output schema, and no annotations explaining return shape, the description is completely inadequate. An agent gets no information about what statistics are returned or how to page through them.

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

Parameters1/5

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

All four parameters (limit, cursor, fields, instance) have 0% schema description coverage, and the description provides no explanation of any of them. Pagination semantics (cursor format, max limit of 1000, field projection, instance scoping) are entirely undocumented, so the description does not compensate for the coverage gap at all.

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

Purpose2/5

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

The description 'Folder statistics.' is a noun phrase that merely restates the tool name, with no verb and no statement of what is actually returned or computed. It fails to distinguish this tool from close siblings such as syncthing_device_statistics, syncthing_folder_status, or syncthing_folder_completion, so an agent cannot tell them apart from the text alone.

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 when-to-use, when-not-to-use, or alternative-tool guidance of any kind. The noun 'Folder statistics' at best vaguely implies the domain, but nothing routes the agent between this and the many other syncthing statistics/status tools.

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

syncthing_folder_statusD
Read-only

Folder status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
folderYes
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. However, the description adds nothing beyond that: it does not say what "status" contains (state, errors, sync progress), whether the target folder must exist, or how the instance parameter affects routing.

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

Conciseness2/5

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

Two words are short, but this is under-specification rather than conciseness. There is nothing front-loaded because there is essentially no content.

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

Completeness1/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 annotation detail on return shape, yet the description never explains what status data comes back or in what form. For a tool whose entire value is its returned payload, this leaves the agent unable to predict the result.

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

Parameters1/5

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

Schema description coverage is 0% across three parameters, so the description carries the full burden of explaining them. It mentions none: neither the required folder identifier, the optional fields projection, nor the optional instance selector is clarified anywhere.

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

Purpose2/5

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

"Folder status." merely restates the tool name (syncthing_folder_status) with no verb or scope added. It does not distinguish itself from nearby siblings like syncthing_folder_statistics, syncthing_folder_config, or syncthing_folder_completion, all of which could plausibly return "folder status."

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 the many folder-related siblings. There is no mention of prerequisites (e.g., a configured folder ID), exclusions, or which situations this tool is meant for.

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

syncthing_gui_configD
Read-only

Gui config.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1/5.0
Behavior1/5

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

The description adds nothing beyond what annotations already state. With readOnlyHint=true it is a safe read, but the description gives no indication of what configuration is read, its scope, or the instance selection behavior, leaving the behavioral burden entirely on the structured metadata.

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

Conciseness1/5

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

Two words that convey no actionable information. This is under-specification, not conciseness; there is no structure or front-loaded content to evaluate.

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

Completeness1/5

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

A 2-parameter config-access tool with no output schema and no annotations explaining behavior needs a description that at least names the resource and its parameters. This one supplies none of that.

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

Parameters1/5

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

Schema description coverage is 0% for two parameters (fields, instance). The description must compensate and does not — "fields" (a list of up to 30 strings) and "instance" (a string identifier) are completely unexplained.

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

Purpose1/5

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

"Gui config." merely restates the tool name (syncthing_gui_config) without a verb or any indication of whether it reads, writes, or otherwise manipulates GUI configuration. It cannot be distinguished from siblings such as syncthing_config, syncthing_ldap_config, or syncthing_folder_config.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool versus the many sibling *_config tools. No context, prerequisites, or alternatives are mentioned.

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

syncthing_ignore_defaultsD
Read-only

Ignore defaults.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is known. The description adds nothing beyond that: no indication of what data is returned, whether it reads Syncthing's built-in ignore defaults, or how instances/fields affect behavior.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness. The single fragment carries no usable information.

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

Completeness1/5

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

A tool with two parameters at 0% schema coverage, no output schema, and only a two-word description leaves the agent unable to determine the operation's semantics or result. It is not complete enough to call correctly.

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

Parameters1/5

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

Schema description coverage is 0% with two undocumented parameters (fields, instance), and the description mentions neither. It provides no meaning for what 'fields' selects or what 'instance' scopes.

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

Purpose2/5

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

"Ignore defaults." is a fragment that essentially restates the tool name without a verb or object. It never states whether it returns default ignore patterns, resets them, or toggles ignoring of defaults, and it does not differentiate from siblings like syncthing_ignores or syncthing_folder_defaults.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no conditions, and no mention of any alternative tool. An agent has no basis for choosing this over syncthing_ignores.

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

syncthing_ignoresD
Read-only

Ignores.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
folderYes
instanceNo

TDQS

D1/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, but the description adds zero behavioral context — no indication of scope, that results are per-folder, pagination, or what an empty result means. The one word 'Ignores' could even be misread as a mutating action, only corrected by the annotations.

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

Conciseness1/5

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

This is not conciseness but under-specification: a single dangling word with a period carries no useful information and cannot be considered front-loaded content.

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

Completeness1/5

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

With no output schema, 0% parameter coverage, and no annotations beyond safety hints, the description leaves the agent with no way to call this tool correctly or interpret results.

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

Parameters1/5

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

Schema description coverage is 0% and the description mentions nothing about the three parameters (folder required, fields, instance). For a tool with an undocumented folder/instance/fields triple, the description should compensate but does not.

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

Purpose1/5

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

The description is a single word, 'Ignores.', which merely restates the tool name without stating a verb+resource or what is actually listed/returned. An agent cannot tell from this that it deals with Syncthing folder ignore patterns, nor distinguish it from siblings like syncthing_ignore_defaults or syncthing_folder_config.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no mention of alternatives, prerequisites, or exclusions. Nothing routes the agent between this tool and the many sibling tools.

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

syncthing_instancesC
Read-only

Discover configured instance aliases and active permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered structurally. The description adds only that permissions are 'active' (i.e., live state), and says nothing about auth requirements, caching, or result shape.

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 no filler and the key noun ('instance aliases and active permissions') up front. It is efficient, though its brevity is partly the source of the gaps elsewhere.

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

Completeness2/5

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

With no output schema, two undocumented parameters, and no annotations-level detail about the return value, the one-line description leaves the agent guessing what a call actually yields and how to filter it. For a discovery tool with filtering parameters this is under-specified.

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% for two parameters ('fields', 'instance') and the description never mentions either. It does not explain that 'fields' selects which attributes are returned or that 'instance' scopes the query, leaving both parameters semantically opaque.

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 ('Discover') plus the resources it returns ('instance aliases and active permissions'), which is more informative than the bare name. It does not, however, differentiate itself from siblings like syncthing_devices or syncthing_config, which could plausibly overlap.

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 indication of when this tool should be chosen over the many sibling listing tools, nor any preconditions or exclusions. The agent must infer usage entirely from the name.

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

syncthing_languagesD
Read-only

Languages.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.1/5.0
Behavior1/5

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

Annotations declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, but the description adds no behavioral context whatsoever — no indication of what is returned, whether it depends on instance, or what the openWorld call actually reaches.

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

Conciseness2/5

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

A single word plus a period is underspecification rather than conciseness; there is nothing front-loaded because there is nothing substantive at all.

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

Completeness1/5

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

For a tool with two undocumented optional parameters, no output schema, and no useful description, an agent has no basis for calling it correctly or interpreting the result.

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

Parameters1/5

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

Schema description coverage is 0% for two parameters (fields, instance), and the description does not mention either. 'fields' presumably selects returned fields and 'instance' the target server, but nothing confirms this.

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

Purpose1/5

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

"Languages." is a tautological restatement of the tool name syncthing_languages. It names no verb and no resource scope, so an agent cannot tell whether it lists GUI translations, device languages, or config language settings, nor distinguish it from 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 Guidelines1/5

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

There is no when-to-use guidance, no prerequisites, and no mention of any alternative tool. The agent has nothing to route on beyond the name.

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

syncthing_ldap_configD
Read-only

Ldap config.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is known without the description. However, the description adds nothing beyond that: it doesn't say whether this returns the configured LDAP settings, whether it is per-instance, or whether credentials are involved, despite openWorldHint suggesting external interaction.

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

Conciseness2/5

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

The description is only two words, but this is under-specification rather than conciseness. It is front-loaded only in the sense that there is nothing else to say.

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

Completeness1/5

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

With two undocumented parameters, no output schema, and no useful description, the definition is inadequate. For a tool sitting among 39 Syncthing siblings, an agent has no basis for selecting or correctly invoking it.

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

Parameters1/5

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

Schema description coverage is 0% and neither 'fields' nor 'instance' is documented in the schema. The description contributes zero meaning for either parameter, leaving the agent unable to know what 'fields' selects or what an 'instance' identifier refers to.

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

Purpose2/5

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

The description 'Ldap config.' merely restates the tool name and does not state a verb or what operation is performed. It is a near-tautology: the agent learns only that LDAP configuration is involved, not whether it reads, lists, or sets it.

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

Usage Guidelines1/5

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

No guidance whatsoever on when to use this tool versus the many siblings such as syncthing_config, syncthing_gui_config, or syncthing_instances. No preconditions, exclusions, or alternatives are mentioned.

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

syncthing_local_changesD
Read-only

Local changes.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
folderYes
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds no behavioral detail such as whether results are paginated or folder-scoped, leaving it nearly content-free beyond the read-only signal provided by annotations.

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

Conciseness2/5

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

Two words that carry no information; this is under-specification rather than conciseness. There is no front-loaded statement of purpose or scope because there is no content.

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

Completeness1/5

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

A paginated, folder-scoped read tool with a required parameter, a cursor/limit paging model, and no output schema needs far more than a fragment. Nothing tells the agent what a "local change" is, what fields come back, or how paging works.

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

Parameters1/5

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

Schema description coverage is 0% and the description supplies no parameter meaning at all. Five parameters (limit, cursor, fields, folder, instance) are entirely undocumented, including the required folder argument, so the description does nothing to compensate.

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

Purpose2/5

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

"Local changes." essentially restates the tool name without stating a verb or scope. It does not distinguish this from siblings like syncthing_needed_files or syncthing_folder_status, so an agent cannot tell what this actually retrieves.

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

Usage Guidelines1/5

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

No when-to-use guidance, no prerequisites, and no reference to any of the 40+ sibling tools. The agent has nothing to route on beyond the name itself.

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

syncthing_needed_filesD
Read-only

Needed files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
folderYes
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, covering the safety profile. The description adds nothing beyond that - no mention of pagination, syncing states, or what 'needed' files represent - so it contributes zero 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.

Conciseness2/5

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

Two words are technically short, but this is under-specification rather than conciseness - there is no front-loaded statement of purpose or scope to anchor the call.

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

Completeness1/5

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

For a 5-parameter, paginated, folder-scoped query with no output schema, the description is completely inadequate. An agent cannot determine what a 'needed' file is, how pagination works, or how results differ from related sibling tools.

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

Parameters1/5

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

With 5 parameters and 0% schema description coverage, the description carries the full explanatory burden yet says nothing about folder, limit, cursor, fields, or instance. The required 'folder' parameter and the pagination controls (limit/cursor) are entirely undocumented.

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

Purpose2/5

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

The description 'Needed files.' merely restates the tool name syncthing_needed_files without a verb, scope, or the folder context implied by the schema's required 'folder' parameter. It does not distinguish this tool from the sibling syncthing_remote_needed_files, leaving the agent unable to tell what 'needed' means or where it applies.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool, when not to, or how it relates to syncthing_remote_needed_files or syncthing_folder_status. The agent is given no routing guidance whatsoever.

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

syncthing_optionsD
Read-only

Options.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond that — it does not say what options are read, from where, or in what shape, leaving the annotation-derived picture as the only behavioral information.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness. A single noun phrase carries no front-loaded intent and earns its place only by being trivially short.

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

Completeness1/5

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

For a two-parameter tool with no output schema, no parameter descriptions, and no annotations covering semantics, the description is completely inadequate. An agent cannot determine what is returned or how the parameters shape the request.

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

Parameters1/5

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

Schema description coverage is 0% for both parameters. The description does not mention "fields" or "instance" at all, so there is no explanation of what these parameters mean, what values are valid, or how they interact — no compensation for the coverage gap.

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

Purpose1/5

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

The description is the single word "Options.", which merely restates the tool name and conveys no verb, resource, or scope. It does not distinguish this tool from siblings like syncthing_config, syncthing_gui_config, or syncthing_folder_config, all of which plausibly expose "options".

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

Usage Guidelines1/5

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

There is no guidance whatsoever on when to use this tool, when not to, or which sibling to prefer. An agent has no basis to choose this over the many config-related siblings.

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

syncthing_overviewC
Read-only

Bounded overview of this instance and folder synchronization state.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

C2.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered. The word 'bounded' hints at pagination behavior, which is a small but real addition, yet nothing is said about what the overview returns, how it aggregates instance and folder data, or how pagination terminates.

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 front-loaded sentence with no filler is structurally efficient. It is arguably too terse for the information load, but there is no wasted verbosity to penalize.

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

Completeness2/5

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

An aggregate tool with four undocumented parameters, no output schema, and dozens of overlapping siblings needs more than one sentence. Nothing tells the agent what the overview contains, how it relates to the granular sibling tools, or how to page through it.

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% for four parameters (limit, cursor, fields, instance), so the schema gives no semantic help. 'Bounded' loosely gestures at limit/pagination but does not explain cursor semantics, what fields accepts, or how instance scopes the overview, leaving the bulk of parameter meaning undocumented.

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 a resource ('overview of this instance and folder synchronization state'), which is more specific than a bare restatement of the name. However, 'overview' and 'bounded' are vague, and it does not distinguish this aggregate tool from granular siblings such as syncthing_system_status, syncthing_folder_status, or syncthing_instances, so an agent cannot tell when the overview is preferable.

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 use this tool versus the many narrower siblings, no prerequisites, and no exclusions. The name implies it is a starting-point summary, but the description never states that, leaving usage entirely to inference.

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

syncthing_pending_devicesD
Read-only

Pending devices.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: it does not explain what a 'pending device' is, what triggers pending status, or what the returned data represents.

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

Conciseness2/5

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

Two words are technically concise, but this is under-specification rather than conciseness. There is no front-loaded statement of purpose and no content that earns its place because there is effectively no content.

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

Completeness1/5

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

For a paginated list tool with four undocumented parameters and no output schema, the description is completely inadequate. An agent cannot tell what a pending device is or how to invoke pagination correctly.

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

Parameters1/5

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

The schema has 4 parameters (limit, cursor, fields, instance) with 0% description coverage, so the description carries the full burden of explaining them. It explains none of them — pagination via limit/cursor, field projection, and instance selection are all left unexplained.

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

Purpose2/5

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

The description 'Pending devices.' is essentially a restatement of the tool name syncthing_pending_devices. It conveys the resource and a state but no verb, no scope, and no differentiation from the many sibling device/config tools. It is tautological rather than descriptive.

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

Usage Guidelines1/5

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

There is no indication of when to use this tool versus syncthing_devices, syncthing_pending_folders, or any of the ~35 siblings. No prerequisites, no exclusions, no context of any kind.

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

syncthing_pending_foldersD
Read-only

Pending folders.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so safety is covered by structured data. The description adds nothing beyond that — it does not say what a 'pending folder' is, whether it reflects remote offers awaiting acceptance, or that results are paginated.

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

Conciseness2/5

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

Extremely short, but this is under-specification rather than conciseness. The two words do not earn their place because they convey nothing the tool name has not already conveyed.

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

Completeness1/5

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

For a paginated, multi-param query tool with no output schema and zero schema description coverage, the description is completely inadequate. An agent cannot determine what data is returned, what 'pending' means, or how to use limit/cursor/fields correctly.

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

Parameters1/5

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

Schema description coverage is 0% across four parameters (limit, cursor, fields, instance), so the description would need to compensate. 'Pending folders.' provides no parameter information at all, leaving limit/cursor pagination behavior and the instance selector entirely undocumented.

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

Purpose2/5

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

The description 'Pending folders.' is a bare restatement of the tool name with no verb and no explanation of what 'pending' means in the Syncthing context (folders awaiting an action). It does not distinguish this tool from siblings like syncthing_folders, syncthing_folder_status, or the parallel syncthing_pending_devices.

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

Usage Guidelines1/5

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

No indication of when to use this tool, when not to, or how it relates to alternatives such as syncthing_folders or syncthing_folder_status. The agent has no basis for routing between these sibling tools.

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

syncthing_random_stringD
Read-only

Random string.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
lengthNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so safety is covered. The description adds no behavioral context at all — no mention that it is a pure generator, no determinism note, no seeding or entropy behavior — leaving it strictly at the annotation baseline.

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

Conciseness2/5

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

Two words are technically concise but represent under-specification rather than efficiency; there is no front-loaded statement of purpose or constraint to structure around.

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

Completeness1/5

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

A parameterized generator with three undocumented parameters, no annotations beyond the safety hints, and no output schema. The description provides none of the explanation needed to invoke it correctly.

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

Parameters1/5

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

Three parameters (fields, length, instance) with 0% schema description coverage and no explanation in the description. The agent has no idea what 'fields' selects, what 'instance' scopes, or even that length defaults to 32 and caps at 128.

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

Purpose2/5

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

"Random string." merely restates the tool name (syncthing_random_string) without adding a verb, scope, or output detail. It tells the agent nothing about what kind of random string, from where, or for what purpose.

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

Usage Guidelines1/5

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

No when-to-use, when-not-to-use, or alternative guidance of any kind. With 39 sibling tools, the agent gets no signal about why it would pick this one over syncthing_validate_device_id or any config helper.

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

syncthing_remote_needed_filesD
Read-only

Remote needed files.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
cursorNo
deviceYes
fieldsNo
folderYes
instanceNo

TDQS

D1.8/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered structurally. The description adds nothing beyond that: no return shape, no pagination behavior, no note that results depend on the remote device's state, despite six parameters implying a paged query.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness: a two-word fragment that omits the operation, scope, and pagination semantics an agent needs. Length is not the problem; absence of information is.

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

Completeness1/5

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

For a six-parameter, paginated, remote-state-dependent query with no output schema and no parameter documentation, the description is completely inadequate. An agent cannot know what it returns, how to page, or what folder/device refer to.

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

Parameters1/5

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

Schema description coverage is 0% across six parameters, including pagination controls (limit, cursor) and optional selectors (fields, instance). The description does not explain any of them, not even which are required or what 'fields' projects, so it fails to compensate for the schema gap.

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

Purpose2/5

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

The phrase 'Remote needed files.' is a noun fragment that restates the tool name rather than stating a verb+resource operation. It vaguely distinguishes itself from the sibling syncthing_needed_files via 'Remote', but gives no clue whether it lists, fetches, or computes needed files.

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 when-to-use guidance, no mention of alternatives like syncthing_needed_files versus this remote variant, and no prerequisites such as needing a valid folder/device pair. The agent must infer everything from the name.

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

syncthing_restart_requiredD
Read-only

Restart required.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true. The description adds nothing beyond that safety profile: it does not say what is checked, what conditions trigger 'required', or what the caller learns. No contradiction, but zero added 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.

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness — a two-word fragment for a tool with an undocumented two-parameter schema. There is nothing meaningful to front-load because nothing is said.

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

Completeness1/5

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

With no output schema, no parameter documentation, and annotations covering only the safety profile, the description needs to carry the burden of explaining what the tool reports and how to scope it. It supplies none of that, leaving the definition effectively unusable on its own.

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

Parameters1/5

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

Two parameters ('fields' and 'instance') have 0% schema description coverage and the description does not mention them at all. The description therefore does not compensate for the coverage gap in the slightest.

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

Purpose2/5

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

The description 'Restart required.' is a fragment that merely restates the tool name rather than stating a verb and resource. It is genuinely ambiguous whether the tool checks whether a restart is required (a read) or performs a restart. Given the readOnlyHint annotation, the read interpretation is likely, but the description never says so.

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

Usage Guidelines1/5

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

There is no when-to-use guidance, no exclusions, and no mention of alternatives among the many syncthing_* siblings. An agent gets no help deciding between this and, for example, syncthing_system_status or syncthing_overview.

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

syncthing_system_connectionsD
Read-only

System connections.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.7/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral context whatsoever — no mention of what a "connection" record contains, whether it reflects live state, or refresh semantics.

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

Conciseness2/5

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

Two words are technically concise, but this is under-specification rather than economy. No sentence here earns its place because no information is conveyed.

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

Completeness1/5

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

For a tool with two undocumented parameters, no output schema, and a large sibling set, this description supplies none of the context needed to invoke it correctly.

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 mentions neither parameter. The purpose of `fields` (a max-30 string array) and `instance` (a max-64 string) is left entirely unexplained, forcing the agent to infer from names alone.

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

Purpose2/5

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

"System connections." merely restates the tool name with no verb and no indication of what operation is performed or what is returned. It does not distinguish itself from siblings like syncthing_system_status or syncthing_system_health.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool, when not to, or which sibling to prefer. An agent has nothing to route on beyond guessing from the name.

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

syncthing_system_errorsD
Read-only

System errors.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered. The description adds nothing beyond this: no indication of whether errors are historical, current, capped, or how the optional instance selector changes behavior.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness; two words carry no information beyond the tool name. There is nothing to front-load because nothing is stated.

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

Completeness1/5

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

No output schema exists, so the description must convey return shape and error semantics, and it conveys none. With undocumented parameters and a rich sibling set, the definition is far too thin for an agent to call it correctly.

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

Parameters1/5

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

Two parameters (fields, instance) with 0% schema description coverage and no explanation in the description. The schema only reveals types/defaults, so the agent cannot know what "fields" projects or what an instance identifier refers to.

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

Purpose2/5

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

"System errors." restates the tool name's resource but supplies no verb or scope, so an agent cannot tell what is actually returned (error log entries? current error state? counts?). It also does not distinguish this from the sibling syncthing_folder_errors.

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

Usage Guidelines1/5

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

No when-to-use, when-not-to-use, or alternative guidance is given. With close siblings like syncthing_system_health, syncthing_system_status, and syncthing_folder_errors, the agent has nothing to route on.

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

syncthing_system_healthD
Read-only

System health.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.6/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds no behavioral context such as return shape, error handling, authentication needs, or what 'health' includes, and does not contradict the annotations.

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

Conciseness2/5

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

The description is extremely short, but its brevity comes from under-specification rather than disciplined conciseness. There is no useful information front-loaded for the agent.

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

Completeness1/5

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

With no output schema, 0% parameter description coverage, and no annotations beyond safety hints, the description is completely inadequate for a system-health tool. An agent cannot reliably know what data it returns or how to scope the request.

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

Parameters1/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 the two parameters 'fields' or 'instance'. For a tool whose parameters are undocumented in both schema and description, this is a severe gap.

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

Purpose2/5

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

The description 'System health.' is a tautology that restates the tool name rather than stating a specific verb and resource. It gives no differentiation from sibling health/status tools such as syncthing_system_status, syncthing_system_errors, or syncthing_system_connections.

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

Usage Guidelines1/5

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

No guidance is provided about when to use this tool, when not to use it, or which sibling tool is the alternative. The agent has no routing information beyond the tool name.

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

syncthing_system_pingD
Read-only

System ping.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.9/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that — no mention of what a ping returns, latency, connectivity semantics, or whether it touches the network.

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

Conciseness2/5

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

It is short, but this is under-specification rather than conciseness — a two-word fragment that carries no useful information for invocation.

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

Completeness2/5

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

With two undocumented parameters, no output schema, and no annotation-adjacent context about return values, the definition is not complete enough for an agent to call this confidently against its many system-level siblings.

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

Parameters1/5

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

Schema description coverage is 0% for two parameters (fields, instance), and the description says nothing about either. The description fails to compensate for the total lack of schema documentation on what fields selection or instance targeting mean.

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

Purpose2/5

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

"System ping" essentially restates the tool name with no elaboration on what pinging the system returns or confirms. It does not distinguish this from close siblings like syncthing_system_health, syncthing_system_status, or syncthing_overview, all of which sound equally like liveness/health checks.

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 use this tool, when to prefer system_health, system_status, or overview, or any stated prerequisites. The bare phrase gives no context for selection among the many system_* siblings.

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

syncthing_system_statusD
Read-only

System status.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior1/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false, and openWorldHint=true, so the safety profile is covered; the description adds nothing further. It does not say what status facets are collected, whether data is live or cached, 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.

Conciseness2/5

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

It is two words, but this is under-specification rather than conciseness. Shortness earns no credit when the essential content is absent.

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

Completeness1/5

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

For a zero-required-param, 2-parameter tool with no output schema and 0% parameter coverage, the description supplies no information at all about inputs or behavior. It is wholly inadequate given the surrounding sibling ambiguity.

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

Parameters1/5

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

Schema description coverage is 0% and two parameters ('fields' with maxItems 30, and 'instance') are completely undocumented. The description does not mention either parameter, so an agent must guess at the field-name syntax and the meaning of 'instance'.

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

Purpose2/5

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

"System status" merely restates the tool name and tells the agent nothing about what is actually returned or how it differs from siblings like syncthing_overview, syncthing_system_health, syncthing_system_version, or syncthing_system_connections. It is a tautology rather than a specific verb+resource statement.

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

Usage Guidelines1/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 tool, when not to, or which sibling to prefer for status-like queries. The dense cluster of sibling 'system_*' tools makes this omission especially costly.

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

syncthing_system_versionC
Read-only

System version.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

C2/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds nothing beyond that: no return shape, no instance-targeting behavior, no note that it reads a remote Syncthing daemon.

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

Conciseness2/5

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

Three words is brief, but this is under-specification rather than conciseness — there is no front-loaded purpose statement or any content that earns its place because there is essentially no content at all.

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

Completeness2/5

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

For a tool with two optional, completely undocumented parameters and no output schema, the description is too thin. An agent cannot tell what the tool returns or how the fields/instance parameters change 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% and the description never mentions the two parameters (fields, instance). Nothing explains that fields selects which version properties to return or that instance targets a specific Syncthing instance, so both parameters remain undocumented.

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

Purpose2/5

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

"System version." is effectively a tautological restatement of the tool name syncthing_system_version; it names the resource but supplies no verb or action and does not distinguish it from siblings like syncthing_system_status, syncthing_system_health, or syncthing_upgrade_available.

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 the many other syncthing_system_* tools, no prerequisites, and no mention of the optional instance/fields parameters. The agent is left to infer everything from the name.

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

syncthing_upgrade_availableD
Read-only

Upgrade available.

ParametersJSON Schema
NameRequiredDescriptionDefault
fieldsNo
instanceNo

TDQS

D1.3/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, openWorldHint=true, and destructiveHint=false, covering the safety profile. The description adds nothing beyond that — no indication of what is checked, freshness of the result, or whether it performs a network lookup (implied by openWorldHint but unexplained).

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

Conciseness2/5

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

It is extremely short, but that brevity reflects under-specification rather than conciseness — there is no front-loaded statement of purpose or scope to earn the two words used.

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

Completeness1/5

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

For a tool with two undocumented parameters and no output schema, the description is wholly inadequate. An agent has no way to know the query semantics, the meaning of the optional fields/instance filters, or the shape of the result.

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

Parameters1/5

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

Two parameters exist (fields, instance) with 0% schema description coverage, and the description does not mention either. The description must compensate for the documentation gap but provides none, so the agent cannot know what these parameters do.

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

Purpose1/5

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

The description 'Upgrade available.' merely restates the tool name (syncthing_upgrade_available) without stating what the tool actually does — e.g., whether it checks for available upgrades or reports them. It conveys no verb+resource beyond the name itself, which is a textbook tautology.

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

Usage Guidelines1/5

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

There is no guidance on when to use this tool, when not to, or how it relates to sibling tools like syncthing_system_version or syncthing_restart_required. An agent receives no routing information whatsoever.

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

syncthing_validate_device_idC
Read-only

Validate device id.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes
fieldsNo
instanceNo

TDQS

C2.4/5.0
Behavior2/5

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

Annotations already declare readOnlyHint=true, destructiveHint=false and openWorldHint=true, so the safety profile is covered elsewhere. The description adds nothing behavioral: it does not say what a 'valid' result looks like, whether validation is purely syntactic or requires connectivity, or how invalid input is reported.

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?

It is a single front-loaded sentence with no filler, which satisfies the conciseness dimension. The problem is under-specification rather than verbosity, so it does not deserve high marks for size alone.

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

Completeness2/5

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

For a 3-parameter tool with no output schema, the description should explain the validation outcome (e.g., boolean validity, error form) and what each parameter controls. Neither is present, so an agent has no way to predict the response or the meaning of 'fields'/'instance'.

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% across 3 parameters, so the description carries the full burden and fails. It only hints at the required 'device' argument via the phrase 'device id' and says nothing about 'fields' or 'instance', leaving two parameters entirely undocumented.

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 states a verb ('validate') and resource ('device id'), so the basic purpose is discernible and not actively misleading. However, it essentially restates the tool name with no added specificity, and it does nothing to distinguish this validation tool from adjacent read-only device tools like syncthing_devices or syncthing_device_config.

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 when-to-use guidance, no prerequisites, and no named alternative. The description gives no signal about when an agent should call this versus the many sibling device tools.

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. 40 tool updatesv0.1.2
    • First observedsyncthing_config
    • First observedsyncthing_device_config
    • First observedsyncthing_device_defaults
    • First observedsyncthing_device_statistics
    • First observedsyncthing_devices
    • First observedsyncthing_disk_events
    • First observedsyncthing_events
    • First observedsyncthing_file_metadata
    • First observedsyncthing_file_versions
    • First observedsyncthing_folder_browse
    • First observedsyncthing_folder_completion
    • First observedsyncthing_folder_config
    • First observedsyncthing_folder_defaults
    • First observedsyncthing_folder_errors
    • First observedsyncthing_folder_statistics
    • First observedsyncthing_folder_status
    • First observedsyncthing_folders
    • First observedsyncthing_gui_config
    • First observedsyncthing_ignore_defaults
    • First observedsyncthing_ignores
    • First observedsyncthing_instances
    • First observedsyncthing_languages
    • First observedsyncthing_ldap_config
    • First observedsyncthing_local_changes
    • First observedsyncthing_needed_files
    • First observedsyncthing_options
    • First observedsyncthing_overview
    • First observedsyncthing_pending_devices
    • First observedsyncthing_pending_folders
    • First observedsyncthing_random_string
    • First observedsyncthing_remote_needed_files
    • First observedsyncthing_restart_required
    • First observedsyncthing_system_connections
    • First observedsyncthing_system_errors
    • First observedsyncthing_system_health
    • First observedsyncthing_system_ping
    • First observedsyncthing_system_status
    • First observedsyncthing_system_version
    • First observedsyncthing_upgrade_available
    • First observedsyncthing_validate_device_id

TDQS

D1.8/5.0

Scored across 40 tools

Disambiguation2/5

Many tools are terse nouns with overlapping scopes: config vs options, devices vs device_config/defaults/statistics, folder_status vs folder_completion/statistics/errors. An agent cannot reliably tell which tool to call for a given Syncthing operation without more description.

Naming Consistency4/5

All tools consistently use snake_case with the syncthing_ prefix, which is predictable and readable. However, they are mostly noun phrases rather than verb_noun action patterns, so the convention is consistent but not action-oriented.

Tool Count2/5

40 tools is excessive for a single MCP server, especially with many terse and overlapping endpoints. Although Syncthing has a broad API, this surface is heavy and difficult to navigate.

Completeness3/5

The tools cover many read/status/config areas such as devices, folders, events, connections, and statistics, but key lifecycle operations like adding/removing folders or devices, scanning, pausing, or resuming are not clearly represented. Some CRUD coverage may exist through config tools, but it is not evident from the surface.

Maintenance

ActivityMaintained
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides a secure, token-authenticated command execution tool over MCP Streamable HTTP, with a default-deny allowlist and shell metacharacter rejection.
    7 npm
    1
    Apache 2.0
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for safe programmatic access to the local Tailscale daemon: tailnet discovery, SSH config generation, port sharing via Serve/Funnel, and latency matrices.
    6
    17 npm
    1
    Creative Commons Attribution Non Commercial No Derivatives 4.0 International
  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server and CLI for host and container operations, enabling Docker and Compose control, SSH, host inspection, logs, ZFS, and safe file transfer. It exposes flux and scout MCP tools with parity from the original TypeScript server.
    2
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A fail-closed policy boundary that translates local stdio MCP clients to authenticated Streamable HTTP servers, enforcing allowlists or read-only modes and redacting credentials from audit trails.
    Apache 2.0