Token导航 LogoToken导航

MCP Server · 开发工具

Rope MCP Server

一个基于Rope库的Python代码重构服务器,为AI代理提供项目范围内的安全代码重构操作。

stdio官方级别未说明来源级核验工具 9
开发工具PythonClaude

快速开始

作者 / 组织
krystofbe
提供方
krystofbe

工具数量

9

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

1

仓库热度

收录来源

1 个

MCP World

选型结论

Rope MCP Server 属于开发工具类 MCP Server,公开资料标注 9 个工具,通过stdio 本地进程接入,适配 Claude,有可以直接复制的安装命令;接入前先确认权限范围。

分类

开发工具

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

pip install rope-mcp-server

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

上手步骤

  1. 1

    准备运行环境

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

  2. 2

    安装服务

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

  3. 3

    写入客户端配置

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

  4. 4

    验证是否可用

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

接入前确认

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

详细介绍

rope mcp服务器

一个模型上下文协议(MCP)服务器,提供Python重构功能,由 绳索 图书馆。使像Claude这样的AI代理能够执行安全的、项目范围内的重构操作。

特性

  • 移动符号 -通过自动导入更新在文件之间移动类和函数
  • 移动模块 -将整个模块或包移动到不同的文件夹
  • 移动和重命名模块 -将模块移动到文件夹并重命名(例如。, foo_extra.py → foo/extra.py)
  • 将模块转换为Init -转换 foo.py 进入 foo/__init__.py (没有导入更改!)
  • 将模块转换为包 -转换 foo.py 进入 foo/foo.py 带有导入更新
  • 重命名符号 -重命名整个项目中的变量、函数、类
  • 提取方法 -将代码块提取到新方法中
  • 内联变量 -所有使用站点的内联变量
  • 列出符号 -发现Python文件中的顶级符号

所有操作都是项目感知的,并自动更新整个代码库中的导入和引用。

安装

Claude Code快速入门(推荐)

# Global installation (all projects)
claude mcp add rope-refactor uvx rope-mcp-server -s user

# Or for current project only
claude mcp add rope-refactor uvx rope-mcp-server -s local

来自PyPI

pip install rope-mcp-server

使用Claude代码

claude mcp add rope-refactor uvx rope-mcp-server -s user
claude mcp list  # verify

就这样

可用工具

list_symbols

列出Python文件中的所有顶级符号(类、函数、变量)。

project_path: /path/to/your/project
file_path: src/models.py

move_symbol

将类或函数移动到另一个文件。自动更新所有导入。

project_path: /path/to/your/project
source_file: src/models.py
symbol_name: UserModel
dest_file: src/users/models.py

move_module

将模块或包移动到另一个文件夹。自动更新所有导入。

project_path: /path/to/your/project
module_path: src/utils.py
dest_folder: src/lib

convert_module_to_init (推荐)

通过将模块文件移动到以下位置将其转换为包 __init__.py。无需导入更改!

这就是 推荐 将模块转换为包的方法。转换后,您可以使用 move_module 移动相关文件(如 foo_mixins.py)进入新的包装。

project_path: /path/to/your/project
module_path: app/views/customer_order.py

之前:

app/views/customer_order.py
app/views/customer_order_mixins.py

运行后 convert_module_to_init:

app/views/customer_order/__init__.py  (was customer_order.py)
app/views/customer_order_mixins.py    (move this next with move_module)

导入 from app.views.customer_order import X 停留 未改变的!

move_and_rename_module

将模块移动到文件夹并可选择重命名。非常适合移动相关文件(如 _mixins.py, _extra.py)放入用创建的包中 convert_module_to_init.

自动检测: 如果模块名称以目标文件夹名称+下划线开头,则会自动删除该前缀。

绳索虫解决方法: 此工具包括一个解决Rope错误的方法,当文件同时从目标包和正在移动的模块导入时,该错误会崩溃。此类文件在移动过程中会暂时隐藏,然后手动修复其导入。

project_path: /path/to/your/project
module_path: app/views/customer_order_mixins.py
dest_folder: app/views/customer_order
new_name: mixins  # Optional - auto-detected from prefix

之前:

app/views/customer_order/__init__.py
app/views/customer_order_mixins.py

导入: from app.views.customer_order_mixins import MyMixin

之后:

app/views/customer_order/__init__.py
app/views/customer_order/mixins.py

导入: from app.views.customer_order.mixins import MyMixin

convert_module_to_package

将模块文件转换为同名包。变换 foo.py 进入 foo/foo.py 同时更新项目范围内的所有导入。

当您希望将原始模块内容放在子模块中,而不是放在 __init__.py.

project_path: /path/to/your/project
module_path: app/views/service_contractor.py

之前:

app/views/service_contractor.py

导入: from app.views.service_contractor import MyClass

之后:

app/views/service_contractor/
├── __init__.py
└── service_contractor.py

导入: from app.views.service_contractor.service_contractor import MyClass

rename_symbol

在整个项目中重命名符号。

project_path: /path/to/your/project
file_path: src/utils.py
symbol_name: old_function_name
new_name: new_function_name

extract_method

将代码区域提取到新方法中。

project_path: /path/to/your/project
file_path: src/service.py
start_line: 15
start_col: 4
end_line: 20
end_col: 30
new_name: extracted_helper

inline_variable

在所有使用站点内联一个变量。

project_path: /path/to/your/project
file_path: src/handler.py
variable_name: temp_result
line: 42

close_rope_project

关闭Rope项目以释放内存。重构完成后致电。

project_path: /path/to/your/project

发展

# Install dependencies
uv sync

# Run tests
uv run pytest tests/ -v

# Run server locally
uv run python -m rope_mcp_server.server

运作原理

关键实施细节:

  • 项目缓存 -Rope项目被缓存以避免在每次操作时重新解析
  • 基于AST的偏移计算 -符号位置是通过Python的AST模块计算的,以确保准确性
  • 自动进口处理 -移动/重命名符号时,绳索会处理所有导入更新

局限性

  • 仅支持Python代码(绳索限制)
  • 在类之间移动方法需要目标类存在
  • 大型项目的初始索引可能较慢
  • 绳索虫解决方法:从目标包和要移动的模块导入的文件会被特殊处理(在移动过程中隐藏,然后手动导入修复)-请参阅 move_and_rename_module

许可证

麻省理工学院

贡献

欢迎投稿!请先打开一个问题,讨论您想更改什么。

工具与能力

工具数量

9

资源数量

0

提示词数量

0

能力标签

代码重构Python本地部署Python开发AI辅助编程开发工具

支持客户端

Claude

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

典型使用场景

让助手直接读代码

把仓库、提交记录和 issue 交给模型检索,补全和重构时不用来回复制文件。

在对话里跑命令

触发构建、测试和脚本,执行结果直接回到上下文,省去切终端。

接进开发流程

把 PR、CI 状态和代码审查接进助手,减少在几个工具之间跳。

选择建议

值得选的地方

  • 只提供 9 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 运行环境,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

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

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

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

MCP World · 本页

9stdio有1 个2026-05-17
Git 838e2ec1

MCP World

12stdio有2 个2026-05-17
Markitdown MCP 2c653a5f

MCP World

1stdio有1 个2026-05-17
Context7 MCP C671e75a

MCP World

0stdio有1 个2026-05-17
Context7 831acf40

MCP World

0stdio有1 个2026-05-17

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

常见问题

5 条

Rope MCP Server 怎么安装?

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

Rope MCP Server 怎么在 Claude Desktop、Cursor 里配置?

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

Rope MCP Server 收费吗?

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

Rope MCP Server 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Rope MCP Server 支持哪些客户端?

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

来源信息

继续浏览同类 MCP