Token导航 LogoToken导航

MCP Server · 数据服务

code trm python MCP

一个用于Python数据分析项目的递归代码优化服务器,通过多信号评估(数据质量、测试、代码风格和性能)实现代码的迭代改进。

stdio官方级别未说明来源级核验工具 16
测试自动化PythonClaude数据分析Cursor

快速开始

作者 / 组织
andreahaku
提供方
andreahaku

工具数量

16

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

code trm python MCP 属于数据服务类 MCP Server,公开资料标注 16 个工具,通过stdio 本地进程接入,适配 Claude、Cursor,有可以直接复制的安装命令;接入前要先准备 会话凭据。

分类

数据服务

传输方式

stdio

认证方式

会话凭据

部署方式

公开资料未说明

安装与配置

安装命令

pip install -e .

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 对应的运行时,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 16 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

TRM Python MCP服务器

A. TRM启发(测试时递归存储器)MCP服务器 用于Python数据分析项目中的递归代码细化。

此服务器实现了专门为Python和数据分析工作流设计的递归改进循环:

  • LLM扮演着 优化器 建议代码更改
  • 此MCP服务器充当 评论家/评价者 具有状态跟踪功能
  • 评估包括: 数据质量检查、测试、lint和性能指标
  • 使用EMA(指数移动平均线)跟踪分数
  • 智能停止策略决定何时停止

✨ 特性

  • 多信号评估:数据质量、测试、lint和性能基准测试
  • 加权评分:不同评估信号的可配置权重
  • EMA跟踪:跨迭代平滑跟踪分数
  • 智能停机:当测试通过+分数阈值、无改善或最大步数时停止
  • 灵活的候选人提交:支持多种模式(文件、补丁、差异)
  • 安全执行:命令在具有可配置超时的隔离目录中运行
  • Python专用:回溯解析、pytest/unittest集成、Python linting
  • 数据分析重点:Pandas/NumPy验证、数据质量检查

🐍 数据分析重点

此服务器是专门为Python数据分析项目设计的:

评估信号

  1. 数据质量 (默认权重:0.3)

- 架构验证 - 缺少值检查 - 数据类型一致性 - Pandas DataFrame验证 - 自定义数据质量脚本

  1. 测试 (默认权重:0.4)

- pytest集成 - 单元测试支持 - JSON测试报告器 - 测试覆盖率指标

  1. 棉绒 (默认权重:0.1)

- flake8样式检查 - pylint代码质量 - mypy类型检查 - PEP 8合规性

  1. 演出 (默认权重:0.2)

- 运行时指标 - 内存配置文件 - 数据处理基准 - 标准化绩效评分

📦 安装

先决条件

  • Python 3.10或更高版本
  • pip用于包管理

从源代码安装

git clone https://github.com/andreahaku/code_trm_python_mcp.git
cd code_trm_python_mcp
pip install -e .

开发安装

pip install -e ".[dev]"

🚀 用法

作为MCP服务器

添加到MCP客户端配置中:

{
  "mcpServers": {
    "code-trm-python": {
      "command": "python",
      "args": ["-m", "src.server"]
    }
  }
}

或者使用已安装的脚本:

{
  "mcpServers": {
    "code-trm-python": {
      "command": "code-trm-python-mcp"
    }
  }
}

💬 示例用法

在LLM客户端中配置为MCP服务器后,您可以使用自然语言提示:

启动TRM会话

提示: *“在/Users/me/projects/data pipeline上启动我的数据分析项目的TRM会话。使用pytest进行测试,使用flake8和mypy进行linting,并使用以下命令运行数据验证 python scripts/validate_schemas.py.将最大步数设置为10,当分数达到0.95时停止。”*

这将调用 trm.start 工具用于:

  • 初始化指定项目上的会话
  • 配置数据质量、测试和lint的评估命令
  • 设置停止策略(最大步数=10,阈值=0.95)
  • 返回会话ID以进行后续操作

迭代改进

提示: *“提交一个修复src/predicting.py中缺失值处理的候选项。问题在第45-50行,我们需要为'age'列添加fillna()。”*

这将:

  • 将建议的更改应用于文件
  • 运行完整的评估管道(数据质量、测试、lint、perf)
  • 计算加权分数
  • 返回通过/失败的反馈
  • 建议是继续还是停止

提示: *“TRM会话的当前状态是什么?告诉我分数以及我们是否应该停止迭代。”*

用途 trm.state 和 trm.halt 工具用于:

  • 显示当前步骤、EMA得分、最佳得分
  • 显示停止的决定和原因
  • 提供连续改进信息

使用文件

提示: *“阅读src/pipeline.py和data/schemas.py的内容,这样我就可以看到需要修复的地方。”*

用途 trm.read 工具用于:

  • 从存储库中获取文件内容
  • 显示元数据(行数、大小、上次修改时间)
  • 为做出明智的改变提供背景

提示: *“显示发生错误的src/analysis.py的第100-120行。”*

用途 trm.lines 工具用于:

  • 读取带有行号的特定行范围
  • 围绕错误位置提供重点上下文
  • 与读取整个文件相比,保存令牌

获取帮助

提示: *“测试因NameError而失败。你能建议一个修复方法吗?”*

用途 trm.fix 工具用于:

  • 分析Python错误回溯
  • 识别具体错误(NameError:未定义“pandas”)
  • 生成修复候选(添加 import pandas as pd)
  • 为准备申请的候选人提供理由

提示: *“根据评估结果,我应该关注哪些改进?”*

用途 trm.suggest 工具用于:

  • 分析评估反馈
  • 确定问题的优先级(关键→ high → 中等→ low)
  • 生成可操作的建议
  • 考虑代码质量、测试覆盖率、性能

代码审查

提示: *“查看PRhttps://github.com/user/repo/pull/123并检查数据验证问题、缺失测试和类型安全问题。"*

用途 trm.review 工具用于:

  • 从GitHub获取PR差异
  • 分析代码更改
  • 检查常见问题(缺少类型提示、没有错误处理等)
  • 提供详细的意见和建议
  • 进行总体评估(批准/需要更改/评论)

检查点和撤消

提示: *将当前状态另存为名为“重构前”的检查点*

用途 trm.save 用于保存会话状态以供以后还原的工具。

提示: *“最后的更改使情况变得更糟。撤消它并恢复到以前的状态。”*

用途 trm.undo 工具用于:

  • 将文件还原到以前的状态
  • 回滚步计数器
  • 重新计算分数和EMA
  • 显示已恢复的内容

示例完成会话

\*提示: “让我们改进我的pandas项目中的数据验证。使用以下设置在/path/to/project上启动TRM会话:

  • 数据验证:python脚本/check_schemas.py
  • 测试:pytest--json测试/
  • 棉绒:flake8型钢圈/&&mypy型钢圈/
  • 性能:python脚本/benchmark_pipeline.py
  • 12步后或得分达到0.97时停止

答复: ✅ 会话以ID abc-123开始。。。

提示: *“阅读src/vvalidators.py,这样我就可以看到需要改进的地方。”*

答复: \[显示250行的文件内容\]

提示: *“提交一个为‘事务’DataFrame添加架构验证的候选项。它应该检查所需的列是否存在并且具有正确的数据类型。”*

答复:

  • 第1/12步
  • 得分:0.65
  • 测试:45/50通过(5失败)
  • 数据质量:❌ 失败(检测到架构不匹配)
  • 反馈:添加对“金额”列数据类型的验证

提示: *“修复基于该反馈的架构验证。”*

答复:

  • 第2/12步
  • 得分:0.82
  • 测试:48/50通过(2失败)
  • 数据质量:✅ 通过
  • 反馈:边缘情况下的剩余测试失败

提示: *“继续迭代,直到测试通过,否则我们应该停止。”*

\[系统继续迭代LLM提案…\]

答复:

  • 第5/12步
  • 得分:0.96
  • 测试:50/50通过✅
  • 数据质量:✅ 通过
  • 应该停止:是的,成功!通过测试且得分>=阈值

🛠️ 可用工具(共16个)

核心工具

trm.start -开始会话

在本地存储库上初始化TRM会话。

参数:

  • repo (必填):项目的绝对路径
  • dataQual:数据质量验证命令
  • test:测试命令(例如“pytest--json”)
  • lint:Lint命令(例如,“flake8 src/”)
  • bench:性能基准命令
  • timeout:每个命令超时(默认值:120秒)
  • weights:得分权重(数据质量:0.3,测试:0.4,皮棉:0.1,性能:0.2)
  • halt:暂停策略(最大值、阈值、耐心、最小值)
  • ema:EMA平滑系数(默认值:0.9)
  • notes:可选的初始推理说明

退货: sessionId, message,配置详细信息

例子:

session = await trm.start({
    "repo": "/path/to/project",
    "dataQual": "python scripts/validate_data.py",
    "test": "pytest --json tests/",
    "lint": "flake8 src/ && mypy src/",
    "bench": "python scripts/benchmark.py",
    "halt": {
        "max": 12,
        "threshold": 0.95,
        "patience": 3
    }
})
trm.submit -提交候选人

应用候选人变更,运行评估,返回反馈。

参数:

  • sid (必填):会话ID
  • candidate (必填):其中一种模式:

- 文件:完整的文件内容 - 补丁:统一的差异格式 - 差异: 每个文件的差异

  • reason:法学硕士推理笔记

退货: step, score, emaScore, bestScore, tests, okDataQuality, okLint, shouldHalt, reasons, feedback

例子:

result = await trm.submit({
    "sid": session_id,
    "candidate": {
        "mode": "diff",
        "changes": [{
            "path": "src/analysis.py",
            "diff": "--- a/src/analysis.py\\n+++ b/src/analysis.py\\n..."
        }]
    },
    "reason": "Fix data validation logic"
})
trm.read -获取文件内容

使用元数据读取当前文件状态。

参数:

  • sid (必填):会话ID
  • paths (必填):文件路径列表

退货: 带元数据的文件内容(行数、大小字节、lastModified)

trm.state -获取州

返回当前会话状态快照。

退货: sessionId, step, emaScore, bestScore, noImproveStreak, last, zNotes

trm.halt -应该停止

检查最新评估中的停止决定。

退货: shouldHalt, reasons

trm.end -结束会话

清理并结束会议。

退货: ok, message

增强工具

trm.validate -验证候选人

在应用更改之前进行详细预览的模拟运行验证。

参数: sid, candidate

退货: valid, errors, warnings, preview

trm.suggest -获取建议

根据评估结果获取基于人工智能的改进建议。

退货: 按优先级排序的热门建议

检查点工具

trm.save -保存检查点

将当前会话状态另存为检查点。

参数: sid, desc (可选描述)

trm.restore -还原检查点

从已保存的检查点还原会话。

参数: sid, cid (检查点ID)

trm.list -列出检查点

列出会话的所有已保存检查点。

参数: sid

高级工具

trm.undo -撤消上一个候选人

快速撤消并完全恢复状态。

退货: message, currentStep, score, emaScore, filesRestored

trm.lines -获取文件行

从带有行号的文件中读取特定的行范围。

参数: sid, file, start (行号), end (行号)

退货: 带格式化行号的行,总行数

trm.fix -建议修复

基于Python错误分析的人工智能修复候选生成。

支持的错误: NameError、ImportError、TypeError、AttributeError、SyntaxError

退货: 一系列建议 priority, issue, candidateToFix, rationale

trm.reset -重置为基线

将存储库重置为初始git提交状态。

trm.review -公关评论

对来自GitHub URL或直接差异的拉取请求进行详细的代码审查。

参数:

  • url:GitHub PR URL
  • diff:直接统一差异内容
  • files:包含内容的文件数组
  • focus:筛选评论类别的可选数组

重点类别:

  • type-safety:检测缺失的类型提示
  • logging:标记打印语句
  • todos:识别TODO/FIXME评论
  • code-quality:魔术数字,长线
  • error-handling:缺少尝试捕捉
  • testing:建议添加测试
  • data-validation:缺少数据检查

📊 分数计算

分数是\[0,1\]中的加权平均值:

score = (w.dataQual * sDataQual + w.test * sTests + w.lint * sLint + w.perf * sPerf) / sumWeights

where:
  sDataQual = 1 if data quality checks pass, 0 otherwise
  sTests = passed / total (0 if tests fail to parse)
  sLint = 1 if lint succeeds, 0 otherwise
  sPerf = normalized performance score (best/current, lower runtime is better)

🛑 停机条件

迭代在以下情况下停止:

  1. 成功: step >= minSteps 所有测试均已通过 score >= passThreshold
  2. 高原:没有改善 patience 连续步骤
  3. 限制:已到达 maxSteps

🎯 推荐工作流程

1.开始会话

session = await trm.start({
    "repo": "/path/to/data-analysis-project",
    "dataQual": "python scripts/validate_schemas.py",
    "test": "pytest --json tests/",
    "lint": "flake8 src/ && mypy src/",
    "bench": "python scripts/benchmark_pipeline.py",
    "halt": {"max": 12, "threshold": 0.97, "patience": 3}
})

2.迭代改进循环

关键原则:

  • 保留补丁 小而专注 (一次一个问题)
  • 使用 reason 跨步骤维护上下文
  • 相信分数/反馈信号作为指导

图案:

  1. 先获取文件内容
  2. 提交候选人并说明理由
  3. 如果失败:使用 trm.fix 或调整方法
  4. 重复,直到 shouldHalt=true

3.迭代示例

# 1. Get current files
files = await trm.read({"sid": session_id, "paths": ["src/pipeline.py"]})

# 2. Submit improvement
result = await trm.submit({
    "sid": session_id,
    "candidate": {
        "mode": "diff",
        "changes": [{
            "path": "src/pipeline.py",
            "diff": "..."
        }]
    },
    "reason": "Add data validation for missing values"
})

# 3. Check if should continue
if result["shouldHalt"]:
    print(f"Done! Final score: {result['score']}")
else:
    print(f"Continue - Step {result['step']}, Score: {result['score']}")

🐍 Python特定功能

解析时出错

自动解析Python回溯:

  • 名称错误→ 建议导入或变量定义
  • 导入错误→ 建议 pip install 命令
  • 类型错误→ 识别参数不匹配
  • 属性错误→ 检测不正确的属性访问
  • 语法错误→ 突出语法问题

测试框架支持

  • pytest:JSON输出解析、夹具检测
  • 单元测试:标准输出解析、测试发现
  • 覆盖率指标集成

Linting集成

  • 薄片8:样式检查
  • 皮林:代码质量分析
  • 米皮:类型提示验证

数据分析验证

  • Pandas DataFrame模式验证
  • NumPy数组形状/dtype检查
  • 缺失值检测
  • 数据类型一致性验证

💡 数据分析项目提示

  1. 设置数据质量检查 验证:

- DataFrame架构与预期结构匹配 - 无意外缺失值 - 数据类型正确 - 值范围有效

  1. 使用有意义的绩效基准:

- 时间关键型数据处理管道 - 测量大型数据集的内存使用情况 - 跨迭代跟踪改进/回归

  1. 配置适当的权重:

- 更高 test 算法正确性的权重 - 更高 dataQual 数据管道可靠性权重 - 更高 perf 优化任务的权重

  1. 利用pytest标记 对于不同的测试类别:

- @pytest.mark.unit 用于快速单元测试 - @pytest.mark.integration 用于数据管道测试 - @pytest.mark.slow 用于长时间运行的测试

🏗️ 建筑

┌─────────────────────────────────────────────────────────────┐
│                      LLM Client                              │
│         (Claude Code / Cursor / Codex CLI)                  │
│                                                              │
│  • Proposes code changes (optimizer role)                   │
│  • Submits candidates via MCP tools                         │
│  • Interprets feedback and iterates                         │
└────────────────────┬────────────────────────────────────────┘
                     │ MCP Protocol
                     ▼
