MCP Python ツールボックス
Python 開発用の包括的なツール セットを提供する Model Context Protocol (MCP) サーバー。これにより、Claude のような AI アシスタントが Python コードやプロジェクトを効果的に操作できるようになります。
概要
MCP Python Toolboxは、モデルコンテキストプロトコルサーバーを実装しており、クロードは標準化されたインターフェースを通じてPython開発タスクを実行できます。これにより、クロードは以下のことが可能になります。
Related MCP server: Hass-MCP
特徴
ファイル操作 ( FileOperations )
ワークスペースディレクトリ内での安全なファイル操作
ワークスペース外への不正アクセスを防ぐためのパス検証
行単位の操作でファイルを読み書きする
ファイルとディレクトリの作成と削除
詳細なメタデータ(サイズ、タイプ、変更時刻)を含むディレクトリの内容を一覧表示します
ファイル書き込み時の親ディレクトリの自動作成
コード分析 ( CodeAnalyzer )
プロジェクト管理 ( ProjectManager )
コード実行 ( CodeExecutor )
インストール
リポジトリをクローンします。
git clone https://github.com/gianlucamazza/mcp_python_toolbox.git
cd mcp_python_toolbox
仮想環境を作成してアクティブ化します。
python -m venv .venv
source .venv/bin/activate # Linux/Mac
# or
.venv\Scripts\activate # Windows
開発モードでパッケージをインストールします。
使用法
CLIツールとして実行
サーバーを起動する最も簡単な方法は、CLI を使用することです。
# Start with current directory as workspace
python -m mcp_python_toolbox
# Or specify a workspace directory
python -m mcp_python_toolbox --workspace /path/to/your/project
Claude Desktop の設定
Claude Desktopは、MCP Python Toolboxサーバーを自動的に起動・管理できます。設定方法は以下の通りです。
上記の説明に従ってMCP Python Toolboxをインストールしてセットアップします。
Claude Desktop の MCP ツール構成に Python Toolbox の構成エントリを追加します。
"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": ""
}
}
環境に合わせてパスをカスタマイズする
Claude Desktopは必要に応じてMCPサーバーを自動的に起動します。
クロードは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")
# Read file contents
content = file_ops.read_file("src/example.py")
# Read specific lines
lines = file_ops.read_file("src/example.py", start_line=10, end_line=20)
# Write to file
file_ops.write_file("output.txt", "Hello, World!")
# Append to file
file_ops.write_file("log.txt", "New entry\n", mode='a')
# List directory contents
contents = file_ops.list_directory("src")
for item in contents:
print(f"{item['name']} - {item['type']} - {item['size']} bytes")
コード分析
from mcp_python_toolbox.core import CodeAnalyzer
analyzer = CodeAnalyzer(workspace_root="/path/to/project")
# Analyze Python file structure
analysis = analyzer.parse_python_file("src/example.py")
print(f"Found {len(analysis['functions'])} functions")
print(f"Found {len(analysis['classes'])} classes")
# Format code
formatted = analyzer.format_code(code, style='black')
# Lint code
issues = analyzer.lint_code("src/example.py")
for issue in issues:
print(f"Line {issue['line']}: {issue['message']}")
プロジェクト管理
from mcp_python_toolbox.core import ProjectManager
pm = ProjectManager(workspace_root="/path/to/project")
# Create virtual environment
pm.create_virtual_environment()
# Install dependencies
pm.install_dependencies() # from requirements.txt or pyproject.toml
pm.install_dependencies("requirements-dev.txt") # from specific file
# Check for conflicts
conflicts = pm.check_dependency_conflicts()
if conflicts:
print("Found dependency conflicts:")
for conflict in conflicts:
print(f"{conflict['package']} requires {conflict['requires']}")
# Update packages
pm.update_package("requests") # to latest
pm.update_package("flask", version="2.0.0") # to specific version
コード実行
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"Output: {result['stdout']}")
print(f"Errors: {result['stderr']}")
print(f"Exit code: {result['exit_code']}")
発達
テストの実行
型チェック
mypy src/mcp_python_toolbox
リンティング
pylint src/mcp_python_toolbox
書式設定
black src/mcp_python_toolbox
貢献
リポジトリをフォークする
機能ブランチを作成します( git checkout -b feature/amazing-feature )
変更をコミットします ( git commit -m 'Add some amazing feature' )
ブランチにプッシュする ( git push origin feature/amazing-feature )
プルリクエストを開く
ライセンス
このプロジェクトは MIT ライセンスに基づいてライセンスされています - 詳細については LICENSE ファイルを参照してください。
謝辞