Token导航 LogoToken导航TokenDH.com
P5 MCP Run logo
开发工具stdio官方级别未说明来源级核验

P5 MCP Run

MCP Server

MCP-Run是一个通过bash执行Shell命令并通过过滤器优化输出的工具,适用于开发调试和LLM交互场景。

工具数

1

提示词数

0

GitHub Stars

3

资源数

0
开发工具DockerClaudeClaude

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

Getty

提供方

Getty

最后核验

2026/5/17 20:23

运行时

Docker

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

docker run --rm \

详细介绍

MCP运行

stdio MCP服务器(mcp-run-bash)这暴露了a run 工具:它执行 shell命令通过 bash -c 并返回退出代码、stdout和stderr-- 可选择通过30多个特定于命令的过滤器(ls, git, make, cargo, cpanm, kubectl, terraform,…)所以法学硕士看到了本质 而不是900行噪声。

将其插入克劳德桌面, .mcp.json或任何MCP客户端。

作为一个 奖金,相同的压缩管道作为独立的克劳德运输 代码 PreToolUse 钩子(mcp-run-compress)过滤克劳德的输出 代码的内置Bash工具。钩子可以通过Docker完全独立使用-- 主机上不需要Perl。

安装(Perl)

cpanm MCP::Run

给你 mcp-run-bash (MCP服务器)和 mcp-run-compress (钩子

  • 安装程序)。

用作MCP服务器(MCP运行bash)

use MCP::Run::Bash;

my $server = MCP::Run::Bash->new(
    allowed_commands  => ['ls', 'cat', 'grep', 'find'],
    working_directory => '/var/data',
    timeout           => 60,
);
$server->to_stdio;

或者直接运行二进制文件——它从环境变量中读取配置 通过stdio与MCP通话:

mcp-run-bash

属性: allowed_commands (白名单,默认:全部), working_directory (默认值:cwd), timeout (默认:30s), compress (默认设置:关闭 模块,on in bin/mcp-run-bash), tool_name (默认值: run), tool_description.

工具输入模式:

{
  "command": "ls -la",
  "working_directory": "/tmp",
  "timeout": 10,
  "compress": false
}

compress 启用后,原始命令将输入筛选器 管道命令特定规则(例如。 git status, make, kubectl) 比赛。看 MCP::Run::Compress::Filters 对于预设目录。

额外奖励:Claude代码的PreToolUse钩子(mcp-run-compress)

相同的压缩管道,但安装为Claude Code挂钩,因此 过滤内置的输出 Bash 工具。

已安装Perl

cpanm MCP::Run
mcp-run-compress --install-claude

没有Perl,通过Docker

docker run --rm \
    -v "$HOME:$HOME" -e HOME="$HOME" \
    raudssus/mcp-run-compress --install-claude

补丁 ~/.claude/settings.json 并将旁路技能放入 ~/.claude/skills/。主机只需要 bash, mktemp, base64, docker.

在任何命令前加上前缀 no-compress 绕过过滤器进行一次通话。

Docker安装是如何工作的

钩子需要来自两个不同世界的两样东西:

  • 运行真正的Bash命令 (git status, dzil test,…)与

主机的cwd、env和二进制文件。

  • 过滤输出 --纯文本处理,无需主机访问。

所以钩子把它们分开了。重写的命令运行原始命令 主机上的命令,将stdout/stderr捕获到临时文件中,然后 将它们装入压缩它们的容器中:

{ __o=$(mktemp) && __e=$(mktemp) || exit 1
  trap 'rm -f "$__o" "$__e"' EXIT
  bash -c "$(printf %s '' | base64 -d)" >"$__o" 2>"$__e"   # host
  __ec=$?
  docker run --rm -v "$__o:/in/stdout:ro" -v "$__e:/in/stderr:ro" \
       raudssus/mcp-run-compress:
 \
       --filter-files --cmd-b64 '' /in/stdout /in/stderr   # filter
  exit $__ec
}

主机bash在主机上运行。Docker只运行压缩。没有chroot, 没有共享工具链,主机上没有Perl。

