Skip to main content
Glama
dy-le

wd-mycloud-mcp

by dy-le

wd-mycloud-mcp

An MCP (Model Context Protocol) server that exposes Western Digital MyCloud Home file operations to AI assistants (Claude Desktop, etc.) — works both on local network and over the internet.

Features

  • Browse, read, write, move, copy, delete files on WD MyCloud

  • Three connection modes with automatic fallback:

    1. SMB (local network) — fastest, direct mount

    2. REST API (remote) — auto-login via WD cloud account, no browser needed

    3. SFTP — fallback when SSH is available

  • Auto-mounts SMB share on first use (macOS)

  • Token auto-refresh — stays logged in without manual intervention

  • Path traversal protection on all operations

  • File search by name query

Related MCP server: MCP Google Drive Server

Requirements

  • macOS (uses mount_smbfs for SMB mode)

  • Python 3.11+

  • uv (recommended) or pip

  • WD MyCloud Home device

Installation

git clone https://github.com/dy-le/wd-mycloud-mcp.git
cd wd-mycloud-mcp

# Install with uv
uv sync

# Or with pip
pip install -e .

Configuration

Environment variables

Variable

Default

Description

WD_MYCLOUD_HOST

MyCloud.local

Hostname or IP of device (use IP, not .local)

WD_MYCLOUD_SHARE

Public

SMB share name

WD_MYCLOUD_USER

guest

SMB username

WD_MYCLOUD_PASSWORD

(empty)

SMB password

WD_MYCLOUD_MOUNT

/Volumes/{SHARE}

Local SMB mount point

WD_MYCLOUD_CLOUD_EMAIL

(empty)

WD account email (for remote access)

WD_MYCLOUD_CLOUD_PASSWORD

(empty)

WD account password (for remote access)

Tip: Use the device's IP address for WD_MYCLOUD_HOST instead of the .local hostname to avoid mDNS resolution issues.

Claude Desktop (claude_desktop_config.json)

{
  "mcpServers": {
    "wd-mycloud": {
      "command": "/path/to/.venv/bin/wd-mycloud-mcp",
      "env": {
        "WD_MYCLOUD_HOST": "192.168.1.100",
        "WD_MYCLOUD_SHARE": "YourShare",
        "WD_MYCLOUD_USER": "youruser",
        "WD_MYCLOUD_PASSWORD": "yourpass",
        "WD_MYCLOUD_MOUNT": "/Users/you/.wd-mycloud/mnt",
        "WD_MYCLOUD_CLOUD_EMAIL": "you@email.com",
        "WD_MYCLOUD_CLOUD_PASSWORD": "yourcloudpass"
      }
    }
  }
}

Remote access (away from home)

When not on the local network, the server automatically authenticates with the WD cloud service using WD_MYCLOUD_CLOUD_EMAIL and WD_MYCLOUD_CLOUD_PASSWORD. Tokens are cached at ~/.wd-mycloud/token.json and refreshed automatically before expiry.

If direct login is unavailable, you can install the included Chrome extension (chrome-extension/) to capture a token manually by visiting home.mycloud.com.

Available Tools

Tool

Description

list_directory(path)

List files and directories

read_file(path)

Read a text file

write_file(path, content)

Create or overwrite a text file

delete_file(path)

Delete a file

delete_directory(path, recursive)

Delete a directory

create_directory(path)

Create a directory

move(source, destination)

Move or rename

copy(source, destination)

Copy a file

search_files(query, path)

Search by filename

get_info(path)

Get file/directory metadata

connection_status()

Show current mode and auth status

login()

Force re-authentication

Release notes

v1.1.0

  • Remote API mode: auto-login with WD cloud email/password, no Chrome extension required

  • Token refresh: access tokens are refreshed automatically using stored refresh token

  • Correct WD API endpoints sourced from open-source reference implementations:

    • File listing: GET /sdk/v2/filesSearch/parents?ids={parentId} (ids=root for root)

    • File download: GET /sdk/v3/files/{id}/content (v3 endpoint)

    • Delete: DELETE /sdk/v2/files/{id}

    • Move/rename: PATCH /sdk/v2/files/{id}

    • Create folder: POST /sdk/v2/files (multipart/related)

    • Write file: POST /sdk/v2/files/resumable (resumable upload)

  • ID-based navigation with in-memory path→ID cache

  • Auth0 config auto-discovered from https://config.mycloud.com/config/v1/config

  • Fixed SMB: URL-encode credentials with special characters (e.g. @ in password)

  • Fixed mount point: use user-owned path instead of /Volumes/ to avoid permission errors

