MCP Source Tree Server

Gera uma representação JSON da árvore de arquivos fonte de um diretório, respeitando os padrões do .gitignore.

Documentação

MCP Source Tree Server

É um servidor MCP que gera a árvore de arquivos sob o diretório especificado. Exclui diretórios que começam com . e arquivos ou diretórios específicos de acordo com as condições descritas em .gitignore. Ao integrá-lo ao Claude, o Claude pode verificar rapidamente a estrutura do projeto, ajudando a identificar quais arquivos o Claude deve editar.

Source Tree Server MCP server

Funcionalidades

  • Obtém a árvore de arquivos sob o diretório especificado em formato JSON
  • Exclui arquivos/diretórios de acordo com as condições de .gitignore
  • Representa a estrutura de diretórios em JSON hierárquico

Configuração

Pré-requisitos

  • Python 3.10 ou superior
  • uv

Instalação

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

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

Configuração no Claude for Desktop

Adicione a seguinte configuração em claude_desktop_config.json:

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

Exemplo de uso com Claude

Ao dar instruções, especifique o diretório raiz um nível acima de src. Ao considerar .gitignore, presume-se que .gitignore exista diretamente sob o diretório raiz. Funciona quando você instrui da seguinte forma: /Users/xxx/GitHub/xxx/ のソースツリーを確認してください

Ele responde da seguinte forma:

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

Com isso, o Claude pode verificar rapidamente a estrutura do projeto.

Exclusão de arquivos

Diretórios que começam com . são excluídos automaticamente. Arquivos e diretórios que correspondem aos padrões descritos em .gitignore são excluídos automaticamente da árvore. Por exemplo, a seguinte configuração de .gitignore é válida:

__pycache__/
node_modules/
*.log