远程中继
MCP(模型上下文协议)服务器,使Claude Code能够通过SSH与远程开发环境交互。
概述
RemoteRelay将Claude Code与您的远程服务器连接起来,允许您在远程主机上执行命令、读/写文件和导航目录——所有这些都可以通过Claude的自然语言界面完成。命令在持久的tmux会话中运行,维护跨操作的上下文。
特性
- 远程命令执行:在持久tmux会话中运行bash命令
- 文件操作:读取、写入和编辑远程主机上的文件
- 目录导航:更改跨命令保留状态的目录
- 文件搜索:通过glob模式查找文件,并使用grep搜索内容
- SSH连接池:通过SSH ControlMaster实现高效的连接重用
- 工作目录状态:在所有操作中维护远程CWD
安装
# Clone the repository
git clone
cd RemoteRelay
# Install dependencies
npm install
# Build the project
npm run build配置
1.配置MCP服务器
将RemoteRelay添加到Claude Code的MCP配置中:
claude mcp add remoterelay node /path/to/RemoteRelay/dist/index.js \
--env REMOTE_RELAY_HOST=your-remote-host \
--env REMOTE_RELAY_TMUX_SESSION=claude-relay2.SSH设置
确保您对配置了基于密钥的身份验证的远程主机具有SSH访问权限:
# Test SSH connection
ssh your-remote-host
# Recommended: Add to ~/.ssh/config for easier access
Host your-remote-host
HostName actual.hostname.com
User your-username
IdentityFile ~/.ssh/id_rsa3.重新启动克劳德代码
添加MCP服务器后,重新启动Claude Code以加载配置。
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
REMOTE_RELAY_HOST | 要连接的SSH主机名 | quarry |
REMOTE_RELAY_TMUX_SESSION | 用于执行命令的tmux会话名称 | claude-relay |
可用工具
RemoteRelay提供以下MCP工具:
| 工具 | 说明 |
|---|---|
remote_bash | 在远程主机上执行bash命令 |
remote_read | 使用可选偏移量/限制读取文件内容 |
remote_write | 将内容写入文件(覆盖现有内容) |
remote_edit | 使用字符串替换编辑文件 |
remote_glob | 查找与glob模式匹配的文件 |
remote_grep | 使用正则表达式模式搜索文件内容 |
remote_cd | 更改工作目录 |
remote_pwd | 显示当前工作目录 |
remote_ls | 列出目录内容 |
使用示例
配置后,通过Claude Code与远程环境交互:
User: Use remote_cd to navigate to ~/my-project
User: Run npm test on the remote host
User: Read the file src/main.js
User: Search for TODO comments in the codebase
User: Edit config.json to change the port from 3000 to 8080监控
连接到远程主机上的tmux会话以监视命令执行:
# On your remote host
tmux attach -t claude-relay发展
# Build TypeScript
npm run build
# Development mode with auto-reload
npm run dev
# Start the server directly
npm start建筑
- 单文件设计:所有逻辑
src/index.ts - SSH控制主机:连接池提高效率
- Tmux集成:命令执行的持久会话
- 有状态的操作:跨命令维护的工作目录
需求
- Node.js 16+
- TypeScript 5+
- SSH访问远程主机
- tmux安装在远程主机上
许可证
MIT许可证-请参阅 许可证.md 了解详情。
贡献
这个项目是为了使用Claude Code实现远程开发工作流程而创建的,也是我使用Claude Code实验的一部分,所以我不会接受任何贡献。