v1.0.0

  • Initial release: SMB-only local network access

Acknowledgements

This project references and was informed by the following open-source works:

  • mnencia/mchfuse (Go) — correct Auth0 login flow (password-realm grant type), token refresh, file API paths (/v2/, /v3/), multipart/related upload format, and PATCH for move/rename

  • sbencoding/WD-Bridge (Node.js) — filesSearch/parents?ids= parameter, ids=root for root listing, service URL discovery

  • sbencoding/wdfs (C++) — device proxy URL discovery via device/v1/user/{sub}, remote access architecture

  • everappz/MyCloudHomeSDKObjc (Objective-C) — complete API surface reference including resumable upload, token fields (id_token, access_token, refresh_token), and file metadata schema

License

Apache 2.0

Available Tools

12 tools
connection_statusA

Show current connection mode and authentication status.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It indicates a read-only operation via 'Show,' but does not describe output format, prerequisites, or any side effects. This is minimal but acceptable for a simple status tool.

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

Conciseness5/5

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

The description is a single, compact sentence (9 words) that is front-loaded with the action verb 'Show.' Every word serves a purpose, and there is no redundancy or filler.

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

Completeness4/5

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

For a zero-parameter, no-output-schema, no-annotations status tool, the description adequately conveys the tool's purpose and read-only nature. It lacks explicit return-value details, but the simplicity of the tool makes the description reasonably complete.

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 input schema has zero parameters, leaving nothing for the description to explain. The baseline for a 0-parameter schema is 4, and the description appropriately adds no parameter-specific information.

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

Purpose5/5

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

The description uses a specific verb 'Show' and clearly identifies the resource as 'current connection mode and authentication status,' distinguishing it from sibling tools like login and file operations. It is direct and unambiguous about what the tool does.

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

Usage Guidelines3/5

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

The description implies that the tool should be used to check connection and authentication status, but provides no explicit guidance about when to use it versus get_info or login, and mentions no alternatives or exclusions. Usage context is only implied.

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

copyA

Copy a file by reading and re-uploading (WD API has no server-side copy).

Args: source: Relative source path. destination: Relative destination path.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are present, so the description carries the burden. It discloses that copying is performed by reading and re-uploading, which implies network usage and potential slowness, but it does not discuss behavior on existing destinations, permissions, or error cases. The mechanism is useful but limited.

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

Conciseness5/5

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

The description is concise and well-structured: a clear purpose statement followed by a compact argument list. Every sentence contributes value, and the key information is front-loaded.

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

Completeness4/5

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

For a simple copy tool, the description covers the mechanism and parameters. However, it omits error handling and overwrite semantics, though an output schema exists. With no annotations, the description is adequate but not exhaustive.

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

Parameters4/5

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

Schema description coverage is 0%, so the description must compensate. It clearly defines both 'source' and 'destination' as relative paths, giving meaning to the parameters beyond their names. This is sufficient for a simple two-parameter tool.

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

Purpose5/5

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

The description clearly states the action 'Copy a file' and identifies the resource. It also explains the mechanism (reading and re-uploading) because the WD API lacks server-side copy, which distinguishes it from a conceptual move or direct server-side copy.

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

Usage Guidelines3/5

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

The description implies the tool is used for copying a file but does not explicitly state when to use it over alternatives like 'move' or when not to use it. It provides rationale for the implementation but lacks direct comparison to sibling tools or usage exclusions.

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

create_directoryA

Create a directory on WD MyCloud.

Args: path: Relative path for the new directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

No annotations are provided, so the description must disclose behavioral traits. It only says 'Create a directory' and provides an argument description; it omits any details about error handling, idempotency, permissions, or whether parent directories are created. This leaves an agent without critical behavioral expectations.

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

Conciseness5/5

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

The description is highly concise and front-loaded, stating the action first and then the single parameter. Every line earns its place, with no redundant content.

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?

Despite having an output schema, the description is incomplete for a mutating tool with no annotations. It fails to mention expected behaviors like failure if the directory exists, whether intermediate paths are created, or permission requirements. The single parameter is well covered, but the overall context is too sparse for an agent to invoke the tool confidently in varied situations.

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

Parameters5/5

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

The input schema only defines 'path' as a string without any description. The tool description adds essential meaning by clarifying that path is a 'Relative path for the new directory,' which is crucial for correct invocation and not inferable from the schema.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Create a directory on WD MyCloud.' It uses a specific verb ('create') and resource ('directory on WD MyCloud'), which distinguishes it from sibling tools like list_directory or delete_directory.

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 alternatives, nor any mention of prerequisites or exclusions. The description only states the action, leaving usage context entirely implied.

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

