Skip to main content
Glama
Frosty-09

Qwen MCP Filesystem Server

by Frosty-09

πŸ—‚οΈ Qwen MCP Filesystem Server

Python 3.10+ Protocol MCP Platform License: MIT

A dedicated, safe Model Context Protocol (MCP) server that empowers Qwen Studio and other desktop AI environments with controlled read, write, search, and management access to your local Windows files and projects.


πŸ“‘ Table of Contents


Related MCP server: filesystem-mcp-server

πŸ’‘ Why This Exists

Desktop AI environmentsβ€”such as Qwen Studioβ€”and complex creative workstation software (like DaVinci Resolve Studio) operate within protected sandbox boundaries. By design, they cannot freely browse, modify, or control files on your Windows machine.

When you want an AI assistant to assist with your codebase, automate scripting, or build plugins:

  • ❌ The Old Way: You are forced to manually copy and paste code back and forth between your editor and the AI chat window. The AI has zero context about the rest of your project structure, cannot verify changes, and cannot create or edit files directly.

  • ❌ The Dangerous Way: Giving an AI broad, unrestricted terminal or OS-level access risks accidental file deletion or damage to critical Windows system directories.

The Solution: Qwen MCP

Qwen MCP acts as a secure, purpose-built bridge. It lets you "feed" specific local folders and external projects directly to Qwen Studio through the standardized Model Context Protocol (MCP).

With Qwen MCP, Qwen Studio can autonomously explore your project tree, read files, write code, append changes, rename files, and perform regex searchesβ€”strictly inside the project folders you choose to connect.


βš™οΈ How It Works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”          JSON-RPC (stdio)          β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚       Qwen Studio       β”‚ ◄────────────────────────────────► β”‚     Qwen MCP Server       β”‚
β”‚   (Desktop AI Client)   β”‚                                    β”‚        (Python/uvx)       β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                             β”‚ Controlled Sandboxed Access
                                                 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                 β–Ό                                                       β–Ό
                                    β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”                             β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                    β”‚   Internal Projects    β”‚                             β”‚   External Projects    β”‚
                                    β”‚  workspace/projects/*  β”‚                             β”‚  Shortcut .txt Pointersβ”‚
                                    β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                             β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                                                                                                       β”‚ Maps to
                                                                                                       β–Ό
                                                                                           β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                                                                                           β”‚ Any Folder on Windows  β”‚
                                                                                           β”‚ e.g. DaVinci Fuses,    β”‚
                                                                                           β”‚ Scripts, Web Projects  β”‚
                                                                                           β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
  1. You launch or connect the MCP server in your Qwen Studio configuration (handled automatically via uvx with zero installation).

  2. You feed your project either by placing it into the internal workspace/projects/ folder or by adding a lightweight .txt link inside workspace/external/ pointing to any folder on your computer.

  3. Qwen Studio takes over: It queries the server tools to inspect files, execute changes, and search code with complete sandbox protection.


✨ Features

  • πŸ›‘οΈ Strict Path Traversal Protection: Prevents directory traversal attacks (../). File operations cannot escape the designated project boundary.

  • πŸ”— Dual Project Mapping:

    • Internal Projects: Store projects directly in workspace/projects/<name>.

    • External Shortcuts: Mount folders anywhere on your drive (e.g. DaVinci Resolve scripts, desktop code) via 1-line .txt link files without moving or copying original files.

  • ⚑ Zero-Effort Execution: Automatically launches via Astral uvx without requiring manual virtual environments or dependency installs.

  • πŸ” In-File Text Search: Deep regex and string search across files with line numbers and preview matches.

  • πŸ› οΈ Full Filesystem Capabilities: List directory structures, read UTF-8 and binary (Base64) files, write, append, rename/move, and delete.

  • πŸ”’ Drive Root Protection: Explicitly blocks mounting Windows drive roots (like C:\) for maximum system safety.


πŸ—οΈ Workspace Architecture

Qwen-mcp/
β”œβ”€β”€ server.py               # FastMCP core filesystem engine
β”œβ”€β”€ pyproject.toml          # Packaging metadata & entry point
β”œβ”€β”€ requirements.txt        # Python dependencies (mcp>=1.0.0)
β”œβ”€β”€ install.cmd / .sh       # Helper installation scripts (optional)
β”œβ”€β”€ run.cmd / .sh           # Helper launch scripts (optional)
└── workspace/              # Root workspace directory
    β”œβ”€β”€ projects/           # Internal projects live here
    β”‚   └── my-project/     # AI accesses as "my-project"
    └── external/           # External project shortcut link files
        └── davinci-app.txt # 1-line text file pointing to external folder

πŸ“₯ Download from GitHub

Choose the method that works best for you:

git clone https://github.com/<your-username>/Qwen-mcp.git
cd Qwen-mcp

Option B: Download as a ZIP Archive

  1. On the GitHub repository page, click the green <> Code button.

  2. Select Download ZIP.

  3. Extract the ZIP file to your preferred folder (e.g., D:\MCPs\Qwen-mcp or C:\Users\YourUser\Qwen-mcp).

  4. Open the folder in your terminal or command prompt.


πŸ“‹ Prerequisites

  • Python 3.10+: Download Python (ensure "Add Python to PATH" is checked on Windows).

  • Astral uv (Recommended): Install uv for instant, zero-setup execution.

# Verify uv installation
uv --version

πŸš€ Zero-Effort Quick Start

Method 1: Using uvx (Zero-Install, Recommended)

You do not need to create virtual environments or manually install dependencies. uvx will automatically install requirements in an isolated cache and run the server on demand.

Method 2: Standard Python Virtual Environment

If you prefer a traditional Python virtual environment:

On Windows:

Double-click install.cmd or run:

python -m venv .venv
.venv\Scripts\activate
pip install -r requirements.txt

On Linux / macOS:

chmod +x install.sh run.sh
./install.sh

βš™οΈ Connecting to Qwen Studio & Other MCP Clients

Add the server configuration into your client's MCP settings file (such as Qwen Studio, Claude Desktop, Antigravity IDE, Cursor, Cline, or Roo Code).

Configuration Using uvx (Recommended)

{
  "mcpServers": {
    "qwen-mcp": {
      "command": "uvx",
      "args": ["--from", "/ABSOLUTE/PATH/TO/Qwen-mcp", "qwen-mcp"],
      "env": {
        "QWEN_MCP_ALLOW_EXTERNAL": "true"
      }
    }
  }
}
NOTE

Replace/ABSOLUTE/PATH/TO/Qwen-mcp with your actual repository path.

  • Windows Example: D:/Root/DummyCode/Experiment/MCPs/Qwen-mcp

  • Linux/macOS Example: /home/user/projects/Qwen-mcp

Configuration Using Python Directly

{
  "mcpServers": {
    "qwen-mcp": {
      "command": "python",
      "args": ["/ABSOLUTE/PATH/TO/Qwen-mcp/server.py"],
      "env": {
        "QWEN_MCP_ALLOW_EXTERNAL": "true"
      }
    }
  }
}

πŸ“‚ Feeding Your Projects to Qwen Studio

Once Qwen MCP is connected, you have two effortless ways to grant Qwen Studio access to your projects:

1. The Direct Folder Method (Internal)

Simply create or copy your project folder inside workspace/projects/:

workspace/projects/my-video-tool/

Qwen Studio will now recognize and interact with this project by the name my-video-tool.

If your project already lives elsewhere on Windows (for example, in your Documents, Desktop, or DaVinci Resolve directories), you don't need to move it!

  1. Create a .txt file inside workspace/external/ named after your project, e.g., davinci-plugin.txt.

  2. Inside that file, write the single absolute path to your project folder:

    C:\Users\YourName\AppData\Roaming\Blackmagic Design\DaVinci Resolve\Support\Fusion\Fuses\MyPlugin
  3. That's it! Qwen Studio can now read and write directly to davinci-plugin safely.

(You can also use the qwen_register_external_project tool from inside Qwen Studio to link external directories automatically).


🧰 Available MCP Tools

Qwen Studio automatically receives access to these 12 filesystem tools:

Tool

Description

Key Arguments

qwen_status

Checks server health, active workspace directory, and security flags.

None

qwen_list_projects

Lists all internal and external connected projects.

None

qwen_create_project

Creates a new project folder inside workspace/projects/.

name (string)

qwen_register_external_project

Registers an external folder path via a .txt shortcut file.

name, path, create (bool)

qwen_resolve_project

Resolves any project name to its actual absolute filesystem path.

project (string)

qwen_list_files

Recursively or shallowly lists files and subdirectories.

project, path, pattern, recursive

qwen_read_file

Reads file content as clean UTF-8 text or Base64 (for binaries).

project, path

qwen_write_file

Writes or overwrites a file (auto-creates directories).

project, path, content, encoding

qwen_append_file

Appends text or binary content to an existing or new file.

project, path, content, encoding

qwen_delete_file

Deletes a file or directory (recursive=true for folders).

project, path, recursive

qwen_rename_file

Renames or moves a file/folder within a project.

project, old_path, new_path

qwen_search_files

Searches text/regex inside project files with line numbers.

project, query, path, pattern, case_sensitive


πŸ”§ Environment Variables

You can configure operational limits via environment variables in your client config:

Variable

Default

Description

QWEN_MCP_ROOT

workspace/

Path where projects/ and external/ are located.

QWEN_MCP_ALLOW_EXTERNAL

true

Allows or blocks mapping external project shortcuts.

QWEN_MCP_ALLOW_CREATE_EXTERNAL_DIRS

true

Automatically creates missing target directories when linking.

QWEN_MCP_MAX_READ_BYTES

2097152 (2 MB)

File size threshold before content is truncated or converted.


πŸ”’ Security & Sandboxing

  • Directory Traversal Defense: All paths are resolved and validated using strict containment checks. Any attempt by the AI to escape using ../../ triggers an immediate PermissionError.

  • Protected Roots: Windows drive roots (C:\, D:\) cannot be registered as project sandboxes.

  • Isolated Control: Setting QWEN_MCP_ALLOW_EXTERNAL=false restricts the server exclusively to files inside workspace/projects/.


❓ Troubleshooting & FAQ

Verify that:

  • For internal projects: A folder named <project-name> exists inside workspace/projects/.

  • For external projects: A text file named <project-name>.txt exists inside workspace/external/ with a valid, absolute path on the first line.

  • You can ask the AI to run qwen_list_projects to see all active projects detected by the server.

Create a text file workspace/external/davinci-scripts.txt and paste the path to your DaVinci Resolve Fusion Scripts or Fuses directory. In Qwen Studio, refer to the project as davinci-scripts.

The AI client attempted to access a path above the designated project directory. All file operations must stay within the root of the targeted project.

Install Astral uv from https://docs.astral.sh/uv/ and restart your terminal or Qwen Studio so your system PATH updates.


πŸ“„ License

Distributed under the MIT License. Built for seamless, safe AI development.

Available Tools

12 tools
qwen_append_fileB

Append content to a file inside a project. Creates the file if missing.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
projectYes
encodingNoutf-8
create_dirsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/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 burden of behavioral disclosure. It usefully discloses that the file is created when missing and appending implies preserving existing content, but it does not mention effects like directory creation, encoding handling, or any other side effects. This is partial but meaningful disclosure.

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

Conciseness5/5

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

The description is two short sentences with no filler. It front-loads the primary action, then adds the key file-creation behavior. Every word earns its place.

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, but the tool has five parameters, zero schema coverage, no annotations, and a closely related sibling qwen_write_file. The description does not explain when to append rather than write, how create_dirs and encoding behave, or how to choose between this and qwen_write_file, leaving important selection and usage context 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%, so the description must compensate. It loosely connects content, path, and project to the operation, but gives no detail on encoding, create_dirs, or expected value formats. The schema supplies defaults for encoding and create_dirs, but the description adds little semantic richness beyond those parameter names.

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

Purpose4/5

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

The description clearly states a specific action ('append content') on a specific resource ('a file inside a project') and adds the non-obvious behavior that the file is created if missing. It does not explicitly differentiate from the sibling qwen_write_file, but the append semantics are clear enough from the wording.

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 qwen_write_file or other file tools. The description implies appending is the use case, but it does not state when append is preferred over overwrite, nor does it mention any alternatives or exclusions.

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

qwen_create_projectC

Create a project folder inside the Qwen MCP projects directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.5/5.0
Behavior1/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'Create' without revealing any side effects, such as whether the folder is created if it already exists, whether it overwrites, or what errors may occur. There is also no mention of required permissions or the nature of the operation beyond the bare verb.

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

Conciseness4/5

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

The description is a single, concise sentence that is front-loaded with the primary action and resource. There is no filler or repetition, and it is appropriately brief for a tool with only one parameter.

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?

The tool is simple (one parameter, output schema provided), but the description still lacks critical context. It does not clarify the relationship to sibling tools, does not describe expected behavior on conflicts, and provides no usage guidance. Given the presence of an output schema, the return format is covered, but the operational context is 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?

With 0% schema description coverage, the description must compensate by explaining the 'name' parameter. It implies that 'name' is the project folder name, but it does not provide any additional semantics like naming conventions, uniqueness requirements, or format constraints. The description adds minimal value over the schema's bare parameter list.

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

Purpose4/5

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

The description clearly states the verb 'Create' and the resource 'project folder inside the Qwen MCP projects directory', which is specific and unambiguous. However, it does not explicitly differentiate from the sibling tool qwen_register_external_project, so there is a slight gap in distinguishing it from potentially overlapping tools.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus its alternatives. It does not mention qwen_register_external_project, qwen_list_projects, or any other sibling, nor does it state any conditions or prerequisites. An agent has to infer usage from the name alone, which is insufficient.

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

qwen_delete_fileA

Delete a file or directory inside a project. Set recursive=true to delete directories.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
projectYes
recursiveNo

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 clearly conveys a destructive action and adds the important recursive=true behavior for directories, but it does not mention permanence, error cases, or what happens if recursive is false on a directory.

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. The core action is front-loaded and the key recursive behavior is stated directly, making the description easy to parse quickly.

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 description is adequate for a simple deletion tool, especially since an output schema exists. However, because the tool is destructive and has no annotations, it would benefit from stating that deletion is permanent and clarifying the behavior when deleting directories without recursive=true.

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 for missing parameter documentation. It adds meaning for recursive and clarifies the project/path relationship with 'inside a project', but path and project formats, constraints, or defaults beyond the schema are not explained.

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

Purpose5/5

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

The description names a specific verb ('Delete') and resource ('file or directory inside a project'), clearly differentiating it from sibling read/write/rename/search operations. The note about recursive deletion adds precision about what the tool can target.

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

Usage Guidelines3/5

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

The intended use is implied: use this tool when a file or directory must be removed. It does not explicitly compare this tool to siblings or state when not to use it, though the destructive purpose is distinct enough to avoid obvious confusion.

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

qwen_list_filesC

List files and directories inside a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
patternNo*
projectYes
recursiveNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are supplied, so the description carries the full burden of behavioral disclosure. It communicates the basic listing operation but says nothing about default path behavior, pattern matching, recursive expansion, or whether hidden files are included. The behavior remains under-specified for an agent.

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 sentence with no filler, front-loading the verb and resource. It is appropriately concise, though it could benefit from more detail without becoming verbose.

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

Completeness2/5

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

For a tool with four parameters, zero schema descriptions, and no annotations, a one-line description is insufficient. The output schema covers return values, but the meanings and interactions of path, pattern, and recursive are left unexplained. An agent would need external knowledge to correctly invoke non-default options.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the four parameters (project, path, pattern, recursive). The phrase 'inside a project' only hints at the required parameter, so agents cannot infer parameter formats, defaults, or semantics from this definition.

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') and resource ('files and directories inside a project'), clearly distinguishing from the sibling qwen_list_projects, which lists projects. It succinctly defines the tool's scope and likely output.

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

Usage Guidelines2/5

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

No guidance is provided about when to use this tool versus qwen_search_files or qwen_read_file. The description states only what the tool does, not when or why to choose it, and no exclusions or alternative routing are given.

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

qwen_list_projectsA

List internal projects and external .txt-linked projects.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, so the description carries the behavioral burden. 'List' clearly signals a read-only operation, and the description adds useful context by naming the two project categories. It does not disclose failure modes or edge cases, but for a simple no-argument list tool this is acceptable.

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, focused sentence that front-loads the action and the exact resource scope. There is no wasted wording or redundant information.

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?

For a no-parameter list operation with an output schema, the description is fully adequate. It tells the agent exactly what the tool lists, and invocation requires no further context. The missing details are minor and unlikely to affect correct selection or 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?

The tool has zero parameters and the schema is fully covered, so the baseline is 4. The description cannot add parameter meaning where none exists, and no additional explanation is 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?

States a specific verb 'List' with a clear resource ('projects') and further narrows scope to 'internal projects and external .txt-linked projects.' This is unambiguous and distinguishes it from file-related siblings like qwen_list_files.

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 whenever a list of projects is needed, and the zero-parameter signature makes invocation self-evident. However, it provides no explicit guidance about when to choose this tool over related siblings such as qwen_status or qwen_resolve_project.

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

qwen_read_fileB

Read a file from a project. Returns UTF-8 text when possible, otherwise base64.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
projectYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are provided, so the description carries full responsibility. It discloses a meaningful behavior (encoding fallback from UTF-8 to base64), which is helpful. However, it does not mention whether the tool is read-only, what happens when the file is missing, or any access requirements.

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 concise sentences with no filler: the purpose is stated first, and the encoding behavior adds essential information. Every word contributes useful context.

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 itself is simple, and an output schema exists so return-value details are covered elsewhere. However, the absense of parameter guidance means an agent still lacks clear instructions for a correct call, and usage vs siblings is unexplored.

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

Parameters2/5

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

Schema description coverage is 0%, and the description does not compensate for it. The param names 'path' and 'project' are somewhat self-explanatory, but no format, examples, or constraints are provided, leaving ambiguity about how to specify the project or path.

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

Purpose5/5

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

The description states a specific verb ('Read') and resource ('a file from a project'), and the return behavior (UTF-8 text or base64) sets it apart from sibling list/create/write tools. It effectively differentiates from qwen_list_files, which lists files rather than reading contents.

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 says what the tool does but does not specify when to choose it over alternatives, nor any exclusions or prerequisites. A sibling tool like qwen_list_files could serve a related purpose, and no use-case guidance is given.

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

qwen_register_external_projectB

Register an external project by saving its absolute path into a .txt link file.

ParametersJSON Schema
NameRequiredDescriptionDefault
nameYes
pathYes
createNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosure. It does reveal a concrete side effect: writing a .txt link file with an absolute path. However, it says nothing about what the 'create' boolean does, whether the path must already exist, reversibility, or other behavioral consequences.

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 sentence contains the essential verb, target, and mechanism with no filler or repetition. The key detail of saving an absolute path is front-loaded and immediately usable.

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?

The tool has 3 parameters, no annotations, and no per-parameter descriptions. The 'create' flag is a significant behavioral fork that the description ignores, and there is no guidance on prerequisites, success criteria, or how this relates to materializing an external project. The output schema may cover return values, but it does not compensate for these gaps.

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 description adds meaningful parameter semantics by specifying that 'path' must be an absolute path and that registration is done via a link file. 'name' is inferable as the project identifier, but the optional 'create' parameter is entirely unexplained. With 0% schema description coverage, the description only partially compensates.

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 action (register), a target (external project), and the mechanism (saving its absolute path into a .txt link file). The 'external' qualifier helps distinguish this from qwen_create_project, though it does not explicitly name any sibling.

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

Usage Guidelines3/5

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

The word 'external' implies this is for projects that exist outside the current project structure, but there is no explicit when-to-use or when-not-to-use guidance. It does not clearly contrast with qwen_create_project or qwen_resolve_project, leaving usage boundaries largely inferential.

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

qwen_rename_fileC

Rename or move a file or directory inside a project.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes
new_pathYes
old_pathYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.9/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of behavioral disclosure, but it only states the operation. It does not mention whether overwriting is allowed, what happens if old_path does not exist, whether directory moves are recursive, or any permission or side-effect considerations.

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

Conciseness4/5

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

The description is a single, direct sentence with no filler or repetition. It is concise and front-loaded, though it sacrifices behavioral detail for brevity.

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?

Given there are no annotations, the description is too thin for a mutating operation with path-based arguments. The presence of an output schema helps with return values, but the description still lacks usage guidance, path semantics, and edge-case behavior, leaving an agent under-informed before invoking the 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%, so the description must compensate, but it only adds minimal context like 'inside a project'. It does not explain the expected format or semantics of old_path and new_path beyond what their titles already imply.

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 pair ('Rename or move') and a clear resource ('a file or directory inside a project'), making the operation unmistakable. It is also distinct from all sibling tools, none of which cover rename/move behavior.

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 gives no explicit guidance about when to choose this tool over alternatives, nor does it mention any prerequisites or exclusions. Usage is only implied by the tool name and the verb, so an agent gets no decision support relative to siblings like qwen_write_file or qwen_delete_file.

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

qwen_resolve_projectA

Resolve a project name to its actual root directory.

ParametersJSON Schema
NameRequiredDescriptionDefault
projectYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.6/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 communicates the core behaviorβ€”mapping a project name to a canonical root directoryβ€”and the word 'actual' hints at symlink or path canonicalization. But it does not state whether the operation is read-only, whether the project must already exist, or what happens on failure.

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 one concise sentence with no filler. Every word contributes meaning, and 'actual' adds useful nuance about canonicalization. The verb and object are front-loaded, making the definition 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 one-parameter tool with an output schema, the definition is nearly sufficient: the core purpose is clear and return values are presumably covered by the output schema. However, it lacks usage guidance, routing to alternatives, input format details, and any error or side-effect context, leaving gaps an agent must navigate.

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?

The input schema has one required parameter 'project' with no description, giving 0% schema coverage. The description adds that the parameter is a 'project name', which clarifies it is not a path or ID, but it does not specify the expected string format, naming conventions, or how to obtain valid project names (e.g., from qwen_list_projects).

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 ('resolve') and a clear resource ('a project name to its actual root directory'), making the tool's function immediately obvious. It is distinct from siblings such as qwen_create_project, qwen_list_projects, and file tools because it performs a lookup/canonicalization rather than creation, listing, or file manipulation.

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

Usage Guidelines3/5

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

The intended use is implied: call this when you have a project name and need its real root directory. However, there is no explicit guidance on when to choose it over alternatives like qwen_list_projects that could also surface project paths, nor any exclusions or conditions stated.

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

qwen_search_filesA

Search for text inside project files. Returns matching lines with file paths and line numbers.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathNo
queryYes
patternNo*
projectYes
max_resultsNo
case_sensitiveNo

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 must carry the behavioral disclosure. It does state the operation and the expected return format, but it does not explain matching semantics (plain text vs regex), the role of the 'pattern' parameter, or whether results are truncated by max_results. This is 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?

The description is a single, front-loaded sentence that states the core purpose and the result shape without any filler. Every word earns its place, even if more detail is needed elsewhere.

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

Completeness2/5

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

For a tool with 6 parameters, 0% schema coverage, and no annotations, this description is too thin to fully support correct invocation. It covers purpose and return value but leaves parameter semantics and behavioral details unexplained. The presence of an output schema helps with return structure, but not with how to use the inputs.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for explaining parameters. It only vaguely implies that 'query' is the text to search for; it says nothing about 'path', 'pattern', 'max_results', or 'case_sensitive'. With six parameters and no schema descriptions, this is a significant gap.

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

Purpose5/5

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

The description states a specific verb ('Search') and a specific resource ('text inside project files'), and clarifies what the tool returns: matching lines with file paths and line numbers. This clearly distinguishes it from sibling tools like qwen_list_files and qwen_read_file, which list or read files rather than search their contents.

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

Usage Guidelines4/5

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

The description gives clear context: this tool is for searching text within project files, not for listing or reading whole files. It does not explicitly name alternatives or state when not to use it, but the intended use case is obvious enough from the wording and sibling tool names.

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

qwen_statusA

Show where Qwen MCP stores projects and whether external projects are allowed.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A4.1/5.0
Behavior3/5

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

No annotations are provided, and the description only says 'Show' which implies a read-only operation. It does not explicitly state side effects or permissions, but for a status tool the behavior is fairly predictable. The description lacks explicit disclosure beyond the basic action.

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, concise sentence that conveys the essential information without any filler. It is well-structured and front-loaded with the action.

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?

The tool has no parameters and a simple status output. The description fully covers what the tool does, and with an output schema present, the agent has enough context to call it correctly. Nothing important is missing.

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

Parameters4/5

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

The tool has zero parameters, and the schema is an empty object with 100% coverage. Per rubric, 0 params warrants a baseline of 4. No parameter descriptions 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 tool's purpose with a specific verb ('Show') and resource ('where Qwen MCP stores projects and whether external projects are allowed'). It is distinct from sibling tools which focus on creating, registering, listing, resolving projects, or file operations.

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 status queries about project storage and external project allowances, but it does not explicitly state when to use this vs. alternatives. Given the sibling context, the purpose is clear enough, but explicit guidance is missing.

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

qwen_write_fileC

Write content to a file inside a project. Use encoding='base64' for binary data.

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYes
contentYes
projectYes
encodingNoutf-8
create_dirsNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.8/5.0
Behavior2/5

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

There are no annotations, so the description carries the full burden of disclosing behavior. It states the basic write action and binary encoding hint, but does not disclose whether existing files are overwritten, whether directories are created despite the create_dirs parameter, or what side effects occur. This 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?

Two concise sentences with no filler. The core action is front-loaded, and the encoding note is relevant and actionable.

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, but the description lacks essential behavioral context such as overwrite semantics, project requirements, and directory creation behavior. An agent has to guess about destructive behavior, which is risky for a file-writing 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%, so the description must compensate for parameter meaning. It adds useful semantics for encoding ('base64' for binary data), but offers no explanation of path, project, content, or create_dirs beyond what the schema already exposes.

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 ('Write'), resource ('content to a file inside a project'), and scope ('inside a project'). It is clear and somewhat distinguishable from qwen_append_file, though it does not explicitly say whether it overwrites existing 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?

No guidance is given on when to use this tool versus siblings like qwen_append_file or qwen_rename_file. The only usage hint is the base64 encoding note, which is about parameter handling, not tool selection.

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. Dates show when Glama detected each change.

  1. 12 tool updatesv1.0.0
    • First observedqwen_append_file
    • First observedqwen_create_project
    • First observedqwen_delete_file
    • First observedqwen_list_files
    • First observedqwen_list_projects
    • First observedqwen_read_file
    • First observedqwen_register_external_project
    • First observedqwen_rename_file
    • First observedqwen_resolve_project
    • First observedqwen_search_files
    • First observedqwen_status
    • First observedqwen_write_file

TDQS

A3.5/5.0
Disambiguation5/5

Each tool targets a distinct action and resource type: project-level status/list/create/register/resolve versus file-level list/read/write/append/delete/rename/search. There is no meaningful overlap between the tools, and the descriptions reinforce their boundaries.

Naming Consistency5/5

All tools follow the same qwen_verb_noun pattern, with clear verbs like create, list, read, write, append, delete, rename, and search. The naming is uniform and predictable across the entire tool set.

Tool Count5/5

12 tools is well within the ideal range for a filesystem server. Each tool covers a necessary operation without redundancy or bloat, and the set feels appropriately scoped for managing projects and their files.

Completeness4/5

File operations are well covered with create, read, update, append, delete, rename, and search. The main gaps are project lifecycle operations: there is no delete/unregister project tool, and no explicit directory creation tool, though these are minor for the core file-management purpose.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    A Model Context Protocol (MCP) server that allows AI models to safely access and interact with local file systems, enabling reading file contents, listing directories, and retrieving file metadata.
    11
    10
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Provides sandboxed file system tools (read, write, search, list, watch) over the Model Context Protocol, enabling resume matching and analysis workflows via an agent.
    -

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Frosty-09/Qwen-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server