Skip to main content
Glama
WSAI FixCenter

WSAI FixCenter

Official

wsai_fckdot

wsai_fckdot is a public, privacy-first MCP server for diagnosing hooks, plugins, skills, MCP integrations, configuration, runtimes, networking and PC system state. It also turns a chaotic multi-agent setup into one canonical manifest, isolated account profiles and generated adapters for each supported tool.

It never repairs a machine automatically, never interpolates user input into commands, never elevates privileges and never sends telemetry. Account bindings accept environment-variable references rather than values; common credential-shaped text is rejected, but users must still keep secrets out of free-form instructions. Setup files are written only after a reviewed plan and explicit consent.

Verified scope

  • 38 read-only controls in 12 domains;

  • 100% catalog design coverage on Windows, Linux and macOS;

  • 15 diagnostic rule families;

  • 16 synthetic evaluation cases with a 100% success gate;

  • 10 MCP tools;

  • 100% Python statement coverage enforced in CI;

  • tested redaction of common sensitive formats and explicit execution consent.

  • compatibility with both legacy MCP handshakes and the stateless 2026-07-28 era.

  • one canonical .wsai_fckdot/setup.json format, five tool adapters and secret-free account profile activators.

The meaning of “100%” is precise. Design coverage means every declared catalog control has a probe on every supported platform. Runtime coverage means every requested probe completed successfully on one execution. Neither metric claims that every possible future application or peripheral is known. See the coverage model.

Related MCP server: triage-agent-mcp

MCP tools

Tool

Purpose

Reads the PC by default?

diagnose

Rank causes and propose least-invasive corrections

No

list_diagnostics

List the 15 diagnostic rule families

No

get_control_catalog

Browse the 38 controls

No

audit_coverage

Measure catalog design coverage

No

collect_context

Plan or execute selected read-only probes

Plan only

run_self_test

Run public synthetic regression cases

No

get_setup_catalog

Explain adapters, profiles and precedence

No

inspect_setup

Inventory setup metadata, never variable values

No, until consent

plan_setup

Compare a canonical manifest and preserve conflicts

No, until consent

apply_setup

Apply the exact reviewed plan

Yes, explicit consent

collect_context executes only when both execute=true and consent=true. Output is excluded unless include_output=true; included output is passed through the tested redactor and truncated. As with any pattern-based redaction, review it before sharing.

One setup instead of endless .xxx folders

wsai_fckdot uses .wsai_fckdot/setup.json as the project source of truth. Write instructions once, declare account profiles using environment-variable references, and select the adapters your tools need. It can generate:

  • AGENTS.md;

  • .cursor/rules/wsai_fckdot.mdc;

  • CLAUDE.md;

  • GEMINI.md;

  • .github/copilot-instructions.md;

  • PowerShell and POSIX-shell profile activators under .wsai_fckdot/profiles/.

The activators contain no secrets. They clear declared target variables before mapping the chosen profile from references such as env:OPENAI_WORK_API_KEY, preventing personal and work account state from remaining mixed in one shell.

wsai_fckdot inventories known tool directories and counts unknown dot-directories. Unknown names are hidden by default. It does not delete or move any .xxx directory, does not follow setup symlinks during inventory, and refuses to overwrite an existing adapter file unless it starts with an exact wsai_fckdot ownership header.

The workflow is deliberately simple:

  1. inspect metadata;

  2. create a canonical manifest;

  3. review a plan containing create, update, retire, unchanged and blocked actions;

  4. apply that exact plan ID with explicit consent;

  5. activate the selected account profile and restart active agent sessions.

Read the complete setup governance guide and start from setup.example.json.

Covered domains

System identity, time and locale; CPU, memory and devices; storage; processes, services, startup and scheduled tasks; environment and PATH; log availability; adapters, DNS, proxy and listeners; permissions, firewall, certificates, protection and policies; package managers, language runtimes, shells, Git and editors; MCP, hooks, plugins, skills, Codex runtime, remote-control prerequisites and chat streaming; containers and guest environments; update visibility.

Installation

Requires Python 3.10 or newer.

git clone https://github.com/Whytcard-Swiss-AI/wsai_fckdot.git
cd wsai_fckdot
python -m venv .venv
# Windows PowerShell: .venv\Scripts\Activate.ps1
# Linux/macOS: source .venv/bin/activate
python -m pip install -e .
python -m wsai_fckdot self-test
python -m wsai_fckdot setup-catalog
python -m wsai_fckdot setup-inventory C:\absolute\project --consent
python -m wsai_fckdot setup-plan C:\absolute\project setup.example.json --consent
# Review the plan_id, then:
python -m wsai_fckdot setup-apply C:\absolute\project setup.example.json PLAN_ID --consent

For development:

python -m pip install -e ".[dev]"
python -m pytest -q

MCP configuration

Use the virtual environment's absolute Python executable:

{
  "mcpServers": {
    "wsai_fckdot": {
      "command": "/absolute/path/to/wsai_fckdot/.venv/bin/python",
      "args": ["-m", "wsai_fckdot", "serve"],
      "cwd": "/absolute/path/to/wsai_fckdot"
    }
  }
}

On Windows, command normally ends in .venv\\Scripts\\python.exe.

See MCP compatibility for protocol versions and wire behavior.

Safe workflow

First diagnose only the evidence already available:

{
  "description": "The deploy hook is not found after enabling the plugin",
  "problem_type": "hook",
  "logs": ["ERROR hook deploy: not found"],
  "config": {"hooks": [{"name": "deploy"}]},
  "components": ["release-tools", "deploy"]
}

Then inspect the catalog or plan a narrow collection:

{
  "control_ids": ["agents.hooks", "agents.plugins", "environment.path"],
  "platform": "windows",
  "execute": false
}

After the user explicitly approves those exact controls:

{
  "control_ids": ["agents.hooks", "agents.plugins", "environment.path"],
  "platform": "windows",
  "execute": true,
  "consent": true,
  "include_output": false
}

Add the returned observations to a second diagnose call. A failed or unavailable probe becomes an explicit observation-incomplete finding.

CLI

python -m wsai_fckdot catalog
python -m wsai_fckdot coverage --platform windows
python -m wsai_fckdot collect agents.hooks agents.plugins --platform windows
python -m wsai_fckdot collect agents.hooks --platform windows --execute --consent
python -m wsai_fckdot diagnose problem.json --out reports
python -m wsai_fckdot self-test

The first collect command only produces a plan. The second explicitly executes one allowlisted probe and still omits output.

Agent skills

Three reusable public skills are included:

  • wsai_fckdot-install installs and verifies the MCP without collecting machine data;

  • wsai_fckdot-use guides diagnosis, consent, narrow collection and post-fix verification;

  • wsai_fckdot-setup guides setup inventory, conflict-safe consolidation, account profiles and approved application.

Source archives and wheels both include every skill's SKILL.md and agents/openai.yaml under the distribution's share/wsai_fckdot/skills data directory. Installing the Python package does not silently activate a skill in an agent client; copy or link the selected skill into that client's documented skill directory.

Extending wsai_fckdot

Controls live in wsai_fckdot.catalog; diagnostics live in wsai_fckdot.diagnostics. Every new control needs Windows, Linux and macOS probes, synthetic tests and an updated catalog version. Every new diagnostic needs a stable ID, evidence, explanation, safe fixes and positive/negative evaluation cases. See CONTRIBUTING.md.

Security

Read SECURITY.md before enabling output collection or setup application. Never share a report without reviewing it, because no generic redactor can guarantee removal of every private value from arbitrary third-party output.

License

MIT.

Available Tools

10 tools
apply_setupApply approved setup planB
Destructive

Apply an unchanged setup plan transactionally. Requires the exact plan ID and explicit consent; preserves user-owned files and backs up managed updates.

NameRequiredDescriptionDefault
rootYes
consentYes
plan_idYes
manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.4/5.0
Behavior4/5

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

Goes beyond the annotations (destructiveHint=true, idempotentHint=false) by disclosing transactional execution, preservation of user-owned files, and backup of managed updates. That materially changes how an agent should reason about risk; it stops short of explaining failure/rollback behavior.

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

Conciseness4/5

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

Two tight sentences with the destructive/prerequisite context front-loaded and no filler. Every clause carries information.

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

Completeness3/5

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

An output schema exists so return values need no explanation, and the description does cover safety behavior for a destructive mutation. The gap is input-side: two of four required, deeply nested parameters are unexplained for a tool operating on a manifest structure.

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% with four required parameters, so the description carries the full burden. It explains plan_id and the consent flag but says nothing about 'root' or 'manifest', leaving half the input unexplained.

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 (apply) and resource (setup plan) with a key constraint ('unchanged'), which separates it from plan_setup and inspect_setup in the sibling list. The title reinforces this, but no sibling is named explicitly.

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

Usage Guidelines3/5

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

Prerequisites (exact plan ID, explicit consent) are stated, which implies this runs after a plan is produced, but there is no explicit when-to-use/when-not guidance or routing to plan_setup for the unplanned case.

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

audit_coverageAudit design coverageA
Read-onlyIdempotent

Measure design coverage for Windows, Linux or macOS without inspecting a machine.

NameRequiredDescriptionDefault
platformNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and a closed-world profile, so safety is fully covered. The description adds one behavioral fact beyond that — no machine inspection is needed — which is useful, but it does not clarify what 'design coverage' actually measures or what the output represents.

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

Conciseness5/5

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

A single front-loaded sentence with the verb first and zero filler. Every clause carries information (action, scope, constraint) and nothing is redundant.

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

Completeness3/5

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

An output schema exists, so return-value explanation is not required. Still, for a coverage-audit tool the description never defines what 'design' or 'coverage' refer to in this domain, and it leaves the optional platform parameter's default behavior unspecified — gaps an agent must guess at.

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

Parameters3/5

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

Schema description coverage is 0%, but the single parameter is a self-explanatory enum (windows/linux/darwin). The description merely restates those platform values and never says whether omitting the optional parameter produces a cross-platform result or defaults to the host, which is the one semantic an agent actually needs.

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?

Clear verb+resource ('Measure design coverage') with an explicit scope (Windows, Linux or macOS). The clause 'without inspecting a machine' helps distinguish it from inspection-oriented siblings like inspect_setup and diagnose, though it never names an alternative directly.

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

Usage Guidelines3/5

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

Usage is implied by 'without inspecting a machine', which suggests the tool is for coverage assessment when no live endpoint is available. However, no when-to-use condition, prerequisite, or sibling alternative is stated explicitly, leaving the agent to infer the routing.

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

collect_contextPlan or collect local contextB
Read-onlyIdempotent

Plan or explicitly execute allowlisted read-only probes with strict redaction. Execution requires execute=true and consent=true.

NameRequiredDescriptionDefault
consentNo
executeNo
platformNo
control_idsNo
include_outputNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3.2/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds meaningful context beyond them: execution is gated behind two flags, probes are allowlisted, and output is subject to strict redaction. It stops short of describing what a plan response contains versus an execution response.

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

Conciseness4/5

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

Two short sentences, no filler, with the plan-vs-execute distinction front-loaded and the execution precondition second. It is efficient, though the extreme terseness leaves too much implicit for a five-parameter tool.

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

Completeness3/5

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

An output schema exists, so return values need not be explained, and annotations cover the safety profile. Still, a tool with a plan/execute duality, a platform enum, and a control_ids array referencing a sibling catalog should say more about plan output and parameter roles than it does.

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 5 parameters, so the description must carry the burden. It clarifies execute and consent as execution gates, but platform (an enum), control_ids, and include_output are completely unexplained, leaving three of five parameters undocumented anywhere.

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 gives a verb pair (plan/execute) and a resource (allowlisted read-only probes), so the general function is inferable, but 'probes' is undefined and the reader cannot tell what is actually collected. It also does not distinguish this from siblings like plan_setup, inspect_setup, or diagnose, which occupy adjacent territory.

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

Usage Guidelines3/5

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

