Sandbox
@micl2e2/code-to-tree

MCP server for source code to AST conversion

code-to-tree is a standalone MCP server that converts source files into abstract syntax trees. It uses tree-sitter so builders can ask an agent to inspect code structure in C, C++, Rust, Ruby, Go, Java, and Python without adding a separate runtime.

87 stars12 forksCUpdated 6mo ago
Who it's for

Builders who want Claude or another MCP client to read code as ASTs.

What it delivers

You can give your agent structured syntax data instead of raw source text.

What it does

AST conversion over MCP

Exposes code-to-tree as an MCP server so a client can request AST output from source files.

Tree-sitter language support

Uses tree-sitter parsers for C, C++, Rust, Ruby, Go, Java, and Python.

Standalone binary

The server is built to run as one executable with minimal software dependencies on the host machine.

Claude client setup

Shows how to register the binary in Claude desktop config on Windows and macOS.

How to get it

  1. 1In your Claude configuration…
    {
        "mcpServers": {
    	    "code-to-tree": { "command": "C:\\path\\to\\code-to-tree.exe" }
        }
    }
  2. 2In your Claude configuration, (~/Library/Application…
    {
        "mcpServers": {
    	    "code-to-tree": { "command": "/path/to/code-to-tree" }
        }
    }
  3. 3Install mcpc
    git clone https://github.com/micl2e2/mcpc
    cd mcpc && make install
  4. 4Install mcpc
    git clone https://github.com/micl2e2/mcpc
    cd mcpc && make install

README

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)

code-to-tree MCP server

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

Files in the repo

Repository payload15 top-level entries
  • .github
  • .gitignore
  • chathistory.png
  • code-to-tree.c
  • LICENSE
  • Makefile
  • q.md
  • README.md
  • README.org
  • toolcall-1.json
  • toolcall-2.json
  • toolcall-3.json
  • toolslist.json
  • ts1.patch
  • wholeast.png

Discussion (0)

Ask about usage, or say what you built with it

Sign in to join the discussion.

No comments yet. Be the first to say what this is good for.

More connectors

High-performance code intelligence MCP server. Indexes codebases into a persistent knowledge graph — average repo in milliseconds. 158 languages, sub-ms queries, 99% fewer tokens. Single static binary, zero dependencies.

43k

Universal provider proxy for OpenAI Codex & Claude Code — use any LLM (Claude, Gemini, Grok, DeepSeek, Ollama…) with Codex CLI, App, SDK, and Claude Code

14k
okf-memory/
okf-agent-memory

Git-native persistent memory for AI coding agents. Implements Google OKF v0.2 with sub-300µs in-memory BM25 search, embedded MCP server, and progressive disclosure. Slashes token bloat by 80% with zero external databases or dependencies. Built in pure Go.

547
tirth8205/
code-review-graph

Local-first code intelligence graph for MCP and CLI. Builds a persistent map of your codebase so AI coding tools read only what matters, with benchmarked context reductions on reviews and large-repo workflows.

31k
2akouwu/
reverify

Stop your AI from making things up — it proposes, deterministic tools decide, every claim checked against ground truth with evidence. Grounded facts and context survive resets. Reverse engineering is the proving ground. MCP server + CLI.

1.1k
t8y2/dbxConnectors

20 MB lightweight cross-platform database client for 90+ databases, including MySQL, PostgreSQL, SQLite, Redis, MongoDB, DuckDB, SQL Server, and Dameng. Built-in AI, MCP Server, CLI, desktop and Docker. | 轻量级跨平台数据库管理工具,支持 MySQL、PostgreSQL、SQLite、Redis、MongoDB、达梦等 90+ 数据库,提供桌面端、Docker、CLI、内置 AI 助手和 MCP Server。

19k