delete_directoryA

Delete a directory on WD MyCloud.

Args: path: Relative path to the directory. recursive: If True, delete directory and all contents.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavior. It explains that recursive deletion removes contents, but omits critical safety details such as irreversibility, permission requirements, and behavior when the directory is non-empty and recursive=False. This is a significant gap for a destructive operation.

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

Conciseness5/5

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

The description is concise and front-loaded with the primary purpose, followed by a clear and necessary Args section. Every sentence provides value, and there is no redundancy or wasted words.

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

Completeness3/5

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

For a simple deletion tool, it covers the core action and parameters, but lacks essential edge-case behavior such as failure modes for non-empty directories without recursive, reversibility, or permission errors. Given the presence of an output schema, return values need not be described, but behavioral completeness is only adequate.

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

Parameters4/5

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

The schema's properties have no descriptions (0% schema coverage), but the description compensates by explaining that path is a relative path and recursive controls deletion of contents. This adds meaningful semantics beyond the bare schema types and defaults.

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

Purpose5/5

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

The description 'Delete a directory on WD MyCloud' clearly identifies the operation (delete) and resource (directory), distinguishing it from sibling tool delete_file. The recursive parameter adds clarity about deletion scope.

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

Usage Guidelines3/5

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

The description implies usage for deleting directories but does not explicitly mention when to prefer it over alternatives like delete_file, nor does it state prerequisites or exclusions. The recursive argument provides some context but no explicit 'when to use vs. not to use' guidance.

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

delete_fileA

Delete a file on WD MyCloud.

Args: path: Relative path to the file.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description carries the full burden of behavioral disclosure. It only states 'Delete a file' without addressing the destructive nature, irreversibility, permissions required, or behavior on missing files or directories, which is a significant gap for a mutation tool.

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

Conciseness5/5

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

The description is appropriately sized—one sentence followed by an Args block—with no filler. It is front-loaded with the core action and immediately explains the parameter.

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

Completeness3/5

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

For a simple delete operation with one parameter and an output schema, the description covers the basics but omits behavioral details such as error handling, whether the operation is permanent, or what happens if the path is a directory. It is adequate but minimal.

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

Parameters4/5

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

The schema's 'path' parameter has no description, so the tool description adds essential meaning by specifying 'Relative path to the file'. This clarifies that the path is relative and points to a file, compensating well for the 0% schema coverage.

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

Purpose5/5

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

The description states 'Delete a file on WD MyCloud' with a specific verb and resource, clearly identifying the action and target. It distinguishes from sibling tools like delete_directory by specifying 'file' and the device.

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

Usage Guidelines3/5

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

The description implies usage for deleting files but offers no explicit guidance on when to use this tool versus alternatives like delete_directory. No exclusions or prerequisites are mentioned, leaving the context to be inferred.

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

get_infoA

Get metadata about a file or directory on WD MyCloud.

Args: path: Relative path from the share root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It states it 'gets metadata', implying a read-only operation, but does not mention error handling (e.g., nonexistent path), permissions, or what specific metadata fields are returned. This lack of detail is a gap, especially since no output schema exists to fill it.

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

Conciseness5/5

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

The description is extremely concise: one sentence for the purpose plus a parameter definition. It is front-loaded with the core action and includes only necessary information, with no wasted words.

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

Completeness3/5

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

Given no annotations and no output schema, the description is too minimal to be fully complete. It identifies the tool's purpose and parameter, but it does not describe the return format or any error behavior. For a simple metadata getter, this is a moderate gap — the agent can select it correctly but may not know what to expect in the response.

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

Parameters4/5

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

The schema provides only a string parameter 'path' with no description (0% coverage). The description adds essential meaning by specifying that path is a 'relative path from the share root', which is crucial for constructing valid inputs. This fully compensates for the sparse schema, though it is brief.

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

Purpose5/5

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

The description clearly states the verb 'get' and the resource 'metadata about a file or directory on WD MyCloud'. This distinguishes it from sibling tools like read_file (content) and list_directory (list entries).

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

Usage Guidelines3/5

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

The usage context is implied: use this tool when you need metadata rather than file content or directory listings. However, there is no explicit guidance on when not to use it or which alternative to choose; the agent must infer based on the tool name and descriptions.

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

list_directoryA

List files and directories at the given path on WD MyCloud.

Args: path: Relative path from the share root. Defaults to root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses the path parameter is relative from share root and defaults to root, which adds behavioral context. However, it doesn't mention any limitations like non-recursive listing or output format beyond what the output schema covers.

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

Conciseness5/5

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

The description is a single, front-loaded sentence followed by a clear parameter definition. Every word earns its place with no fluff.

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

Completeness3/5

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

For a simple one-parameter tool with an output schema, the description covers purpose and parameter semantics adequately. However, it lacks usage differentiation from sibling tools, which is a moderate gap in an agent's ability to select it correctly among similar listings and search tools.

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

Parameters5/5

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

The description explicitly explains the only parameter 'path' as a relative path from share root and states the default behavior to root. This fully compensates for the 0% schema description coverage.

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

Purpose5/5

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

The description uses a specific verb 'list' with a clear resource 'files and directories' at a given path on WD MyCloud. This clearly distinguishes it from sibling tools like read_file or search_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?

The description provides no guidance on when to use this tool versus alternatives, such as search_files. It only states what the tool does without explicit context or exclusions.

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

loginA

Force re-authentication with WD cloud (use if you get auth errors).

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations, the description carries the burden. It implies a state change ('force re-authentication') but does not disclose potential side effects like invalidating the current session or requiring user interaction. It adds some context but lacks behavioral detail.

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

Conciseness5/5

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

The description is a single, well-structured sentence that front-loads the action and includes a practical usage tip. Every word earns its place.

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

Completeness4/5

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

For a simple 0-param tool with an output schema, the description covers the essential 'what' and 'when' adequately. However, it could mention the impact on the current session or how it relates to 'connection_status', a slight 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 has 0 parameters and the schema coverage is 100%, so the baseline of 4 applies. The description adds no parameter details, but none are needed.

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

Purpose5/5

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

The description clearly states the action ('Force re-authentication') with a specific resource ('WD cloud'). It distinguishes itself from siblings by focusing on authentication, whereas siblings are file operations and status checks.

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?

Provides explicit guidance on when to use: 'use if you get auth errors.' This gives clear context, though it doesn't mention when not to use or alternatives.

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

moveA

Move or rename a file or directory on WD MyCloud.

Args: source: Relative source path. destination: Relative destination path.

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYes
destinationYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

There are no annotations, so the description must carry the full burden. It only states the operation and arguments, without disclosing behaviors such as overwriting, error conditions, permission requirements, or whether the move is atomic. This lack of detail limits the agent's ability to predict side effects.

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

Conciseness5/5

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

The description is concise and to the point, with a one-sentence purpose followed by a clear argument list. Every sentence adds value, and there is no superfluous content.

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

Completeness3/5

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

The tool is simple and the description covers the core function and parameters. However, it lacks details about edge cases such as what happens if the destination exists, whether it can overwrite, or any error handling. Given an output schema exists, return values are covered, but behavioral completeness is still limited.

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

Parameters3/5

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

Schema description coverage is 0%, so the description must compensate. It adds that 'source' and 'destination' are 'Relative source path' and 'Relative destination path', which gives some meaning beyond the schema titles. However, it does not clarify what the paths are relative to or mention that renaming is achieved via destination, leaving some ambiguity.

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

Purpose5/5

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

The description clearly states the action ('Move or rename') and the resource ('a file or directory on WD MyCloud'). This distinguishes it from sibling tools like copy, delete, and read_file because it specifically addresses relocating or renaming items.

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

Usage Guidelines4/5

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

The description implies usage by naming the operation (move/rename), which clearly indicates when this tool should be used compared to siblings like copy or delete. However, it does not explicitly mention alternatives or state when not to use it, so it falls short of a 5.

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

read_fileA

Read the text content of a file on WD MyCloud.

Args: path: Relative path to the file from the share root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.5/5.0
Behavior2/5

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

With no annotations provided, the description alone must convey behavioral traits, but it only states the basic read operation. It does not disclose error behavior for missing files, permission restrictions, encoding assumptions, or limitations to certain file types beyond 'text content'.

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

Conciseness5/5

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

The description is very concise and front-loaded, with a one-sentence purpose followed by the parameter explanation. Every word contributes useful information; there is no redundancy or 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?

For a simple single-parameter read tool, this is minimally adequate: purpose and path semantics are clear, and the output schema covers return values. However, it lacks important behavioral context such as error handling and file type expectations, and it provides no guidance on when to use it relative to sibling tools.

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?