The gating condition 'Execution requires execute=true and consent=true' is genuine usage guidance, and 'plan or explicitly execute' implies a safe default of planning only. However, there is no guidance on when to choose this tool over plan_setup, inspect_setup, or diagnose, so the routing decision is left to inference.

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

diagnoseDiagnose a problemC
Read-onlyIdempotent

Rank probable causes for a hook, plugin, skill, configuration, system, network or runtime problem.

NameRequiredDescriptionDefault
logsNo
configNo
workspaceNo
componentsNo
descriptionYes
environmentNo
observationsNo
problem_typeNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

C2.9/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, non-destructive and closed-world behavior, so the safety profile is fully covered. The description adds useful behavioral context that the output is a ranked list of probable causes, but says nothing about evidence requirements, confidence, or how inputs like logs/config influence ranking.

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, stating action first and scope second. It is efficiently written, though for an 8-parameter diagnostic tool this brevity borders on under-specification rather than genuine conciseness.

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 output schema exists so return values need no explanation, and annotations cover the safety profile. However, for a tool taking 8 inputs including nested objects and an observation array, the total absence of input semantics and any usage/routing guidance leaves the definition materially incomplete.

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 8 parameters, so the description carries the full explanatory burden and fails it: it documents none of logs, config, workspace, components, environment, observations, or description. The enumerated problem domains loosely echo the problem_type enum but add no format, size, or interaction guidance for any field.

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

Purpose4/5

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

The description gives a specific verb + outcome ('Rank probable causes') and enumerates the problem domains it handles (hook, plugin, skill, config, system, network, runtime). This distinguishes it from general-purpose siblings, though it never names a sibling like list_diagnostics, so separation is implied rather than stated.

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

Usage 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 routing to or away from alternatives such as list_diagnostics, collect_context, or run_self_test. The agent must infer that this is the analysis step from the verb 'rank' alone.

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

get_control_catalogBrowse PC controlsA
Read-onlyIdempotent

List the public, read-only PC control catalog. This never inspects the host.

NameRequiredDescriptionDefault
categoryNo
include_commandsNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already cover readOnly, idempotent, non-destructive and closed-world traits, so the bar is lower. The description adds genuinely new context beyond them: the operation touches only a static public catalog and never probes the host, which matters for an agent deciding between this and diagnose/collect_context.

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

Conciseness5/5

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

Two short sentences, scope constraint front-loaded, zero filler. Everything stated earns its place.

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

Completeness3/5

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

An output schema exists, so return values need not be described, and the read-only nature is well covered. The gap is the two undocumented parameters, neither of which is clarified anywhere in the definition.

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 ('category', 'include_commands') have 0% schema description coverage, so the description is the only place meaning could be added. It says nothing about what category values are accepted or what include_commands does, leaving the schema's bare types and a default as the only signal.

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

Purpose4/5

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

States a specific verb and resource ('List the public, read-only PC control catalog') with clear scope qualifiers. It implicitly separates itself from inspection-oriented siblings like inspect_setup and diagnose, but never names an alternative explicitly.

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

Usage Guidelines3/5

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

The contrast 'never inspects the host' hints that this is a metadata-browsing call rather than a live diagnostic, which implies when to reach for it. There is no explicit guidance on when to prefer get_setup_catalog or the inspect_* siblings.

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

get_setup_catalogUnderstand setup governanceA
Read-onlyIdempotent

Explain the canonical setup model, supported agent adapters, account profiles and precedence without inspecting a machine.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds a genuinely useful trait beyond them: this returns static knowledge and requires no access to the local environment. It does not discuss output shape, but an output schema exists to carry that.

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

Conciseness5/5

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

A single front-loaded sentence naming the scope first and the key constraint last. No filler, no restatement of the title or annotations.

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

Completeness4/5

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

With no parameters and an output schema present to define return values, the description only needs to convey purpose and the no-machine constraint, which it does. It could be marginally more explicit about when a live inspection would be the better call, but nothing required for a correct invocation is absent.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate and the baseline is 4. No param-level guidance is needed or missing.

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

Purpose5/5

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

States a specific verb ('Explain') and enumerates the exact resource: the canonical setup model, agent adapters, account profiles, and precedence. The clause 'without inspecting a machine' cleanly separates it from the live-environment sibling inspect_setup, so an agent can route between them without opening either schema.

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

Usage Guidelines4/5

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

The phrase 'without inspecting a machine' gives a clear selection condition versus inspect_setup/diagnose, making it the right choice for pure conceptual lookup. It never names the alternative explicitly or states an exclusions list, so it stays short of a full when/when-not statement.

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

inspect_setupInventory agent setupA
Read-onlyIdempotent

Inventory known dot-directories, instruction layers and account-related variable names. Reads metadata only and requires consent.

NameRequiredDescriptionDefault
rootYes
consentYes
include_homeNo
include_unknown_namesNo

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.5/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds genuinely new context beyond them: it reads "metadata only" (no content exfiltration) and requires an explicit consent flag, which is the kind of behavioral constraint an agent must know before calling.

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

Conciseness5/5

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

Two dense sentences with no filler, and the scope statement is front-loaded ahead of the behavioral caveats. Nothing in it is redundant with the title or annotations.

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

Completeness3/5

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

An output schema exists, so return values need no explanation, and annotations cover safety. The gap is the 0%-documented parameter set: an agent cannot tell from the description what root should point at or what the two scope-toggling booleans do, which is a meaningful hole for a 4-parameter tool.

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

Parameters2/5

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

Schema description coverage is 0% for all four parameters, so the description carries the full burden and falls short. "Requires consent" gestures at the consent flag but never explains what consenting means, and include_home and include_unknown_names are completely unaddressed despite being the parameters that most change the scan's scope.

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?

Names a specific verb ("Inventory") and concrete resources (dot-directories, instruction layers, account-related variable names), so the agent knows this is a discovery/metadata scan. It does not, however, differentiate itself from close siblings like collect_context or get_setup_catalog.

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

Usage Guidelines3/5

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

Usage is only implied: the description establishes a prerequisite ("requires consent") but never states when to pick this over collect_context, get_setup_catalog, or list_diagnostics. An agent must infer the routing decision from the tool name alone.

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

list_diagnosticsList diagnostic rulesA
Read-onlyIdempotent

List registered diagnostic rules and supported problem types.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior3/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is fully covered without the description's help. The description adds only a small amount of scope information (that the listing covers both rules and problem types), which is modest value beyond structured data.

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

Conciseness5/5

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

A single front-loaded sentence that states verb, resource and scope with no filler or redundancy.

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

Completeness4/5

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

With zero parameters, full annotation coverage, and an output schema that documents the return shape, the description carries no remaining burden for correct invocation. Only the missing relationship to the 'diagnose' sibling keeps it from a 5.

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

Parameters4/5

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

The tool takes zero parameters, so there is nothing for the description to disambiguate; baseline 4 applies. The description correctly implies no filtering options exist.

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 (List) and resource (registered diagnostic rules, supported problem types), so the agent knows exactly what comes back. It does not differentiate itself from the sibling 'diagnose', which presumably runs a diagnosis rather than enumerating rules, so it falls short of a 5.

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

Usage Guidelines3/5

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

The listing nature implies discovery usage (call it to learn which rules exist before invoking 'diagnose'), but the description never says when to use it, when not to, or that 'diagnose' is the execution counterpart. Usage is left to inference.

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

plan_setupPlan setup consolidationB
Read-onlyIdempotent

Create a conflict-aware, secret-free plan for canonical instructions and account profiles. Never writes files.

NameRequiredDescriptionDefault
rootYes
consentYes
manifestYes

Output Schema

NameRequiredDescription

No output parameters

TDQS

B3/5.0
Behavior3/5

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

The annotations already declare readOnly/idempotent/non-destructive, so 'Never writes files' largely restates readOnlyHint. The description does add genuine behavioral color beyond annotations by promising conflict detection and secret-free output. It says nothing about how consent gates execution or whether a plan can expire.

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

Conciseness4/5

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

