Zenn
🤗

codemcpを使って、Claude Desktopからローカルファイルを編集する

2025/03/21に公開
1

こんにちは、Kevinです。

Claude Desktopから直接コードを編集できたらいいのになって思いませんか?

「codemcp」というMCPを使えば、Claude Desktopから直接ローカルファイルを編集できるようになります。
https://github.com/ezyang/codemcp

こんな感じでやってくれます。

以前は、エディタからコードをコピー&ペーストしてClaudeに聞くなんてことをやっていましたが、codemcpのおかげでその手間が省けました。

この記事では、codemcpの特徴、インストール方法、使い方、そして他ツールとの違いを詳しく解説します。

codemcpとは?

Claude Desktopからローカルファイルを直接編集することができるようになるMCPです。
Claude Pro (月額$20の有料プラン)での使用が前提なのでそこは注意してください。
具体的には、Claudeのプロジェクト機能を使用することになります。

ファイルを直接編集し、テストを実行することができるため、コードをClaudeのチャットウィンドウにコピー&ペーストする手間が省けるのがメリットです。
また、API料金を気にせずにClaude 3.7を使うことができます。

Claude Code との違いは以下の表のようになります(もし間違っている場所があったら、指摘してください)。

項目 codemcp + Claude Desktop Claude Code Claude Desktop + filesystems
使用環境 ローカル(Claude Desktopアプリ経由) クラウド(API経由) ローカル(Claude Desktopアプリ経由)
コード編集 直接ローカルファイルを編集 コードを生成し、手動で適用 直接ローカルファイルを編集
課金 月額20ドル(Claude Proのみ) トークンごとの従量課金 月額20ドル(Claude Proのみ)
Git統合 自動コミットで変更管理 なし(手動でGit操作) なし(手動でGit操作)
テスト/フォーマット 設定次第で自動実行可能 なし(別途手動) なし(別途手動)
セットアップ ローカルインストールと設定が必要 APIキーと開発環境の準備のみ 標準機能のため設定不要
リアルタイム性 チャット形式で即座に反映 APIレスポンス待ち+手動適用 チャット形式だがファイル編集は不可
柔軟性 プロジェクト単位でカスタマイズ(codemcp.toml) API呼び出し次第で柔軟に調整可能 限定的(ファイル閲覧のみ)
セキュリティ 非公式ツールのため注意が必要 公式APIのため安全性高い 公式機能のため安全性高い

API料金を気にせずにClaude Desktopを使えるのは魅力的ということで、早速使ってみることにしました。

しかし、こちらのMCPは公式のものではないので、インストールしていいものか不安が残ります。

セキュリティ考慮事項

非公式ツールを使用する際は、セキュリティリスクを考慮することが重要です。codemcpは直接ローカルファイルを編集する権限を持つため、特に注意が必要です。

リスク評価

  1. コード実行リスク: codemcpはローカルファイルシステムにアクセスし、コマンドを実行できるので、意図しない挙動を引き起こす恐れがあります。
  2. データ漏洩リスク: 重要なコードやデータが含まれるプロジェクトへのアクセス権を与えることになります。
  3. 依存関係リスク: 外部パッケージに依存しており、それらのセキュリティも考慮する必要があります。

対策

  1. コードレビュー: インストール前にソースコードを確認する。
  2. 分離環境での使用: 重要でないプロジェクトや、専用の分離環境で試用する。
  3. 最小権限の原則: 必要最小限のディレクトリにのみアクセス権を与える。
  4. 定期的な更新確認: GitHubリポジトリの更新やイシューを定期的にチェックする。

AIにリスクを評価してもらう

僕も不安だったので、まずはコードに問題がないかAIにチェックしてもらいました。
基本的に、新しいリポジトリをクローンする場合は、以下の方法でAIにチェックしてもらうようにしています。

やり方は簡単。

GitHubのリポジトリをUitHubを使って、テキストに変換します。
https://uithub.com/
それをAIに投げて、セキュリティリスクがないかチェックしてもらいます。

僕の場合は、テキストしたものをObsidian Web ClipperでObsidianに引っ張ってきて、それをCursorに読み込ませてチェックしてもらっています。
https://obsidian.md/

今回は問題なさそうだったので、使ってみることにしました。

(参考)Claudeによる評価

コードベースの分析に基づいて、以下のように判断します:

使用の安全性評価

  1. 基本的な安全性
  • コードは主にローカル環境で動作するように設計されています
  • 悪意のあるコードや明らかな脆弱性は見つかりませんでした
  • オープンソースで、コードが公開されており透明性があります
  1. 主な機能
  • デスクトップ操作の自動化
  • LLMとの対話機能
  • ファイル操作やブラウザ制御

使用する際の注意点

  1. API キーの取り扱い
  • 各種APIキー(OpenAI、Anthropic等)は自身で管理する必要があります
  • キーは環境変数として設定することを推奨します
  • APIキーは決して公開リポジトリにコミットしないようにしてください
  1. 権限の制限
  • 必要最小限の権限でアプリケーションを実行することを推奨します
  • ブラウザ自動化機能は必要な場合のみ有効にしてください
  1. データの取り扱い
  • 機密情報を扱う場合は、専用の作業環境を用意することを推奨します
  • スクリーンショット機能使用時は画面上の情報に注意してください

結論

インストールして使用すること自体は問題ありません
以下の理由からです:

  1. コードベースは一般的な自動化ツールとして適切に設計されています
  2. 明らかな悪意のあるコードは含まれていません
  3. セキュリティリスクは適切な設定と使用方法で軽減可能です

使用開始時の推奨手順

  1. 開発環境での初期テスト
  2. 必要なAPIキーの安全な設定
  3. アクセス権限の適切な設定
  4. 定期的なアップデートの確認

ただし、業務での使用を検討している場合は、組織のセキュリティポリシーに照らし合わせて評価することを推奨します。また、機密性の高いデータを扱う場合は、追加のセキュリティ対策を検討してください。

インストール方法

前提条件

  • Claude Desktopがインストールされていること
  • uvパッケージマネージャーがインストールされていること
  • Gitがインストールされていること

詳細インストール手順

  1. uvパッケージマネージャーのインストール

uvパッケージマネージャーをインストールしていない場合は、以下のコマンドでインストールします:

# pipを使用してuvをインストール
pip install uv

# または、Homebrewを使用する場合(macOS)
brew install uv
  1. 仮想環境の作成とcodemcpのインストール

プロジェクト用のディレクトリを作成し、そこで仮想環境を設定します:

# プロジェクトディレクトリを作成
mkdir codemcp-setup
cd codemcp-setup

# 仮想環境を作成
uv venv

# 仮想環境をアクティブ化
# macOS/Linux:
source .venv/bin/activate
# Windows:
# .venv\Scripts\activate

# codemcpをインストール
uv pip install git+https://github.com/ezyang/codemcp
  1. codemcpコマンドのパスを確認

インストールが完了したら、codemcpコマンドラインツールのパスを確認します:

which codemcp

このコマンドは、codemcpの実行ファイルのパスを表示します(例:/Users/username/path/to/.venv/bin/codemcp)。このパスは次のステップで必要になります。

Claude Desktopの設定

  1. 設定ファイルの場所を確認

Claude Desktopの設定ファイルは通常、以下の場所にあります:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Windows: %APPDATA%\Claude\claude_desktop_config.json
  1. 設定ファイルの編集

テキストエディタで設定ファイルを開きます:

# macOSの場合
open -a TextEdit ~/Library/Application\ Support/Claude/claude_desktop_config.json

# または任意のエディタで
code ~/Library/Application\ Support/Claude/claude_desktop_config.json
  1. MCPサーバー設定の追加

設定ファイルに以下のエントリを追加します(commandの値を実際のcodemcpのパスに置き換えてください):

{
    "mcpServers": {
        "codemcp": {
            "command": "/Users/username/path/to/.venv/bin/codemcp",
            "args": []
        }
    }
}

既に他のMCPサーバーが設定されている場合は、mcpServersオブジェクト内に新しいエントリとして追加してください。

プロジェクトの設定

codemcpを使うにはいくつか設定が必要なので、以下に解説します。

  1. codemcp.tomlファイルの作成

作業したいGitリポジトリのルートディレクトリにcodemcp.tomlファイルを作成します:

cd /path/to/your/git/repo
touch codemcp.toml
  1. 設定ファイルの編集

codemcp.tomlファイルに以下の内容を追加します:

project_prompt = """
このプロジェクトに関する説明や指示をここに記述します。
例:これはPythonで書かれたWebアプリケーションです。
コードの品質を保ちながら機能を拡張してください。
"""

[commands]
format = ["./run_format.sh"]
test = ["./run_test.sh"]

formattestコマンドは、フォーマッターやテストを実行するためのスクリプトへのパスです。プロジェクトに合わせて変更してください。

  1. フォーマットとテストスクリプトの作成

必要に応じて、フォーマットやテストを実行するためのスクリプトを作成します:

# フォーマットスクリプトの例(Python用)
echo '#!/bin/bash
black .
isort .
' > run_format.sh

# テストスクリプトの例
echo '#!/bin/bash
pytest
' > run_test.sh

# スクリプトを実行可能にする
chmod +x ./run_format.sh ./run_test.sh

トラブルシューティング

よくある問題と解決策

  1. codemcpが初期化されない

問題: Claude Desktopで「Initialize codemcp with ...」と入力しても反応がない

解決策:

  • Claude Desktopを再起動する
  • 設定ファイルのパスが正しいか確認する
  • ターミナルでcodemcpコマンドが実行できるか確認する
  1. ファイル編集が反映されない

問題: Claudeがファイル編集を行ったと言っているが、実際のファイルに変更が反映されていない

解決策:

  • 正しいプロジェクトパスを指定しているか確認する
  • ファイルの権限を確認する
  • Gitリポジトリの状態を確認する(コンフリクトがないか)
  1. コマンド実行エラー

問題: format/testコマンドの実行時にエラーが発生する

解決策:

  • スクリプトの実行権限を確認する
  • スクリプト内のコマンドが正しいか確認する
  • 依存関係がインストールされているか確認する

Claude Desktopでの使用方法

  1. Claude Desktopを開きます。

  2. 新しいプロジェクトを作成し、プロジェクト指示に以下を追加します:

Initialize codemcp with プロジェクトのパス

「プロジェクトのパス」は、作業したいプロジェクトのディレクトリパスに置き換えてください。

  1. Claudeとチャットを開始し、プロジェクトに加えたい変更について話し合います。codemcpがコードに変更を加えるたびに、コミットが生成されます。

実際に使ってみて

僕はすでにいくつかのプロジェクトで使いましたが、今のところかなり満足しています。
設定がややこしいですが、それさえ終わればClaude Desktopで指示するだけでファイルを編集してくれます。

codemcpを使うメリットとしては:

  1. シームレスな対話: ファイル内容の確認からコード編集、テスト実行までをチャット内で完結
  2. コンテキスト維持: プロジェクト全体の構造を理解した状態で対話が続く
  3. 即時フィードバック: 変更後すぐにテストを実行し結果を確認できる

デメリットとしては、サーバーの接続が悪いと動かないことと、Cursorのエージェントなどと比べると一度に処理できるコンテキストが少ない(あくまで体感)ということです。

僕の場合だと、最近はObsidianを管理しているファイルにcodemcpを導入し、Claude Desktopから直接ファイルを編集できるようにしました。
複数のファイルをまとめてレビューしてもらって別ファイルに出力したり、今回みたいに新しいGitHubリポジトリを見つけた際に内容を確認してもらっています。

制限事項と注意点

codemcpを使用する際の制限事項や注意点は以下です:

  1. Claude Proサブスクリプションが必要: プロジェクト機能を使用しないといけないので、月額$20のサブスクリプションが必要です。
  2. 非公式ツール: Anthropicの公式サポートはなく、将来的な互換性は保証されていません。
  3. セットアップの手間: 初期設定に技術的な知識が必要です。
  4. 大規模プロジェクトでのパフォーマンス: 非常に大きなプロジェクトでは動作が遅くなる可能性があります。僕はあくまで個人ベースで使っているので、大きなプロジェクトではどのように動作するのか分かりません。

まとめ

codemcpを使えば、Claude Desktopからファイルが編集できるので、API料金を気にせずにClaude 3.7を使えるのが非常に魅力的です。
僕が開発する際は、基本CursorやCline(もしくはRoo Code)を使いますが、API料金やレート制限が気になった時は、codemcpを使ってコーディングするようにしています。

セキュリティ面でも特に問題はなさそうですし、普通に使えると思います。
質問があったらいつでも聞いてください!

自己紹介

お前誰だ?って思った人のために、最後に自己紹介だけしておきます。
私は社会人をしていますが、現在はアメリカに留学中です。
コンピューターサイエンスを専門とはしていないのですが、AIに夢中になり、今は勉強そっちのけでAIばかり触っています。

CursorやCline (Roo Code)、その他いろいろなAIに助けてもらいながら、いろいろ勉強しています。
ずっと趣味でプログラミングをやっていましたが製品やサービスを作れるまでには至らず挫折していました。
今は、困ったらAIが助けてくれるので最高です!

エンジニアの知り合いを増やしたいと思っているので、AI駆動開発について話し合えるコミュニティを作りたいと考えています。
これからもどんどん記事を投稿していきます!

1

Discussion

ログインするとコメントできます