Token导航 LogoToken导航TokenDH.com
rr MCP logo
AI代理stdio官方级别未说明来源级核验

rr MCP

MCP Server

rr-mcp是一个用于协调多进程rr调试会话的模型上下文协议服务器,提供48种专用调试工具、动态MCP资源和并发回放会话等功能。

工具数

48

提示词数

0

GitHub Stars

1

资源数

0
PythonClaudeAI代理Claude

安装说明

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

作者 / 组织

jnjaeschke

提供方

jnjaeschke

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

uv run pytest -n auto

详细介绍

rr-mcp

用于编排多进程的MCP(模型上下文协议)服务器 rr 调试会话。

概述

rr-mcp使AI代理(如Claude)能够使用rr的记录和回放功能调试多进程应用程序。它提供:

  • 48个专业调试工具 具有丰富的描述和使用背景
  • 动态MCP资源 暴露实时会话状态(rr://sessions/{id})
  • 并发重播会话 用于同时调试不同进程
  • 完全反向执行 --在两个方向上前进、继续和完成
  • 多流程支持 --调试执行进程(pid)或者没有执行子系统的分叉(fork_pid)
  • 条件断点和临时断点、观察点和捕捉点(投掷/捕捉/系统调用/信号)

对rr调试不熟悉?RR_DEBUGING_GUIDE.md 了解概念、工作流程和最佳实践。

需求

  • Linux(rr仅在Linux上运行)
  • Python 3.11+
  • rr 已安装并位于PATH中
  • 要调试的rr记录

安装

克劳德代码

claude mcp add rr-mcp -- uvx rr-mcp

其他MCP客户端

任何支持stdio服务器的MCP客户端都可以运行 uvx rr-mcp (或 pipx run rr-mcp).

从源代码安装

为了发展 (建议-更改后不需要重新安装):

git clone https://github.com/jnjaeschke/rr-mcp && cd rr-mcp
uv sync  # Install dependencies

# Configure Claude Code to run from source
claude mcp add rr-mcp -- uv run --directory /absolute/path/to/rr-mcp rr-mcp

用于生产用途:

git clone https://github.com/jnjaeschke/rr-mcp && cd rr-mcp
uv tool install .

# Configure Claude Code
claude mcp add rr-mcp -- rr-mcp

对于其他MCP客户端,请使用相应的命令(uv run ... 发展或 rr-mcp 用于生产)。

用法

安装后,当您启动MCP客户端时,服务器会自动加载。通过询问以下问题来验证它是否正常工作:

“列出可用的rr跟踪”

克劳德将使用 traces_list 在您的 _RR_TRACE_DIR (默认为 ~/.local/share/rr).

MCP资源

  • rr://guide --调试指南,包括工作流程、工具选择建议和常见陷阱
  • rr://traces --可用录制的动态列表
  • rr://sessions/{id} --当前会话状态(位置、地点)
  • rr://sessions/{id}/backtrace --会话的实时通话堆栈

工具

48个调试工具按类别组织。每个工具都包含丰富的描述,包括使用上下文、参数文档、返回值格式规范和工作流程指导。

跟踪管理(3个工具)

工具说明
traces_list列出系统上所有可用的rr记录
trace_info获取有关跟踪的元数据(创建时间、二进制文件等)
trace_processes在跟踪中列出带有PID和exec信息的进程

会话生命周期(3个工具)

工具说明
session_create为特定进程创建重播会话。支持 pid (执行流程)和 fork_pid (分叉时没有高管子女)
session_list列出所有活动的重播会话
session_close结束会话并释放其资源

执行控制(14个工具)

工具说明
continue / reverse_continue向前/向后运行,直到断点、信号或结束
step / reverse_step按源代码行逐步转换为函数
next / reverse_next按源代码行,按函数
finish / reverse_finish运行到当前功能的结束/开始
stepi / reverse_stepi根据机器指令,进入通话
nexti / reverse_nexti通过机器指令、电话进行逐步操作
run_to_event跳转到特定的rr事件编号
interrupt停止正在运行的程序

断点和观察点(7个工具)

工具说明
breakpoint_set按函数、文件、行或地址设置断点。支持条件(condition)以及临时断点。挂起的断点会自动为卸载的代码启用
breakpoint_delete按数字删除断点
breakpoint_list列出所有断点及其状态
breakpoint_enable / breakpoint_disable打开/关闭断点
watchpoint_set内存中断写入、读取或访问表达式
catchC的捕获点++ throw/catch、系统调用(可选按名称过滤)和信号

检查(14个工具)

工具说明
backtrace带可选功能的调用堆栈 full 模式(包括每帧的局部值)
print在当前上下文中计算表达式
locals当前帧中的局部变量
args跨堆栈帧的函数参数
frame_select切换到其他堆栈帧
registersCPU寄存器(gp_only 将过滤器标记为通用寄存器)
examine_memory格式化内存转储(如GDB x 命令)
when当前rr事件和滴答位置
threads_list / thread_select列出线程并在线程之间切换
checkpoint_create保存执行位置,以便稍后立即返回
checkpoint_restore跳转回已保存的检查点
checkpoint_delete / checkpoint_list管理检查点

信号处理和内存搜索(2个工具)

工具说明
handle_signal配置GDB如何处理信号(停止、通过、打印)
find_in_memory在内存范围内搜索字节模式

源代码和高级(5个工具)

工具说明
source_list用上下文线显示位置周围的源代码
source_path将文件名解析为其完整路径
source_files列出程序中的所有源文件
infoGDB info 子命令(proc映射、共享库、符号、类型、信号)
gdb_raw执行任意GDB命令(escape舱口)

所有工具都包含克劳德可见的详细描述。请参阅中的工具定义 src/rr_mcp/server.py.

示例会话

Agent: Let me list the available traces.
[calls traces_list]

Agent: I see firefox-0. Let me check what processes are in it.
[calls trace_processes with trace="firefox-0"]

Agent: The main process is PID 12345, and there's a content process
       PID 12350 that crashed with SIGSEGV. Let me debug the content
       process — it forked without exec, so I need fork_pid.
[calls session_create with trace="firefox-0", fork_pid=12350]

Agent: Let me see where we are and get the crash backtrace.
[calls backtrace with session_id="abc123"]

Agent: Frame #3 in HandleEvent dereferences a null mWidget pointer.
       Let me see the source code around that line.
[calls source_list with location="HandleEvent.cpp:142"]

Agent: I'll set a watchpoint on mWidget to find where it was set to null,
       then reverse-continue to catch the moment it happened.
[calls watchpoint_set with expression="this->mWidget", access_type="write"]
[calls reverse_continue]

Agent: The watchpoint triggered at event 84021 in Widget::Destroy().
       Let me check who called this.
[calls backtrace]

Agent: I'll save this position as a checkpoint so I can return here later,
       then continue investigating the caller.
[calls checkpoint_create]

发展

# Install dev dependencies
uv sync --all-extras

# Run tests (parallel execution with pytest-xdist)
uv run pytest -n auto

# Run tests (sequential)
uv run pytest

# Run linter
uv run ruff check src/ tests/

# Run type checker
uv run mypy src/

许可证

麻省理工学院

目录标签

目录标签

PythonClaudeAI代理多进程调试本地部署rr调试模型上下文协议动态资源并发回放

支持客户端

Claude

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

48

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP