MCP SSH Tools Server
Server Quality Checklist
Latest release: v1.0.0
- Disambiguation5/5
Each tool has a clearly distinct purpose with no overlap: add_server_config manages server configurations, list_servers enumerates them, test_connection checks connectivity, execute runs commands, list_directory browses files, and upload_file/download_file handle file transfers. The descriptions reinforce these distinct roles, making tool selection unambiguous.
Naming Consistency5/5All tools follow a consistent verb_noun or verb_noun_noun pattern (e.g., add_server_config, list_directory, upload_file). The naming is uniform across the set, using snake_case throughout with clear, descriptive terms that align with their functions.
Tool Count5/5With 7 tools, the count is well-scoped for an SSH management server. It covers essential operations like server configuration, connection testing, command execution, file management, and directory listing, without being overly sparse or bloated.
Completeness4/5The tool set provides strong coverage for core SSH workflows, including CRUD-like operations for server configs, file transfers, and remote execution. A minor gap is the lack of tools for deleting or modifying server configurations, which agents might need to work around, but the surface is largely complete for the domain.
Average 3/5 across 7 of 7 tools scored.
See the Tool Scores section below for per-tool breakdowns.
- 0 of 1 community issues answered or closed in the last 6 months
- 0 commits in the last 12 weeks
- No stable releases found
- No critical vulnerability alerts
- No high-severity vulnerability alerts
- No code scanning findings
- CI status not available
Add a LICENSE file by following GitHub's guide. Once GitHub recognizes the license, the system will automatically detect it within a few hours.
If the license does not appear after some time, you can manually trigger a new scan using the MCP server admin interface.
MCP servers without a LICENSE cannot be installed.
This repository includes a README.md file.
No tool usage detected in the last 30 days. Usage tracking helps demonstrate server value.
Tip: use the "Try in Browser" feature on the server page to seed initial usage.
Add a glama.json file to provide metadata about your server.
If you are the author, simply .
If the server belongs to an organization, first add
glama.jsonto the root of your repository:{ "$schema": "https://glama.ai/mcp/schemas/server.json", "maintainers": [ "your-github-username" ] }Then . Browse examples.
Add related servers to improve discoverability.
How to sync the server with GitHub?
Servers are automatically synced at least once per day, but you can also sync manually at any time to instantly update the server profile.
To manually sync the server, click the "Sync Server" button in the MCP server admin interface.
How is the quality score calculated?
The overall quality score combines two components: Tool Definition Quality (70%) and Server Coherence (30%).
Tool Definition Quality measures how well each tool describes itself to AI agents. Every tool is scored 1–5 across six dimensions: Purpose Clarity (25%), Usage Guidelines (20%), Behavioral Transparency (20%), Parameter Semantics (15%), Conciseness & Structure (10%), and Contextual Completeness (10%). The server-level definition quality score is calculated as 60% mean TDQS + 40% minimum TDQS, so a single poorly described tool pulls the score down.
Server Coherence evaluates how well the tools work together as a set, scoring four dimensions equally: Disambiguation (can agents tell tools apart?), Naming Consistency, Tool Count Appropriateness, and Completeness (are there gaps in the tool surface?).
Tiers are derived from the overall score: A (≥3.5), B (≥3.0), C (≥2.0), D (≥1.0), F (<1.0). B and above is considered passing.
Tool Scores
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action (list remote directory contents) but lacks critical behavioral details: it doesn't specify what permissions are needed, whether it's read-only or has side effects, what format the output takes (though output schema exists), or any rate limits/errors. For a tool with zero annotation coverage, this is a significant gap in transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with two sentences: one stating the purpose and another listing parameters. It's front-loaded with the main action. However, the parameter list is somewhat redundant with the schema (though schema has 0% coverage), and it could be more structured (e.g., bullet points).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 2 parameters with 0% schema coverage and no annotations, the description provides minimal context: purpose and basic param meanings. An output schema exists, so return values needn't be explained. However, for a tool interacting with remote servers (implied by siblings like upload_file), it lacks details on authentication, error handling, or output structure, making it incomplete for safe use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description adds basic semantics: server_name is '服务器名称' (server name) and path is '目录路径,默认为根目录' (directory path, default is root directory). This clarifies purpose but lacks depth (e.g., path format, server_name examples). With 0% coverage, it partially compensates but not fully, warranting a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb '列出' (list) and resource '远程目录内容' (remote directory contents), which is specific and actionable. It distinguishes from siblings like download_file or upload_file by focusing on listing rather than file transfer. However, it doesn't explicitly differentiate from list_servers (which lists servers vs. directory contents).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention when to use list_directory versus list_servers (for server listing) or other siblings like execute or test_connection. There are no explicit when/when-not statements or named alternatives, leaving usage context unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states the tool tests server connections but doesn't describe what this entails: whether it performs ping tests, port checks, authentication verification, or returns specific metrics. It doesn't mention error conditions, timeouts, or what constitutes a successful connection test. For a tool with zero annotation coverage, this leaves significant 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two clear sections: purpose statement and parameter listing. It uses minimal words to convey essential information without unnecessary elaboration. The structure is logical with purpose first followed by parameters. Every sentence serves a clear purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which handles return values), the description focuses on purpose and parameters appropriately. However, for a connection testing tool with no annotations, it should provide more behavioral context about what 'testing' entails. The description is minimally complete but lacks depth about the testing methodology or expected outcomes beyond what the output schema will provide.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description explicitly lists the single parameter 'server_name' with a brief explanation ('服务器名称' - server name). With schema description coverage at 0%, this adds meaningful context beyond the bare schema. However, it doesn't provide format requirements, examples, or constraints for the server_name parameter. The baseline is appropriate given the single parameter and partial documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '测试服务器连接' (test server connection), which is a specific verb+resource combination. It distinguishes itself from siblings like 'list_servers' or 'add_server_config' by focusing on connection testing rather than listing or configuration management. However, it doesn't explicitly differentiate from potential alternatives like 'execute' which might also involve server interaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. There's no mention of prerequisites, typical use cases, or comparison with sibling tools like 'list_servers' or 'execute'. The agent must infer usage context solely from the tool name and description without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the upload action but doesn't disclose behavioral traits like whether it overwrites existing files, requires authentication, handles errors, supports recursive directory uploads, or has rate limits. The description is minimal and lacks crucial operational context for a file transfer 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with two sentences: one stating the purpose and another listing parameters. It's front-loaded with the core functionality. However, the parameter list uses minimal labels without elaboration, which could be seen as slightly under-specified rather than optimally concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has an output schema (which handles return values), no annotations, and 3 parameters with 0% schema coverage, the description is incomplete. It covers the basic purpose and parameters but lacks behavioral details, error handling, and usage context. For a file upload operation with potential complexity (e.g., overwrites, permissions), this leaves significant gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters3/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists all three parameters with brief Chinese labels, but schema description coverage is 0%, so the schema provides no additional parameter documentation. The description adds basic semantic meaning (e.g., 'server_name' identifies the target server), but doesn't explain format expectations (e.g., path syntax, server name conventions) or constraints beyond what's implied by parameter names.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '将本地的文件或者目录上传到远程服务器' (upload local files or directories to a remote server). It specifies both the verb (upload) and resources (local files/directories to remote server). However, it doesn't explicitly differentiate from sibling tools like 'download_file' or 'list_directory' beyond the obvious directional difference.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. There are no explicit instructions about prerequisites (e.g., server must be configured first), when not to use it, or comparisons to sibling tools like 'download_file' for reverse operations or 'list_directory' for checking remote contents before upload.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 of behavioral disclosure. It states the tool adds server configuration but doesn't describe what 'add' entails—whether it creates a persistent entry, requires authentication, has side effects (e.g., restarting services), or handles errors. For a mutation tool with zero annotation coverage, this leaves critical behavioral traits unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the tool's purpose followed by a bulleted list of parameters. Each sentence earns its place by explaining the action and parameters concisely. Minor improvements could include combining the purpose and parameter sections more fluidly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (mutation with 5 parameters), no annotations, and an output schema (which reduces the need to describe return values), the description is partially complete. It covers parameters well but lacks behavioral context (e.g., permissions, side effects) and usage guidelines. The presence of an output schema helps, but gaps remain for safe and effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description lists all 5 parameters with brief explanations (e.g., '服务器名称' for name, 'SSH端口,默认22' for port), adding meaning beyond the input schema which has 0% description coverage. It clarifies that port defaults to 22 and that parameters relate to SSH connectivity. However, it doesn't specify formats (e.g., IP validation) or constraints beyond defaults.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '动态添加服务器配置' (dynamically add server configuration), which specifies the verb 'add' and the resource 'server configuration'. This distinguishes it from sibling tools like list_servers or test_connection. However, it doesn't explicitly differentiate from potential configuration management alternatives beyond the sibling list.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention prerequisites (e.g., needing admin access), when not to use it (e.g., for temporary configurations), or how it relates to sibling tools like list_servers or test_connection. The agent receives no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- 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 of behavioral disclosure. It mentions recursive downloading for directories, which adds some context beyond basic functionality. However, it lacks critical details: authentication requirements (implied by 'server_name'), potential destructive behavior (overwriting local files), error handling, or rate limits. For a tool with no annotations, this is insufficient.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness4/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise and well-structured: a clear purpose statement followed by a bulleted list of parameters. Every sentence earns its place, with no redundant information. However, it could be more front-loaded by integrating parameter hints into the main statement, and the use of Chinese might reduce accessibility in some contexts.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (file operations with potential recursion) and no annotations, the description is minimally adequate. It covers the basic action and parameters but lacks details on permissions, errors, or output (though an output schema exists, reducing the need to explain returns). For a tool with no annotations and 0% schema coverage, it should do more to be complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It lists all three parameters ('server_name', 'remote_path', 'local_src') with brief explanations in Chinese, adding meaning beyond the schema's generic titles. For example, it clarifies 'local_src' as the local destination path. This adequately covers the parameters, though more detail (e.g., path formats) would be needed for a 5.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '下载远程服务器的文件或者目录,保存到指定目录下,如果是目录,则递归下载' (Download files or directories from a remote server to a specified local directory, recursively for directories). It specifies the verb (download), resource (files/directories), and scope (recursive for directories). However, it doesn't explicitly differentiate from sibling tools like 'upload_file' or 'list_directory', which would require a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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 doesn't mention sibling tools like 'upload_file' (for uploading), 'list_directory' (for browsing), or 'execute' (for running commands). There's no context about prerequisites (e.g., server configuration via 'add_server_config') or exclusions, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It states what the tool does (execute remote commands) but doesn't disclose critical behavioral traits: whether this requires authentication, what permissions are needed, whether commands run with elevated privileges, what happens on execution failure, or any rate limits. The description is functionally accurate but lacks necessary operational context for a potentially dangerous 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/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise with a clear purpose statement followed by parameter explanations. Each sentence adds value: the first establishes the core function, the second explains server_name with a useful tip, and the third defines command. No wasted words, though the structure could be slightly improved with bullet points or clearer formatting.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given this is a potentially dangerous execution tool with no annotations, the description is moderately complete. It explains the basic function and parameters adequately, and the existence of an output schema means return values don't need description. However, for a tool that executes arbitrary commands on remote servers, it should include more safety warnings, permission requirements, and execution context to be fully complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description adds significant value by explaining both parameters: server_name (including the 'default' special case) and command (what to execute). This compensates well for the schema's lack of descriptions. However, it doesn't provide format details like command syntax restrictions or server_name validation rules that would be helpful for safe usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose as '执行远程命令' (execute remote command), which is a specific verb+resource combination. It distinguishes from siblings like list_servers or upload_file by focusing on command execution rather than configuration or file operations. However, it doesn't explicitly differentiate from potential similar tools like test_connection that might also involve server interaction.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal usage guidance, only mentioning that 'default' can be used if there's only one server configuration. It doesn't explain when to use this tool versus alternatives like test_connection for server verification, or provide context about prerequisites, security considerations, or typical use cases for remote command execution.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
- Behavior2/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description only states what the tool does ('list all configured servers') but provides no information about permissions needed, rate limits, whether the listing is paginated, what format the output takes, or any other behavioral characteristics. This leaves significant gaps for an agent trying to use this tool effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Chinese that directly states the tool's purpose with zero wasted words. It's appropriately front-loaded with the core functionality and doesn't include any unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness3/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that this is a simple listing tool with 0 parameters and an output schema exists (which should document return values), the description is minimally adequate. However, with no annotations and no behavioral context in the description, there are significant gaps in understanding how this tool behaves in practice. The existence of an output schema helps, but doesn't compensate for the lack of operational guidance.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters4/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100% (though with no parameters, this is trivially true). The description doesn't need to explain any parameters, and with no parameters to document, it appropriately focuses on the tool's purpose. A baseline of 4 is appropriate for zero-parameter tools.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose4/5Does the description clearly state what the tool does and how it differs from similar tools?
The description '列出所有配置的服务器' (List all configured servers) clearly states the verb ('list') and resource ('configured servers'), making the purpose immediately understandable. It doesn't specifically differentiate from siblings like 'list_directory' or 'test_connection', but the resource focus is clear enough for basic understanding.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines2/5Does 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. With siblings like 'list_directory' (which might list files rather than servers) and 'add_server_config' (which modifies servers), there's no indication of when this listing operation is appropriate versus those other tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
GitHub Badge
Glama performs regular codebase and documentation scans to:
- Confirm that the MCP server is working as expected.
- Confirm that there are no obvious security issues.
- Evaluate tool definition quality.
Our badge communicates server capabilities, safety, and installation instructions.
Card Badge
Copy to your README.md:
Score Badge
Copy to your README.md:
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/nwnusun-cool/mcp-server-ssh-tools'
If you have feedback or need assistance with the MCP directory API, please join our Discord server