使用说明
克劳德终端mcp
通过Claude Desktop用简单的英语控制您的终端。 在Claude中键入“创建一个名为project的文件夹”,就会发生。
这有什么作用
这是习俗 模型上下文协议(MCP) 连接Claude Desktop和本地终端的服务器。您可以自然地与Claude交谈,Claude会在您机器上的沙盒工作区内执行真正的shell命令。
没有切换标签。不记得命令。描述一下你想要什么。
You: "Show me all the Python files in this folder"
Claude: runs → ls *.py → returns the output back to you
演示
📹 演示GIF即将推出--[观看此空间]
建筑
┌─────────────────────┐ stdio transport ┌──────────────────────┐
│ │ ──────────────────────────► │ │
│ Claude Desktop │ │ MCP Server │
│ (LLM + UI) │ ◄────────────────────────── │ (main.py) │
│ │ tool response │ │
└─────────────────────┘ └──────────┬───────────┘
│
│ subprocess
▼
┌──────────────────────┐
│ workspace/ │
│ (sandboxed dir) │
└──────────────────────┘
流量:
- 您在Claude Desktop中键入自然语言指令
- 克劳德决定打电话给
run_commandMCP工具 - MCP服务器接收命令并通过以下方式执行
subprocess - 输出返回给Claude,Claude在聊天中显示它
特征
- 自然语言→ Shell 命令 通过克劳德的推理
- 工作区沙盒 --命令仅在定义的目录中运行,防止意外的系统更改
- 超时保护 --命令在30秒后被终止
- stdout+stderr捕获 --全部输出返回给Claude
- 最小代码库 --36行Python,易于扩展
快速开始
先决条件
1.克隆并安装
git clone https://github.com/dixitharsh-arch/claude-terminal-mcp.git
cd claude-terminal-mcp
pip install mcp
# or with uv:
uv pip install mcp
2.连接到克劳德桌面
打开您的Claude Desktop配置文件:
# macOS
~/Library/Application Support/Claude/claude_desktop_config.json
# Windows
%APPDATA%\Claude\claude_desktop_config.json
在里面添加这个 "mcpServers":
"terminal-server": {
"command": "/Users/YOUR_USERNAME/.local/bin/uv",
"args": [
"run",
"--with",
"mcp[cli]",
"mcp",
"run",
"/FULL/PATH/TO/main.py"
]
}
替换 YOUR_USERNAME 那么,这条路 重新启动克劳德桌面.
3.测试一下
打开克劳德桌面并尝试:
"Create a folder called test-project"
"List everything in this directory"
"Create a file called hello.txt with 'Hello World' inside"
"Where am I right now?"
交互示例
| 你说 | 命令已执行 |
|---|---|
| “创建一个名为project的文件夹” | mkdir project |
| “显示此处存在哪些文件” | ls |
| “创建一个名为notes.txt的文件” | touch notes.txt |
| “我现在在哪里?” | pwd |
| “只显示Python文件” | ls *.py |
项目结构
claude-terminal-mcp/
├── main.py # MCP server — all the logic (36 lines)
├── workspace/ # sandboxed execution directory
├── pyproject.toml # project config
└── README.md
核心代码
from mcp.server.fastmcp import FastMCP
import subprocess, os
mcp = FastMCP("terminal-server")
WORKSPACE = os.path.expanduser("~/Desktop/mcp_server/workspace")
@mcp.tool()
def run_command(command: str) -> str:
"""Run a shell command inside the sandboxed workspace."""
result = subprocess.run(
command, shell=True, cwd=WORKSPACE,
capture_output=True, text=True, timeout=30
)
return result.stdout + result.stderr
if __name__ == "__main__":
mcp.run(transport="stdio")
路线图
- []命令安全过滤器(阻止破坏性命令,如
rm -rf) - []文件读/写工具(
read_file,write_file) - []目录导航(
cd国家支持) - []长时间运行的命令的流式输出
- []跨平台支持(Windows
cmd+PowerShell) - []打包为可安装的Python模块(
pip install claude-terminal-mcp)
我为什么建造这个
MCP是一种新的开放协议,允许LLM以结构化的方式与本地工具通信。我构建这个模型是为了探索人工智能代理编排在实践中的实际情况——具体来说,LLM如何推理任务并将执行委托给后端系统。
结果是一个工作示例 LLM+工具使用+本地执行,用不到40行Python构建。
技术栈
Python · FastMCP · subprocess · uv · Claude Desktop
许可证
麻省理工学院——使用它,分叉它,建立在它之上。
Built by Harsh Dixit · LinkedIn
