Skip to main content
Glama
zhy1369800

VPS MCP Server

by zhy1369800

VPS MCP Server 🚀

English | 中文说明

English Description

An advanced Model Context Protocol (MCP) server designed to turn your VPS into a powerful AI-driven remote workstation. It provides a comprehensive set of tools for command execution, file management, system monitoring, and persistent session handling.

🌟 Key Features

  • Command Execution: Run shell commands and scripts (Python/Node/Bash) in a sandboxed environment.

  • Advanced File Management: Read, write, patch, search, and visualize directory trees.

  • Persistent Sessions: Based on tmux, allowing AI to handle long-running or interactive tasks.

  • System Monitoring: Real-time process listing and system resource tracking.

  • Network Capabilities: Make HTTP requests or download large files directly to the VPS.

  • Flexible Transport: Supports both stdio and SSE (HTTP) modes.

⚡️ Quick Run with npx

You can run the server directly without cloning the repository:

# stdio mode (for local use)
npx github:zhy1369800/vps-mcp-server

# SSE mode (for remote VPS deployment)
MODE=sse PORT=8080 MCP_TOKEN=your-token npx github:zhy1369800/vps-mcp-server

🛠 Tools Reference

Tool

Description

run_command

Execute a one-off shell command.

run_script

Run Python, Bash, or Node.js code blocks.

list_files

List directory contents or generate a recursive tree.

file_read/write

Read from or write to files.

file_patch

Edit specific parts of a file (Token-efficient).

file_search

Search for files by name or content (grep).

get_system_status

Get OS info, memory, disk, or process list.

http_request

Fetch web content or download files to disk.

session_*

Start, exec, read, or stop persistent tmux sessions.

🚀 Manual Installation

  1. Clone & Install:

    git clone https://github.com/zhy1369800/vps-mcp-server.git
    cd vps-mcp-server
    npm install
  2. Build:

    npm run build
  3. Configure: Copy .env.example to .env and set your MCP_TOKEN.

  4. Run (SSE Mode):

    MODE=sse PORT=8080 npm start

Related MCP server: interminal

中文说明

这是一个先进的 Model Context Protocol (MCP) 服务端,旨在将您的 VPS 变成一个强大的 AI 驱动远程工作站。它为 AI Agent 提供了完整的指令执行、文件管理、系统监控和持久化会话处理工具集。

🌟 核心特性

  • 指令执行:在沙箱环境中运行 Shell 命令和脚本(Python/Node/Bash)。

  • 高级文件管理:支持读取、写入、增量补丁(Patch)、全文搜索及目录树可视化。

  • 持久化会话:基于 tmux 实现,允许 AI 处理耗时较长或需要交互的任务。

  • 系统监控:实时查看进程列表、CPU、内存及磁盘占用情况。

  • 网络增强:直接从 VPS 发起 HTTP 请求或下载大文件到磁盘。

  • 双模式支持:支持 stdio 本地调用和 SSE (HTTP) 远程调用模式。

⚡️ 使用 npx 快速运行

无需克隆代码即可直接启动服务:

# stdio 模式 (本地使用)
npx github:zhy1369800/vps-mcp-server

# SSE 模式 (远程 VPS 部署)
MODE=sse PORT=8080 MCP_TOKEN=your-token npx github:zhy1369800/vps-mcp-server

🛠 工具列表

工具名称

功能描述

run_command

执行一次性 Shell 命令。

run_script

运行 Python、Bash 或 Node.js 代码块。

list_files

列出目录内容或生成递归目录树(支持排除目录)。

file_read/write

读取或写入文件。

file_patch

增量编辑文件特定部分(极度节省 Token)。

file_search

按名称或内容搜索文件(基于 grep)。

get_system_status

获取系统概览、内存、磁盘或进程列表。

http_request

发起 HTTP 请求或下载文件到 VPS 磁盘。

session_*

启动、执行、读取或停止持久化的 tmux 会话。

🚀 手动安装步骤

  1. 克隆与安装

    git clone https://github.com/zhy1369800/vps-mcp-server.git
    cd vps-mcp-server
    npm install
  2. 编译

    npm run build
  3. 配置环境: 将 .env.example 复制为 .env 并设置您的 MCP_TOKEN

  4. 启动服务 (SSE 模式):

    MODE=sse PORT=8080 npm start

🛡 安全建议

建议在 Docker 容器中运行此服务,并配合 Nginx 反向代理(配置 SSL 证书)以确保通信安全。

📄 开源协议

MIT

Available Tools

17 tools
agy_askB

向 agy 提问,自动维护上下文会话 ID。支持直接在普通沙盒中执行,或指定持久化的 tmux 会话执行并自动读取完毕后一次性返回。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNo透传给 agy 的模式参数
agentNo透传给 agy 的代理参数
clearNo是否清空可见屏幕及历史滚动缓冲区,默认为 true
modelNo透传给 agy 的模型参数
addDirNo透传给 agy 的添加目录参数
effortNo透传给 agy 的思考深度参数
promptYes要提问的具体内容
projectNo透传给 agy 的项目参数
sessionIdNo(可选)绑定的持久 tmux 会话 ID。如果提供,将在该会话中执行;否则在常规沙盒环境中执行。
dangerouslySkipPermissionsNo是否自动跳过权限询问,默认为 true

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses automatic context maintenance and one-shot return behavior, which is helpful. However, it omits details such as authorization needs, rate limits, or potential side effects.

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

Conciseness5/5

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

The description is extremely concise, consisting of two sentences that efficiently convey the core purpose and key usage modes without extraneous information.

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

Completeness2/5

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

Given 10 parameters and no output schema, the description is insufficient. It does not explain what the tool returns, error handling, or how parameters like mode, agent, or model affect behavior. The return behavior is only vaguely mentioned.

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%, providing descriptions for all 10 parameters. The tool description does not add 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.

Purpose4/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: to ask questions to 'agy' while automatically maintaining context session ID. It mentions two execution modes (sandbox or tmux session), which adds specificity, but does not explicitly distinguish it from sibling tools like run_command or session_read.

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, nor does it specify prerequisites or conditions. It only describes two execution modes without indicating which is preferred in which scenario.

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

file_deleteC

删除文件或目录

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must explain the tool's behavior. It does not disclose whether deletion is permanent, recursive, or reversible. For a destructive operation, this is a significant gap.

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 extremely concise (one phrase), but it sacrifices necessary detail. It is not structured to highlight key attributes (e.g., behavior, safety).

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

Completeness2/5

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

Given the tool has a single parameter, no output schema, and no annotations, the description is too minimal. It does not provide enough context for an AI agent to use the tool safely and effectively.

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

Parameters2/5

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

The schema has 0% description coverage; only the parameter name 'filepath' is given. The description adds no additional meaning beyond the name, failing to clarify expected format or constraints.

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 (delete) and the resource (file or directory). It is specific and distinct from sibling tools like file_write or run_command 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 Guidelines2/5

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

No guidance is provided on when to use this tool vs alternatives (e.g., file_patch for modifications, run_command for custom deletion). There is no mention of prerequisites, safety checks, or scenarios where it is appropriate.

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

file_patchC

增量编辑文件(搜索并替换)

ParametersJSON Schema
NameRequiredDescriptionDefault
searchYes要搜索的原始文本
replaceYes要替换成的新文本
filepathYes

TDQS

C2.8/5.0
Behavior2/5

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

With no annotations, the description must carry the full burden of behavioral disclosure. It fails to convey critical traits such as whether the replacement applies to all occurrences or just the first, how errors are handled (e.g., search string not found), or whether it works on binary files. The term 'incremental' is ambiguous.

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 extremely concise, consisting of a short phrase. While brevity is valued, it lacks structure and omits necessary details, making it borderline underspecified.

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

Completeness1/5

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

Given the tool's complexity (3 required parameters, no output schema, no nested objects), the description is woefully incomplete. It does not explain return values, error cases, whether the edit is in-place, or any side effects. Minimal viable would require at least a sentence on behavior.

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

Parameters2/5

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

Schema coverage is 67% (search and replace have descriptions, filepath does not). The description adds no extra meaning beyond the schema; it merely restates 'search and replace'. It does not clarify the format of the search string, whether regex is supported, or the behavior of the replace parameter.

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 (incremental edit), resource (file), and method (search and replace). It effectively distinguishes from sibling tools like file_write (overwrite/create), file_read (read), and file_delete (delete).

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as file_write for full rewrites or file_search for locating content. There is no mention of prerequisites, conditions, 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.

file_readC

读取文件内容

ParametersJSON Schema
NameRequiredDescriptionDefault
filepathYes

TDQS

C2.7/5.0
Behavior2/5

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

With no annotations, the description should disclose behavioral traits. It only states 'read file content', implying a read-only operation, but lacks details on potential side effects, error handling, or restrictions (e.g., file types, encoding).

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 extremely concise (one short phrase), which is efficient for a simple tool. However, it could be slightly more structured with a brief sentence.

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

Completeness3/5

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

For a tool with one parameter and no output schema, the description is minimally complete. It conveys the core purpose, though additional context (e.g., return format, error cases) would improve completeness.

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

Parameters1/5

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

Schema coverage is 0%, and the description adds no meaning beyond the parameter name 'filepath'. It does not clarify whether paths are absolute/relative, or any formatting requirements.

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 indicates the tool reads file content, distinguishing it from siblings like file_write or file_patch. However, it could be more explicit about the resource (file) and the action (read), but it's sufficient.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives like list_files or file_search. The description does not specify context or prerequisites.

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

file_writeC

写入文件

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
filepathYes

TDQS

C2.1/5.0
Behavior2/5

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

No annotations are provided, and the description only says 'write file'. It does not disclose whether the file is overwritten, created if missing, or any permissions required. The behavioral impact is unclear.

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 extremely concise at two characters, but it omits essential context. It is not well-structured for an AI agent, as it lacks any explanatory text beyond the minimal translation.

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

Completeness1/5

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

Given the lack of annotations, output schema, and parameter documentation, the description fails to provide a complete picture for a tool that modifies the filesystem. It is inadequate for an agent to use correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description adds no meaning to the parameters 'content' and 'filepath'. It does not specify data types, encoding, or file path conventions, leaving the agent to rely solely on the parameter names.

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

Purpose3/5

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

The description '写入文件' translates to 'write file', which clearly indicates the verb (write) and resource (file). However, it lacks specificity on whether it creates, overwrites, or appends, and does not distinguish from siblings like file_patch.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus alternatives such as file_patch or file_delete. The description does not mention any context for effective use.

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

get_system_statusB

获取 VPS 系统状态或进程列表

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNo进程排序方式
typeNosummary: 系统概览, processes: 进程列表

TDQS

B3/5.0
Behavior1/5

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

With no annotations, description carries full burden but only states purpose, not behavioral traits like safety, side effects, or required permissions.

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?

Single sentence is concise, but it is in Chinese while tool name and schema are in English, potentially causing language mismatch.

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?

Simple tool with two optional params and no output schema; description covers basic purpose but lacks details on return format or pagination.

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%, so baseline is 3. Description adds 'VPS' context but does not enhance meaning beyond schema descriptions.

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?

Description clearly states 'Get VPS system status or process list' using a specific verb and resource. It distinguishes from siblings like run_command or session_read.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. No exclusions or context provided.

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

http_requestC

发起 HTTP 请求或下载文件

ParametersJSON Schema
NameRequiredDescriptionDefault
urlYes
bodyNo
methodNo
headersNo
savePathNo如果提供,则将响应保存到此文件路径

TDQS

C2.6/5.0
Behavior2/5

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

No annotations are provided, so the description must fully disclose behavioral traits. It implies network requests and file saving but lacks details on authentication, rate limits, timeout behavior, error handling, or side effects (e.g., file overwriting). The savePath parameter's description partly addresses file saving, but overall transparency is poor.

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

Conciseness4/5

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

The description is a single, concise sentence that immediately conveys the core action. However, it is too brief and lacks structure; for a tool with 5 parameters and no annotations, a slightly longer description with clear sections would be better. Still, no wasted words.

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

Completeness1/5

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

Given 5 parameters, low schema coverage (20%), no output schema, and no annotations, the description is severely incomplete. It does not specify what the tool returns (e.g., response body, status code, or saved file path), how to handle errors, or any constraints like maximum request size. A tool of this complexity requires much more information.

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

Parameters2/5

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

Schema description coverage is only 20% (only savePath has a description). The tool description does not add any meaning to the parameters beyond the schema. It does not explain the url format, method enums, body structure, or headers usage, leaving the agent to infer from parameter names alone.

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 'Initiate HTTP request or download file' clearly states the tool's verb and resource. It distinguishes from sibling tools like session_read which likely handle internal session data, and run_command which executes shell commands. However, it could be more specific about the type of HTTP requests (e.g., REST APIs) and the context (e.g., external web servers).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives. For example, when to use http_request vs run_command for fetching data, or when to avoid it (e.g., for local file operations). No exclusions or prerequisites are mentioned.

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

kill_processC

终止指定 PID 的进程

ParametersJSON Schema
NameRequiredDescriptionDefault
pidYes
forceNo

TDQS

C2.8/5.0
Behavior2/5

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

While the description implies a destructive action (terminating a process), it lacks details on permissions required, potential risks (e.g., killing critical system processes), or what happens on failure. With no annotations, 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.

Conciseness4/5

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

The description is a single sentence, efficiently conveying the core action. However, it could be more informative without sacrificing conciseness.

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

Completeness2/5

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

Given no annotations, no output schema, and two parameters (one optional), the description is insufficient. It does not cover return values, error behavior, or the effect of the 'force' parameter.

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

Parameters1/5

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

The description does not explain the parameters: 'pid' is not defined as process ID, and 'force' is not mentioned at all. With 0% schema description coverage, the description fails to add any value beyond the bare 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 explicitly states the action 'terminate' and the resource 'process with specified PID', making the tool's purpose clear and distinct from siblings like run_command or session_stop.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., session_stop for sessions), nor any prerequisites or warnings about killing processes.

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

list_filesB

列出目录内容或递归获取目录树

ParametersJSON Schema
NameRequiredDescriptionDefault
depthNo递归深度
dirpathNo目录路径
excludeNo排除的目录
recursiveNo是否递归列出 (树状结构)

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 carries full burden. It does not disclose behavioral traits such as read-only nature, error handling, path resolution, or whether the tool may be expensive (e.g., large directories). The bare statement of functionality is inadequate.

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 (single phrase) and front-loaded, with no wasted text. However, it is perhaps too minimal for a tool with 4 parameters; a slightly longer description could improve completeness without harming conciseness.

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

Completeness2/5

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

The tool has 4 parameters and no output schema; the one-line description does not explain the output format, the relationship between 'depth' and 'recursive', or the behavior when parameters conflict. More detail is needed for a complete understanding.

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 Chinese descriptions for each parameter. The tool description adds no further parameter semantics, so the agent must rely solely on the schema. Baseline 3 is appropriate as schema suffices.

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 "列出目录内容或递归获取目录树" (List directory contents or recursively get directory tree) clearly states the action (listing) and the resource (directory), differentiating it from siblings like file_read (content) and file_search (search). It is specific and non-tautological.

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 (e.g., file_search for searching, file_read for content). An agent must infer usage from context alone, which is insufficient.

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

run_commandB

在 VPS 沙盒中执行 Shell 命令(一次性)

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo工作目录,默认 /tmp
commandYes要执行的命令
timeoutNo超时(ms),默认 30000

TDQS

B3.1/5.0
Behavior2/5

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

No annotations provided. Description only mentions 'sandbox' and 'one-time' execution, but fails to disclose behavior like side effects, permissions, output format, or error 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?

Single sentence, concise and to the point. No wasted words, but could include more 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?

No output schema, yet description does not mention that the tool returns stdout/stderr or exit codes. For a shell execution tool, this gap reduces completeness.

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%, so the schema already describes parameters. Description does not add additional meaning 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?

Description clearly states it executes a Shell command in a VPS sandbox, one-time. Distinguishes from siblings like session_exec (interactive session) and run_script (script execution).

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

Usage Guidelines2/5

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

No explicit guidance on when to use this tool versus alternatives like session_exec or run_script. The description lacks usage context.

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

run_scriptC

执行脚本代码 (python/bash/node)

ParametersJSON Schema
NameRequiredDescriptionDefault
codeYes脚本源码
timeoutNo超时(ms)
languageYes

TDQS

C2.5/5.0
Behavior2/5

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

No annotations provided, so description must fully disclose behavior. It only states 'execute script code' without mentioning output, side effects, security, or failure modes. Essential behavioral context is missing.

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?

Single sentence, but it is under-specified rather than concise. Important details are omitted, so it fails to be effectively concise.

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

Completeness2/5

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

For a code execution tool with three parameters and no output schema, the description is severely incomplete. It lacks details on return values, error handling, timeout behavior, and security warnings.

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