写入哪种安装模式

bin/mcp-run-compress 读取 MCP_RUN_COMPRESS_INSTALL_MODE:

  • 未设置/ native → 挂钩是 mcp-run-compress --hook,重写为

mcp-run-compress --b64 (正在处理中)。

  • docker → 挂钩是 docker run … --hook,重写到主机端

管道穿过上面的代码段。

Docker镜像被烘焙 ENV MCP_RUN_COMPRESS_INSTALL_MODE=docker,所以 任何 --install-claude 跑 *里面* 容器写入Docker模式 自动挂钩。本地人 cpanm 在主机上安装会留下var 未设置。无检测启发式;图像会标记自己。

图像也会烘烤 MCP_RUN_COMPRESS_IMAGE=raudssus/mcp-run-compress:, 因此,钩子被固定在安装它的确切版本上。升级 明确: docker pull … && … --install-claude 再一次。

环境变量

Var目的
MCP_RUN_ALLOWED_COMMANDS以逗号分隔的白名单 mcp-run-bash
MCP_RUN_WORKING_DIRECTORY默认cwd mcp-run-bash
MCP_RUN_TIMEOUT的默认超时时间(秒) mcp-run-bash
MCP_RUN_COMPRESS0 禁用压缩 mcp-run-bash
MCP_RUN_TOOL_NAME注册的MCP工具名称(默认 run)
MCP_RUN_COMPRESS_INSTALL_MODEnative (默认)或 docker.烤到 docker 在图像中
MCP_RUN_COMPRESS_IMAGEdocker模式挂钩的图像参考。固定到 : 在图像中
MCP_RUN_COMPRESS_NO_CO_AUTHORED设置为任何值以禁用“共同作者”替换
CO_AUTHORED_BYgit commits中Co-Authored By的替换值
ANTHROPIC_MODEL如果未设置CO_AUTHORED_BY,则回退

通过替换git提交共同编写

mcp-run-compress 检测a git commit 命令,它可以自动添加 或更换 Co-Authored-By 提交消息中的行。这在以下情况下很有用 使用具有不同AI模型的Claude Code来跟踪使用了哪个模型。

它是如何工作的:

  • 如果 CO_AUTHORED_BYANTHROPIC_MODEL 已设置并提交消息

已包含 Co-Authored-By 行,它将被替换为值 该env变种。

  • 如果没有 Co-Authored-By 如果行存在,它将被附加到提交消息中。
  • 要暂时禁用此功能,请设置 MCP_RUN_COMPRESS_NO_CO_AUTHORED=1.

例子:

# Set the model identifier
export CO_AUTHORED_BY="MiniMax-M2.7"

# git commit will now automatically include:
# Co-Authored-By: MiniMax-M2.7

# To temporarily disable:
MCP_RUN_COMPRESS_NO_CO_AUTHORED=1 git commit -m "WIP"

在本地构建Docker镜像

dzil build
VERSION=$(perl -Ilib -MMCP::Run -E 'say $MCP::Run::VERSION')
docker build \
  --build-arg MCP_RUN_VERSION=$VERSION \
  --target runtime \
  -t raudssus/mcp-run-compress:$VERSION \
  -t raudssus/mcp-run-compress:latest \
  MCP-Run-$VERSION

发布(维护者)

dzil release 上传到CPAN,然后 maint/release-after.pl 创建 匹配GitHub版本, docker builds、 以及 docker push都是 :VERSION:latest Docker Hub。

dzil release
# extra build flags:
MCP_RUN_DOCKER_BUILD_ARGS='--platform linux/amd64,linux/arm64' dzil release

需求 docker logingh auth login.

许可证

版权所有(c)2026托斯滕·劳德苏斯。与Perl 5本身相同。

目录标签

目录标签

开发工具DockerClaudePerl本地部署Shell命令执行输出过滤LLM交互

支持客户端

Claude

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

session

运行时(runtime,运行环境)

Docker

工具数量(toolCount,工具数)

1

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdiosession部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP