MCP Command Proxy

MCP Command Proxy

site icon
2025.03.09 6
TypeScript命令行代理日志收集远程命令执行开发效率
MCP Command Proxy 是一个基于 MCP(Model Context Protocol)的服务,专门设计用于代理 CLI 命令的执行。它最初是为 Expo 开发设计的,但也可以适用于任何命令行应用程序。该服务允许用户通过 MCP 服务器运行命令,实时查看输出,收集日志,并支持交互式命令操作。
View on GitHub

Overview

基本能力

产品定位

MCP Command Proxy 是一个命令行代理服务,旨在通过 MCP 协议提供对 CLI 命令的远程执行和监控能力。

核心功能

  • 命令代理:通过 MCP 服务器运行任何 CLI 命令
  • 日志收集:捕获并存储运行进程的日志(可配置缓冲区大小)
  • 按键转发:将客户端的按键转发到运行中的进程
  • 透明体验:用户看到的命令输出与直接运行命令时完全相同
  • 交互式命令:支持与交互式 CLI 工具(如 Expo)一起工作
  • MCP 集成:使用 MCP SDK 构建,便于与 Claude 和其他支持 MCP 的 AI 助手集成

适用场景

  • Expo 开发:运行 expo start 并与之交互,同时收集日志
  • 构建过程:监控构建过程并分析日志
  • 长时间运行的服务:监控服务并保持最近的日志历史
  • 远程命令执行:从远程客户端执行和监控命令

工具列表

  1. getRecentLogs:返回缓冲区中最新的日志
  2. 参数:

    • limit(可选):要返回的日志数量(默认:100)
    • types(可选):要包含的日志类型(stdout, stderr, system)(默认:全部)
  3. sendKeyPress:发送按键到运行中的进程

  4. 参数:

    • key:要发送的键(例如 "enter", "a", "1", "space")
  5. getProcessStatus:返回进程的当前状态

  6. 参数:无

常见问题解答

  • 推荐使用 --port 8383 标志以避免与其他服务器冲突
  • 可以在 .cursorrules 文件中添加指令来指导使用 MCP 工具

使用教程

使用依赖

  • Node.js 18+
  • TypeScript
  • pnpm(推荐)或 npm

安装教程

# 安装依赖
pnpm install

# 构建项目
pnpm build

# 直接运行
pnpm start -- --prefix "MyServer" --command "expo start"

# 或全局安装
pnpm install -g
mcp-command-proxy --prefix "MyServer" --command "expo start"

调试方式

# 使用 CLI
mcp-command-proxy --prefix "ExpoServer" --command "expo start"

# 或以编程方式
import { createServer } from 'mcp-command-proxy';

const server = await createServer({
  prefix: 'ExpoServer',
  command: 'expo start',
  bufferSize: 500,
  port: 8080
});

// 稍后停止服务器
server.stop();

选项

  • --prefix, -p:服务器的名称/前缀(默认:"CommandProxy")
  • --command, -c:要运行的命令(必需)
  • --buffer-size, -b:内存中保留的日志行数(默认:300)
  • --port:HTTP 服务器的端口(默认:8080)
  • --help, -h:显示帮助

开发模式

# 克隆仓库
git clone https://github.com/hormold/mcp-command-proxy.git
cd mcp-command-proxy

# 安装依赖
pnpm install

# 构建项目
pnpm build

# 在开发模式下运行
pnpm dev

许可证

该项目遵循 MIT 开源许可条款,请参阅 MIT 了解完整条款。