┌─────────────────────────────────────────────────────────────┐
│              TRM Python MCP Server                          │
│                                                              │
│  Session State:                                             │
│  • Current score, EMA, best score                           │
│  • Test results, data quality status                        │
│  • Improvement streak tracking                              │
│  • History of evaluations                                   │
│  • Candidate snapshots (for undo)                           │
│                                                              │
│  Evaluation Pipeline:                                       │
│  1. Apply candidate changes                                 │
│  2. Run: data_quality → test → lint → perf                  │
│  3. Parse outputs, extract signals                          │
│  4. Compute weighted score                                  │
│  5. Update EMA and improvement tracking                     │
│  6. Check halting policy                                    │
│  7. Return structured feedback                              │
└────────────────────┬────────────────────────────────────────┘
                     │ Shell Commands
                     ▼
┌─────────────────────────────────────────────────────────────┐
│              Target Python Project                          │
│                                                              │
│  • Source code files (.py, .ipynb)                          │
│  • Data validation scripts                                  │
│  • Test framework (pytest, unittest)                        │
│  • Linters (flake8, pylint, mypy)                           │
│  • Performance benchmark scripts                            │
│  • Data analysis pipelines (pandas, numpy)                  │
└─────────────────────────────────────────────────────────────┘

📝 基于

这一实施的灵感来自 测试时间递归存储器(TRM) 方法来自:

“递归反思:教授语言模型代理如何自我提升” (arXiv:2510.4871v1)

Python数据分析的关键调整:

  • TRM的递归精化→ 使用LLM提案进行迭代代码改进
  • 潜在推理(z)→ 迭代之间传递的基本原理/注释
  • ACT停止→ 基于分数+改进的可配置停止策略
  • 深度监管→ 数据质量/测试/lint/perf信号作为无需培训的反馈
  • Python焦点→ 回溯解析、pytest集成、数据验证

📄 许可证

麻省理工学院

👨‍💻 作者

安德烈·萨尔瓦托(@andreahaku)与克劳德(Anthropic)

🔗 相关项目

🤝 贡献

欢迎投稿!请随时提交拉取请求。

______________________________________________________________________

状态: 🚧 贝塔 -核心功能已实现,高级功能正在开发中

Python版本: 3.10+

聚焦:数据分析和科学计算(Pandas、NumPy、Scikit-learn)

工具与能力

工具数量

16

资源数量

0

提示词数量

0

能力标签

代码优化Python本地部署数据分析Python开发测试自动化性能评估

支持客户端

ClaudeCursor

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

用自然语言查库

不用手写 SQL,直接问数据,让模型组织查询语句。

数据巡检

定期拉指标、做对比,把异常项整理成一段说明。

打通业务数据

把数据库、数仓和接口接进同一个上下文,减少导出再上传。

选择建议

值得选的地方

  • 工具数量 16 个,一次接入能覆盖的操作比单点工具更全。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 已经适配 Claude、Cursor,换客户端不用重新研究配置。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 需要自备会话凭据,没有凭据没法直接试。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在数据服务场景里让模型直接调用外部能力的人。
  • 已经在用 Claude 的用户,接入路径最短。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 暂时拿不到会话凭据的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
code trm python MCP

MCP World · 本页

16stdio有1 个2026-05-17
Memory 9d25f64e

MCP World

9未说明未标注1 个2026-05-17
Prisma MCP Server

MCP World

0stdio有3 个2026-05-17
Astr Bot

MCP World

0stdio有1 个2026-05-17
Getzep MCP

MCP World

9stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

code trm python MCP 怎么安装?

公开资料给出的安装命令是 pip install -e .,运行环境为 未标注。装完后按客户端要求写进 MCP 配置,重启客户端生效。

code trm python MCP 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 未标注;保存后完全退出客户端再打开,配置才会生效。

code trm python MCP 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

code trm python MCP 需要 API Key 吗?

公开资料标注的认证方式是会话凭据,也就是要先拿到凭据才能连上;凭据只填在自己本地的配置里,不要写进公开仓库。

code trm python MCP 支持哪些客户端?

公开资料标注支持 Claude、Cursor;其他客户端只要能配置 MCP Server,也能用同样的命令或地址接入。

来源信息

继续浏览同类 MCP