Source Tree

Integrates with
Claude for Desktop

MCP Source Tree Server

指定されたディレクトリ配下のファイルツリーを生成するMCPサーバーです。 .で始まるディレクトリや.gitignore に記載された条件に従って、特定のファイルやディレクトリを除外します。 Claudeに組み込むことで、Claudeがプロジェクトの構造を素早く確認でき、Claudeが編集すべきファイルを特定するのに役立ちます。

機能

  • 指定されたディレクトリ配下のファイルツリーをJSON形式で取得
  • .gitignore の条件に従ってファイル/ディレクトリを除外
  • ディレクトリ構造を階層的なJSONで表現

セットアップ

必要条件

  • Python 3.10以上
  • uv

インストール

## uvのインストール
$ curl -LsSf https://astral.sh/uv/install.sh | sh

$ cd /path/to/mcp-src-tree
## ライブラリのインストール
$ uv sync

Claude for Desktopでの設定

claude_desktop_config.json に以下の設定を追加してください:

{
    "mcpServers": {
        "src-tree": {
            "command": "uv",
            "args": [
                "--directory",
                "/path/to/mcp-src-tree",  # このプロジェクトディレクトリの絶対パスに書き換えてください
                "run",
                "tree.py"
            ]
        }
    }
}

Claudeでの使用例

指示するのはsrcの一つ上のルートディレクトリを指定してください。 .gitignore を考慮する場合、ルートディレクトリ直下に .gitignore が存在することが前提です。 /Users/xxx/GitHub/xxx/ のソースツリーを確認してください のように指示すると動作します

以下のように応答します

はい、ソースツリーを確認させていただきます。
プロジェクトの構造を確認しました。以下のような構成になっています:
src/
└── xxxx/
    ├── __init__.py
    ├── converter.py
    ├── html_converter.py
    ├── image_processor.py
    ├── toc_analyzer.py
    └── utils.py

これにより、Claudeが素早くプロジェクトの構造を確認できます。

ファイル除外

.で始まるディレクトリは自動的に除外されます。 .gitignore に記載されているパターンに合致するファイルやディレクトリは、ツリーから自動的に除外されます。 例えば、以下のような .gitignore の設定が有効です:

__pycache__/
node_modules/
*.log