Skip to main content
Glama

MCP ToolKit / MCP 工具集

基于 Model Context Protocol (MCP) 设计和实现的综合工具集,提供文件系统操作、命令执行、系统工具等多种功能,兼容 Windows、Linux 和 macOS。

A comprehensive MCP tools collection based on the Model Context Protocol (MCP), providing filesystem operations, command execution, system tools and more, compatible with Windows, Linux, and macOS.

项目简介 / Project Overview

MCP ToolKit 是一个功能丰富、安全可靠的 MCP 工具集合,旨在为 AI 模型提供强大的系统交互能力。项目采用模块化设计,支持灵活扩展,未来将持续集成更多实用工具。

MCP ToolKit is a feature-rich and secure MCP tools collection designed to provide powerful system interaction capabilities for AI models. The project adopts a modular design, supports flexible expansion, and will continue to integrate more practical tools in the future.

核心特性 / Core Features

  • 🚀 多功能集成 - 文件系统、命令执行、系统工具等多种功能

  • 🔒 安全可靠 - 沙箱隔离、黑名单机制、路径验证、频率限制等多重安全保障

  • 高性能 - Sonic JSON库、结构体预热等性能优化

  • 🛡️ 稳定性强 - Panic Recovery机制、优雅关闭、并发安全保障

  • 🔌 灵活传输 - 支持 Stdio、HTTP、SSE 多种传输方式

  • 🌍 跨平台 - 完美支持 Windows、Linux、macOS

  • 📦 模块化设计 - 易于扩展和维护

  • 🔄 协议兼容 - 支持最新 MCP 协议版本,向后兼容旧版本

Related MCP server: FastMCP Multi-Tool Server

功能特性 / Features

文件操作 / File Operations

  • ✅ 创建文件 / Create files

  • ✅ 读取文件 / Read files

  • ✅ 写入文件 / Write files

  • ✅ 删除文件 / Delete files

  • ✅ 复制文件 / Copy files

  • ✅ 移动文件 / Move files

  • ✅ 获取文件状态 / Get file status

  • ✅ 检查文件是否存在 / Check file existence

目录操作 / Directory Operations

  • ✅ 创建目录 / Create directories

  • ✅ 列出目录内容 / List directory contents

  • ✅ 删除目录 / Delete directories

  • ✅ 复制目录 / Copy directories

  • ✅ 移动目录 / Move directories

批量操作 / Batch Operations

  • ✅ 批量删除 / Batch delete

  • ✅ 文件搜索 / File search (支持通配符 / supports wildcards)

命令执行 / Command Execution

  • ✅ 在沙箱内执行命令 / Execute commands within sandbox

  • ✅ 工作目录管理 / Working directory management

  • ✅ 命令黑名单保护 / Command blacklist protection

  • ✅ 目录黑名单保护 / Directory blacklist protection

  • ✅ 命令超时控制 / Command timeout control

  • ✅ 输出捕获(stdout/stderr) / Output capture (stdout/stderr)

  • ✅ 跨平台命令支持 / Cross-platform command support

  • ✅ 异步命令执行 / Asynchronous command execution

  • ✅ 命令执行历史记录 / Command execution history

  • ✅ 权限级别控制 / Permission level control

  • ✅ 环境变量配置 / Environment variable configuration

  • ✅ 审计日志 / Audit logging

下载工具 / Download Tools

  • ✅ HTTP/HTTPS 文件下载 / HTTP/HTTPS file download

  • ✅ 支持 GET、POST 等多种 HTTP 方法 / Support GET, POST and other HTTP methods

  • ✅ 自定义请求头和请求体 / Custom headers and request body

  • ✅ 超时控制 / Timeout control

  • ✅ 自动保存到沙箱 / Automatic save to sandbox

系统工具 / System Tools

  • ✅ 获取当前系统时间 / Get current system time

  • ✅ 获取系统信息 / Get system information (OS, CPU, Memory, GPU, Network)

安全特性 / Security Features

  • ✅ 沙箱目录限制 / Sandbox directory restriction

  • ✅ 路径遍历保护 / Path traversal protection

  • ✅ 命令黑名单机制 / Command blacklist mechanism

  • ✅ 命令参数路径验证 / Command argument path validation

  • ✅ 系统目录保护 / System directory protection

  • ✅ 危险命令拦截 / Dangerous command interception

稳定性保障 / Stability Assurance

  • Panic Recovery 机制 / Panic recovery mechanism

    • 工具层 panic 恢复 / Tool-level panic recovery

    • 传输层 panic 恢复 / Transport-level panic recovery

    • 完整的堆栈跟踪记录 / Complete stack trace logging

    • 优雅的错误降级处理 / Graceful error degradation

  • ✅ 多层防护确保服务稳定 / Multi-layer protection ensures service stability

  • ✅ 单个工具异常不影响整体服务 / Individual tool exceptions don't affect overall service

性能优化 / Performance Optimization

  • ✅ Sonic JSON库支持(高性能序列化/反序列化)

  • ✅ 结构体预热机制(消除首次请求延迟)

  • ✅ 多种JSON库可选(Sonic、go-json、jsoniter、标准库)

技术栈 / Tech Stack

  • 语言 / Language: Go 1.25.5+

  • MCP SDK: github.com/modelcontextprotocol/go-sdk v1.2.0 (官方SDK / Official SDK)

  • JSON库 / JSON Library:

    • github.com/bytedance/sonic v1.14.2 (高性能 / High performance)

    • github.com/goccy/go-json v0.10.5 (备选 / Alternative)

    • github.com/json-iterator/go v1.1.12 (备选 / Alternative)

  • 日志 / Logging: go.uber.org/zap v1.27.1

  • 测试 / Testing: github.com/stretchr/testify v1.10.0

安装 / Installation

快速安装 / Quick Installation

# 安装 uv (如果还没有安装) / Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh

# 使用 uv 安装 MCP Toolkit / Install MCP Toolkit using uv
uv tool install mcp-sandbox-toolkit
# 更新到最新版本 / Upgrade to the latest version
uv tool upgrade mcp-sandbox-toolkit


# 或使用 uvx 直接运行(无需安装)/ Or use uvx to run directly (no installation needed)
uvx mcp-sandbox-toolkit --help
# 或使用 uvx 运行最新版的工具 / Or use uvx to run the latest version of the tool
uvx --refresh mcp-sandbox-toolkit

# 运行程序(两个命令都可以)/ Run the program (both commands work)
mcp-sandbox-toolkit --help
mcp-toolkit --help

配置 PATH (如果需要) / Configure PATH (if needed):

如果安装后无法直接运行 mcp-toolkit 命令,需要将 ~/.local/bin (Linux/macOS) 添加到 PATH:

# Bash
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc

# Zsh
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc

详细的安装和配置说明请参考 INSTALLATION.md

使用安装脚本 / Using Installation Script

Linux/macOS:

curl -fsSL https://raw.githubusercontent.com/shibingli/mcp-toolkit/main/scripts/install.sh | bash

Windows (PowerShell):

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/shibingli/mcp-toolkit/main/scripts/install.ps1" -OutFile "install.ps1"
.\install.ps1

手动下载 / Manual Download

Releases 页面 下载对应平台的二进制文件。

Download the binary for your platform from the Releases page.

从源码编译 / Build from Source

# 克隆仓库 / Clone repository
git clone https://github.com/shibingli/mcp-toolkit.git
cd mcp-toolkit

# 安装依赖 / Install dependencies
go mod download

# 编译(使用sonic JSON库以获得最佳性能) / Build (using sonic JSON library for best performance)
go build -tags="sonic" -o mcp-toolkit main.go

# 或使用 Makefile / Or use Makefile
make build

更多安装方式请参考 安装指南

For more installation methods, see Installation Guide.

使用方法 / Usage

启动服务器 / Start Server

Stdio 传输 (默认) / Stdio Transport (Default)

# 使用默认沙箱目录和stdio传输 / Use default sandbox directory and stdio transport
./mcp-toolkit

# 指定自定义沙箱目录 / Specify custom sandbox directory
./mcp-toolkit -sandbox /path/to/sandbox

HTTP 传输 / HTTP Transport

# 使用HTTP传输 / Use HTTP transport
./mcp-toolkit -transport http

# 自定义HTTP配置 / Customize HTTP configuration
./mcp-toolkit -transport http -http-host 0.0.0.0 -http-port 8080 -sandbox /path/to/sandbox
Streamable HTTP 支持 / Streamable HTTP Support

HTTP 传输支持 MCP 规范的 Streamable HTTP 功能,包括会话管理和 SSE 流。

HTTP transport supports MCP specification's Streamable HTTP features, including session management and SSE streaming.

核心特性 / Core Features:

  1. 会话管理 / Session Management

    • 自动生成加密安全的会话 ID

    • 通过 Mcp-Session-Id 头管理会话

    • 可配置的会话超时时间

    • 支持会话终止

  2. 协议版本支持 / Protocol Version Support

    • 支持 MCP-Protocol-Version

    • 默认版本: 2025-12-26 (最新 / Latest)

    • 兼容多个协议版本: 2025-12-26, 2025-06-18, 2025-03-26, 2024-11-05

    • 向后兼容旧版本

  3. SSE 流支持 / SSE Streaming Support

    • POST 请求支持 JSON 和 SSE 响应

    • GET 请求打开 SSE 流用于服务器推送

    • 可配置的心跳间隔

    • 自动连接保持

    • 连接池管理和限制

    • 自动清理过期连接

  4. 请求频率限制 / Rate Limiting

    • 滑动窗口算法

    • 每个客户端独立限制

    • 可配置的请求数和时间窗口

    • 防止滥用和 DDoS 攻击

  5. 优雅关闭 / Graceful Shutdown

    • 等待正在处理的请求完成

    • 清理所有会话和连接

    • 资源正确释放

配置选项 / Configuration Options:

# 启用会话管理(默认启用) / Enable session management (enabled by default)
./mcp-toolkit -transport http -http-enable-session

# 禁用会话管理 / Disable session management
./mcp-toolkit -transport http -http-disable-session

# 设置会话超时(秒,默认1800秒/30分钟) / Set session timeout (seconds, default 1800s/30min)
./mcp-toolkit -transport http -http-session-timeout 1800

# 启用SSE流(默认启用) / Enable SSE streaming (enabled by default)
./mcp-toolkit -transport http -http-enable-sse

# 禁用SSE流 / Disable SSE streaming
./mcp-toolkit -transport http -http-disable-sse

# 设置SSE心跳间隔(秒) / Set SSE heartbeat interval (seconds)
./mcp-toolkit -transport http -http-sse-heartbeat 30

# 启用请求频率限制 / Enable rate limiting
./mcp-toolkit -transport http -http-enable-rate-limit

# 设置频率限制(100请求/60秒) / Set rate limit (100 requests/60 seconds)
./mcp-toolkit -transport http -http-rate-limit-requests 100 -http-rate-limit-window 60

使用示例 / Usage Examples:

  1. 初始化会话 / Initialize Session:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "MCP-Protocol-Version: 2025-12-26" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-12-26",
      "capabilities": {},
      "clientInfo": {
        "name": "example-client",
        "version": "1.0.0"
      }
    }
  }'

响应将包含 Mcp-Session-Id 头,后续请求需要使用此会话 ID。

Response will include Mcp-Session-Id header, which must be used in subsequent requests.

  1. 使用会话调用工具 / Call Tool with Session:

curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json" \
  -H "Mcp-Session-Id: <session-id-from-initialize>" \
  -d '{
    "jsonrpc": "2.0",
    "id": 2,
    "method": "tools/list"
  }'
  1. 使用 SSE 流 / Use SSE Streaming:

# 初始化并请求SSE流 / Initialize and request SSE stream
curl -X POST http://localhost:8080/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: text/event-stream" \
  -H "MCP-Protocol-Version: 2025-12-26" \
  -d '{
    "jsonrpc": "2.0",
    "id": 1,
    "method": "initialize",
    "params": {
      "protocolVersion": "2025-12-26"
    }
  }'

# 打开SSE流监听服务器消息 / Open SSE stream to listen for server messages
curl -X GET http://localhost:8080/mcp \
  -H "Accept: text/event-stream" \
  -H "Mcp-Session-Id: <session-id>"
  1. 终止会话 / Terminate Session:

curl -X DELETE http://localhost:8080/mcp \
  -H "Mcp-Session-Id: <session-id>"

HTTP 方法支持 / HTTP Methods:

  • POST: 发送 JSON-RPC 消息,支持 JSON 和 SSE 响应

  • GET: 打开 SSE 流监听服务器推送消息

  • DELETE: 终止会话

  • OPTIONS: CORS 预检请求

测试脚本 / Test Scripts:

项目提供了完整的 Streamable HTTP 测试脚本:

The project provides complete Streamable HTTP test scripts:

# Linux/macOS
chmod +x examples/streamable_http_test.sh
./examples/streamable_http_test.sh

# Windows PowerShell
.\examples\streamable_http_test.ps1

测试脚本会自动执行以下操作:

  1. 初始化会话并获取会话 ID

  2. 列出所有可用工具

  3. 调用示例工具

  4. 测试 SSE 流响应

  5. 终止会话

The test script automatically performs the following:

  1. Initialize session and get session ID

  2. List all available tools

  3. Call example tool

  4. Test SSE stream response

  5. Terminate session

SSE 传输 / SSE Transport

# 使用SSE传输 / Use SSE transport
./mcp-toolkit -transport sse

# 自定义SSE配置 / Customize SSE configuration
./mcp-toolkit -transport sse -sse-host 0.0.0.0 -sse-port 8081 -sandbox /path/to/sandbox

# 设置最大连接数 / Set max connections
./mcp-toolkit -transport sse -sse-max-connections 100

# 启用频率限制 / Enable rate limiting
./mcp-toolkit -transport sse -sse-enable-rate-limit -sse-rate-limit-requests 100 -sse-rate-limit-window 60

SSE 传输特性 / SSE Transport Features:

  • 连接管理 - 连接池、最大连接数限制、自动清理

  • 心跳机制 - 保持连接活跃,可配置心跳间隔

  • 服务器推送 - 支持向客户端推送消息

  • 频率限制 - 防止滥用和 DDoS 攻击

  • 协议版本 - 支持最新 MCP 协议版本

详细的传输方式说明请参考:传输方式文档

For detailed transport documentation, see: Transport Documentation

MCP 客户端配置 / MCP Client Configuration

以下是在主流 MCP 客户端(如 Claude Desktop、Cline 等)中配置 MCP Toolkit 的方法。

Here are the methods to configure MCP Toolkit in mainstream MCP clients (such as Claude Desktop, Cline, etc.).

配置文件位置 / Configuration File Location

Claude Desktop:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

  • Linux: ~/.config/Claude/claude_desktop_config.json

Cline (VS Code Extension):

  • 在 VS Code 设置中搜索 "MCP Servers" / Search for "MCP Servers" in VS Code settings

  • 或编辑 settings.json 文件 / Or edit settings.json file

1. Stdio 传输配置 / Stdio Transport Configuration

Stdio 是最常用的传输方式,适合本地开发和桌面应用。

Stdio is the most common transport method, suitable for local development and desktop applications.

{
   "mcpServers": {
      "mcp-toolkit": {
         "command": "uvx",
         "args": [
            "mcp-sandbox-toolkit",
            "-sandbox",
            "/path/to/your/sandbox"
         ],
         "env": {}
      }
   }
}

使用已安装的二进制文件 / Using Installed Binary

Linux/macOS:

{
   "mcpServers": {
      "mcp-toolkit": {
         "command": "/usr/local/bin/mcp-toolkit",
         "args": [
            "-sandbox",
            "/path/to/your/sandbox"
         ],
         "env": {}
      }
   }
}

Windows:

{
   "mcpServers": {
      "mcp-toolkit": {
         "command": "C:\\Program Files\\mcp-toolkit\\mcp-toolkit.exe",
         "args": [
            "-sandbox",
            "D:\\developer\\go_code\\mcp_demo"
         ],
         "env": {}
      }
   }
}

2. HTTP 传输配置 / HTTP Transport Configuration

HTTP 传输适合远程服务器部署和多客户端访问。

HTTP transport is suitable for remote server deployment and multi-client access.

服务器启动 / Server Startup

# 启动 HTTP 服务器 / Start HTTP server
./mcp-toolkit -transport http -http-host 0.0.0.0 -http-port 8080 -sandbox /path/to/sandbox

客户端配置 / Client Configuration

{
   "mcpServers": {
      "mcp-toolkit-http": {
         "url": "http://localhost:8080/mcp",
         "transport": "http",
         "headers": {
            "Content-Type": "application/json"
         }
      }
   }
}

远程服务器配置 / Remote Server Configuration:

{
   "mcpServers": {
      "mcp-toolkit-remote": {
         "url": "http://your-server.com:8080/mcp",
         "transport": "http",
         "headers": {
            "Content-Type": "application/json",
            "Authorization": "Bearer your-token-here"
         }
      }
   }
}

3. Streamable HTTP 配置 / Streamable HTTP Configuration

Streamable HTTP 支持会话管理和 SSE 流,提供更好的实时性。

Streamable HTTP supports session management and SSE streaming for better real-time performance.

服务器启动 / Server Startup

# 启动支持 Streamable HTTP 的服务器 / Start server with Streamable HTTP support
./mcp-toolkit -transport http \
  -http-host 0.0.0.0 \
  -http-port 8080 \
  -http-enable-session \
  -http-enable-sse \
  -http-session-timeout 1800 \
  -http-sse-heartbeat 30 \
  -sandbox /path/to/sandbox

客户端配置 / Client Configuration

{
   "mcpServers": {
      "mcp-toolkit-streamable": {
         "url": "http://localhost:8080/mcp",
         "transport": "streamable-http",
         "headers": {
            "Content-Type": "application/json",
            "MCP-Protocol-Version": "2025-12-26"
         },
         "sessionManagement": {
            "enabled": true,
            "timeout": 1800
         },
         "streaming": {
            "enabled": true,
            "heartbeat": 30
         }
      }
   }
}

启用频率限制 / With Rate Limiting:

./mcp-toolkit -transport http \
  -http-enable-rate-limit \
  -http-rate-limit-requests 100 \
  -http-rate-limit-window 60

4. SSE 传输配置 / SSE Transport Configuration

SSE (Server-Sent Events) 传输专门用于服务器推送场景。

SSE (Server-Sent Events) transport is specifically designed for server push scenarios.

服务器启动 / Server Startup

# 启动 SSE 服务器 / Start SSE server
./mcp-toolkit -transport sse \
  -sse-host 0.0.0.0 \
  -sse-port 8081 \
  -sse-max-connections 100 \
  -sse-heartbeat-interval 30 \
  -sandbox /path/to/sandbox

启用频率限制 / With Rate Limiting:

./mcp-toolkit -transport sse \
  -sse-enable-rate-limit \
  -sse-rate-limit-requests 100 \
  -sse-rate-limit-window 60 \
  -sse-max-connections 100

客户端配置 / Client Configuration

{
   "mcpServers": {
      "mcp-toolkit-sse": {
         "url": "http://localhost:8081/sse",
         "transport": "sse",
         "headers": {
            "MCP-Protocol-Version": "2025-12-26"
         },
         "connectionManagement": {
            "maxConnections": 100,
            "heartbeatInterval": 30
         }
      }
   }
}

配置示例汇总 / Configuration Examples Summary

完整的多服务器配置 / Complete Multi-Server Configuration

{
   "mcpServers": {
      "mcp-toolkit-local": {
         "command": "uvx",
         "args": [
            "mcp-sandbox-toolkit",
            "-sandbox",
            "/path/to/local/sandbox"
         ],
         "env": {}
      },
      "mcp-toolkit-http": {
         "url": "http://localhost:8080/mcp",
         "transport": "http",
         "headers": {
            "Content-Type": "application/json"
         }
      },
      "mcp-toolkit-streamable": {
         "url": "http://localhost:8080/mcp",
         "transport": "streamable-http",
         "headers": {
            "Content-Type": "application/json",
            "MCP-Protocol-Version": "2025-12-26"
         },
         "sessionManagement": {
            "enabled": true,
            "timeout": 1800
         }
      },
      "mcp-toolkit-sse": {
         "url": "http://localhost:8081/sse",
         "transport": "sse",
         "headers": {
            "MCP-Protocol-Version": "2025-12-26"
         }
      }
   }
}

配置注意事项 / Configuration Notes

  1. 路径格式 / Path Format:

    • Windows: 使用双反斜杠 \\ 或正斜杠 /

    • Linux/macOS: 使用正斜杠 /

  2. 沙箱目录 / Sandbox Directory:

    • 确保目录存在且有读写权限 / Ensure directory exists with read/write permissions

    • 建议使用绝对路径 / Recommend using absolute paths

  3. 端口选择 / Port Selection:

    • 确保端口未被占用 / Ensure port is not in use

    • HTTP 默认: 8080, SSE 默认: 8081

  4. 安全性 / Security:

    • 生产环境建议启用认证 / Enable authentication in production

    • 使用 HTTPS/TLS 加密传输 / Use HTTPS/TLS for encrypted transport

    • 配置防火墙规则 / Configure firewall rules

  5. 性能优化 / Performance Optimization:

    • 根据需求调整频率限制 / Adjust rate limiting based on needs

    • 合理设置会话超时时间 / Set appropriate session timeout

    • 监控连接数和资源使用 / Monitor connections and resource usage

JSON 结构体预热 / JSON Structure Preheating

程序启动时会自动预热所有注册的结构体(仅在使用Sonic时有效),以消除首次请求的延迟。

The program automatically preheats all registered structures at startup (only effective when using Sonic) to eliminate first request delays.

查看预热日志:

Check preheating logs:

{"level":"INFO","msg":"preheating JSON structures","json_library":"sonic"}
{"level":"INFO","msg":"JSON structures preheated successfully"}

MCP 工具列表 / MCP Tools List

1. create_file

创建新文件并写入内容 / Create a new file and write content

参数 / Parameters:

  • path (必填 / required): 文件路径(相对于沙箱目录) / File path (relative to sandbox directory)

  • content (可选 / optional): 文件内容 / File content

2. create_directory

创建新目录 / Create a new directory

参数 / Parameters:

  • path (必填 / required): 目录路径(相对于沙箱目录) / Directory path (relative to sandbox directory)

3. read_file

读取文件内容 / Read file content

参数 / Parameters:

  • path (必填 / required): 文件路径(相对于沙箱目录) / File path (relative to sandbox directory)

4. write_file

写入或覆盖文件内容 / Write or overwrite file content

参数 / Parameters:

  • path (必填 / required): 文件路径(相对于沙箱目录) / File path (relative to sandbox directory)

  • content (必填 / required): 文件内容 / File content

5. delete

删除文件或目录 / Delete file or directory

参数 / Parameters:

  • path (必填 / required): 文件或目录路径(相对于沙箱目录) / File or directory path (relative to sandbox directory)

6. copy

复制文件或目录 / Copy file or directory

参数 / Parameters:

  • source (必填 / required): 源路径(相对于沙箱目录) / Source path (relative to sandbox directory)

  • destination (必填 / required): 目标路径(相对于沙箱目录) / Destination path (relative to sandbox directory)

7. move

移动或重命名文件或目录 / Move or rename file or directory

参数 / Parameters:

  • source (必填 / required): 源路径(相对于沙箱目录) / Source path (relative to sandbox directory)

  • destination (必填 / required): 目标路径(相对于沙箱目录) / Destination path (relative to sandbox directory)

8. list_directory

列出目录中的文件和子目录 / List files and subdirectories in a directory

参数 / Parameters:

  • path (必填 / required): 目录路径(相对于沙箱目录) / Directory path (relative to sandbox directory)

9. search_files

根据文件名模式搜索文件 / Search files by filename pattern

参数 / Parameters:

  • path (必填 / required): 搜索起始路径(相对于沙箱目录) / Search starting path (relative to sandbox directory)

  • pattern (必填 / required): 文件名匹配模式(支持通配符*和?) / Filename pattern (supports wildcards * and ?)

10. batch_delete

批量删除多个文件或目录 / Batch delete multiple files or directories

参数 / Parameters:

  • paths (必填 / required): 要删除的文件或目录路径列表(相对于沙箱目录) / List of file or directory paths to delete (relative to sandbox directory)

11. file_stat

获取文件或目录的详细信息 / Get detailed information about a file or directory

参数 / Parameters:

  • path (必填 / required): 文件或目录路径(相对于沙箱目录) / File or directory path (relative to sandbox directory)

12. file_exists

检查文件或目录是否存在 / Check if a file or directory exists

参数 / Parameters:

  • path (必填 / required): 文件或目录路径(相对于沙箱目录) / File or directory path (relative to sandbox directory)

13. download_file

从互联网下载文件到沙箱目录 / Download file from internet to sandbox directory

参数 / Parameters:

  • url (必填 / required): 下载URL(必须是http://或https://) / Download URL (must be http:// or https://)

  • path (必填 / required): 保存路径(相对于沙箱目录) / Save path (relative to sandbox directory)

  • method (可选 / optional): HTTP方法(GET/POST/PUT等,默认GET) / HTTP method (GET/POST/PUT etc., default GET)

  • headers (可选 / optional): 自定义请求头 / Custom headers

  • body (可选 / optional): 请求体(用于POST等方法) / Request body (for POST etc.)

  • timeout (可选 / optional): 超时时间(秒,默认30,最大300) / Timeout in seconds (default 30, max 300)

详细文档 / Detailed Documentation: 下载工具指南

14. get_current_time

获取当前系统时间 / Get current system time

参数 / Parameters: 无 / None

15. execute_command

在沙箱目录内执行命令行命令 / Execute command line command within sandbox directory

参数 / Parameters:

  • command (必填 / required): 要执行的命令 / Command to execute

  • args (可选 / optional): 命令参数列表 / Command arguments list

  • work_dir (可选 / optional): 工作目录(相对于沙箱根目录) / Working directory (relative to sandbox root)

  • timeout (可选 / optional): 超时时间(秒),0表示使用默认值 / Timeout in seconds, 0 for default

16. get_command_blacklist

获取命令和目录黑名单配置 / Get command and directory blacklist configuration

参数 / Parameters: 无 / None

17. update_command_blacklist

更新命令和目录黑名单 / Update command and directory blacklist

参数 / Parameters:

  • commands (可选 / optional): 要添加的黑名单命令列表 / Commands to add to blacklist

  • directories (可选 / optional): 要添加的黑名单目录列表 / Directories to add to blacklist

18. get_working_directory

获取当前工作目录 / Get current working directory

参数 / Parameters: 无 / None

19. change_directory

切换当前工作目录 / Change current working directory

参数 / Parameters:

  • path (必填 / required): 目标目录路径(相对于沙箱根目录) / Target directory path (relative to sandbox root)

20. execute_command_async

异步执行命令,返回任务ID / Execute command asynchronously, returns task ID

参数 / Parameters:

  • command (必填 / required): 要执行的命令 / Command to execute

  • args (可选 / optional): 命令参数列表 / Command arguments list

  • work_dir (可选 / optional): 工作目录 / Working directory

  • timeout (可选 / optional): 超时时间(秒) / Timeout in seconds

  • environment (可选 / optional): 环境变量 / Environment variables

  • permission_level (可选 / optional): 权限级别 / Permission level

  • user (可选 / optional): 执行用户 / Executing user

21. get_command_task

获取异步命令任务状态 / Get async command task status

参数 / Parameters:

  • task_id (必填 / required): 任务ID / Task ID

21. cancel_command_task

取消正在执行的命令任务 / Cancel running command task

参数 / Parameters:

  • task_id (必填 / required): 任务ID / Task ID

22. get_command_history

获取命令执行历史记录 / Get command execution history

参数 / Parameters:

  • limit (可选 / optional): 返回记录数量限制 / Limit of returned records

  • offset (可选 / optional): 偏移量 / Offset

  • user (可选 / optional): 按用户过滤 / Filter by user

23. clear_command_history

清空命令执行历史记录 / Clear command execution history

参数 / Parameters: 无 / None

24. set_permission_level

设置命令执行权限级别 / Set command execution permission level

参数 / Parameters:

  • level (必填 / required): 权限级别(0-3) / Permission level (0-3)

25. get_permission_level

获取当前权限级别 / Get current permission level

参数 / Parameters: 无 / None

26. get_system_info

获取系统信息 / Get system information

获取完整的系统信息,包括操作系统、CPU、内存、GPU、网络接口等详细信息。 Get complete system information including OS, CPU, memory, GPU, network interfaces and more.

参数 / Parameters: 无 / None

返回 / Returns:

  • os: 操作系统信息 / OS information (platform, architecture, hostname, uptime, etc.)

  • cpu: CPU信息 / CPU information (model, cores, frequency, usage, etc.)

  • memory: 内存信息 / Memory information (total, available, used, swap, etc.)

  • gpus: GPU信息列表 / GPU information list (name, memory, temperature, utilization, etc.)

  • networks: 网络接口信息列表 / Network interface list (name, MAC, IPs, speed, etc.)

文档 / Documentation

传输方式 / Transport

命令执行 / Command Execution

其他 / Others

测试 / Testing

# 运行所有测试 / Run all tests
go test -v ./...

# 运行测试并生成覆盖率报告 / Run tests with coverage report
go test -v ./... -cover

# 生成详细的覆盖率报告 / Generate detailed coverage report
go test -v ./... -coverprofile=coverage.out
go tool cover -html=coverage.out

当前测试覆盖率 / Current test coverage:

  • sandbox: 53.0%

  • client: 78.0%

  • transport: 85.0% (新增频率限制、连接管理等测试)

  • json: 86.1%

  • recovery: 100.0%

项目结构 / Project Structure

mcp-toolkit/
├── main.go                              # 主程序入口 / Main entry point
├── go.mod                               # Go 模块定义 / Go module definition
├── go.sum                               # 依赖校验和 / Dependency checksums
├── README.md                            # 项目文档 / Project documentation
├── pkg/
│   ├── types/                           # 类型定义 / Type definitions
│   │   ├── common.go                    # 通用类型 / Common types
│   │   ├── file.go                      # 文件操作类型 / File operation types
│   │   ├── command.go                   # 命令执行类型 / Command execution types
│   │   ├── time.go                      # 时间类型 / Time types
│   │   ├── sysinfo.go                   # 系统信息类型 / System info types
│   │   ├── schema.go                    # JSON Schema 定义 / JSON Schema definitions
│   │   └── constants.go                 # 常量定义 / Constants
│   └── utils/
│       └── json/                        # JSON 工具 / JSON utilities
│           ├── json.go                  # JSON 编解码 / JSON encoding/decoding
│           └── pretouch.go              # 结构体预热 / Struct pretouch
└── internal/
    └── services/
        └── sandbox/                     # 沙箱服务 / Sandbox service
            ├── service.go               # 核心服务实现 / Core service implementation
            ├── service_test.go          # 服务测试 / Service tests
            ├── sysinfo.go               # 系统信息获取 / System info retrieval
            ├── sysinfo_test.go          # 系统信息测试 / System info tests
            ├── mcp_tools.go             # MCP 工具注册 / MCP tools registration
            ├── mcp_tools_test.go        # 工具注册测试 / Tools registration tests
            ├── mcp_handlers.go          # MCP 处理器 / MCP handlers
            └── mcp_handlers_test.go     # 处理器测试 / Handlers tests

测试 / Testing

完整功能测试 / Complete Functionality Test

项目提供了完整的客户端测试工具,可以自动测试所有26个MCP工具。

The project provides a complete client testing tool that automatically tests all 26 MCP tools.

运行测试 / Run Tests

Linux/macOS:

# 编译服务器和客户端 / Build server and client
go build -tags="sonic" -o mcp-toolkit .
go build -tags="sonic" -o mcp-toolkit-client ./cmd/client

Windows:

# 编译服务器和客户端 / Build server and client
go build -tags="sonic" -o mcp-toolkit.exe .
go build -tags="sonic" -o mcp-toolkit-client.exe ./cmd/client

手动测试 / Manual Testing

# 1. 启动服务器 / Start server
./mcp-toolkit -transport http -http-port 8080

# 2. 在新终端运行客户端测试 / Run client tests in new terminal
./mcp-toolkit-client

# 3. 使用详细日志 / Use verbose logging
./mcp-toolkit-client -verbose

测试覆盖 / Test Coverage

26个MCP工具 / 26 MCP Tools

  • 文件操作 (11个) / File Operations (11)

  • 目录操作 (2个) / Directory Operations (2)

  • 命令执行 (3个) / Command Execution (3)

  • 异步操作 (3个) / Async Operations (3)

  • 命令历史 (2个) / Command History (2)

  • 权限管理 (2个) / Permission Management (2)

  • 系统工具 (3个) / System Tools (3)

单元测试 / Unit Tests

# 运行所有单元测试 / Run all unit tests
go test -v ./...

# 运行特定包的测试 / Run tests for specific package
go test -v ./internal/services/sandbox/

# 查看测试覆盖率 / View test coverage
go test -cover ./...

许可证 / License

本项目采用 Apache License 2.0 许可证。详情请参阅 LICENSE 文件。

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

Copyright 2024 MCP Toolkit Authors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

第三方依赖 / Third-Party Dependencies

本项目使用了多个开源库,详情请参阅 NOTICE 文件。

This project uses several open-source libraries. See the NOTICE file for details.

Available Tools

33 tools
batch_deleteA

Delete multiple files or directories in a single operation. Each path is processed independently, and the tool will report success/failure for each item. / 批量删除多个文件或目录。每个路径独立处理,工具会报告每个项目的成功/失败状态。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathsYesList of file or directory paths to delete. Each path will be processed independently.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

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 burden of behavioral disclosure. It adds useful traits: 'Each path is processed independently' and 'report success/failure for each item.' However, it does not disclose whether deletions are permanent, require special permissions, or are irreversible, which is a critical gap for a destructive tool.

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 English description is two sentences and front-loaded with the core function. The inclusion of a full Chinese translation is duplicative but not harmful; however, it slightly reduces conciseness since it repeats the same content.

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 description is complete for a simple, one-parameter tool. Since an output schema exists, the description doesn't need to explain return values. It explains what the tool does and how it handles multiple paths, which is sufficient for the agent to invoke it correctly.

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 coverage is 100%, with a clear description of the 'paths' parameter and examples. The description only restates what the schema already says ('each path will be processed independently'), adding no new semantic meaning.

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 and resource: 'Delete multiple files or directories in a single operation.' It distinguishes itself from sibling tools like 'delete', 'delete_file', and 'delete_directory' by explicitly focusing on batch operations on multiple paths.

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 for batch deletions ('multiple files or directories'), which clearly separates it from single-item delete tools. However, it does not explicitly mention when not to use it or name alternatives, 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.

cancel_command_taskA

Cancel a running asynchronous command task. The task will be terminated if it's still running. / 取消正在运行的异步命令任务。如果任务仍在运行,将被终止。

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID of the command to cancel.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations are provided, so the description must disclose behavior. It states the task will be terminated if still running, but does not cover edge cases like already-completed tasks, invalid IDs, or idempotency. The behavioral info is minimal but accurate.

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 sentences (one English, one Chinese), front-loaded with the action. No wasted words, while providing the core behavioral guarantee.

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

Completeness4/5

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

With a single parameter, an output schema, and a clear description of the tool's effect, the description is sufficient for selecting and invoking the tool. Lacks explicit error/edge-case behavior but is not required for basic use.

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 sole parameter task_id is fully described in the schema (100% coverage), and the tool description adds no extra parameter details. Baseline 3 applies as schema carries the burden.

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 cancels a running asynchronous command task, using a specific verb and resource. It distinguishes from sibling tools like execute_command_async and get_command_task.

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 when to use it (when a task is running and needs cancellation) but does not explicitly mention alternatives or exclusions. No reference to related tools or when not to use it.

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

change_directoryA

Change the current working directory. Similar to 'cd' command. The new directory must exist and be within the sandbox. / 切换当前工作目录。类似 'cd' 命令。新目录必须存在且在沙箱范围内。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe target directory path. Can be absolute or relative to the current working directory. Use '..' to go to parent directory.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

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 of behavioral disclosure. It reveals important constraints: the new directory must exist and be within the sandbox. However, it does not mention what happens on failure (e.g., does it raise an error? leave cwd unchanged?) or that the change is stateful and affects subsequent command executions. This leaves some ambiguity for a state-changing 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 core purpose. It consists of two short sentences (plus a bilingual translation) and every clause adds value: the action, the analogy, and the constraint. No wasted words.

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?

The tool is simple with one parameter and an output schema, so the description covers the essential domain constraints. It could be slightly more complete by noting that it changes the session state for subsequent tool calls, but given the simplicity and schema richness, it is sufficiently complete.

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 input schema already provides detailed parameter semantics, including absolute/relative paths, examples, and '..' usage, with 100% coverage. The description only repeats the constraint that the directory must exist and be within the sandbox, which is already in the schema description. Thus the description adds no significant value beyond the schema, so baseline 3 applies.

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 and resource: 'Change the current working directory.' It also uses the 'cd' analogy for immediate recognition. This distinguishes it from all sibling tools, none of which modify the working directory.

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 through the 'cd' analogy, which suggests using this tool when you need to change the current working directory for subsequent operations. However, it does not explicitly state when to use it over alternatives (e.g., get_working_directory for checking) or provide exclusion criteria, so guidance is only implied.

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

clear_command_historyA

Clear all command execution history records. This action cannot be undone. / 清空所有命令执行历史记录。此操作不可撤销。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations, the description carries the behavioral burden. It explicitly discloses irreversibility ('cannot be undone'), which is critical for a destructive operation. However, it doesn't mention side effects like whether current running history is affected or permission 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?

The description is two short sentences (English and Chinese), front-loaded with the action and resource. Every word earns its place, and the irreversibility warning is essential.

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?

Given the tool's simplicity (no params, simple output), the description covers the essential context: what it does and the irreversible nature. It could mention whether it clears history for current user or all users, but this is a minor gap for a straightforward clear operation.

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, so baseline is 4. The description adds meaning by explaining the scope ('all history records') and irreversibility, which is sufficient for a parameterless 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 uses a specific verb ('Clear') and specific resource ('all command execution history records'), making the action unmistakable. It also implies destructive scope ('all') and distinguishes from sibling tools like get_command_history (read-only).

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 clearly states the action but provides no explicit guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, fallback scenarios, or situations to avoid, though the 'cannot be undone' warning implies cautious use.

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

copyA

[RECOMMENDED - PRIMARY COPY TOOL] COPY files or directories to new location. MAIN copy tool - use for ALL copy operations. Automatically detects file/directory type and handles appropriately. Performs recursive copy for directories. Keywords: copy, duplicate, clone, backup, cp. / [推荐 - 主要复制工具] 复制文件或目录到新位置。这是主要的复制工具 - 用于所有复制操作。自动检测文件/目录类型。对目录执行递归复制。关键词:复制、备份、克隆。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source path of the file or directory to copy. Can be a single file or entire directory tree. Examples: 'src/main.go' (copy file), 'config/' (copy directory and all contents), 'template.html' (copy template file).
destinationYesThe destination path where the file or directory will be copied to. If source is a file, destination should be the target file path. If source is a directory, destination should be the target directory path. Examples: 'backup/main.go' (copy file to backup), 'config_backup/' (copy directory), 'index.html' (rename while copying).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4.4/5.0
Behavior4/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 key behavioral traits: automatic file/directory detection and recursive copy for directories. However, it omits overwrite behavior and error handling, which leaves some ambiguity, but the disclosed behaviors are meaningful and helpful.

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 front-loaded with a recommendation tag and conveys its role in three sentences followed by keywords. The bilingual translation adds redundancy but is not excessive. It remains concise and scannable, earning a 4.

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 2-parameter tool with an output schema, the description covers purpose, usage, and key behaviors. It clearly positions itself as the main copy tool among siblings, making it complete enough for correct selection and invocation.

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 100% with detailed descriptions and examples for both 'source' and 'destination'. The tool description does not add parameter-specific information beyond what the schema provides, so the baseline of 3 is appropriate.

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 function: 'COPY files or directories to new location.' It distinguishes itself from sibling tools like copy_file and copy_directory by declaring 'MAIN copy tool - use for ALL copy operations' and 'Automatically detects file/directory type and handles appropriately.' This makes its purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly says 'use for ALL copy operations' and provides concrete use cases in the schema description (duplicate files, create backups, copy entire directories, clone project structures). This gives explicit when-to-use guidance and implies alternatives are not needed.

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

copy_directoryA

Copy directory and all contents to new location. Only works on directories, not files. Use 'copy' tool if unsure about path type. Keywords: copy directory, duplicate folder. / 复制目录及其所有内容到新位置。仅用于复制目录,不能复制文件。如果不确定路径类型,请使用 copy 工具。关键词:复制目录、备份文件夹。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source directory path to copy. Must be a directory, not a file.
destinationYesThe destination directory path where the directory will be copied to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

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 full burden. It discloses that the tool copies directories recursively ('all contents') and is restricted to directories. However, it does not explain behavior on overwriting existing destinations, whether the destination is created automatically, or error handling for non-existent sources. For a copy operation, this is moderate transparency but lacks edge-case details.

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 English portion is concise and front-loaded with the core purpose. The bilingual repetition and keyword list add some redundancy but do not harm clarity significantly. The structure is efficient, with each sentence serving a distinct role: purpose, constraint, and alternative guidance.

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?

The tool is simple (copy directory). The description covers the primary function, the critical type constraint, and the alternative. An output schema exists, so return values need not be explained. Missing details like overwrite behavior are minor given the tool's simplicity and the presence of sibling differentiation. Overall, the description is sufficiently complete for correct tool selection and use.

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 descriptions for 'source' and 'destination' already provide full coverage (100%) of parameter meaning, including the directory-only constraint. The tool description adds little beyond the schema's wording, reinforcing 'all contents' but not introducing new parameter-specific semantics. Baseline 3 is appropriate given high 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 clearly states the action: 'Copy directory and all contents to new location.' It specifies the resource (directory) and scope (all contents), and explicitly distinguishes from the 'copy' tool by stating it only works on directories, not files. This makes the purpose unambiguous and differentiates it from siblings like 'copy' and 'copy_file'.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Only works on directories, not files. Use 'copy' tool if unsure about path type.' This directly tells the agent when to use this tool versus the alternative 'copy' tool, which is precisely what the dimension requires.

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

copy_fileA

Copy specific file to new location. Only works on files, not directories. Use 'copy' tool if unsure about path type. Keywords: copy file, duplicate file. / 复制指定文件到新位置。仅用于复制文件,不能复制目录。如果不确定路径类型,请使用 copy 工具。关键词:复制文件、备份文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source file path to copy. Must be a file, not a directory.
destinationYesThe destination file path where the file will be copied to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

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 must carry the full burden. It discloses the key file-only restriction, but does not mention overwrite behavior, permission requirements, or what happens if the source does not exist. This is a meaningful gap, though the description does add useful context beyond a bare 'copy file' statement.

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 front-loaded with the core action and constraints, but includes redundant keywords and a full bilingual repetition of the same information. It remains concise and structured, but the extra content is not strictly necessary, preventing a perfect score.

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 2-parameter copy tool with an output schema, the description covers purpose, usage, limitation, and alternative. It omits some behavioral details like overwrite semantics, but given the schema richness and simplicity of the tool, it is nearly complete.

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 100%, with both parameters already described with clarity and examples. The description adds no additional parameter-level meaning; it only repeats the file-only constraint already in the schema. Baseline 3 applies.

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 'Copy specific file to new location', identifying the specific verb, resource, and scope. It also distinguishes from siblings by explicitly limiting to files and referencing 'copy' for uncertain path types, which differentiates it from copy_directory and copy.

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

Usage Guidelines5/5

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

It explicitly states 'Only works on files, not directories' and advises using 'copy' if unsure about path type. This provides clear when-to-use and when-not-to-use guidance, with an explicit alternative tool named.

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

create_directoryA

CREATE NEW DIRECTORIES and folder structures. Automatically creates all parent directories (like 'mkdir -p'). Use for creating folders, setting up directory structures, organizing project layout. Keywords: create directory, mkdir, make folder, new folder. / 创建新目录和文件夹结构。自动创建所有父目录(类似 'mkdir -p')。关键词:创建目录、新建文件夹。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe directory path to create. Can be absolute or relative. Supports nested paths - all parent directories will be created automatically. Examples: 'src/utils' (creates src/ and src/utils/), '/tmp/mydir' (absolute path), 'docs/api/v1' (creates docs/, docs/api/, and docs/api/v1/).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4/5.0
Behavior4/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 critical behavior 'Automatically creates all parent directories (like 'mkdir -p')', which is non-obvious and important for the agent to know. It does not mention edge cases like existing directories or permissions, but the core behavior is well-covered.

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

Conciseness3/5

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

The description is front-loaded but contains redundancy: the first sentence and the 'Use for' section overlap in meaning. The keywords list and Chinese translation are nice for search/localization but add length without contributing new conceptual information. It is not overly long but could be tighter.

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?

The tool is simple (1 param, output schema provided). The description covers the main purpose, key behavior, and use cases well. It lacks details on error handling or idempotency, but for a basic create-directory tool the description is sufficiently complete.

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 100% (as noted in context signals), and the schema already explains the 'path' parameter clearly with examples and behavior. The tool description adds no extra parameter detail beyond what the schema provides, so a baseline score of 3 is appropriate.

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 and resource: 'CREATE NEW DIRECTORIES and folder structures.' It also specifies the key behavior of automatically creating parent directories, which distinguishes it from sibling tools like create_file. The purpose is unmistakable and differentiates well.

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 provides explicit use cases: 'Use for creating folders, setting up directory structures, organizing project layout.' This gives clear when-to-use guidance, though it does not explicitly mention when not to use it or name alternative tools. Context from siblings implies the distinction, so it's clear but not exhaustive.

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

create_fileA

CREATE A NEW FILE with specified content. Primary tool for file creation - use whenever you need to create or completely replace a file's content. Automatically creates parent directories. Keywords: create, new file, write file, save file, make file. / 创建新文件并写入内容。这是文件创建的主要工具。自动创建父目录。关键词:创建、新建文件、写入文件、保存文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path to create. Can be absolute or relative to the current working directory. Supports nested paths - parent directories will be created automatically. Examples: 'src/main.go' (creates src/ directory if needed), '/tmp/test.txt' (absolute path), 'docs/api/readme.md' (creates docs/api/ directories).
contentYesThe content to write to the file. Can be any text content including source code, configuration files, JSON/YAML data, plain text, or documentation. The content will completely replace any existing file content.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4.2/5.0
Behavior4/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 states that parent directories are created automatically and that content 'will completely replace any existing file content,' which discloses the destructive behavior. It does not cover permissions or error cases, but for a file creation tool these are the key behaviors.

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 front-loaded with the core purpose, then provides usage context, and includes keywords for search. It is slightly longer than necessary due to a redundant Chinese translation and keyword repetition, but each section serves a purpose and there is no wasted filler.

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 is simple with only two parameters and a provided output schema. The description covers the purpose, when to use it, key behavioral traits (auto-create directories, overwrite), and parameter semantics via the schema. It is complete for an agent to select and invoke the tool correctly.

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 100%, with both path and content having detailed descriptions and examples. The tool description adds minimal extra meaning beyond the schema—it repeats that content replaces existing files and that parent directories are created, but these are already in the schema. Thus a baseline score of 3 is appropriate.

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 and resource: 'CREATE A NEW FILE with specified content.' It also distinguishes itself as the 'Primary tool for file creation' and explicitly says 'use whenever you need to create or completely replace a file's content,' which differentiates it from siblings like write_file.

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 provides clear when-to-use guidance: 'use whenever you need to create or completely replace a file's content.' It also calls itself the 'Primary tool for file creation,' implying priority over siblings. However, it does not explicitly mention when not to use it or name alternatives like write_file, so it stops short of a perfect score.

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

deleteA

[RECOMMENDED - PRIMARY DELETION TOOL] DELETE any file or directory automatically. MAIN deletion tool - use for ALL deletion operations. Intelligently detects file/directory type and handles appropriately. Performs recursive deletion for directories. Keywords: delete, remove, erase, clean, rm, unlink. / [推荐 - 主要删除工具] 自动删除任何文件或目录。这是主要的删除工具 - 用于所有删除操作。智能检测文件/目录类型并适当处理。对目录执行递归删除。关键词:删除、移除、清理。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe path of the file or directory to delete. Can be a single file, empty directory, or directory with contents. The tool automatically detects the type and deletes accordingly. Examples: 'temp.txt' (delete file), 'build/' (delete directory and all contents), 'old_config.json' (delete config file), 'node_modules/' (delete dependencies).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A3.9/5.0
Behavior4/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 disclosing behavior. It clearly states the tool automatically detects file vs. directory type and performs recursive deletion for directories, which are key behavioral traits. It does not mention irreversibility or permission requirements, but the core destructive behavior is adequately disclosed for a delete operation.

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

Conciseness2/5

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

The description is redundant and verbose. It repeats the 'RECOMMENDED - PRIMARY DELETION TOOL' phrase, includes a long keywords list, and has both English and Chinese sections that restate the same information. The content could be condensed to a few sentences without losing meaning, making it less efficient for an agent to parse.

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 one-parameter delete tool with an output schema, the description covers the essential aspects: what it does, when to use it, and key behavioral details (auto-detection, recursive deletion). It lacks some safety warnings (e.g., permanence) but is otherwise complete enough for an agent to understand and invoke the tool correctly.

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 description coverage is 100%, and the input schema already provides a detailed description of the 'path' parameter, including examples and explanation. The tool description adds little beyond that, repeating the auto-detection concept but not introducing new parameter semantics. The baseline of 3 is appropriate given the schema handles parameter documentation well.

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 identifies this as the primary deletion tool for any file or directory, with a specific verb ('DELETE'), explicit resource ('any file or directory'), and distinct positioning as the 'MAIN deletion tool' versus sibling tools like delete_file and delete_directory. It also states the auto-detection behavior, which differentiates it from type-specific deletion tools.

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 explicitly says 'use for ALL deletion operations' and lists concrete use cases (remove files, directories, temp files, build artifacts, old backups), giving clear context for when to use this tool. However, it does not explicitly mention when not to use it or name alternative tools, falling short of a full when/when-not guidance.

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 and optionally all its contents. Only works on directories, not files. Use 'delete' tool if you're unsure whether the path is a file or directory. / 删除目录及其所有内容。仅用于删除目录,不能删除文件。如果不确定是文件还是目录,请使用 delete 工具。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe path of the directory to delete. Must be a directory, not a file.
recursiveNoWhether to recursively delete all subdirectories and files. Default is true. Set to false to only delete empty directories.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4/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. It discloses the directory-only constraint and the optional recursive behavior, but it does not explicitly state that deletion is permanent, irreversible, or that recursive=true is the default. For a destructive operation, more explicit caution would improve transparency.

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

Conciseness3/5

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

The English portion is concise and front-loaded, but the Chinese translation duplicates the English content without adding information. This redundancy means the description isn't as tight as it could be, though it remains short overall.

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?

Given the simple two-parameter tool, 100% schema coverage, and existence of an output schema, the description covers the essential use cases and constraints. It could mention the permanent nature of deletion or the default recursive behavior, but those are partially implied by the tool name and schema, so the description is fairly complete.

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 100%, and the description does not add meaningful parameter-specific details beyond what the schema already provides. The phrase 'optionally all its contents' paraphrases the recursive parameter but adds no new semantics; the schema already explains defaults and 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 function: 'Delete a directory and optionally all its contents.' It specifies the resource (directory) and distinguishes it from file deletion by noting 'Only works on directories, not files.' The reference to the 'delete' tool for ambiguous paths further clarifies its scope relative to siblings.

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

Usage Guidelines5/5

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

The description provides explicit guidance: 'Only works on directories, not files' and 'Use ‘delete’ tool if you’re unsure whether the path is a file or directory.' This tells the agent exactly when to choose this tool over the generic delete tool, satisfying the need for usage context.

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 specific file. Only works on files, not directories. Use 'delete' tool if you're unsure whether the path is a file or directory. / 删除指定的文件。仅用于删除文件,不能删除目录。如果不确定是文件还是目录,请使用 delete 工具。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe path of the file to delete. Must be a file, not a directory.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4.3/5.0
Behavior3/5

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

With no annotations, the description discloses a useful behavioral constraint (files only) but omits mentioning that deletion is permanent or irreversible, and does not address permissions or side effects, leaving a moderate transparency 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 main action. The bilingual repetition is a minor addition but does not introduce redundancy for the intended audience, and every sentence serves a clear purpose.

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 simple single-parameter deletion tool with an output schema available, the description adequately covers the purpose, the file-only constraint, and the alternative tool, making it contextually complete without needing to explain return values.

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 already provides a complete description and examples for the 'path' parameter, including the file-only restriction. The tool description repeats this without adding new parameter semantics, so a baseline score of 3 is appropriate.

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 and resource ('Delete a specific file'), and explicitly differentiates it from siblings by noting it only works on files, not directories, and directs users to the 'delete' tool for uncertain cases.

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

Usage Guidelines5/5

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

The description provides explicit when-to-use guidance by stating 'Only works on files, not directories' and naming the 'delete' tool as an alternative when the path type is unknown, making the decision between tools clear.

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

download_fileA

DOWNLOAD FILES from the internet using HTTP/HTTPS protocols. Supports GET, POST, and other HTTP methods with custom headers and request body. Downloaded files are automatically saved to the sandbox directory. Use this tool when you need to: 1) Download files from URLs, 2) Fetch remote resources, 3) Download data files, images, documents, 4) Make HTTP requests with custom parameters, 5) Download API responses. All files are stored securely in the sandbox. Keywords: download, fetch, get file, http download, retrieve file, save from url, download from internet. / 从互联网下载文件,使用HTTP/HTTPS协议。支持GET、POST等HTTP方法,支持自定义请求头和请求体。下载的文件自动保存到沙箱目录。用于:1) 从URL下载文件,2) 获取远程资源,3) 下载数据文件、图片、文档,4) 使用自定义参数发起HTTP请求,5) 下载API响应。所有文件安全存储在沙箱中。关键词:下载、获取文件、HTTP下载、从URL保存。

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYesThe URL to download from. Must be a valid HTTP or HTTPS URL. Examples: 'https://example.com/api/report.pdf', 'http://cdn.example.com/data/users.json', 'https://raw.githubusercontent.com/user/repo/main/README.md'.
bodyNoOptional request body for POST, PUT, or PATCH requests. Can be JSON, form data, or any text content. For JSON data, make sure to set Content-Type header to 'application/json'. Examples: '{"key": "value"}', 'param1=value1&param2=value2'.
pathYesThe file path where the downloaded content will be saved (relative to sandbox directory). Parent directories will be created automatically if they don't exist. The filename can be different from the URL. Examples: 'downloads/my-report.pdf', 'data/user-list.json', 'docs/readme.txt'.
methodNoHTTP method to use for the request. Common methods: GET (default, for simple downloads), POST (for form submissions or API calls), PUT, DELETE, HEAD. If not specified, defaults to GET.GET
headersNoOptional HTTP headers to include in the request. Useful for authentication, content type specification, or custom headers. Format: key-value pairs. Examples: {'Authorization': 'Bearer token123', 'Content-Type': 'application/json', 'User-Agent': 'MyApp/1.0'}.
timeoutNoRequest timeout in seconds. If the download takes longer than this, it will be cancelled. Default is 30 seconds. Increase for large files or slow connections.
skip_tls_verifyNoSkip TLS certificate verification for HTTPS requests. WARNING: This is insecure and should only be used in development environments with self-signed certificates. Never use in production. Default is false (verify certificates).

Output Schema

ParametersJSON Schema
NameRequiredDescription
sizeYes
messageYes
successYes
content_typeYes
sandbox_pathYes
absolute_pathYes

TDQS

A3.7/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. It discloses that downloaded files are automatically saved to the sandbox directory and stored securely, and it mentions support for HTTP methods and custom headers/body. However, it does not disclose return format, error handling, or overwrite behavior.

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

Conciseness2/5

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

The description is overly verbose, containing a redundant use-case list, a keyword list, and a full Chinese translation. It is front-loaded but includes repeated information (e.g., download from internet, saved to sandbox) that does not earn its place. A more concise version would be more effective.

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?

The tool is moderately complex with 7 parameters and an output schema. The description covers core functionality, use cases, storage location, and supported HTTP methods. It does not explain return values, but the presence of an output schema reduces the need for that. Minor gaps like error behavior could be added, but overall it is adequate.

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 input schema covers 100% of parameters with detailed descriptions, including URL, path, method, headers, body, timeout, and skip_tls_verify. The tool description only adds that custom headers and request body are supported, which is already evident from the schema. Baseline 3 applies.

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 function with a specific verb and resource: 'DOWNLOAD FILES from the internet using HTTP/HTTPS protocols.' It further enumerates specific use cases (downloading files, fetching remote resources, making HTTP requests), which helps distinguish it from local file operation tools like copy_file, move_file, and read_file.

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 explicitly says 'Use this tool when you need to:' followed by a list of five concrete scenarios. This provides clear context for when to use the tool, though it does not mention alternatives or when not to use it.

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

execute_commandA

EXECUTE SHELL COMMANDS synchronously and get output. Use for running CLI tools, build scripts, version control, package managers. Common uses: git commands, npm/pip/go commands, Python/Node.js scripts, build tools. IMPORTANT: Do NOT use for file operations - use dedicated file tools instead. Keywords: execute, run, command, shell, bash, terminal, cli, script, git, npm, python. / 同步执行shell命令并获取输出。用于运行CLI工具、构建脚本、版本控制、包管理器。常见用途:git命令、npm/pip/go命令、Python/Node.js脚本、构建工具。重要:不要用于文件操作 - 请使用专用的文件工具。关键词:执行、运行、命令、shell、终端、脚本。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoCommand arguments as separate list elements. Each argument is a separate string. Examples: For 'git commit -m "message"' use ['commit', '-m', 'message']. For 'npm install express' use ['install', 'express']. For 'python script.py --arg value' use ['script.py', '--arg', 'value'].
commandYesThe command executable name (without arguments). This is the program to run. Examples: 'git' (version control), 'npm' (Node.js package manager), 'python' (Python interpreter), 'go' (Go compiler), 'ls' (list files), 'make' (build tool), 'docker' (container tool).
timeoutNoMaximum time in seconds to wait for command completion. 0 means no timeout (wait indefinitely). Use reasonable timeouts: 30s for quick commands, 300s (5min) for builds, 0 for long-running tasks. Default is 0.
work_dirYesThe working directory where the command will be executed. Can be absolute or relative to the sandbox root. Use '.' for current directory. The command will run as if you cd'd into this directory first.

Output Schema

ParametersJSON Schema
NameRequiredDescription
stderrYes
stdoutYes
messageYes
successYes
exit_codeYes
command_lineYes
current_work_dirYes

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 adds useful behavioral context: commands run synchronously and wait for completion. However, it does not disclose potential side effects (e.g., commands can modify the filesystem), permission requirements, blacklist constraints, or output size limits. The description is not misleading but leaves significant behavioral aspects unrevealed.

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

Conciseness3/5

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

The description is reasonably sized but includes redundancy: the top-level description and the schema description are near-identical, and 'Common uses' plus 'Keywords' overlap heavily. The Chinese translation doubles the length, which may aid multilingual users but is not strictly concise. It is front-loaded with the core message, yet the keyword list and repetition make it less efficient than it could be.

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?

Given the tool's complexity (4 params, output schema present), the description covers the essential context: execution model (synchronous), common use cases, and an explicit exclusion. The schema provides parameter details and the output schema covers return values, so the description does not need to explain those. It lacks mention of sandbox/permission constraints, but overall it is sufficiently complete for an agent to understand when and how to use the tool.

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 100%, and the schema itself provides detailed parameter semantics (e.g., args as separate list elements, timeout meaning, work_dir behavior). The main description does not add parameter-level information beyond what the schema already states. Therefore, the baseline score of 3 applies; the schema handles the heavy lifting and the description offers no additional clarification.

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 executes shell commands synchronously and returns output. It specifies common use cases (git, npm, Python scripts, build tools) and explicitly differentiates from file operations, making its purpose unambiguous. The synchronous nature also distinguishes it from the sibling execute_command_async.

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 provides clear usage context: 'Use for running CLI tools, build scripts, version control, package managers' and lists examples. It also gives an explicit exclusion with a pointer to alternatives: 'Do NOT use for file operations - use dedicated file tools instead.' However, it does not explicitly mention the sibling execute_command_async for background execution, even though 'synchronously' implies it. So it has clear context and one explicit alternative, but not full alternative coverage.

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

execute_command_asyncA

Execute a command asynchronously in the background. Returns a task ID immediately that can be used to check status, get output, or cancel the command. Use this for long-running commands. / 在后台异步执行命令。立即返回任务ID,可用于检查状态、获取输出或取消命令。用于长时间运行的命令。

ParametersJSON Schema
NameRequiredDescriptionDefault
argsNoCommand arguments as a list of strings.
userNoThe user to execute the command as. Leave empty to use the current user.
commandYesThe command to execute asynchronously.
timeoutNoCommand timeout in seconds. 0 means no timeout limit.
work_dirYesThe working directory for command execution.
permission_levelNoPermission level for the command (0-3). Higher levels allow more privileged operations.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
task_idYes

TDQS

A4.1/5.0
Behavior4/5

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

With no annotations, the description carries the burden. It discloses the async background execution, immediate task ID return, and ability to check status/output/cancel. It does not mention permission implications, but the core behavior is well communicated.

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 English text is two concise sentences, but the Chinese translation duplicates the content without adding new information. Still, it is not verbose and front-loads the key behavior.

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?

Given an output schema exists, the description appropriately focuses on the async workflow. It explains the task ID mechanism and long-running use case, which is sufficient for selection. It could mention how to cancel or get status, but sibling tools cover those.

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 coverage is 100% with descriptions for all parameters. The tool description adds no parameter-specific details beyond the schema, which is the baseline for this dimension.

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 it executes a command asynchronously in the background and returns a task ID. It distinguishes from the sibling 'execute_command' by highlighting the async behavior and long-running use case.

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

Usage Guidelines4/5

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

Explicitly says 'Use this for long-running commands,' giving a clear context. It does not name alternatives like 'execute_command' for synchronous use, but the sibling list provides that distinction.

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

file_existsA

Check if a file or directory exists at the specified path. Returns true if exists, false otherwise. Useful for conditional operations. / 检查指定路径的文件或目录是否存在。存在返回 true,否则返回 false。用于条件操作。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe path to check for existence. Can be a file or directory path.

Output Schema

ParametersJSON Schema
NameRequiredDescription
existsYes

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. It discloses that the tool checks both files and directories and returns a boolean, which covers the core behavior. However, it does not mention edge cases like symlinks, permission errors, or whether the path must be normalized, leaving some behavioral gaps.

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 concise with two sentences followed by a bilingual translation. The English part is front-loaded and efficient, though the Chinese duplicate adds slight redundancy. Overall, it is appropriately sized with no wasted words.

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?

Given the simple nature of the tool (one parameter, boolean output schema), the description adequately covers the input, output behavior, and a usage context. No further details are strictly necessary for an agent to use this tool correctly.

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 description covers 100% of the parameter with examples and a clear definition. The description only repeats 'specified path' without adding additional semantics, so it meets the baseline but adds no extra value beyond 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 uses a specific verb 'Check if' with an explicit resource 'file or directory' and path parameter. It clearly states the return value (true/false) and distinguishes itself from siblings by focusing solely on existence checking, unlike file_stat 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 Guidelines3/5

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

The phrase 'Useful for conditional operations' provides some context for when to use the tool, but it does not explicitly mention alternatives or when not to use it. Sibling tools like file_stat could potentially serve similar purposes, and no exclusions are given.

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

file_statA

Get detailed information about a file or directory, including size, permissions, modification time, and type (file/directory/symlink). / 获取文件或目录的详细信息,包括大小、权限、修改时间和类型(文件/目录/符号链接)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe path of the file or directory to get information about.

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
nameYes
pathYes
sizeYes
is_dirYes
mod_timeYes

TDQS

A3.8/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 burden. It clearly discloses what information is returned (size, permissions, modification time, type), which is useful. However, it does not mention error behavior (e.g., what happens if the path does not exist), access permission requirements, or symlink handling details. The read-only nature is implied by 'Get detailed information' but not explicitly stated.

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 that front-loads the core purpose. Even with the bilingual repetition, there is no wasted verbiage. Every part contributes to understanding the tool.

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?

Given the tool's low complexity (one parameter) and the presence of an output schema, the description is mostly complete. It even previews the return fields. It could be improved by mentioning potential errors or confirming it follows symlinks, but this is not essential given the output schema and simple nature.

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 100% coverage for the single path parameter, including a clear description and examples. The tool description adds context about the kind of information returned, but it does not add additional meaning to the parameter itself. The baseline of 3 applies because the schema does the heavy lifting.

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 is specific and clear: it states the tool gets detailed information about a file or directory, listing the exact fields (size, permissions, modification time, type). It distinguishes from siblings like file_exists (which only checks existence) and list_directory (which lists contents).

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: when you need detailed metadata for a file/directory, use file_stat. However, it does not explicitly mention alternatives or when not to use it. No exclusions are given, so it is implied rather than stated.

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

get_command_blacklistA

Get the current command and directory blacklist. Returns lists of blocked commands and directories that cannot be executed or accessed. / 获取当前命令和目录黑名单。返回被阻止执行或访问的命令和目录列表。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
commandsYes
directoriesYes
system_directoriesYes

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 must convey the tool's behavior. It indicates a read-only operation via 'Get' and 'Returns lists,' but adds no further context about permissions, sorting, format, or potential side effects. For a simple getter, this is adequate but minimal.

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, consisting of two short sentences (in English and Chinese) that directly state the action and the return value. It is front-loaded with the key verb 'Get' and resource, and every word serves a purpose without redundancy.

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?

Given the tool's simple nature (no parameters, read-only, with an output schema), the description is sufficiently complete. It conveys what the tool returns and the scope (current blacklist). With an output schema available, there is no need for the description to detail return fields.

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, so the baseline is 4. The description does not need to explain parameter meanings since there are none. The schema already confirms no parameters, and the description adds no additional parameter-related information beyond the tool's purpose.

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 function: 'Get the current command and directory blacklist.' It specifies the resource (command and directory blacklist) and the action (get), and the return content (lists of blocked commands and directories). This distinguishes it from sibling tools like update_command_blacklist.

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 for reading the current blacklist, but it does not explicitly state when to use it versus alternatives or provide any exclusions. Given the presence of update_command_blacklist, the intended use is implied but not articulated. No explicit guidance is offered.

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

get_command_historyA

Get the history of executed commands. Returns a list of previously executed commands with their results. / 获取命令执行历史记录。返回之前执行的命令及其结果列表。

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of history records to return. Default returns all records.

Output Schema

ParametersJSON Schema
NameRequiredDescription
totalYes
historyYes

TDQS

A3.9/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 of disclosure. It states that a list of commands with results is returned, which is basic behavioral information. However, it does not mention ordering, permissions, or any side effects, though the tool appears read-only.

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, two sentences, with no redundant wording except for the translation. It is front-loaded with the main action and return type, suitable for quick understanding.

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 simple read-only tool with one optional parameter and a defined output schema, the description is complete. It covers the essential purpose and return value; the schema handles parameter details and the output schema defines return structure.

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 only parameter 'limit' is fully described in the input schema with a clear description and examples. The tool description adds no further parameter detail, but schema coverage is 100%, so this is adequate.

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 action ('Get the history of executed commands') and its output ('Returns a list of previously executed commands with their results'). It distinguishes from siblings like clear_command_history and execute_command.

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 by defining the tool's purpose, but does not explicitly mention when to use it over alternatives or any exclusions. The context suggests it is for retrieving past command executions, but no direct guidance is provided.

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

get_command_taskA

Get detailed information about a specific asynchronous command task, including its status, output, start time, and duration. / 获取特定异步命令任务的详细信息,包括状态、输出、开始时间和持续时间。

ParametersJSON Schema
NameRequiredDescriptionDefault
task_idYesThe task ID to get information about.

Output Schema

ParametersJSON Schema
NameRequiredDescription
taskYes

TDQS

A3.8/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 full burden. It discloses what information will be returned (status, output, start time, duration), but does not explicitly state that the operation is read-only or mention any side effects, permissions, or rate limits. Since it's a simple read operation, the lack of such detail is minimally problematic, but the description adds little beyond the obvious.

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, front-loaded with the action and resource, and includes a bilingual translation that is redundant but not harmful. Every sentence 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?

The tool is simple and an output schema exists, so return values are covered elsewhere. The description sufficiently covers the purpose, the targeted resource, and the information delivered. It doesn't address error cases or alternative tools, but these are not required for the tool's simplicity.

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 already fully documents the single parameter task_id with description and examples, so the description adds no additional parameter semantics. With 100% schema coverage, the baseline score of 3 applies.

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 the specific verb 'Get' and identifies the resource as 'asynchronous command task,' clearly distinguishing it from sibling tools like cancel_command_task and execute_command_async. It also lists the key data fields (status, output, start time, duration), leaving no ambiguity about 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 Guidelines3/5

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

The description implies its use case: when you need details about a specific async task. However, it does not explicitly state when to use this over alternatives like cancel_command_task, nor does it mention any usage prerequisites or exclusions. The guidance is only implicit.

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

get_current_timeA

GET CURRENT DATE AND TIME with timezone support. Returns formatted datetime, timezone info, and Unix timestamp. Use for getting current time, checking time in different timezones, timestamps for logging. Keywords: time, date, now, current time, timestamp, timezone, clock. / 获取当前日期和时间,支持时区。返回格式化的日期时间、时区信息和Unix时间戳。用于获取当前时间、检查不同时区的时间、日志时间戳。关键词:时间、日期、当前时间、时间戳、时区。

ParametersJSON Schema
NameRequiredDescriptionDefault
timezoneNoIANA timezone name (optional). If empty or not provided, uses the system's local timezone. Common timezones: 'Asia/Shanghai' (China), 'America/New_York' (US East), 'Europe/London' (UK), 'UTC' (Universal), 'Asia/Tokyo' (Japan), 'America/Los_Angeles' (US West), 'Europe/Paris' (France).

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYes
timeYes
unixYes
is_dstNo
weekdayYes
datetimeYes
timezoneYes
unix_milliYes
timezone_offsetYes

TDQS

A4.2/5.0
Behavior4/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 behavioral traits: returns formatted datetime, timezone info, Unix timestamp, and explains timezone optionality (system local if not provided). It doesn't explicitly state non-destructiveness, but the nature of the tool makes it evident. Good coverage for a simple read-only operation.

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 reasonably concise and front-loaded with the purpose, then return values, then use cases. It includes keywords and a Chinese translation, which add slight redundancy but do not bloat it excessively. It earns a score above average for its clear structure despite minor repetition.

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 tool with one optional parameter and an output schema, the description is complete. It covers use cases, return data, timezone behavior, and falls back to system local time when appropriate. Nothing essential is missing, and the output schema handles return-value details.

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 100%, and the schema already provides a thorough explanation of the 'timezone' parameter including IANA examples, optionality, and default behavior. The description text only mentions 'timezone support' without adding meaning beyond the schema, so the baseline of 3 applies.

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 and resource: 'GET CURRENT DATE AND TIME with timezone support.' It also enumerates the exact return values (formatted datetime, timezone info, Unix timestamp), making it unambiguous. Sibling tools are all file/command related, so this tool stands out distinctly as the time/date utility.

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 provides explicit use cases: 'Use for getting current time, checking time in different timezones, timestamps for logging,' and the schema adds scheduling and time-based operations. It gives clear when-to-use guidance, though it doesn't mention when not to use it or alternatives—which are unnecessary given the absence of competing sibling tools.

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

get_permission_levelA

Get the current command execution permission level. Returns the current level (0-3) and its description. / 获取当前命令执行权限级别。返回当前级别(0-3)及其描述。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
levelYes

TDQS