Parameters2/5

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

Schema coverage is 67% (two of three parameters have descriptions). The description adds no extra meaning beyond the schema; language parameter lacks description but enum is present. Description does not compensate for missing detail.

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

Purpose4/5

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

The description '执行脚本代码 (python/bash/node)' clearly states the action (execute) and resource (script code) and lists supported languages. However, it does not differentiate from sibling tool 'run_command', which may have similar functionality.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like run_command. No context on prerequisites or when not to use.

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

send_smsC

使用 Twilio API 发送短信 (SMS)

ParametersJSON Schema
NameRequiredDescriptionDefault
toYes接收方手机号(E.164 格式,示例: +86xxxxxxxxxxx)
bodyYes短信文本内容
fromNo发送方 Twilio 号码,默认读取环境变量 TWILIO_FROM_NUMBER
authTokenNoTwilio Auth Token,默认读取环境变量 TWILIO_AUTH_TOKEN
accountSidNoTwilio Account SID,默认读取环境变量 TWILIO_ACCOUNT_SID

TDQS

C2.9/5.0
Behavior2/5

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

No annotations provided. The description only states it sends SMS, with no disclosure of behavioral traits like delivery confirmation, error handling, rate limits, or cost implications.

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?

Single sentence, no redundant information. Efficiently communicates the core function.

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?

Simple tool with 5 parameters and no output schema. Description covers the basic action but lacks return value hints. Adequate for straightforward usage.

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 each parameter having a description. The tool description adds no extra meaning beyond the schema, so baseline score 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 it sends SMS using Twilio API. The verb '发送' (send) and resource '短信' (SMS) are specific, and the tool is distinct from sibling tools which are not messaging-focused.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives (e.g., http_request for general API calls). No context on prerequisites or limitations.

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

session_execC

向已有会话发送命令

ParametersJSON Schema
NameRequiredDescriptionDefault
commandYes
sessionIdYes

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must disclose behavioral traits. It only says 'send command', omitting effects like execution context, error behavior, or potential side effects.

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

Conciseness4/5

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

Single sentence, no wasted words. Front-loaded with key action, but lacks detail which could be added without harming conciseness.

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

Completeness2/5

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

For a tool with two required parameters and no output schema, the description omits essential context like prerequisites, return values, or failure modes. Incomplete for task selection.

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

Parameters2/5

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

Parameter names (command, sessionId) are somewhat self-explanatory, but the description provides no additional meaning, leaving 0% schema coverage unaddressed. No explanation of format or constraints.

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 sends a command to an existing session, with a specific verb and resource. It distinguishes from siblings like session_read (read only) and run_command (likely standalone command execution).

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like run_command or session_start. Does not mention prerequisites such as session must be active.

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

session_readC

读取会话的最近输出

ParametersJSON Schema
NameRequiredDescriptionDefault
maxCharsNo
sessionIdYes

TDQS

C2.4/5.0
Behavior2/5

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

No annotations provided. Description only says 'read recent output' without disclosing behavior such as blocking, rate limits, or what constitutes 'recent'.

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?

Very short but lacks structure. The single phrase is concise but does not provide a full sentence or breakdown of functionality.

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?

No output schema, so the description should clarify what output is returned. It does not mention format, pagination, or limits, making it incomplete for a read operation.

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

Parameters1/5

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

Schema has 0% description coverage. The description does not explain the purpose of sessionId or maxChars, leaving their meaning unclear.

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

Purpose4/5

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

The description states 'read recent output of the session', which is a specific verb+resource. It clearly distinguishes from sibling tools like session_start, session_exec, and session_stop by focusing on reading output.

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

Usage Guidelines2/5

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

No guidance on when to use this tool versus alternatives like session_exec or run_command. No context on prerequisites or postconditions.

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

session_startC

启动一个持久 tmux 会话

ParametersJSON Schema
NameRequiredDescriptionDefault
cwdNo
commandNo
sessionIdYes

TDQS

C2.4/5.0
Behavior2/5

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

With no annotations, the description should detail behavioral traits. It only mentions persistence but fails to disclose side effects, required permissions, error conditions, or what happens to existing sessions. The term '持久' (persistent) suggests it remains after command exits, but no further 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 description is a single sentence, which is concise. However, it lacks structure and is too minimal for a tool with 3 parameters; it does not earn its place as it omits critical information.

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

Completeness1/5

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

Given 3 parameters, no output schema, and no annotations, the description is severely incomplete. It does not specify return values, parameter formats, or behavioral context like session uniqueness, making it inadequate for an AI agent to use correctly.

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

Parameters1/5

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

Schema description coverage is 0%, and the description does not explain any of the three parameters (cwd, command, sessionId). The agent must infer meaning from names alone, which is insufficient for correct invocation.

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 '启动一个持久 tmux 会话' clearly states the action (start) and the resource (persistent tmux session). Although it does not explicitly distinguish from siblings, the verb 'start' is distinct from 'read', 'exec', 'stop', making it clear enough.

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

Usage Guidelines2/5

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

No guidance on when to use this tool vs alternatives like session_exec or session_stop. No prerequisites or context for usage are provided.

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

session_stopC

停止并销毁会话

ParametersJSON Schema
NameRequiredDescriptionDefault
sessionIdYes

TDQS

C2.3/5.0
Behavior2/5

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

Without annotations, the description must convey behavioral traits. It states 'destroy' implying irreversible action, but lacks details on consequences, required permissions, or side effects.

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

Conciseness2/5

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

The description is overly minimal (a single phrase), lacking structure. While short, it does not adequately inform the agent.

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

Completeness1/5

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

Given no annotations, no output schema, and minimal description, the tool definition severely lacks completeness for a destructive action.

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

Parameters1/5

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

The single parameter 'sessionId' lacks description or context. With 0% schema description coverage, the tool definition provides no meaning beyond its type.

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 indicates the action of stopping and destroying a session. It distinguishes from sibling tools like session_start and session_read by specifying a destructive action.

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

Usage Guidelines2/5

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

No usage guidance is provided. The description does not specify when to use this tool vs alternatives, nor does it mention prerequisites or safety considerations.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 17 tool updatesv1.0.7
    • First observedagy_ask
    • First observedfile_delete
    • First observedfile_patch
    • First observedfile_read
    • First observedfile_search
    • First observedfile_write
    • First observedget_system_status
    • First observedhttp_request
    • First observedkill_process
    • First observedlist_files
    • First observedrun_command
    • First observedrun_script
    • First observedsend_sms
    • First observedsession_exec
    • First observedsession_read
    • First observedsession_start
    • First observedsession_stop

TDQS

B3.1/5.0
Disambiguation5/5

Each tool has a distinct purpose: file operations (write, read, delete, patch, list, search), session management (start, exec, read, stop), command/script execution, system status, process control, HTTP requests, SMS, and an AI query tool. No two tools serve the same function, and descriptions clearly differentiate them.

Naming Consistency4/5

Most tools follow a consistent verb_noun pattern in snake_case (e.g., file_write, session_start). One tool, 'agy_ask', breaks the pattern as noun_verb, but overall naming is predictable and readable.

Tool Count5/5

With 17 tools, the set is well-scoped for a VPS management server. It covers file operations, command execution, session management, system monitoring, HTTP requests, and additional utilities like SMS and AI querying without being overwhelming or sparse.

Completeness4/5

The tool set covers core VPS operations: file CRUD, command/script execution, session management, system status, and process control. Minor gaps exist, such as package management or network configuration tools, but the surface is sufficient for typical sandbox interactions.

Maintenance

ActivityMaintained
ResponsivenessSyncing

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

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

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    D
    maintenance
    An MCP server that gives AI assistants full SSH/SFTP remote operations — session management, command execution, interactive shells, file transfers, port forwarding, and system diagnostics.
    2
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    MCP server for SSH and local terminal access. Supports interactive commands, long-running processes, and TUI apps like tmux/zellij
    6
    3
    MIT
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables persistent remote VPS collaboration with MCP tools, live dashboard, and autonomous AI agent for code execution, memory, and task automation.
    25
    3
    GPL 3.0
  • A
    license
    A
    quality
    C
    maintenance
    Enables reading, writing, editing, searching, running commands, transferring files, and using git on a remote Linux server over SSH via MCP tools.
    22
    2
    AGPL 3.0

Latest Blog Posts

MCP directory API

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

curl -X GET 'https://glama.ai/api/mcp/v1/servers/zhy1369800/vps-mcp-server'

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