tt-decomp Phase5 MCP 服务器
使用说明(Markdown格式):
-
项目简介 tt-decomp Phase5 MCP 服务器 是一个基于 Node.js 的 MCP 服务端实现,旨在为 LLM 客户端提供 RockStar Table Tennis 相关的反汇编/解编数据访问、工具执行能力,以及提示模板渲染等上下文服务。它通过 MCP Protocol 的 JSON-RPC 机制接收请求、返回响应,并通过标准传输(此实现使用标准输入/输出的 Stdio 通道进行通信)与客户端对话。
-
主要功能点
- MCP 协议核心能力
- 提供并注册多个工具(Tools),如获取函数重构骨架、读取/渲染伪代码、函数信息、类别上下文、查找调用者/被调用者、符号搜索、地址解析、项目信息等。
- 支持对资源、源码片段、符号表和 RTTI 信息的查询与操作,便于 LLM 进行上下文理解与 lifting 工作。
- 资源与工具管理
- 维护工具清单并对外暴露,接受 JSON-RPC 请求执行相应工具,返回文本或结构化内容。
- 提供用于写入/修改源码的“写源文件”类工具,支持创建、追加、插入、替换和删除等编辑操作。
- 服务器与传输
- 通过 MCP Server 框架提供 JSON-RPC 请求处理入口,内置 ListTools 与 CallTool 两种请求处理。
- 使用 StdioServerTransport 构建通信中枢,便于在命令行/脚本化环境中与 Claude 等 MCP 客户端直接对接。
- 安全与扩展
- 针对字段、符号、VTABLE、RTTI 等数据,提供可扩展的路由、工具实现,以及对输出进行标注、截断和查看的能力。
- 提供丰富的工具描述与工具调用接口,便于后续扩展更多功能。
- MCP 协议核心能力
-
安装步骤(简要)
- 准备环境
- 确保机器上已安装 Node.js(版本兼容性以实际仓库要求为准)。
- 获取代码
- 将仓库克隆到本地。
- 安装依赖
- 进入工具目录 tools/mcp-decomp,安装所需依赖(如 npm install)。
- 启动 MCP 服务端
- 使用 Node.js 运行 tools/mcp-decomp/server.js;服务将以“tt-decomp-phase5”为名称启动,默认通过标准输入/输出进行通信。
- 配置 MCP 客户端(请参考下面的服务器配置示例)
- MCP 客户端(如 Claude)需要知道服务器的启动命令与参数,以建立连接。
- 准备环境
-
服务器配置(用于 MCP 客户端的连接信息,JSON 结构,客户端至少需要 command 与 args 来连接服务器) 配置示例(请按实际运行环境替换绝对路径): { "server": "tt-decomp-phase5", "command": "node", "args": ["/absolute/path/to/tt-decomp/tools/mcp-decomp/server.js"] // 注:该配置用于告诉 MCP 客户端如何启动并连接到服务器进程, // server 字段仅作为标识,实际连接通过 MCP 的请求/响应完成。 }
-
基本使用方法
- 启动后,客户端通过 ListTools 请求获取可用工具列表;随后可通过 CallTool 请求逐一调用工具,获取相应的返回内容(文本或结构化数据)。
- 常用工具包括:
- get_function_recomp、get_function_pseudocode、get_function_info
- get_class_context、find_callers、find_callees
- search_symbols、resolve_address、get_project_info
- write_source_file、get_existing_source、suggest_file_placement
- 的输出可以直接用于 LLM 的上下文,或被转成代码草案并写回 src/。
- 若需要对源码进行精细修改,利用 write_source_file 提供的多种模式(create、append、insert_at_line、replace_lines、delete_lines)进行分步编辑,避免全量覆盖。
-
基本注意事项
- MCP 客户端与服务端通过 JSON-RPC 进行通信,请确保传输通道可用且双方协议版本匹配。
- 服务端提供的工具集合覆盖大量与反汇编/ lifting 相关的上下文信息,便于 LLM 进行功能定位、代码生成与验证。
- 路由与文件生成等功能在服务器端设计为可扩展,未来可按需要增添新的工具与数据源。
-
其他
- 参考仓库中的 README 与 server.js 实现细节,可以了解工具定义、工具清单、工具输入输出格式、以及服务器传输、路由和输出标注的实现思路。