Command-Line MCP Server
Supports .env file configuration for environment-specific settings of the MCP server
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., "@Command-Line MCP Serverlist all Python files in my current directory"
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.
Command-Line MCP Server
An MCP server that lets AI assistants run terminal commands safely. Commands are categorized (read/write/system), directories are whitelisted, and dangerous patterns are blocked automatically.
Quick Start
pip install cmd-line-mcp
# Or from source
git clone https://github.com/andresthor/cmd-line-mcp.git
cd cmd-line-mcp
pip install -e .Run the server:
cmd-line-mcp # default config
cmd-line-mcp --config config.json # custom configRelated MCP server: Terminal MCP Server
Claude Desktop Setup
Add to ~/Library/Application Support/Claude/claude_desktop_config.json:
{
"mcpServers": {
"cmd-line": {
"command": "/path/to/venv/bin/cmd-line-mcp",
"args": ["--config", "/path/to/config.json"],
"env": {
"CMD_LINE_MCP_SECURITY_REQUIRE_SESSION_ID": "false",
"CMD_LINE_MCP_SECURITY_AUTO_APPROVE_DIRECTORIES_IN_DESKTOP_MODE": "true"
}
}
}
}Restart Claude Desktop after saving.
Setrequire_session_id: false to prevent approval loops in Claude Desktop.
How It Works
Commands go through a validation pipeline before execution:
Pattern matching — blocks dangerous constructs (
system(), shell escapes, etc.)Command classification — each command must be in the read, write, system, or blocked list
Directory check — target directory must be whitelisted or session-approved
Approval check — write/system commands require session approval
Pipes, semicolons, and & are supported — each segment is validated independently.
What's Allowed
Category | Commands | Approval |
Read |
| Auto |
Write |
| Required |
System |
| Required |
Blocked |
| Always denied |
What's Blocked
Shells, scripting interpreters, and known command-execution vectors are blocked — including indirect execution through awk system(), sed /e, find -exec, tar --checkpoint-action, env, and xargs. See docs/SECURITY.md for the full list.
Configuration
The server works out of the box with sensible defaults. Customize via JSON config, environment variables, or .env files:
# Whitelist directories
export CMD_LINE_MCP_SECURITY_WHITELISTED_DIRECTORIES="/projects,/var/data"
# Add commands (merges with defaults)
export CMD_LINE_MCP_COMMANDS_READ="jq,rg"See docs/CONFIGURATION.md for full configuration reference, MCP tool documentation, and directory security details.
License
MIT
Available Tools
8 toolsapprove_command_typeB
Approve a command type for the current session.
Args: command_type: The command type to approve (read, write, system) session_id: The session ID remember: Whether to remember this approval for the session
Returns: A dictionary with approval status
| Name | Required | Description | Default |
|---|---|---|---|
| command_type | Yes | ||
| session_id | Yes | ||
| remember | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions that approval is 'for the current session' and includes a 'remember' parameter, hinting at session-scoped behavior. However, it lacks critical details: what happens if approval is denied, whether this affects security/permissions, if there are rate limits, or what the approval status dictionary contains. For a tool with potential security implications, 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?
The description is well-structured and concise. It starts with a clear purpose sentence, followed by bullet-like sections for Args and Returns. Every sentence adds value—no fluff or repetition. It's front-loaded with the core functionality.
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 3 parameters with 0% schema coverage and no annotations, the description partially compensates with parameter semantics and mentions a return dictionary. However, it lacks output details (the output schema exists but isn't described), behavioral context (e.g., error cases), and integration with siblings. For a tool in a command-approval system, this leaves gaps in understanding its role and effects.
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 0%, so the description must compensate. It adds meaningful semantics: command_type values (read, write, system), session_id context, and remember's purpose ('Whether to remember this approval for the session'). This clarifies beyond the bare schema, though it doesn't explain format constraints (e.g., session_id structure) or default behavior for 'remember'.
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: 'Approve a command type for the current session.' It specifies the verb ('approve') and resource ('command type'), and distinguishes it from siblings like execute_command or list_available_commands. However, it doesn't explicitly differentiate from approve_directory, which might handle directory-level approvals.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites (e.g., whether a session must be active), exclusions, or how it relates to siblings like execute_command (which might require prior approval). Usage is implied but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
approve_directoryC
Approve access to a directory for the current session.
Args: directory: The directory to approve access to session_id: The session ID remember: Whether to remember this approval for the session
Returns: A dictionary with approval status
| Name | Required | Description | Default |
|---|---|---|---|
| directory | Yes | ||
| session_id | Yes | ||
| remember | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but lacks critical behavioral details. It doesn't disclose whether this requires special permissions, if it's idempotent, what happens on failure, or any rate limits. The mention of 'remember this approval' hints at persistence but is insufficient for a mutation tool.
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 front-loaded with the core purpose, followed by structured parameter and return sections. It's efficient with minimal waste, though the parameter explanations could be more informative to earn a 5.
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 3 parameters with 0% schema coverage and no annotations, the description is moderately complete but lacks depth for a mutation tool. The output schema exists, so return values needn't be explained, but behavioral and usage gaps remain significant.
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 0%, so the description must compensate. It lists all three parameters with brief explanations, adding meaning beyond the bare schema. However, it doesn't detail format constraints (e.g., directory path syntax) or the implications of 'remember', keeping it at baseline adequacy.
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 ('Approve access to') and resource ('a directory'), making the purpose understandable. However, it doesn't differentiate from sibling tools like 'list_directories' or 'execute_command', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like 'list_directories' or 'execute_command'. It mentions 'for the current session' but doesn't explain prerequisites or exclusions, leaving usage context vague.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
execute_commandC
Execute a Unix/macOS terminal command.
Args: command: The command to execute session_id: Optional session ID for permission management
Returns: A dictionary with command output and status
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 executes commands and returns output with status, but lacks critical details like security implications (e.g., destructive commands), permission requirements, error handling, or rate limits. This is inadequate for a tool that could perform arbitrary system operations.
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 front-loaded with the core purpose, followed by structured Arg and Return sections. It's efficient with minimal waste, though the Arg/Return formatting could be more integrated. Every sentence adds value, but slight improvements in flow could achieve a perfect score.
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 high complexity (executing arbitrary commands), no annotations, and an output schema (which covers return values), the description is minimally adequate. It explains the basic operation and parameters but lacks safety warnings, sibling differentiation, and detailed behavioral context, making it incomplete for safe and effective use.
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 0%, so the description must compensate. It adds basic semantics for both parameters: 'command' as 'The command to execute' and 'session_id' as 'Optional session ID for permission management.' However, it doesn't provide examples, format details, or constraints beyond what's implied, leaving gaps in understanding.
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 as 'Execute a Unix/macOS terminal command,' which is a specific verb+resource combination. However, it doesn't explicitly distinguish this from sibling tools like 'execute_read_command' or 'list_available_commands,' which would be needed for a score of 5.
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 provides no guidance on when to use this tool versus alternatives like 'execute_read_command' or 'approve_command_type.' It mentions 'session_id' for 'permission management' but doesn't explain when this is required or optional, 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.
execute_read_commandB
Execute a read-only Unix/macOS terminal command (ls, cat, grep, etc.).
Args: command: The read-only command to execute session_id: Optional session ID for permission management
Returns: A dictionary with command output and status
| Name | Required | Description | Default |
|---|---|---|---|
| command | Yes | ||
| session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that commands are 'read-only' and mentions 'permission management' for session_id, but lacks details on safety (e.g., what commands are allowed, error handling, rate limits, or system impact). For a tool executing terminal commands with zero annotation coverage, this is insufficient to ensure safe and correct usage.
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 appropriately sized and front-loaded, starting with the core purpose followed by parameter explanations. Every sentence adds value, but the structure could be slightly improved by integrating parameter details more seamlessly rather than as separate 'Args' and 'Returns' sections.
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 complexity (executing terminal commands), no annotations, and an output schema exists (implied by 'Returns'), the description is reasonably complete. It covers purpose, parameters, and return value at a high level. However, it lacks depth on behavioral aspects like security or error handling, which could be critical for this type of 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 description coverage is 0%, so the description must compensate. It adds meaning by explaining 'command' as 'The read-only command to execute' and 'session_id' as 'Optional session ID for permission management', which clarifies their roles beyond the schema's basic types. However, it doesn't provide detailed syntax, constraints, or examples for parameters, leaving gaps in understanding.
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: 'Execute a read-only Unix/macOS terminal command (ls, cat, grep, etc.)'. It specifies the verb ('Execute'), resource ('read-only Unix/macOS terminal command'), and provides examples. However, it doesn't explicitly distinguish it from sibling tools like 'execute_command' (which may not be read-only), so it doesn't reach a perfect 5.
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 by specifying 'read-only' commands and examples like 'ls, cat, grep', but it doesn't explicitly state when to use this tool versus alternatives such as 'execute_command' or other siblings. There's no guidance on exclusions or prerequisites, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_command_helpB
Get detailed help about command capabilities and usage.
This tool provides comprehensive information about:
Supported commands in each category (read, write, system)
Blocked commands for security reasons
Command chaining capabilities (pipes, semicolons, ampersands)
Usage restrictions and examples
Returns: A dictionary with detailed information about command capabilities and usage
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses that the tool returns 'detailed information' in a dictionary format, which is helpful. However, it lacks behavioral details such as whether this is a read-only operation, if it requires authentication, or if there are rate limits, which are important for a tool in a command-execution context.
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 well-structured and front-loaded with the core purpose. It uses bullet points to efficiently list what information is provided, and the 'Returns:' section clarifies the output format. It could be slightly more concise by integrating the bullet points into a single sentence, but overall it's efficient with minimal waste.
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 complexity (providing detailed help), the description is fairly complete. It outlines the types of information returned (commands, blocked commands, chaining, restrictions) and notes the output is a dictionary. Since an output schema exists, it doesn't need to detail return values further. However, it could benefit from mentioning any prerequisites or limitations to be fully comprehensive.
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 tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so it appropriately focuses on output. Since there are no parameters to document, this meets the baseline expectation for such cases.
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: 'Get detailed help about command capabilities and usage.' It specifies the verb ('get detailed help') and resource ('command capabilities and usage'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from sibling tools like 'list_available_commands' or 'get_configuration', 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_available_commands' (which might list commands without detailed help) or 'get_configuration' (which might provide system settings), leaving the agent with no explicit context for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_configurationB
Get the current configuration settings.
Returns: The current configuration settings
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 that it 'Returns: The current configuration settings,' which is minimal. It doesn't cover aspects like whether this is a read-only operation, if it requires authentication, potential rate limits, or what happens on failure. For a tool with no annotations, this leaves significant gaps in understanding its behavior.
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 concise and front-loaded, with the main purpose stated first: 'Get the current configuration settings.' The second sentence clarifies the return value. There's no wasted text, and it's structured effectively for quick understanding, though it could be slightly more detailed without losing efficiency.
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 that there is an output schema (which handles return values), no parameters, and no annotations, the description is minimally complete. It states what the tool does and what it returns, but lacks context on usage, behavioral traits, or differentiation from siblings. For a simple retrieval tool, this is adequate but leaves clear gaps in guidance and transparency.
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 input schema has 0 parameters with 100% description coverage, meaning there are no parameters to document. The description doesn't need to add parameter semantics beyond what the schema provides. Since there are no parameters, it appropriately avoids unnecessary details, aligning with the baseline for zero parameters.
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: 'Get the current configuration settings.' It uses a specific verb ('Get') and identifies the resource ('configuration settings'), making the action clear. However, it doesn't differentiate this from sibling tools like 'list_directories' or 'list_available_commands,' which might also retrieve information, so it doesn't fully distinguish its scope.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, such as whether it's for system-wide settings or user-specific ones. With sibling tools like 'get_command_help' or 'list_available_commands' that also retrieve information, there's no indication of when this tool is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_available_commandsB
List all available commands by category.
Returns: A dictionary with commands grouped by category
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format ('A dictionary with commands grouped by category'), which adds value beyond the input schema. However, it lacks details on permissions, rate limits, or side effects. The description doesn't contradict annotations (none exist), but it's minimal for behavioral context.
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 front-loaded with the core purpose in the first sentence, followed by return details. It's efficient with two sentences and no wasted words. However, the structure could be slightly improved by integrating the return information more seamlessly, but it remains 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?
Given the tool's low complexity (0 parameters, no annotations, but with an output schema), the description is reasonably complete. It states the purpose and return format, and since an output schema exists, it doesn't need to detail return values further. However, it lacks context on when to use it versus siblings, leaving a minor gap in completeness.
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 tool has 0 parameters, and the input schema has 100% description coverage (though empty). The description doesn't need to add parameter semantics, so it appropriately omits them. This meets the baseline for zero parameters, as the schema fully handles the lack of inputs without requiring additional explanation.
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') and resource ('all available commands by category'), making the purpose unambiguous. However, it doesn't explicitly differentiate from sibling tools like 'get_command_help' or 'list_directories', which could also involve listing operations. The description is specific 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.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context, or exclusions, nor does it compare to siblings like 'list_directories' or 'get_command_help'. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_directoriesB
List all whitelisted and approved directories.
Args: session_id: Optional session ID to get session-specific approvals
Returns: A dictionary with globally whitelisted and session-approved directories
| Name | Required | Description | Default |
|---|---|---|---|
| session_id | No |
Output Schema
| Name | Required | Description |
|---|---|---|
No output parameters | ||
TDQS
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 lists directories and returns a dictionary, but doesn't cover critical aspects like whether it's read-only (implied by 'List' but not explicit), permissions required, rate limits, or error handling. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized, with a clear purpose statement followed by Args and Returns sections. Every sentence adds value: the first states the action, and the subsequent lines explain parameters and return values. It's front-loaded and efficient, with minimal waste.
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 low complexity (1 optional parameter) and the presence of an output schema (which handles return value documentation), the description is reasonably complete. It covers the purpose, parameter semantics, and return structure. However, it lacks behavioral details like safety or usage context, which holds it back from a perfect score.
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 description adds meaningful context for the single parameter 'session_id', explaining it's 'Optional session ID to get session-specific approvals.' This clarifies the parameter's purpose beyond the schema's basic title 'Session Id'. With schema description coverage at 0% and only one parameter, the description effectively compensates, providing good semantic value.
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: 'List all whitelisted and approved directories.' It specifies the verb ('List') and resource ('whitelisted and approved directories'), making the action clear. However, it doesn't explicitly differentiate this tool from sibling tools like 'list_available_commands' or 'get_configuration', which might also list things, so it doesn't reach the highest score.
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 provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_available_commands' or explain the context for listing directories (e.g., for execution permissions). There's no explicit when-to-use or when-not-to-use information, leaving usage unclear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes, such as approve_command_type vs. approve_directory, and execute_command vs. execute_read_command. However, get_command_help and list_available_commands could be confused as both provide information about commands, though their descriptions clarify that one is detailed help and the other is a categorized list.
All tool names follow a consistent verb_noun pattern with snake_case, such as approve_command_type, execute_command, and get_configuration. There are no deviations in naming conventions, making the set predictable and readable.
With 8 tools, the server is well-scoped for a command-line management system. Each tool serves a clear purpose, such as execution, approval, and information retrieval, without being overly sparse or bloated.
The tool set covers core aspects of command-line management, including command execution, approval workflows, and configuration. A minor gap is the lack of a tool to revoke approvals or manage sessions beyond listing, but agents can likely work around this with existing tools.
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
Operate Linux, macOS and Windows from your LLM. Every action runs through an auditable allowlist.
Let AI operate servers without SSH. Choose actions, approve risky changes, and audit every step.
Runtime permission, approval, and audit layer for AI agent tool execution.
Security gateway for AI agents: policy, approval, and audited execution, no secrets shared.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI assistants to securely execute shell commands on local machines through an SSH interface with session management, command execution, and sudo support.1
- FlicenseNot gradedqualityDmaintenanceEnables safe execution of terminal commands across different shells (bash, cmd, PowerShell) with configurable timeouts, working directories, and resource limits for command-line operations through AI assistants.
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with direct terminal access to execute commands, manage files, and run persistent REPL sessions. It features automated installation scripts that educate AI assistants on its capabilities for seamless integration.MIT
- AlicenseAqualityCmaintenanceEnables AI assistants to securely execute remote SSH commands, perform file transfers, and monitor system status through a standardized interface. It features robust security controls including command whitelisting, blacklisting, and credential isolation to prevent unauthorized operations.1029MIT
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/andresthor/cmd-line-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server