关于 MCP Bash
MCP Bash 是一个简单的 MCP 服务,允许 Claude Desktop 等支持 MCP 的客户端在本地机器上执行 Bash 命令。它返回 stdout 与 stderr,并可保持工作目录。README 明确指出该项目存在较高安全风险。
主要功能
- 01执行任意 Bash 命令
- 02返回 stdout 与 stderr
- 03通过 set_cwd 保持工作目录
- 04部署与扩展简单
适用场景
- 01让 Claude 运行测试并根据结果修复代码
- 02在本地命令行中执行客户端发起的命令
MCP 相关
该项目是 MCP 服务,向 MCP 客户端暴露 set_cwd 与 execute_bash 两个函数。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP Bash
一个用于执行 bash 命令的简单 Model-Context-Protocol(MCP)服务。此项目允许你通过 MCP 服务接口执行 bash 命令,并承担由此带来的所有潜在安全风险!撰写本文时,我在公开领域找不到类似项目,所以就自己写了一个。让 Claude Desktop 编写代码时,它非常有用(它可以运行测试、评估结果,并一次性修复发现的问题)。
描述
MCP Bash 提供了一种从客户端应用程序执行 bash 命令的简单方式。它在受控环境中封装命令执行,并返回所执行命令的 stdout 和 stderr。
主要功能:
- 执行任意 bash 命令
- 在多次命令执行期间设置并保持工作目录
- 通过 Model-Context-Protocol(MCP)提供简洁的接口
- 易于部署和扩展
安装
先决条件
- Python 3.10 或更高版本
- pip 或其他包管理器
设置
-
克隆代码仓库
git clone https://github.com/yourusername/mcp-bash.git cd mcp-bash -
创建并激活虚拟环境
python -m venv .venv source .venv/bin/activate # On Windows: .venv\Scripts\activate -
安装依赖
pip install -e .
使用方法
启动服务
python -m mcp.cli.server --module server
Claude Desktop 配置
要将其用于 Claude Desktop,请将以下内容添加到配置中(通常位于 /Users//Library/Application Support/Claude/claude_desktop_config.json,或者在 Claude Desktop 界面中查看“Settings -> Developer”):
{
"mcpServers": {
"Bash": {
"command": "/Users/<username>/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/path/to/server.py"
]
}
}
}
然后向 Claude 提问:“使用 Bash MCP 工具列出我当前目录中的文件”
使用 API
该服务提供两个主要函数:
set_cwd(path):设置 bash 命令的工作目录execute_bash(cmd):执行 bash 命令并返回 stdout/stderr
客户端代码示例
from mcp.client import MCPClient
async def main():
# Connect to the MCP server
client = MCPClient("http://localhost:8000")
# Set working directory
await client.set_cwd("/path/to/your/directory")
# Execute a command
stdout, stderr = await client.execute_bash("ls -la")
print(f"Command output: {stdout}")
if stderr:
print(f"Error output: {stderr}")
if __name__ == "__main__":
import asyncio
asyncio.run(main())
安全注意事项
此服务会直接执行 bash 命令,如果未进行适当限制,可能带来致命的安全风险。没有任何机制能阻止大模型运行 rm -rf / 之类的危险命令。个人使用时,其实用性或许大于风险,但部署时务必谨慎。
建议考虑:
- 在容器或受限环境中运行
- 添加命令验证或允许列表
- 通过适当的用户权限限制文件系统访问
许可证
此项目基于 MIT License 授权,详情请参阅 LICENSE 文件。
贡献
欢迎贡献!请随时提交 Pull Request。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。