Although the schema only defines 'path' as a string, the description adds essential meaning: the path is relative to the share root and identifies a file. This clear semantic clarification compensates for the 0% schema description coverage and helps the agent construct valid inputs.

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

Purpose5/5

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

The description uses a specific verb ('Read') and resource ('text content of a file') with a clear scope (WD MyCloud), which immediately distinguishes it from sibling tools like list_directory or write_file. It is not a tautology and plainly states the tool's function.

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

Usage Guidelines2/5

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

There is no guidance about when to use this tool versus alternatives, such as when to prefer list_directory or get_info. The only usage hint is the path input being relative to the share root, which pertains to parameter usage rather than tool selection.

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

search_filesA

Search for files by name on WD MyCloud.

Args: query: Search term (filename or partial name) path: Relative directory to search in. Defaults to share root.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior2/5

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

With no annotations, the description must carry the full behavioral disclosure burden. It only states that it searches by name and describes parameters, but fails to mention whether the search is recursive, case-sensitive, or read-only. No output format or error behavior is disclosed.

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

Conciseness5/5

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

The description is extremely concise, with a single opening sentence and a clean Args block. Every sentence earns its place, and there is no redundancy or fluff.

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

Completeness3/5

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

For a simple search tool, the description is minimally complete, but it omits critical behavioral details like recursion and case sensitivity. The output schema exists, covering return structure, but the lack of behavioral transparency and usage context makes it incomplete.

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

Parameters4/5

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

Schema description coverage is 0%, but the 'Args' section adds meaningful interpretation: query is 'filename or partial name' and path is 'relative directory' with a default. This compensates well for the schema's lack of descriptions, though it could clarify wildcard or matching behavior.

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

Purpose5/5

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

The description clearly states the tool's purpose: 'Search for files by name on WD MyCloud.' It uses a specific verb and resource, and naturally distinguishes itself from siblings like list_directory and read_file by focusing on name-based search.

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

Usage Guidelines3/5

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

The description implies usage (search by name) but provides no explicit guidance on when to choose this tool over alternatives, nor any exclusions. The presence of sibling tools such as list_directory suggests alternative use cases, but no comparison is made.

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

write_fileA

Write text content to a file on WD MyCloud (creates or overwrites).

Args: path: Relative path to the file. content: Text content to write.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It does transparently state the destructive overwrite potential ('creates or overwrites'), but lacks context on prerequisites, side effects on parent directories, return values, or failure modes.

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

Conciseness5/5

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

The description is concise and front-loaded with the core action. The Args section is cleanly separated and adds necessary parameter context without excessive wording. Every sentence earns its place.

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

Completeness3/5

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

For a simple 2-parameter tool, the description covers purpose and parameters. However, it does not explain behavior like whether parent directories are created automatically, what happens if the path is invalid, or what the output schema contains. With an output schema present, not detailing return values is acceptable, but other operational details are missing.

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?

The schema has 0% description coverage, so the description must compensate. It does by providing brief explanations: path is a relative path and content is text. However, these are minimal and leave ambiguity (e.g., relative to which root, encoding, size limits).

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

Purpose5/5

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

The description clearly states the tool writes text content to a file and explicitly mentions create/overwrite behavior. It distinguishes itself from sibling tools like read_file and delete_file with a specific verb and resource.

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

Usage Guidelines3/5

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

The description implies its use—when you need to write a file—but provides no explicit guidance on when to prefer it over alternatives or any exclusions. It does not mention when not to use this tool.

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. 12 tool updatesv0.1.0
    • First observedconnection_status
    • First observedcopy
    • First observedcreate_directory
    • First observeddelete_directory
    • First observeddelete_file
    • First observedget_info
    • First observedlist_directory
    • First observedlogin
    • First observedmove
    • First observedread_file
    • First observedsearch_files
    • First observedwrite_file

TDQS

A3.9/5.0

Scored across 12 tools

Disambiguation5/5

Each tool targets a distinct operation (metadata, listing, reading, writing, deleting, moving, copying, searching, connection management). No two tools overlap in purpose; file vs directory deletion are clearly separated.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern (list_directory, read_file, write_file, delete_file, create_directory, search_files), but a few use bare verbs (move, copy, login) or noun phrases (connection_status), creating minor inconsistency.

Tool Count5/5

12 tools is well-scoped for a cloud NAS file server, covering file, directory, and connection management without redundancy or bloat.

Completeness4/5

Core file/directory operations are covered (list, read, write, delete, create, move, copy, search, metadata), but directory copy is unsupported (copy only works for files), which is a minor gap.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers