mcp-ssh
Server Quality Checklist
Latest release: v0.1.0
- Disambiguation5/5
Each tool has a clearly distinct purpose with no overlap: ssh_connect establishes sessions, ssh_disconnect terminates them, ssh_exec runs commands, and ssh_list_sessions enumerates active sessions. The descriptions reinforce these boundaries, making misselection unlikely.
Naming Consistency5/5All tool names follow a consistent 'ssh_verb' pattern with snake_case, using clear action verbs like connect, disconnect, exec, and list_sessions. This predictability aids agent understanding and tool selection.
Tool Count5/5With 4 tools, the server is well-scoped for SSH management, covering core operations: establishing, managing, using, and monitoring sessions. Each tool earns its place without bloat or thinness for the domain.
Completeness5/5The tool set provides complete lifecycle coverage for SSH sessions: connect, disconnect, execute commands, and list sessions. There are no obvious gaps, as all essential operations for remote command execution and session management are included.
Average 2.7/5 across 4 of 4 tools scored. Lowest: 1.8/5.
See the Tool Scores section below for per-tool breakdowns.
- No community issues 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
This repository is licensed under MIT License.
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
- Behavior1/5
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states the action 'disconnect' without explaining what happens (e.g., whether the session is terminated immediately, if data is lost, if it requires specific permissions, or what the response looks like). 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 a single, efficient phrase in Russian, which is appropriately concise. However, it's under-specified rather than optimally structured—it lacks front-loaded critical details, but it doesn't waste words on irrelevant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness1/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a disconnection tool (which may involve session termination and potential side effects), no annotations, no output schema, and incomplete parameter documentation, the description is completely inadequate. It doesn't cover behavioral aspects, usage context, or parameter meaning, leaving the agent with insufficient information to use the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters1/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter (sessionId) with 0% description coverage, meaning the schema provides no details about this parameter. The description adds no information about what sessionId is, how to obtain it, or its format, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose2/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Отключение SSH сессии' (Disconnect SSH session) restates the tool name 'ssh_disconnect' in Russian, making it essentially tautological. It doesn't specify what resources are affected or how the disconnection works, though it does include the basic verb 'disconnect' and resource 'SSH session'.
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?
No guidance is provided on when to use this tool versus alternatives. Given sibling tools like ssh_connect, ssh_exec, and ssh_list_sessions, the description doesn't explain when disconnection is appropriate (e.g., after execution, to free resources) or differentiate it from other session management tools.
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 the full burden of behavioral disclosure. It states the tool connects and creates a session, implying a stateful operation, but doesn't describe what happens on failure, whether it requires authentication, if it's idempotent, or what the session entails. For a tool that likely involves network operations and state management, 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 a single, concise sentence in Russian that directly states the tool's function without unnecessary words. It's appropriately sized for a basic tool, though it could be more front-loaded with key details. There's no wasted verbiage, earning it a high score for efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (SSH connection with state management), lack of annotations, no output schema, and poor parameter documentation, the description is incomplete. It doesn't cover error handling, session lifecycle, authentication requirements, or return values, which are critical for an agent to use this tool effectively in a real-world context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/5Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter (connectTimeoutMs) with 0% description coverage, meaning the schema provides no semantic information. The description doesn't mention any parameters, failing to compensate for this gap. It doesn't explain what connectTimeoutMs does, its units (milliseconds), or typical values, leaving the parameter's purpose unclear.
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: 'Подключение по SSH и создание сессии' (SSH connection and session creation). It specifies the verb ('подключение' - connection) and resource ('сессии' - session), making the intent unambiguous. However, it doesn't explicitly differentiate from sibling tools like ssh_disconnect or ssh_list_sessions, which prevents a perfect score.
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 credentials), when not to use it (e.g., if already connected), or how it relates to siblings like ssh_exec (which might require an active session). This leaves the agent without contextual usage instructions.
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 action (listing active SSH sessions) but doesn't describe what 'active' means, how sessions are formatted in output, whether this requires specific permissions, or if it's a read-only operation. 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient phrase ('Список активных SSH сессий') that directly states the tool's purpose without unnecessary words. It's front-loaded and wastes no space, making it highly concise and well-structured for its simplicity.
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 low complexity (0 parameters, no output schema, no annotations), the description is minimally adequate. It states what the tool does but lacks details on behavioral aspects like output format or permissions. Without annotations or an output schema, the description should ideally provide more context, but it meets the basic requirement for a simple list operation.
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 input schema has 0 parameters with 100% coverage, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate since there are none. A baseline of 4 is given for tools with zero parameters, as the description doesn't need to compensate for schema gaps.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Purpose3/5Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Список активных SSH сессий' (List active SSH sessions) clearly states the verb (list) and resource (active SSH sessions), making the purpose understandable. However, it doesn't explicitly differentiate from sibling tools like ssh_connect, ssh_disconnect, or ssh_exec, which all operate on SSH sessions but perform different actions. The purpose is clear but lacks sibling differentiation.
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 active sessions), exclusions, or comparisons to sibling tools like ssh_exec for executing commands or ssh_disconnect for ending sessions. Without any usage context, the agent must infer when this tool is appropriate.
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 the full burden of behavioral disclosure. It mentions execution in sessions or one-time, but lacks critical details: whether this requires authentication, what happens on timeout (timeoutMs parameter), if commands are destructive, error handling, or output format. For a tool that executes commands via SSH (potentially with security implications), 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.
Conciseness5/5Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence in Russian that directly states the tool's function. It's front-loaded with the core purpose and includes key contextual details (sessions vs. one-time) without unnecessary elaboration. Every word earns its place, making it appropriately concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Completeness2/5Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of SSH command execution (4 parameters, no annotations, no output schema), the description is incomplete. It lacks details on authentication requirements, behavioral traits (e.g., is it safe/destructive?), parameter meanings (especially cwd and timeoutMs), and expected outputs. For a tool with potential security and operational impact, this leaves too many gaps for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Parameters2/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 for all 4 parameters. It only vaguely implies 'sessionId' (via 'существующей сессии' - existing session) and 'command' (via 'команды' - command), but doesn't explain 'cwd' (current working directory) or 'timeoutMs' at all. The description adds minimal meaning beyond the bare schema, failing to adequately document parameter purposes.
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 action ('Выполнение команды' - executing a command) and the resource ('по SSH' - via SSH), specifying it works in existing sessions or one-time. It distinguishes from siblings like ssh_connect (establish connection) and ssh_disconnect (end connection). However, it doesn't explicitly contrast with ssh_list_sessions (list sessions), which slightly reduces specificity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Usage Guidelines4/5Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context about when to use it: 'в существующей сессии или одноразово' (in an existing session or one-time). This implicitly suggests alternatives: use ssh_connect first for a session, then this tool for commands, or use this tool directly for one-off commands. However, it doesn't explicitly state when NOT to use it or name alternatives like ssh_list_sessions for checking sessions.
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/atlcomgit/mcp-ssh'
If you have feedback or need assistance with the MCP directory API, please join our Discord server