语音MCP服务器
远程MCP(模型上下文协议)服务器,使Claude能够通过Claude移动应用程序通过语音在您的机器上执行命令。
🎤 元时刻
此存储库是使用它包含的MCP连接器创建和提交的。
最初的提交是由Claude通过Claude iOS应用程序进行的,使用语音命令通过此MCP服务器与开发VM进行交互。然后,Claude Code管理工具由Claude设计,由Claude Code实现,并由Claude通过同一服务器进行测试。这是一种递归。
这是什么?
此服务器通过OAuth 2.1身份验证实现了MCP Streamable HTTP传输,允许Claude.ai(包括移动应用程序)安全地连接到您的计算机并执行命令。
特性
- OAuth 2.1身份验证 -基于PIN的安全授权流程
- MCP流式HTTP -现代基于HTTP的MCP传输
- Shell命令执行 -在主机上运行任何命令
- Tmux集成 -向tmux会话发送密钥并捕获其输出
- Claude代码管理 -启动、监视和控制Claude Code会话
- CORS支持 -适用于Claude.ai网络和移动应用程序
提供的工具
壳牌和Tmux工具
| 工具 | 说明 |
|---|---|
execute_command | 运行shell命令并获取输出 |
tmux_send | 向tmux会话发送按键 |
tmux_capture | 捕获当前tmux窗格输出 |
Claude代码管理工具
| 工具 | 说明 |
|---|---|
start_claude_code_task | 使用提示和工作目录启动Claude Code任务 |
get_claude_code_status | 检查任务进度、运行时间和上次输出 |
get_claude_code_output | 从任务中获取完整输出 |
send_to_claude_code | 向正在运行的会话发送后续消息 |
list_claude_code_sessions | 列出所有任务(正在运行和已完成) |
stop_claude_code_task | 停止正在运行的任务 |
设置
先决条件
- Node.js 18+
- 可公开访问的URL(或类似隧道的ngrok/Cloudflare)
- Claude Code CLI(用于Claude Code管理工具)
安装
npm install
npm run build跑步
# Set your PIN (required for auth)
export MCP_PIN=your-secret-pin
# Set your public URL
export PUBLIC_URL=https://your-domain.com
# Start the server
npm startexe.dev部署
如果在exe.dev VM上运行,则需要配置代理以公开正确的端口:
# From your local machine (not the VM), set the public port
ssh exe.dev share port 3000
ssh exe.dev share set-public 重要提示: exe.dev只允许 一次一个公共港口。如果您还运行其他服务(如开发服务器),则需要选择要公开的服务,或者在默认端口上运行MCP服务器。
来自Claude的连接
- 转到Claude.ai设置→ 连接器
- 添加新的MCP连接器
- 输入您的服务器URL(例如。,
https://your-domain.com) - 通过输入您的PIN完成OAuth流程
- 开始与克劳德交谈,并使用语音命令!
建筑
┌─────────────────┐ ┌───────────────────┐ ┌─────────────┐
│ Claude Mobile │────▶│ Voice MCP Server │────▶│ Your VM │
│ (Voice Input) │◀────│ (OAuth + MCP) │◀────│ (Commands) │
└─────────────────┘ └───────────────────┘ └─────────────┘
│
▼
┌───────────────┐
│ Claude Code │
│ (Agentic) │
└───────────────┘示例工作流程
You (voice): "Create a new reverb effect for my guitar pedal"
Claude:
1. start_claude_code_task({
prompt: "Create a reverb effect...",
workingDirectory: "/home/user/effects"
})
→ Returns: { taskId: "task-123", status: "running" }
2. get_claude_code_status({ taskId: "task-123" })
→ Returns: { status: "running", runtimeSeconds: 15, lastOutput: "..." }
3. get_claude_code_output({ taskId: "task-123" })
→ Returns: { status: "completed", output: "Created reverb.sc..." }
You: "Nice!"端点
| 端点 | 描述 |
|---|---|
/.well-known/oauth-authorization-server | OAuth 2.1元数据 |
/.well-known/oauth-protected-resource | 受保护的资源元数据 |
/oauth/register | 动态客户端注册 |
/oauth/authorize | 授权端点(PIN输入) |
/oauth/token | 令牌端点 |
/mcp | MCP JSON-RPC端点 |
/health | 健康检查 |
环境变量
| 变量 | 描述 | 默认值 |
|---|---|---|
PORT | 服务器端口 | 3000 |
PUBLIC_URL | 公共基础URL | 自动检测到 |
MCP_PIN | 授权PIN | changeme |
安全说明
- 始终设定一个强大的
MCP_PIN生产中 - 在生产环境中使用HTTPS(通过反向代理或隧道)
- 代币在24小时后过期
- Claude代码运行
--dangerously-skip-permissions(专为VM环境设计) - 考虑敏感环境的网络级限制
许可证
麻省理工学院
______________________________________________________________________
*专为 洛克医生 -多平台、SuperCollider驱动的音频/视觉吉他效果踏板。*
