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

Rope MCP Server

MCP Server

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

工具数

9

提示词数

0

GitHub Stars

1

资源数

0
开发工具PythonClaudeClaude

安装说明

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

作者 / 组织

krystofbe

提供方

krystofbe

最后核验

2026/5/17 20:23

快速接入

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

命令预览

pip install rope-mcp-server

详细介绍

rope mcp服务器

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

特性

  • 移动符号 -通过自动导入更新在文件之间移动类和函数
  • 移动模块 -将整个模块或包移动到不同的文件夹
  • 移动和重命名模块 -将模块移动到文件夹并重命名(例如。, foo_extra.pyfoo/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

许可证

麻省理工学院

贡献

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

目录标签

目录标签

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

支持客户端

Claude

接入字段

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

stdio

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

none

工具数量(toolCount,工具数)

9

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP