trackmcp
Back to directory
micl2e2

code-to-tree

View on GitHub

A runtime-free MCP server that converts source code into AST🌲, regardless of language.

60 stars CAI & Machine Learning Updated May 17, 2025
abstract-syntax-treeagenticastclaudedependency-freellmmcpmcp-servermcp-toolsno-runtime-dependenciesruntime-freesyntax-analysissyntax-treetree-sitter

Documentation

Table of Contents

MCP Server: code-to-tree

The code-to-tree server's goals are:

1. Give LLMs the capability of accurately converting source code into

AST(Abstract Syntax Tree), regardless of language.

2. One standalone binary should be everything the MCP client needs.

These goals imply:

1. The underlying syntax parser should be versatile enough. Here we

choose tree-sitter, and languages are: C, C++, Rust, Ruby, Go, Java, Python.

2. The server should be able to carry all capabilities within

itself, imposing minimum software dependencies on the end user's

machine. Here we choose mcpc.

Screenshots:

The above screenshots are obtained by asking the question specified

in `q.md`.

(IMPORTANT NOTE: LLMs have no responsibility of generating the identical

result for the same question, you will likely get a completely different

style or content. The screenshots or questions provided here are just for the reference)

Using code-to-tree

Before everthing, you need to have the code-to-tree executable on your

machine (`code-to-tree.exe` for Windows, `code-to-tree` for macOS),

you can download at GitHub release page or build it yourself. Once

downloaded, you configure your MCP clients to install it, check the section

*"Configure MCP Clients"* for more details.

Configure MCP Clients

Here we use Claude as the example.

Windows

In your Claude configuration

(`C:\Users\YOUR_NAME\AppData\Roaming\Claude\claude_desktop_config.json`),

specify the location of `code-to-tree.exe`:

{

"mcpServers": {

"code-to-tree": { "command": "C:\\path\\to\\code-to-tree.exe" }

}

}

macOS

In your Claude configuration,

(`~/Library/Application Support/Claude/claude_desktop_config.json`)

specify the location of `code-to-tree`

{

"mcpServers": {

"code-to-tree": { "command": "/path/to/code-to-tree" }

}

}

Building (Windows)

1. Prepare environment

1. download & install MSYS2.

2. open application "MSYS2 MINGW64"

3. run `pacman -S make gcc git`

2. Prepare tree-sitter libraries

Here we need to compile and install tree-sitter and all related grammars.

Clone them:

git clone https://github.com/tree-sitter/tree-sitter

git clone https://github.com/tree-sitter/tree-sitter-c

git clone https://github.com/tree-sitter/tree-sitter-cpp

git clone https://github.com/tree-sitter/tree-sitter-rust

git clone https://github.com/tree-sitter/tree-sitter-ruby

git clone https://github.com/tree-sitter/tree-sitter-go

git clone https://github.com/tree-sitter/tree-sitter-java

Compile and install them:

cd tree-sitter && OS=1 make install

cd tree-sitter-c && OS=1 make install

cd tree-sitter-cpp && OS=1 make install

cd tree-sitter-rust && OS=1 make install

cd tree-sitter-ruby && OS=1 make install

cd tree-sitter-go && OS=1 make install

cd tree-sitter-java && OS=1 make install

3. Build code-to-tree

Install mcpc:

git clone https://github.com/micl2e2/mcpc

cd mcpc && make install

Compile code-to-tree:

cd mcpc/example/code-to-tree

CFLAGS="-I/usr/local/include -L/usr/local/lib" make

# Check the binary

file code-to-tree.exe

# Remember the binary's location

pwd

# Assume the output is: /c/path/to/code-to-tree.exe

Building (macOS)

1. Prepare environment

1. Xcode Command Line Tools

2. Prepare tree-sitter libraries

Here we need to compile and install tree-sitter and all related grammars.

Clone them:

git clone https://github.com/tree-sitter/tree-sitter

git clone https://github.com/tree-sitter/tree-sitter-c

git clone https://github.com/tree-sitter/tree-sitter-cpp

git clone https://github.com/tree-sitter/tree-sitter-rust

git clone https://github.com/tree-sitter/tree-sitter-ruby

git clone https://github.com/tree-sitter/tree-sitter-go

git clone https://github.com/tree-sitter/tree-sitter-java

Compile and install them:

cd tree-sitter && make install

cd tree-sitter-c && make install

cd tree-sitter-cpp && make install

cd tree-sitter-rust && make install

cd tree-sitter-ruby && make install

cd tree-sitter-go && make install

cd tree-sitter-java && make install

3. Build code-to-tree

Install mcpc:

git clone https://github.com/micl2e2/mcpc

cd mcpc && make install

Compile code-to-tree:

cd mcpc/example/code-to-tree

make

# Check the binary

file ./code-to-tree

# Remember the binary's location

pwd

# Assume the output is: /path/to/code-to-tree

Frequently asked questions

What is code-to-tree?

code-to-tree is A runtime-free MCP server that converts source code into AST🌲, regardless of language.

How do I install code-to-tree?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is code-to-tree open source?

Yes — it is hosted on GitHub at https://github.com/micl2e2/code-to-tree and has 60 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP