code-to-tree
A runtime-free MCP server that converts source code into AST🌲, regardless of language.
Documentation
Table of Contents
- MCP Server: code-to-tree
- Using code-to-tree
- Configure MCP Clients
- Building (Windows)
- Building (macOS)
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
Expose your FastAPI endpoints as Model Context Protocol (MCP) tools, with Auth! Python-based implementation. Trusted by 11000+ developers.
An official Qdrant Model Context Protocol (MCP) server implementation Python-based implementation. Trusted by 1000+ developers.
A Unified MCP Server Management App TypeScript-based implementation. Trusted by 800+ developers. Trusted by 800+ developers.
Shell and coding agent on claude desktop app for the Model Context Protocol. Enhance AI assistants with powerful integrations. Python-based implementation.
MCP Server for SearXNG TypeScript-based implementation.
FastGPT is a knowledge-based platform built on the LLMs, offers a comprehensive suite of out-of-the-box capabilities such as data processing, RAG retrieval, ...
Run your own MCP server? See who uses it and what to fix.
Measure it with TrackMCP