Two tight, front-loaded sentences with no filler; the core guarantee ('Never writes files') is placed last for emphasis rather than buried. Slightly abstract adjectival stacking ('conflict-aware, secret-free') costs a point.

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

Completeness3/5

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

For a read-only planning tool with full annotations and an output schema, the safety story is adequately covered and return values need no explanation. However, the undocumented nested manifest and the unexplained consent flag leave real gaps for correct invocation.

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 three required parameters, including a deeply nested manifest with required version, active_profile, profiles, instructions, and tools. The description's phrases 'canonical instructions' and 'account profiles' only loosely gesture at manifest.instructions and manifest.profiles; root and consent are never explained.

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

Purpose4/5

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

The description gives a specific verb and resource ('Create ... plan for canonical instructions and account profiles') with meaningful qualifiers ('conflict-aware, secret-free'). It implicitly separates itself from the write-side sibling apply_setup via 'Never writes files', but never names that sibling, so an agent must infer the plan/apply split.

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 explicit when-to-use guidance, no mention of prerequisites (the required consent flag), and no reference to apply_setup as the follow-up action. The read-only preview intent is only weakly implied by 'Never writes files'.

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

run_self_testRun synthetic self-testA
Read-onlyIdempotent

Run the built-in synthetic diagnostic evaluation. Uses no machine or user data.

NameRequiredDescriptionDefault

No parameters

Output Schema

NameRequiredDescription

No output parameters

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description still adds genuinely useful context by stating it uses no machine or user data, which tells the agent it can be run without privacy or side-effect concerns.

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

Conciseness5/5

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

Two short sentences with no filler, and the core action is front-loaded ahead of the qualifier about data usage.

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

Completeness4/5

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

With a rich annotation set, an output schema covering return values, and zero parameters, the description is nearly sufficient. It could say what the test verifies (e.g., installation or configuration health), which is the only notable gap.

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

Parameters4/5

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

The tool takes zero parameters, so the baseline is 4. The description correctly adds nothing about inputs, and there is no parameter surface that needs explanation.

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

Purpose4/5

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

The description states a specific verb and resource: run the built-in synthetic diagnostic evaluation. It is clear what the tool does, but it does not differentiate itself from siblings such as diagnose or list_diagnostics, which is the missing element for a 5.

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 explicit guidance on when to run a self-test versus diagnose or list_diagnostics. The intended usage (a synthetic, data-free sanity check) is only implied by 'built-in synthetic', so an agent must infer the selection condition.

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. 10 tool updatesv1.0.0
    • First observedapply_setup
    • First observedaudit_coverage
    • First observedcollect_context
    • First observeddiagnose
    • First observedget_control_catalog
    • First observedget_setup_catalog
    • First observedinspect_setup
    • First observedlist_diagnostics
    • First observedplan_setup
    • First observedrun_self_test

TDQS

A3.5/5.0

Scored across 10 tools

Disambiguation4/5

Most tools target a distinct resource+action, and the setup quartet (get_setup_catalog, inspect_setup, plan_setup, apply_setup) forms a clear lifecycle. The only real friction is between collect_context and inspect_setup (both consent-gated, read-only host reads) and among the three list/catalog tools, though descriptions do disambiguate them.

Naming Consistency4/5

Nearly all names follow a snake_case verb_noun pattern (list_diagnostics, get_control_catalog, audit_coverage, collect_context, inspect_setup, plan_setup, apply_setup). The lone deviation is the bare verb 'diagnose', which is readable but breaks the two-part convention.

Tool Count4/5

Ten tools is well within a well-scoped range and each maps to a plausible step in diagnosis or setup management. A couple (run_self_test, audit_coverage) feel like auxiliary capabilities rather than core workflow, but nothing is clearly redundant.

Completeness4/5

Setup coverage is strong end-to-end (catalog, inspect, plan, apply with backups), and diagnostics has rule listing, ranking, context collection and self-test. The main gap is the absence of a remediation or rollback/undo tool for non-setup problems, so a diagnosed hook or plugin fault has no direct fix operation in the surface.

Related MCP Connectors

Related MCP Servers