ABCoder MCP
Parses repositories into UniAST trees and gives agents MCP tools for finding functions, dependencies and code references
- 389 ★ on the repository
- Last commit
- Apache-2.0
Broad access
Why this level
- Automatic setup rewrites the global Claude Code configuration; this card provides a manual connection recipe
- During parsing it tries to install dependencies and language servers automatically
- Reads project sources and third-party libraries you submit for parsing
Install
- Works in
Manual install
go install github.com/cloudwego/abcoder@latestBuilding requires Go 1.23.4 or later.
Access and checks
How we reviewBroad accessThe tool can change data, run commands or handle secrets.
- Automatic setup rewrites the global Claude Code configuration; this card provides a manual connection recipe
- During parsing it tries to install dependencies and language servers automatically
- Reads project sources and third-party libraries you submit for parsing
This is third-party code. Review the repository files before installing.
What it does
ABCoder exposes source code structure to an agent through a local MCP server. It first parses a repository into UniAST, a common syntax-tree representation, and saves the result as JSON. The server reads a directory of these files to answer code queries. The agent starts with the repository list, chooses a package and file, then requests a specific node with its dependencies and references. This lets it gather context for one function without reading the whole project sequentially. Trees for third-party libraries can live in the same directory. Parsing supports Go, Rust, C, Python, JS/TS and Java. Reverse conversion has narrower coverage: source generation from UniAST is implemented for Go. Developers can also use the tree format and parsers in their own agent tools.
Who it is for. For developers who need to give an agent the structure of a large repository and links between functions before changing code.
Good fit when
- The repository is large and the agent must find functions, their dependencies and references through the tree without paging through files
- You need a local repository index and control how retrieved snippets reach the model through your agent settings
- Before changing a shared function, you need to identify the parts of the project that depend on it
- You want to parse third-party libraries together with project code and read their nodes with the same tool
- You build your own AI-programming tool and need code parsed into UniAST with parse
Not a fit when
- The project's language is outside the list: Go, Rust, C, Python, JS/TS and Java are supported
- You need code written back: the generator from UniAST to code works only for Go so far
- You need a quick install without Go: the binary is built with go install
- The task is small and reading a few files is enough for the agent
Example request
Use ABCoder to locate the authorization check and show its dependencies and references before editing it.MCP
- Transport
- stdio
- Authentication
- not required
Limitations
Building requires Go 1.23.4 or later. Parsers may install dependencies and language servers automatically. Parsing and tree storage are local, but the chosen agent receives MCP results, so code snippets can reach its model provider. The separate experimental agent mode requires model API configuration.
Skip `abcoder init-spec`: static inspection shows that it rewrites the global `~/.claude.json` file and can discard unrelated settings, including fields on other servers. Use the manual connection recipe in the installation section.
How to disable. Remove only the abcoder entry from your MCP client configuration. Tree files remain in the directory chosen during parsing and can be removed separately. With the default Go configuration, the binary is in the bin subdirectory of the path returned by `go env GOPATH`.
FAQ
How do I connect ABCoder to Claude Code?
Install the CLI and parse the repository first. Then add an MCP entry using abcoder with mcp and your tree directory as arguments. Merge the JSON from the installation section into your existing configuration.
Do I need to parse again after editing code?
Yes. MCP reads a saved tree snapshot. Parse the affected repository again and update its JSON in the server directory so the agent can see the changes.
Which languages are supported?
Parsing covers Go, Rust, C, Python, JS/TS and Java. Writing a tree back to code works for Go, and other languages are planned.
Does the code leave my machine?
The index needs no separate ABCoder cloud service. The client still passes retrieved nodes into the model context. Whether the full workflow stays local depends on your model and client.
Which MCP tools does the agent see?
A chain of five steps: list_repos, get_repo_structure, get_package_structure, get_file_structure and get_ast_node. Each step narrows the previous one, from the list of repositories to the dependencies and references of a specific node.
Discussion
No questions or reviews yet.
Related
MCP serversAn MCP server and CLI for code research: search and understand your project and all of GitHub with fewer tokens
A Rust coding agent with a native GUI, a terminal mode, an ACP mode for Zed and an MCP server
A local MCP server with call graphs and symbol search: the agent sees code structure and what an edit affects in advance.
An MCP server that indexes code with tree-sitter and returns individual functions and classes to the agent instead of whole files
A local codebase index for agents: hybrid search, dependency graphs and change impact analysis
An MCP server that turns a large codebase into a semantic feature graph for precise navigation and meaning-based search
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| ABCoder (this card) | no | not required | 389 | |
| Codanna | no | not required | 761 | a local MCP server and CLI with semantic search and call graphs, with no tree specification of its own |
| Serena | no | not required | 31,335 | gives the agent IDE powers through language servers as it works, with no upfront parse |
| CodeGraph | no | not required | 77,481 | a local code graph with entry points and change impact, with no design slash commands |
README in short
The CloudWeGo project uses the Apache 2.0 license. The repository also includes task-planning instructions for Claude Code and a separate experimental agent mode.