返回市场
麦克佩思Python工具箱

麦克佩思Python工具箱

作者:gianlucamazza5 星标更新:2025-03-01

项目介绍

MCP Python 工具箱

一个实现模型上下文协议(MCP)服务器的工具集,专为Python开发设计,使像Claude这样的AI助手能够有效地处理Python代码和项目。

概述

MCP Python 工具箱实现了MCP服务器,通过标准化接口赋予Claude执行Python开发任务的能力。它使Claude能够:

  • 在工作空间内读取、写入和管理文件
  • 分析、格式化和检查Python代码
  • 管理虚拟环境和依赖项
  • 安全地执行Python代码

功能

文件操作 (FileOperations)

  • 在工作空间目录内进行安全的文件操作
  • 路径验证以防止未经授权访问工作空间外的内容
  • 使用行特定操作读取和写入文件
  • 创建和删除文件及目录
  • 列出目录内容并提供详细元数据(大小、类型、修改时间)
  • 写入文件时自动创建父目录

代码分析 (CodeAnalyzer)

  • 使用抽象语法树(AST)解析和分析Python代码结构
  • 提取关于以下内容的详细信息:
    • 导入语句及其别名
    • 函数定义及其参数和装饰器
    • 类定义及其基类和方法
    • 全局变量赋值
  • 使用以下方式格式化代码:
    • Black(默认)
    • PEP8(使用autopep8)
  • 使用Pylint进行全面的代码检查,并生成详细的报告

项目管理 (ProjectManager)

  • 使用pip支持创建和管理虚拟环境
  • 灵活的依赖项管理:
    • requirements.txt安装
    • pyproject.toml安装
    • 支持特定包版本
  • 高级依赖项处理:
    • 检查包之间的版本冲突
    • 列出所有已安装的包及其版本
    • 更新包到特定版本
    • 根据当前环境生成requirements.txt

代码执行 (CodeExecutor)

  • 在受控环境中执行Python代码
  • 使用项目的虚拟环境确保一致的依赖项
  • 临时文件管理用于代码执行
  • 捕获标准输出、标准错误和退出码
  • 支持自定义工作目录

安装

  1. 克隆仓库:
git clone https://github.com/gianlucamazza/mcp_python_toolbox.git
cd mcp_python_toolbox
  1. 创建并激活虚拟环境:
python -m venv .venv
source .venv/bin/activate  # Linux/Mac
# 或
.venv\Scripts\activate  # Windows
  1. 以开发模式安装包:
pip install -e ".[dev]"

使用

作为CLI工具运行

最简单的启动服务器的方式是使用CLI:

# 使用当前目录作为工作空间启动
python -m mcp_python_toolbox

# 或指定工作空间目录
python -m mcp_python_toolbox --workspace /path/to/your/project

与Claude Desktop集成

Claude Desktop可以自动启动和管理MCP Python工具箱服务器。以下是配置方法:

  1. 按照上述说明安装和设置MCP Python工具箱
  2. 在Claude Desktop的MCP工具配置中添加Python工具箱的配置条目:
"python-toolbox": {
  "command": "/Users/username/path/to/mcp_python_toolbox/.venv/bin/python",
  "args": [
    "-m",
    "mcp_python_toolbox",
    "--workspace",
    "/Users/username/path/to/workspace"
  ],
  "env": {
    "PYTHONPATH": "/Users/username/path/to/mcp_python_toolbox/src",
    "PATH": "/opt/homebrew/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin",
    "VIRTUAL_ENV": "/Users/username/path/to/mcp_python_toolbox/.venv",
    "PYTHONHOME": ""
  }
}
  1. 自定义路径以匹配您的环境
  2. 当需要时,Claude Desktop会自动启动MCP服务器
  3. Claude现在可以通过MCP接口访问Python开发工具

程序化使用

from mcp_python_toolbox import PythonToolboxServer

server = PythonToolboxServer(workspace_root="/path/to/your/project")
server.setup()
server.run()

核心模块示例

文件操作

from mcp_python_toolbox.core import FileOperations

file_ops = FileOperations(workspace_root="/path/to/project")

# 读取文件内容
content = file_ops.read_file("src/example.py")
# 读取特定行
lines = file_ops.read_file("src/example.py", start_line=11, end_line=20)

# 写入文件
file_ops.write_file("output.txt", "Hello, World!")
# 追加到文件
file_ops.write_file("log.txt", "New entry\n", mode='a')

# 列出目录内容
contents = file_ops.list_directory("src")
for item in contents:
    print(f"{item['name']} - {item['type']} - {item['size']} 字节")

代码分析

from mcp_python_toolbox.core import CodeAnalyzer

analyzer = CodeAnalyzer(workspace_root="/path/to/project")

# 分析Python文件结构
analysis = analyzer.parse_python_file("src/example.py")
print(f"找到 {len(analysis['functions'])} 个函数")
print(f"找到 {len(analysis['classes'])} 个类")

# 格式化代码
formatted = analyzer.format_code(code, style='black')

# 检查代码
issues = analyzer.lint_code("src/example.py")
for issue in issues:
    print(f"第 {issue['line']} 行:{issue['message']}")

项目管理

from mcp_python_toolbox.core import ProjectManager

pm = ProjectManager(workspace_root="/path/to/project")

# 创建虚拟环境
pm.create_virtual_environment()

# 安装依赖项
pm.install_dependencies()  # 从 requirements.txt 或 pyproject.toml
pm.install_dependencies("requirements-dev.txt")  # 从特定文件

# 检查冲突
conflicts = pm.check_dependency_conflicts()
if conflicts:
    print("发现依赖项冲突:")
    for conflict in conflicts:
        print(f"{conflict['package']} 需要 {conflict['requires']}")

# 更新包
pm.update_package("requests")  # 更新到最新版本
pm.update_package("flask", version="2.0.0")  # 更新到特定版本

代码执行

from mcp_python_toolbox.core import CodeExecutor

executor = CodeExecutor(workspace_root="/path/to/project")

code = '''
def greet(name):
    return f"Hello, {name}!"

print(greet("World"))
'''

result = executor.execute_code(code)
print(f"输出:{result['stdout']}")
print(f"错误:{result['stderr']}")
print(f"退出码:{result['exit_code']}")

开发

运行测试

pytest

类型检查

mypy src/mcp_python_toolbox

代码检查

pylint src/mcp_python_toolbox

代码格式化

black src/mcp_python_toolbox

贡献

  1. 叉出仓库
  2. 创建功能分支 (git checkout -b feature/amazing-feature)
  3. 提交更改 (git commit -m '添加一些惊人的功能')
  4. 推送到分支 (git push origin feature/amazing-feature)
  5. 打开拉取请求

许可证

本项目采用MIT许可证 - 查看LICENSE文件获取详情。

致谢

  • 实现了模型上下文协议规范
  • 使用现代Python开发工具和最佳实践构建
  • 使用行业标准的格式化(Black)和代码检查(Pylint)工具