Skip to main content
Glama
awe7893625

Local Workspace MCP

by awe7893625

Local Workspace MCP

Self-hosted local file, terminal, document, and named-device tools for MCP clients. Hardened public snapshot (2026-09-16): macOS arm64 local/HTTP paths and the repository test suite are validated. Client support still depends on the MCP client, account plan, workspace policy, and enabled permissions. This does not unlock ChatGPT Work, add AI credits, or guarantee that every ChatGPT mode supports local MCP.

繁體中文 · Connections · Feature coverage · Validation · Security

Two explicit modes

Mode

Access

documents (default)

Dedicated workspace; Python runs in Docker with read-only inputs, writable exports, no network. Word, Excel, PowerPoint, PDF, charts, LibreOffice/Poppler previews.

full

Adds 25 tools from MIT-licensed Desktop Commander 0.2.50: read/search/edit files, PDF creation/modification, interactive processes, configuration and activity. Full OS user-account access, including network and destructive commands. Directory settings are not a sandbox.

Named computers connect through your existing SSH credentials, or another owner-configured stdio command. There is no maintainer-run relay, account service, subscription, or feedback collection. Selected file contents/tool results go to your AI provider. SSH uses your own hosts; an optional tunnel uses its provider.

Related MCP server: rig-bridge

Install (macOS / Linux)

Requires Python 3.12+, uv, Git; full mode also requires Node.js 20.9+, npm and ripgrep. Docker is required for isolated document jobs. Existing Chrome/Chromium is required for host_write_pdf; no browser is downloaded automatically. Native Windows and WSL are not validated.

# From the release archive:
unzip local-workspace-mcp-public-20260916.zip
cd local-workspace-mcp-public-20260916
./Install.command --workspace /absolute/path/task-files \
  --state /absolute/path/private-state --mode full

Choose existing storage appropriate to your computer. Keep private state outside the workspace. Use --mode documents for isolated document work, or --skip-worker when Docker is not needed. The installer installs checkout-local dependencies, builds the worker, and automatically registers the launcher in the documented shared ChatGPT desktop/Codex config.toml. Existing configuration is backed up before writing; other settings/comments are preserved. Reinstalling reuses an existing entry, including custom names, arguments or disabled status. A conflicting server name is refused without overwriting it. Use --no-register to install without client changes, or --client-config /path/config.toml for an explicit configuration location. Otherwise it honors CODEX_HOME, falling back to ~/.codex/config.toml. Double-click Install.command for a guided setup; it asks for storage folders and explicit full-mode access. This is a source installer, not a signed macOS app/pkg. Missing prerequisites are reported, not auto-installed.

After installation, reload MCP servers in ChatGPT desktop or start a new task. The installer does not restart an active app. The generated client-registration.json records the server name and backup path. For other clients (or --no-register), add private-state/launch.sh as a STDIO command. mcp-server.json is a configuration fragment, not a replacement for existing settings. No listening port, public URL, or API key is required for this local transport. ChatGPT web cannot directly contact 127.0.0.1; see connection options and account limits.

Useful requests

  • Analyze a CSV, create an Excel report and a chart, then verify the totals.

  • Read Word/Excel/PDF inputs and produce edited documents; render previews and inspect them.

  • In full mode: explore a repository, change code, start a development server and read its output.

  • Pair another computer, then address its tools by name.

get_workflow_instructions explains the document workflow. run_python sees /workspace and writes /output. Office/PDF libraries plus LibreOffice and Poppler are preinstalled. Each job is fresh: 90 seconds, 512 MiB, 1 CPU, 64 PIDs, 64 KiB per output stream. One job at a time; output disk usage is not quota-limited. For LibreOffice use -env:UserInstallation=file:///tmp/lo; temporary files belong in /tmp. In full mode, after checking an edited document in exports, host tools can replace its original path. Back up originals first; the server does not provide automatic version history.

list_artifacts plus get_artifact_path exposes local output paths. Client rendering/download support varies. HTTP mode adds ten-minute bearer download links. Anyone holding such a link can read that one file.

Advanced server options

uv run local-workspace-mcp serve --help
uv run local-workspace-mcp init-key /absolute/private-state/owner.key
uv run local-workspace-mcp serve --root /absolute/task-files --write --python \
  --transport http --public-url https://mcp.example.com \
  --key-file /absolute/private-state/owner.key

HTTP binds loopback only and requires a secure remote path plus OAuth consent for remote clients. For durable OAuth, configure the client/token/transaction stores shown in .env.example; otherwise state is memory-only. Account/password consent is optional: create a PBKDF2 owner file with scripts/init_owner_account.py, or use the generated owner key as break-glass authentication. Full host tools require explicit --host-engine /path/to/patched/dist/index.js --engine-state /private/state. The installer supplies these in full mode. Ten-minute download links remain ephemeral across restarts.

Development

uv sync --frozen
npm ci --ignore-scripts
uv run python scripts/patch_engine.py
uv run ruff check src tests scripts
uv run pytest
# Build worker first; these tests really execute Docker and local tools in temporary folders:
LWMCP_DOCKER_TESTS=1 uv run pytest
# Also exercise existing Chrome for PDF (optional):
LWMCP_PDF_TESTS=1 uv run pytest tests/test_engine.py

npm audit --omit=dev and uv run pip-audit --skip-editable check dependencies. The upstream version, integrity lock and explicit source-hash-checked privacy patches are committed. Sharp/uuid overrides fix known upstream dependency advisories; see third-party notices. MIT licensed. No affiliation with OpenAI or Desktop Commander.

Available Tools

11 tools
call_device_tool執行遠端裝置工具A
Destructive

Execute a tool on a named paired device. Inspect list_device_tools first.

This can change files, run commands, or stop processes with the remote user's permissions.

ParametersJSON Schema
NameRequiredDescriptionDefault
toolYes
deviceYes
argumentsYes

TDQS

A3.6/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and openWorldHint=true, so the safety profile is covered. The description adds meaningful context beyond them: the effects can include changing files, running commands, or stopping processes, and they execute with the remote user's permissions — a non-obvious privilege detail.

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, front-loaded with the action and followed by the prerequisite and the consequence warning. No wasted words, though the prerequisite arguably belongs before the severity note for faster routing.

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 destructive open-world tool with a nested free-form argument object and no output schema, the description covers the risk profile but omits how to construct the arguments payload or what a successful call returns. Adequate minimum, but leaves a real gap for the opaque arguments parameter.

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, so the description carries the full burden. It only hints that 'device' is a named paired device and 'tool' is something listed by list_device_tools; the free-form 'arguments' object (additionalProperties=true, nested) is left entirely 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 and resource: execute a tool on a named paired device. It implicitly contrasts with the sibling list_device_tools by instructing the agent to inspect that tool first, so the boundary between inspection and execution is discernible.

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?

Gives a clear prerequisite workflow ('Inspect list_device_tools first'), which is the key context for selecting this tool over its siblings. It stops short of stating when not to use it or what to do if the tool name is unknown.

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

current_user_info檢查本機使用者資訊B
Read-only

Local OS identity. This project has no hosted subscription or vendor account.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description contributes one extra piece of context — that no hosted subscription or vendor account exists in this project — which frames the expected result, but it says nothing about what is actually returned (username, hostname, UID) or any auth requirement.

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 terse sentences with no filler, and the core purpose ('Local OS identity') is placed first. It is perhaps slightly too terse — the second sentence reads as a caveat whose practical implication is not spelled out.

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

Completeness3/5

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

With no parameters, no output schema, and only safety annotations, the description should carry information about what identity fields come back and whether it is cheap/side-effect free. It covers only the conceptual scope, leaving the return content entirely unspecified.

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 per the rubric the baseline is 4. There is no parameter behavior the description could or should document.

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

Purpose4/5

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

The description names a specific resource — local OS identity — which is more precise than the tool name alone and clarifies that 'current user' means the OS user, not an application account. It does not differentiate against any sibling, but none of the siblings (device tools, file tools) overlap enough to cause confusion.

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 statement of when to call this tool versus alternatives, nor any precondition. A reader must infer from context that this is a diagnostic/identity check, which is thin guidance for an agent selecting among eleven sibling tools.

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

get_artifact_path取得交付檔案路徑A
Read-only

Return a verified artifact path for local clients; remote clients should use download links.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

TDQS

A3.5/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=false, so the safety profile is covered. The description adds a useful client-type caveat, but says nothing about what 'verified' entails, error behavior, or path availability. Adequate but not rich.

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

Conciseness5/5

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

One front-loaded sentence with zero waste; the local/remote distinction is packed in without filler.

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?

Complexity is low and annotations cover safety, so the sentence is close to complete. However, with the lone required parameter undocumented and no output schema, the agent lacks guidance on how to form the call and what the returned path is relative to.

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 single required parameter 'name' is completely unexplained in both schema and description. The description never mentions the parameter, leaving the agent to guess whether it expects a filename, artifact ID, or path.

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+resource ('Return a verified artifact path') and adds a scope qualifier ('for local clients'). It is separable from list_artifacts in intent, though it never explicitly names a sibling. Clear but lacking sibling differentiation.

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

Usage Guidelines4/5

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

Explicitly states when to use it (local clients) and when not (remote clients, which 'should use download links'). The alternative is described generically rather than as a named tool, so routing is implied but not fully actionable.

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

get_workflow_instructions讀取工作流程說明B
Read-only

Get guidance for document generation, data analysis, verification, and delivery.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true, openWorldHint=false, and destructiveHint=false, so the safety profile is covered without description help. The description contributes only the list of covered domains; it says nothing about caching, freshness, or whether the guidance is static policy text. Under the lowered bar for annotated tools, this is a modest but non-zero contribution.

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 verb plus subject are front-loaded. It is tight and readable, though the trailing domain list is slightly enumerative rather than informative. Nothing is wasted.

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, and the lack of parameters keeps the surface simple. Still, for a guidance-fetch tool with ten siblings, the description omits when in a workflow to invoke it and how the four domains relate to the agent's tasks, leaving a real gap for correct selection.

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

Parameters4/5

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

The tool takes zero parameters, and the schema confirms an empty properties object. Per the rubric, a no-parameter tool earns a baseline of 4; there is nothing for the description to disambiguate and no syntax to explain.

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 ('Get') and a resource ('guidance') and enumerates four topical domains, which gives some shape to the tool. However, it never clarifies what a 'workflow instruction' actually is, whether it returns a single document or a set, and it does nothing to distinguish this from the many sibling tools an agent could pick. Purpose is implied rather than concretely 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 trigger condition, and no reference to alternatives among the listed siblings. An agent knows it retrieves guidance for four domains but not when in a session it should be called or what to do if those domains are irrelevant. This is essentially no guidance.

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

list_artifacts檢視交付檔案A
Read-only

List Office documents, PDFs, images and text deliverables directly inside exports.

ParametersJSON Schema
NameRequiredDescriptionDefault

No 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=true, destructiveHint=false and openWorldHint=false, so the safety profile is covered structurally. The description adds only the scoping constraint ('directly inside exports'); it says nothing about result ordering, pagination, or what happens when exports is empty, which would have been useful added 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?

A single front-loaded sentence with no filler. The core action and the artifact types come first, and the scope qualifier is appended rather than buried.

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

Completeness4/5

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

For a zero-parameter, read-only listing tool with annotations covering safety and no output schema, the description covers what the agent needs to decide to call it. Missing only minor operational detail such as ordering or whether nested subfolders are included.

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 no parameters, so there is no parameter semantics for the description to explain. Baseline of 4 applies for a zero-parameter tool; the description's enumeration of artifact types is a reasonable substitute for input detail.

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 ('artifacts'), then concretizes it as 'Office documents, PDFs, images and text deliverables directly inside exports.' The 'directly inside exports' scope implicitly separates it from the more general sibling list_directory, though no sibling is named outright.

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

Usage Guidelines3/5

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

The phrase 'directly inside exports' implies the listing scope and suggests non-recursive traversal, which is some usage context. However, it never states when to choose this over list_directory, get_artifact_path, or read_text, so an agent must infer the boundary.

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

list_device_tools檢視遠端裝置工具B
Read-only

Read the actual tool schemas of a named paired device.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safe read nature is covered. The description adds that it reads 'actual tool schemas', which is useful context beyond annotations, but it does not disclose anything about return structure, latency, or device availability requirements. With annotations lowering the bar, a 3 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.

Conciseness5/5

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

A single front-loaded sentence with no wasted words. The purpose and the scoping parameter are both present immediately, making it efficient and easy to parse.

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 low-complexity read tool with an output schema and safety annotations, the description covers the core operation and parameter meaning. However, given the many sibling tools that also reference devices, it omits the routing context needed to choose it over list_paired_devices or call_device_tool, leaving a gap for an agent selecting among alternatives.

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% and there is one required parameter, so the description must compensate. It does add meaning by calling the 'device' parameter a 'named paired device', implying the value should come from list_paired_devices. But it provides no format details (e.g., device ID vs name) or examples, so the compensation is only partial.

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 ('Read') and resource ('tool schemas of a named paired device'), making it distinguishable from list_paired_devices (lists devices) and call_device_tool (invokes a tool). However, it does not explicitly clarify that it returns the schemas rather than simply listing tool names, which would better differentiate it from a generic list operation.

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?

The description provides no when-to-use guidance relative to the sibling tools. It does not mention that this should be called before call_device_tool to discover available tools, nor does it state any prerequisites such as the device first needing to be paired or online. Usage is only implied by the verb and resource.

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

list_directory檢視工作區資料夾A
Read-only

List supported text files and folders in a relative workspace path. Hidden files are excluded.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo.

TDQS

A3.7/5.0
Behavior4/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds genuinely new behavioral context beyond the annotations: hidden files are excluded and the path is relative to the workspace, both of which affect what the agent will actually see.

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, front-loaded with the action and followed by the filtering rule. Nothing is padded, though the phrase 'supported text files' is slightly vague about which file types qualify.

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

Completeness4/5

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

For a single-parameter read tool with no output schema and solid annotation coverage, the description supplies the essentials: what is listed, what is filtered, and the path scope. Missing only return shape and depth/pagination behavior, which are minor here.

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% for the single 'path' parameter, so the description must carry the load. It clarifies that the path is relative and workspace-scoped, which is useful, but never states the default ('.') or whether deeper traversal is possible.

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 supported text files and folders') plus the scope ('relative workspace path'). It separates itself from read_text by aiming at enumeration rather than content, though it never names a sibling to make the distinction explicit.

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

Usage Guidelines3/5

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

Usage is only implied: an agent can infer this is the tool for discovering what exists in a directory, but there is no statement of when to prefer it over list_artifacts, get_artifact_path, or read_text. No exclusions are given.

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

list_paired_devices檢查已配對裝置B
Read-only

List local and owner-configured devices by name; never disclose SSH credentials.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.4/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one genuine behavioral constraint ('never disclose SSH credentials'), which is useful, but says nothing about return format, ordering, or scope of exposure.

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

Conciseness5/5

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

A single sentence with zero waste, front-loading the action and resource and appending the security constraint. Nothing could be trimmed without losing content.

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

Completeness3/5

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

With no output schema and no parameters, the description is the only source of information, yet it does not say what the result looks like (names only? ids? statuses?) or how devices are scoped. For such a simple read tool it is adequate but leaves a clear 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 per the baseline there is nothing for the description to explain. The phrase 'by name' is a minor hint about how results are keyed but does not change the fact that no parameter semantics are needed.

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 (paired devices), and adds scope detail: 'local and owner-configured devices by name'. It does not explicitly distinguish itself from siblings like current_user_info or list_device_tools, but the resource is unambiguous.

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 and no named alternative or exclusion. Usage is only implied by the verb 'list', leaving the agent to infer that this is the entry point for enumerating configured devices rather than, say, device tools or artifacts.

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

ping_device檢查裝置連線C
Read-only

Check local availability or establish an authenticated configured SSH MCP session.

ParametersJSON Schema
NameRequiredDescriptionDefault
deviceNolocal

TDQS

C2.6/5.0
Behavior3/5

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

Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is covered. The description adds one genuinely useful behavioral detail beyond that: the session is 'authenticated', implying credential requirements. However it omits what authentication is needed, what happens when the device is unreachable, and whether establishing a session has side effects or timeouts.

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?

One sentence, so nothing is wasteful in length. But the front-loaded clause and the trailing SSH clause are joined by 'or', making the tool's primary behavior read as an afterthought rather than a clear lead.

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 and no parameter documentation, the description must carry the full load, and it does not: it never says what a successful or failed check looks like, nor how to address a paired device. Against a sibling set of eleven device/agent tools, this leaves too much for the agent to infer.

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 coverage is 0% for the sole 'device' parameter, which merely carries a default of 'local' with no description. The description mentions 'local' and 'configured' devices in passing but never explains what values the parameter accepts (hostname? paired-device ID? the literal 'local'?) or what happens when it is omitted, so the schema gap is not compensated.

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 offers two loosely-coupled purposes: 'Check local availability' and 'establish an authenticated configured SSH MCP session'. The verb 'check' is clear, but the second clause is jargon-heavy ('SSH MCP session') and obscures what the tool actually returns. It also makes no attempt to distinguish itself from siblings like list_paired_devices.

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 statement of when to use this tool versus alternatives such as list_paired_devices or call_device_tool. The phrase 'local availability or ... SSH MCP session' implies a local-vs-remote fork but never spells out the selection condition, leaving the agent to guess.

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

read_text讀取工作區文字檔A
Read-only

Read a UTF-8 text file, max 1 MiB. Paths are relative to the configured workspace.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior4/5

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

Annotations already establish readOnlyHint=true, destructiveHint=false, and a closed world, so the safety profile is covered. The description adds genuinely new behavioral context: UTF-8 only, a 1 MiB size ceiling, and workspace-relative path resolution, all of which affect whether a call will succeed. It stops short of describing failure behavior (missing file, oversized file, non-UTF-8 bytes).

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 tight sentences, zero filler, with the size and encoding constraints front-loaded before the path-resolution rule. Nothing is wasted.

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

Completeness5/5

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

An output schema exists, so return values need no explanation, and annotations cover the safety profile. What remains — format, size limit, and path base — is stated, making this complete enough for a one-parameter read tool.

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

Parameters4/5

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

Schema description coverage is 0% for the single `path` parameter, so the description must carry the load. It does add real meaning — paths are resolved relative to the configured workspace and the target must be UTF-8 text within 1 MiB — though it does not clarify whether absolute paths, subdirectories, or traversal outside the workspace are permitted.

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 (read a UTF-8 text file) plus two hard constraints (max 1 MiB, workspace-relative paths), so the operation is unambiguous. It does not explicitly differentiate from the sibling list_directory, which is the most plausible confusion point for a file-system tool.

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

Usage Guidelines3/5

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

Usage is only implied by the verb 'Read' — there is no statement of when to choose this over list_directory or get_artifact_path, and no stated preconditions. An agent can infer the purpose but gets no routing guidance.

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

shutdown_device_agent停止遠端裝置 AgentA
Destructive

Stop ONLY this MCP agent process. It does not shut down the computer.

An SSH-launched on-demand agent may start again on the next connection.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior4/5

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

Annotations already declare destructiveHint=true and readOnlyHint=false. The description adds meaningful behavioral context beyond the annotations: it clarifies that only the MCP agent process stops, not the computer, and that an SSH-launched on-demand agent may start again on the next connection.

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

Conciseness5/5

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

Two short sentences, front-loaded with the core action and scope limitation. Every sentence earns its place, and the restart caveat is useful without being verbose.

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

Completeness4/5

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

For a no-argument destructive tool with annotations covering the safety profile and no output schema, the description is nearly complete. It explains the scope and restart behavior, though it could mention whether confirmation is expected before invocation.

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

Parameters4/5

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

There are zero parameters, so the baseline score is 4. The description appropriately does not add parameter detail because none exists.

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 and resource: 'Stop ONLY this MCP agent process.' It immediately clarifies scope by saying it does not shut down the computer, which distinguishes it from any broader shutdown interpretation among the sibling tools.

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 the command itself, but there is no explicit when-to-use or when-not-to-use guidance beyond the scope clarification. No sibling alternatives are named, though none appear directly equivalent.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 11 tool updatesv0.1.1
    • First observedcall_device_tool
    • First observedcurrent_user_info
    • First observedget_artifact_path
    • First observedget_workflow_instructions
    • First observedlist_artifacts
    • First observedlist_device_tools
    • First observedlist_directory
    • First observedlist_paired_devices
    • First observedping_device
    • First observedread_text
    • First observedshutdown_device_agent

TDQS

B3.4/5.0

Scored across 11 tools

Disambiguation4/5

Each tool targets a distinct resource/action: identity, device listing/pinging, device tool discovery/execution, agent shutdown, local file listing/reading, workflow guidance, and artifact listing/path. Minor potential confusion among list-style tools and between local vs remote file operations is mostly resolved by descriptions.

Naming Consistency4/5

Mostly consistent snake_case with verb_noun patterns such as list_*, get_*, read_text, call_device_tool, and shutdown_device_agent. current_user_info is a noun phrase rather than get_current_user_info, a minor deviation.

Tool Count5/5

11 tools is well-scoped for a local workspace/device bridge: enough for device lifecycle, file access, and artifacts without excessive surface. No obvious redundant or bloat tools.

Completeness3/5

The set covers reading/listing local files and artifacts plus remote device discovery/execution, but lacks local write/create/update/delete operations and artifact creation/upload/download. These are notable gaps for a workspace server, though remote call_device_tool offers some execution coverage.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers