Skip to main content
Glama

CLI MCP 服务器


安全的模型上下文协议 (MCP) 服务器实现,用于执行具有全面安全功能的受控命令行操作。

执照Python 版本MCP 协议 铁匠徽章 Python 测试


目录

  1. 概述

  2. 特征

  3. 配置

  4. 可用工具

  5. 与 Claude Desktop 一起使用

  6. 安全功能

  7. 错误处理

  8. 发展

  9. 执照


概述

此 MCP 服务器支持安全的命令行执行,并具备强大的安全措施,包括命令白名单、路径验证和执行控制。非常适合在保证安全性的同时,为 LLM 应用程序提供受控的 CLI 访问。

Related MCP server: MCP Terminal Server

特征

  • 🔒 通过严格验证来确保命令执行的安全

  • ⚙️ 可配置命令和标志白名单,带有“全部”选项

  • 🛡️ 路径遍历预防和验证

  • 🚫 Shell 运算符注入保护

  • ⏱️ 执行超时和长度限制

  • 📝 详细的错误报告

  • 🔄 异步操作支持

  • 🎯 工作目录限制和验证

配置

使用环境变量配置服务器:

多变的

描述

默认

ALLOWED_DIR

命令执行的基本目录(必需)

无(必填)

ALLOWED_COMMANDS

允许的命令的逗号分隔列表或“全部”

ls,cat,pwd

ALLOWED_FLAGS

允许标志的逗号分隔列表或“全部”

-l,-a,--help

MAX_COMMAND_LENGTH

最大命令字符串长度

1024

COMMAND_TIMEOUT

命令执行超时(秒)

30

ALLOW_SHELL_OPERATORS

允许 shell 运算符(&&、

注意:将ALLOWED_COMMANDSALLOWED_FLAGS设置为“all”将分别允许任何命令或标志。

安装

要通过Smithery自动为 Claude Desktop 安装 CLI MCP 服务器:

npx @smithery/cli install cli-mcp-server --client claude

可用工具

运行命令

在允许的目录内执行白名单中的 CLI 命令。

输入模式:

{ "command": { "type": "string", "description": "Single command to execute (e.g., 'ls -l' or 'cat file.txt')" } }

安全说明:

  • Shell 运算符(&&、|、>、>>)默认不受支持,但可以通过ALLOW_SHELL_OPERATORS=true启用

  • 除非 ALLOWED_COMMANDS='all',否则命令必须列入白名单

  • 除非 ALLOWED_FLAGS='all',否则必须将标志列入白名单

  • 所有路径均经过验证,位于 ALLOWED_DIR 范围内

显示安全规则

显示当前的安全配置和限制,包括:

  • 工作目录

  • 允许的命令

  • 允许的标志

  • 安全限制(最大命令长度和超时)

与 Claude Desktop 一起使用

添加到您的~/Library/Application\ Support/Claude/claude_desktop_config.json

开发/未发布的服务器配置

{ "mcpServers": { "cli-mcp-server": { "command": "uv", "args": [ "--directory", "<path/to/the/repo>/cli-mcp-server", "run", "cli-mcp-server" ], "env": { "ALLOWED_DIR": "</your/desired/dir>", "ALLOWED_COMMANDS": "ls,cat,pwd,echo", "ALLOWED_FLAGS": "-l,-a,--help,--version", "MAX_COMMAND_LENGTH": "1024", "COMMAND_TIMEOUT": "30", "ALLOW_SHELL_OPERATORS": "false" } } } }

已发布的服务器配置

{ "mcpServers": { "cli-mcp-server": { "command": "uvx", "args": [ "cli-mcp-server" ], "env": { "ALLOWED_DIR": "</your/desired/dir>", "ALLOWED_COMMANDS": "ls,cat,pwd,echo", "ALLOWED_FLAGS": "-l,-a,--help,--version", "MAX_COMMAND_LENGTH": "1024", "COMMAND_TIMEOUT": "30", "ALLOW_SHELL_OPERATORS": "false" } } } }

如果它不起作用或不显示在 UI 中,请通过uv clean清除缓存。

安全功能

  • ✅ 使用“全部”选项执行白名单命令

  • ✅ 使用“全部”选项标记验证

  • ✅ 路径遍历预防和规范化

  • ✅ Shell 操作员阻止(通过ALLOW_SHELL_OPERATORS=true选择加入支持)

  • ✅ 命令长度限制

  • ✅ 执行超时

  • ✅ 工作目录限制

  • ✅ 符号链接解析和验证

错误处理

服务器提供以下详细的错误消息:

  • 安全违规(CommandSecurityError)

  • 命令超时(CommandTimeoutError)

  • 无效的命令格式

  • 路径安全违规

  • 执行失败(CommandExecutionError)

  • 常规命令错误(CommandError)

发展

先决条件

  • Python 3.10+

  • MCP 协议库

构建和发布

准备分发包:

  1. 同步依赖项并更新锁文件:

    uv sync
  2. 构建软件包分发版:

    uv build

    这将在dist/目录中创建源和轮子分布。

  3. 发布到 PyPI:

    uv publish --token {{YOUR_PYPI_API_TOKEN}}

调试

由于 MCP 服务器通过 stdio 运行,调试起来可能比较困难。为了获得最佳调试体验,我们强烈建议使用MCP Inspector

您可以使用以下命令通过npm启动 MCP Inspector:

npx @modelcontextprotocol/inspector uv --directory {{your source code local directory}}/cli-mcp-server run cli-mcp-server

启动后,检查器将显示一个 URL,您可以在浏览器中访问该 URL 以开始调试。

执照

该项目根据 MIT 许可证获得许可 - 有关详细信息,请参阅LICENSE文件。


如需更多信息或支持,请在项目存储库上打开一个问题。

One-click Deploy
A
security – no known vulnerabilities
A
license - permissive license
A
quality - confirmed to work

Latest Blog Posts

MCP directory API

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

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

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