A3.7/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. It states that the tool 'Returns the current level (0-3) and its description,' which implies a read-only operation, but it does not explicitly confirm that there are no side effects or special authorization requirements. The range disclosure is helpful, but more detail about the behavioral nature (e.g., no permissions needed) would strengthen it.

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 informative sentence in English, followed by a Chinese translation. While concise and front-loaded, the duplicate content in a second language is slightly redundant for an AI agent, but it does not detract significantly from clarity.

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, zero-parameter getter with an output schema, the description covers the essential purpose and return value. It does not explain the meaning of permission levels (e.g., what 0 vs 3 implies), but that is likely covered by the output schema. The description is adequate, though a note on typical use cases would improve completeness.

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, so the baseline is 4. The description does not need to explain parameter meanings, and the schema's empty properties are consistent. No parameter-related gaps exist.

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 'Get' and identifies the exact resource 'current command execution permission level', clearly distinguishing it from siblings like set_permission_level. It also specifies the return value (level 0-3 and its description), leaving no ambiguity about 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?

The description provides no guidance on when to use this tool versus alternatives. It does not mention that it is preferable for checking current permissions before executing commands, nor does it contrast with set_permission_level or get_command_blacklist. The usage context is entirely implicit.

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

get_system_infoA

GET COMPREHENSIVE SYSTEM INFORMATION about current machine. Returns OS details, CPU, memory, GPU, network interfaces. Use for checking system specs, verifying hardware capabilities, getting OS info, checking available resources. Keywords: system info, hardware, specs, os info, cpu, memory, ram, gpu. / 获取当前机器的全面系统信息。返回操作系统详情、CPU、内存、显卡、网卡信息。用于检查系统规格、验证硬件能力、获取操作系统信息、检查可用资源。关键词:系统信息、硬件、规格、操作系统信息、CPU、内存、显卡。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
osYes
cpuYes
gpusNo
memoryYes
networksNo

TDQS

A4.3/5.0
Behavior4/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 clearly describes what the tool returns and implies a read-only, non-mutating operation. It does not explicitly state that it never modifies anything or mention permissions, but for a system-info tool the behavior is well conveyed by the phrase 'GET COMPREHENSIVE SYSTEM INFORMATION' and the list of returned data.

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

Conciseness3/5

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

The description is front-loaded with the core statement, but it repeats itself through a keyword list and a full bilingual (Chinese) version. The keywords like 'system info, hardware, specs, os info, cpu, memory, ram, gpu' add little value for an AI agent and could be removed for conciseness. It is not tight; approximately half the content is redundant.

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?

Given that the tool has no parameters and an output schema is present, the description only needs to explain what the tool does and when to use it. It does both thoroughly, covering the full scope of system information returned. No gaps remain for a tool of this simplicity.

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, so the baseline is 4. The description correctly adds no parameter-specific syntax since none exist. The input schema confirms 0 properties, so nothing more 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?

The description opens with 'GET COMPREHENSIVE SYSTEM INFORMATION about current machine' and explicitly lists the returned categories (OS, CPU, memory, GPU, network interfaces). This makes the tool's purpose unmistakable and distinguishes it from all sibling tools, which are file/command operations.

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 provides explicit use cases: 'checking system specs, verifying hardware capabilities, getting OS info, checking available resources.' It does not mention when-not-to-use or alternatives, but the sibling list contains no similar system-info tools, so this is clear enough. It could be a 5 if it explicitly excluded cases like performance benchmarking, but a 4 is fair.

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

get_working_directoryA

Get the current working directory path. Returns the absolute path of the current working directory. / 获取当前工作目录路径。返回当前工作目录的绝对路径。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
work_dirYes

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. It clearly states the tool 'gets' and 'returns' the path, implying a read-only operation with no side effects. But it does not mention potential error conditions, permission requirements, or any edge cases, which could matter in some contexts.

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 concise and front-loaded with the core information. However, it includes a redundant bilingual repetition ('/ 获取当前工作目录路径...') that adds no new value for an AI agent, reducing efficiency slightly.

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 is very simple with no parameters and an output schema. The description explicitly states the return value (absolute path), which is sufficient for the agent to understand the tool's behavior. No important information 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, so the description does not need to explain any. The baseline of 4 is appropriate because there is nothing to add and the schema already captures the parameterless nature.

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 ('Get') and a clear resource ('current working directory path'), and further clarifies it returns the absolute path. This distinguishes it from related sibling tools like change_directory or list_directory, which have different purposes.

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

Usage Guidelines3/5

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

Usage is implied by the tool's purpose: it is the tool to call when you need the current working directory path. However, there is no explicit guidance about when not to use it or references to alternatives, leaving some ambiguity in tool selection.

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

list_directoryA

LIST AND EXPLORE directory contents. Shows all files and subdirectories with detailed information. Primary tool for directory exploration. Use for seeing what files are in a directory, exploring project structure. Keywords: list, ls, dir, show files, browse. / 列出和探索目录内容。显示所有文件和子目录的详细信息。这是目录探索的主要工具。关键词:列出、显示文件、浏览。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe directory path to list. Use '.' for current directory, '..' for parent directory, or specify any directory path. Examples: '.' (current directory), 'src/' (source directory), '/home/user/projects' (absolute path), '..' (parent directory).

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations to rely on, the description carries the burden of disclosing behavior. It states that the tool 'Shows all files and subdirectories with detailed information,' and the schema description adds that it includes names, types, sizes, and modification times. This is adequate for a read-only listing tool, though it does not mention edge cases like hidden files or symlink handling.

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 front-loaded with the core purpose and is reasonably concise. However, it includes redundant phrases ('LIST AND EXPLORE directory contents' and 'Shows all files and subdirectories with detailed information') and a full Chinese translation, which makes it slightly longer than necessary but still efficient and well-organized.

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?

Given the tool's simplicity (one parameter, clear purpose) and the presence of an output schema, the description covers all necessary context. It explains what the tool does, when to use it, and what information is returned. The sibling tools context further clarifies its role in directory exploration, making the description complete for an agent.

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 tool description itself does not elaborate on the path parameter, but the input schema provides comprehensive details including examples ('.', 'src/', '/home/user/projects') and a thorough description. With 100% schema coverage, the description adds no additional meaning beyond the schema, so the baseline score of 3 is appropriate.

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 function with a specific verb ('LIST AND EXPLORE') and resource ('directory contents'), and explicitly says it shows all files and subdirectories with detailed information. It also identifies itself as the 'primary tool for directory exploration,' distinguishing 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 Guidelines4/5

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

The description provides clear context for when to use the tool ('Use for seeing what files are in a directory, exploring project structure'). The input schema expands on this with five specific use cases, such as finding specific files and checking directory contents before operations. No exclusions are mentioned, but the guidance is sufficient for an agent to decide when to use it.

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

moveA

[RECOMMENDED - PRIMARY MOVE/RENAME TOOL] MOVE or RENAME files and directories. MAIN move/rename tool - use for ALL move and rename operations. Automatically detects file/directory type and handles appropriately. Keywords: move, rename, mv, relocate. / [推荐 - 主要移动/重命名工具] 移动或重命名文件和目录。这是主要的移动/重命名工具 - 用于所有移动和重命名操作。自动检测文件/目录类型。关键词:移动、重命名、重定位。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source path of the file or directory to move or rename. Can be a file or directory. Examples: 'old_name.txt' (file to rename), 'src/old_module/' (directory to move), 'temp.log' (file to relocate).
destinationYesThe destination path where the file or directory will be moved to. This can be a new name in the same directory (rename) or a different location (move). Examples: 'new_name.txt' (rename file), 'src/new_module/' (move directory), 'logs/app.log' (move and rename file).

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A3.8/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 full burden. It adds a useful behavioral trait: 'Automatically detects file/directory type and handles appropriately.' However, it omits other important behaviors such as overwrite semantics, error handling, or permission requirements, which are common concerns for move operations.

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

Conciseness2/5

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

The description is repetitive, including the same content in English and Chinese, a redundant keywords list, and a separate schema description that mostly duplicates the top-level description. While the opening sentence is clear, the overall text is disproportionately long and not concise.

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 (2 parameters) and the schema fully documents the parameters. The description covers purpose, usage, and auto-detection, but lacks details about overwrite behavior and return values. The presence of an output schema mitigates the need to describe returns, so it is adequate but not thorough.

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 coverage is 100% with detailed descriptions and examples for both source and destination. The description adds little beyond the schema, merely reinforcing that the tool auto-detects file/directory types, which the schema already states. Baseline 3 is appropriate when the schema does the heavy lifting.

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+resource: 'MOVE or RENAME files and directories', and explicitly positions it as the 'MAIN move/rename tool' with a recommendation label, distinguishing it from sibling tools like move_file and move_directory.

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

Usage Guidelines5/5

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

It provides explicit usage context: 'use for ALL move and rename operations' and lists five concrete use cases. It also includes keywords to aid retrieval, effectively telling the agent to prefer this tool over alternatives. The 'use for all' instruction is strong enough to guide selection.

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

move_directoryA

Move or rename directory. Only works on directories, not files. Use 'move' tool if unsure about path type. Keywords: move directory, rename folder. / 移动或重命名目录。仅用于移动目录,不能移动文件。如果不确定路径类型,请使用 move 工具。关键词:移动目录、重命名文件夹。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source directory path to move. Must be a directory, not a file.
destinationYesThe destination directory path where the directory will be moved to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4/5.0
Behavior3/5

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

No annotations are provided, so the description must carry behavioral transparency. It discloses the directory-only constraint and the move/rename operation, but does not mention overwrite behavior, permissions, or error handling. For a mutation tool, this is a moderate gap.

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 core message is delivered in two concise sentences, front-loaded with the operation and scope. The addition of keywords and bilingual text adds minor noise but does not detract significantly from clarity.

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, has an output schema, and fully documented parameters. The description covers the main operation and alternatives, but omits important behavioral details such as overwrite semantics and error conditions. Adequate but not comprehensive.

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 100% description coverage for both parameters, with clear descriptions for source and destination. The description reinforces that the path must be a directory, but adds little beyond what the schema already states. Baseline 3 is appropriate.

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 function: 'Move or rename directory.' It explicitly scopes the tool to directories only, distinguishing it from sibling tools like move_file and move. This is a specific verb+resource with clear differentiation.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: 'Use 'move' tool if unsure about path type,' naming an alternative tool for ambiguous cases. It also clarifies the tool is for directories only, implying when it should be used versus file-specific tools.

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

move_fileA

Move or rename specific file. Only works on files, not directories. Use 'move' tool if unsure about path type. Keywords: move file, rename file. / 移动或重命名指定文件。仅用于移动文件,不能移动目录。如果不确定路径类型,请使用 move 工具。关键词:移动文件、重命名文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
sourceYesThe source file path to move. Must be a file, not a directory.
destinationYesThe destination file path where the file will be moved to.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

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 carry the full burden of behavioral disclosure. However, it merely repeats the schema description and adds no unique behavioral details about overwrite behavior, permissions, or error handling. It only mentions the file-only restriction, which is already in the schema, offering no additional insight.

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

Conciseness3/5

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

The English portion is concise and front-loaded, but the description duplicates the entire content in Chinese and includes repetitive keywords, making it longer than necessary. The redundancy reduces efficiency, though the core message is still clear.

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 covers the basic operation and file-only restriction, and an output schema exists, so return values are addressed. However, with no annotations, it lacks crucial context about overwrite behavior, path resolution, and error handling, leaving gaps for a mutation tool. It is minimally complete but not thorough.

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 input schema has full descriptions for both source and destination (100% coverage), so the baseline is 3. The description itself adds no extra meaning beyond the schema; it only restates the file-only constraint and path types without elaborating on format, resolution, or edge cases.

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 'Move or rename specific file' with the explicit scope 'Only works on files, not directories', which distinguishes it from the sibling 'move' tool. It also provides a specific verb and resource, making the purpose unambiguous.

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

Usage Guidelines5/5

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

The description explicitly says 'Use 'move' tool if unsure about path type,' providing a clear alternative and when to use it. It also clarifies that directories are not supported, giving an explicit when-not-to-use signal. This is strong usage guidance.

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

read_fileA

READ AND RETRIEVE complete file content. Primary tool for reading files - use whenever you need to see what's inside a file. Use for viewing, inspecting, checking file contents before modification. Keywords: read, view, show, display, get content, inspect file, open file. / 读取并获取完整文件内容。这是读取文件的主要工具。关键词:读取、查看、显示、获取内容、检查文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path to read. Can be absolute or relative to the current working directory. The file must exist. Examples: 'src/main.go' (read source code), 'package.json' (read configuration), 'README.md' (read documentation), 'data/input.csv' (read data file).

Output Schema

ParametersJSON Schema
NameRequiredDescription
contentYes

TDQS

A4/5.0
Behavior4/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 explicitly states the tool reads and retrieves complete content, implying a non-destructive operation. However, it does not disclose error handling (e.g., missing file) or performance characteristics, though for a simple read tool the description is sufficiently transparent about its core behavior.

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

Conciseness3/5

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

The description includes a clear first sentence, but it is somewhat verbose with a repeated keyword list and bilingual content. There is redundancy between the description and the schema's description, and the keyword list is not essential. The structure is acceptable but not maximally concise.

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?

The tool is simple with one parameter and an output schema present, so the description does not need to explain return values. It covers purpose, usage scenarios, and distinguishes from siblings. The lack of error handling or permission notes is a minor gap, but overall the description is complete for this tool's complexity.

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 100% and the parameter 'path' is thoroughly documented with examples and constraints. The description adds little beyond the schema (mostly repeating the purpose), so the baseline score of 3 applies.

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 identifies the tool as a file reader: 'READ AND RETRIEVE complete file content' and labels it the 'Primary tool for reading files'. It is explicitly differentiated from sibling tools like write_file, search_files, and file_stat by stating it retrieves complete content, making its purpose unambiguous.

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 provides clear usage context: 'use whenever you need to see what's inside a file' and lists specific use cases (viewing, inspecting, checking before modification). It does not explicitly state when not to use the tool, but the 'Primary tool' designation and examples effectively guide selection over alternatives.

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

search_filesA

SEARCH AND FIND files matching patterns. Recursively searches through all subdirectories using glob patterns. Use for finding files by extension, locating specific files by name pattern. Keywords: search, find, locate, grep files, filter. / 搜索和查找匹配模式的文件。使用glob模式递归搜索所有子目录。用于按扩展名查找文件、按名称模式定位特定文件。关键词:搜索、查找、定位、过滤。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe directory path to start searching from. The search will recursively include all subdirectories. Use '.' for current directory, or specify any directory path. Examples: '.' (search from current), 'src/' (search in source), '/home/user/projects' (absolute path).
patternYesThe search pattern using glob syntax. Wildcards: * matches any characters, ? matches single character, ** matches any directories. Examples: '*.go' (all Go files), 'test_*.py' (test files starting with test_), '**/*.md' (all Markdown files in any subdirectory), 'config.*' (config files with any extension).

Output Schema

ParametersJSON Schema
NameRequiredDescription
filesYes

TDQS

A4.1/5.0
Behavior4/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 recursive traversal through all subdirectories and glob wildcard syntax, which covers the key behavioral aspects. The wording 'SEARCH AND FIND' implies a non-mutating read operation, but it could be more explicit about not modifying files.

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 front-loaded with essential information, but includes redundant keywords ('search, find, locate, grep files, filter') and a verbatim Chinese translation that adds length without new content. Still, it remains fairly concise and well-organized.

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?

The description covers use cases, wildcard syntax, recursion, and examples. Since an output schema exists, return format need not be described. Missing edge cases like symlink handling or case sensitivity, but these are not critical for a search tool.

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 coverage is 100% with detailed explanations and examples for both path and pattern. The description adds keywords and reinforces glob mechanics, but does not introduce new semantic information beyond what the schema already provides, so the baseline score of 3 applies.

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 'SEARCH AND FIND files matching patterns' with recursive glob search, which distinguishes it from list_directory and file_exists. The verb+resource+scope is specific and unambiguous.

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 use cases like 'Use for finding files by extension, locating specific files by name pattern' and lists keywords. However, it does not mention alternative tools or when not to use this tool, so guidance is clear but lacks exclusions.

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

set_permission_levelA

Set the command execution permission level. Higher levels allow more privileged operations. Level 0 is most restrictive, level 3 is least restrictive. / 设置命令执行权限级别。级别越高允许的操作越多。级别0最严格,级别3最宽松。

ParametersJSON Schema
NameRequiredDescriptionDefault
levelYesPermission level (0-3). 0: Read-only, 1: Basic write, 2: Extended write, 3: Full access.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A3.8/5.0
Behavior2/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. It explains the level semantics but does not disclose side effects, persistence, scope, or whether authorization is required. For a mutation tool, this gap is significant.

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 second sentence adds essential context about the level scale. No redundant or unnecessary information is present.

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 setter with one parameter, rich schema, and an output schema, the description is mostly complete. It lacks details about post-set behavior or effects, but the low complexity and structured fields reduce the need for extensive description.

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 coverage is 100%, and the parameter description in the schema already details level meanings (0: Read-only, 1: Basic write, 2: Extended write, 3: Full access). The description adds no additional parameter semantics beyond what the schema provides, so baseline 3 is appropriate.

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 function: 'Set the command execution permission level.' It specifies the resource (command execution permission level) and the action (set), and distinguishes it from the sibling tool get_permission_level by focusing on the write operation.

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 provides clear context by explaining that higher levels allow more privileged operations and defines the level range (0-3). It implies use when needing to adjust permissions, though it does not explicitly name alternatives or exclusion criteria.

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

update_command_blacklistB

Update the command and directory blacklist. Add commands or directories that should be blocked from execution or access. / 更新命令和目录黑名单。添加应被阻止执行或访问的命令或目录。

ParametersJSON Schema
NameRequiredDescriptionDefault
commandsNoList of commands to add to the blacklist. These commands will be blocked from execution.
directoriesNoList of directories to add to the blacklist. Access to these directories will be blocked.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

B3.1/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavior. It states the blacklist is updated and that commands/directories are blocked, but does not specify whether this operation is additive or replaces the existing blacklist, whether it requires special permissions, or what side effects occur. The mismatch between 'update' and 'add' leaves critical behavioral ambiguity.

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 short and front-loaded, stating the action and scope in one clear sentence. The addition of a Chinese translation is somewhat redundant for an AI agent but does not significantly harm conciseness or structure.

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 relatively simple with two optional parameters and an output schema, so explaining return values is unnecessary. However, the description omits crucial details about the update semantics (whether it replaces or appends), which is essential for safe usage. This gap makes the description incomplete despite the existing schema and sibling context.

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 input schema already provides 100% coverage with detailed descriptions for both 'commands' and 'directories' parameters, including examples. The description only restates that these items are added to the blacklist, offering no additional semantics beyond what the schema already conveys. Thus, the baseline of 3 applies.

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 tool updates the command and directory blacklist and specifies the action as adding blocked commands/directories. This distinguishes it from sibling tools like get_command_blacklist (read) and execute_command (run). However, the name says 'update' while the description says 'add', creating slight ambiguity about whether it replaces or appends to the blacklist.

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 blocking commands/directories (e.g., add items to be blocked from execution/access), but provides no explicit guidance on when to use this tool versus alternatives, nor any exclusions or prerequisites. It relies on the user to infer that this is the tool for modifying the blacklist.

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

write_fileA

WRITE OR UPDATE content to existing file, completely replacing current content. Workflow: read file first, modify content, then write back. For new files use 'create_file'. Keywords: write, update, modify, save, edit file, change file. / 写入或更新现有文件内容,完全替换当前内容。工作流程:先读取文件,修改内容,然后写回。新文件请使用 'create_file'。关键词:写入、更新、修改、保存、编辑文件。

ParametersJSON Schema
NameRequiredDescriptionDefault
pathYesThe file path to write to. The file should already exist (use 'create_file' for new files). Can be absolute or relative path. Examples: 'src/main.go' (update source code), 'config.yaml' (update configuration), 'index.html' (update web page).
contentYesThe new content to write to the file. This will completely replace the existing content. Make sure to include all content you want to keep, as the old content will be lost.

Output Schema

ParametersJSON Schema
NameRequiredDescription
messageYes
successYes

TDQS

A4.2/5.0
Behavior4/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 transparently states that writing completely replaces the existing content and that the file must already exist (via the path parameter description). This discloses the destructive nature of the operation. However, it doesn't mention what happens if the file does not exist, permissions required, or whether changes are atomic, but for a simple file write, this is adequate.

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

Conciseness3/5

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

The description is front-loaded with the key action, but includes redundant elements: the Chinese translation duplicates the English content, and the keyword list repeats information already in the description and schema. While structured logically (action, workflow, distinction), it could be more concise by removing the bilingual duplication and excessive keywords. It earns a 3 for being somewhat verbose but still organized.

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?

The tool is simple (2 params) and has a rich output schema, so the description need not cover return values. It covers the core aspects: what it does, the destructive replacement, the required existence of the file, and the recommended workflow. For a write tool, this is quite complete, though it could mention error cases (e.g., file not found) for extra clarity. Overall, it's contextually complete for the complexity.

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 description coverage is 100% and both parameters (path and content) have detailed descriptions with examples. The tool description adds little beyond the schema for parameter semantics; it repeats the replacement behavior but doesn't add new parameter-specific meaning. The baseline of 3 is appropriate since schema carries the load.

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 action ('WRITE OR UPDATE content to existing file') with the specific effect of completely replacing current content. It explicitly distinguishes itself from 'create_file' for new files, and the verb 'write' is specific to the resource. This makes the purpose unambiguous and differentiates it from sibling tools like read_file and create_file.

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

Usage Guidelines5/5

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

The description provides explicit usage guidance: it tells the agent to read the file first, modify content, then write back, and directly instructs to use 'create_file' for new files. This clearly indicates when to use this tool versus the alternative. The keyword list also reinforces the intended use cases (update, modify, save, edit).

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. 33 tool updatesv0.0.0
    • First observedbatch_delete
    • First observedcancel_command_task
    • First observedchange_directory
    • First observedclear_command_history
    • First observedcopy
    • First observedcopy_directory
    • First observedcopy_file
    • First observedcreate_directory
    • First observedcreate_file
    • First observeddelete
    • First observeddelete_directory
    • First observeddelete_file
    • First observeddownload_file
    • First observedexecute_command
    • First observedexecute_command_async
    • First observedfile_exists
    • First observedfile_stat
    • First observedget_command_blacklist
    • First observedget_command_history
    • First observedget_command_task
    • First observedget_current_time
    • First observedget_permission_level
    • First observedget_system_info
    • First observedget_working_directory
    • First observedlist_directory
    • First observedmove
    • First observedmove_directory
    • First observedmove_file
    • First observedread_file
    • First observedsearch_files
    • First observedset_permission_level
    • First observedupdate_command_blacklist
    • First observedwrite_file

TDQS

A3.6/5.0

Scored across 33 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but there are overlapping variants like copy/copy_file/copy_directory. The 'primary' tool recommendations help reduce confusion, making selection mostly unambiguous.

Naming Consistency4/5

Most tool names follow a verb_noun pattern (e.g., create_file, delete_directory). However, a few exceptions like 'file_exists' and 'file_stat' break the pattern, and single-verb tools 'copy', 'delete', 'move' stand out.

Tool Count2/5

With 33 tools, this server is larger than typical MCP servers. The set includes many redundant variants (e.g., three flavors each for copy, delete, and move), which inflates the count without adding significant functional breadth.

Completeness4/5

The tool set covers most core file system and command execution workflows, including CRUD, directory management, search, and async command control. Minor gaps exist, such as no direct file content search or batch copy/move, but these can be worked around.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    Custom MCP tools for local development that enable file system access, shell command execution, and web resource browsing. Designed for local use with safety considerations for potentially destructive operations.
    -
  • F
    license
    Not graded
    quality
    D
    maintenance
    Provides comprehensive utility tools including file operations, weather information, system monitoring, mathematical calculations, text search, and safe command execution. Enables users to perform various system and data operations through a unified MCP interface with built-in security features.
    -
  • A
    license
    Not graded
    quality
    D
    maintenance
    Provides essential utility tools for text processing, file operations, hashing, temperature conversion, password generation, and date/time operations through a comprehensive MCP interface.
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    A modular framework for building and running multiple MCP servers with file operations, system information, and extensible tool/prompt/resource support.
    MIT