code-tree-mcp
by markgregg
README.md
# code-tree-mcp
An MCP server in Node.js + TypeScript that indexes source code into a local code-tree database for:
- JavaScript / TypeScript
- Java
- Python
The server stores symbols and dependencies per file and exposes MCP tools to query the indexed tree.
## Features
- Incremental indexing based on file modification time
- Local persisted database in `.code-tree/code-tree.db`
- Symbol extraction for classes, interfaces, types, functions, and methods (language-dependent)
- Dependency extraction for imports/requires/packages
- MCP tools for indexing, listing tree data, symbol search, and dependency queries
## Install
```bash
npm install
```
## Build
```bash
npm run build
```
## Run
```bash
npm run start
```
For development:
```bash
npm run dev
```
## MCP Tools
The server exposes these tools:
- `index_codebase`
- Inputs:
- `workspacePath` (required, absolute path)
- `forceReindex` (optional boolean)
- `get_code_tree`
- Inputs:
- `workspacePath` (required)
- `pathPrefix` (optional, workspace-relative prefix)
- `limit` (optional)
- `get_file_symbols`
- Inputs:
- `workspacePath` (required)
- `filePath` (required, workspace-relative)
- `search_symbols`
- Inputs:
- `workspacePath` (required)
- `query` (required)
- `language` (optional: `javascript`, `typescript`, `java`, `python`)
- `nodeType` (optional: `module`, `class`, `interface`, `type`, `function`, `method`)
- `limit` (optional)
- `get_dependencies`
- Inputs:
- `workspacePath` (required)
- `filePath` (optional)
- `dependency` (optional)
- `limit` (optional)
## Example MCP Server Configuration
Use your MCP client configuration format to register:
```json
{
"mcpServers": {
"code-tree": {
"command": "node",
"args": ["/absolute/path/to/code-tree-mcp/dist/index.js"]
}
}
}
```
During active development, you can point to TS entry via `tsx`:
```json
{
"mcpServers": {
"code-tree": {
"command": "npx",
"args": ["tsx", "/absolute/path/to/code-tree-mcp/src/index.ts"]
}
}
}
```
## Notes
- This implementation uses robust regex-based parsing for broad compatibility.
- For deeper AST-level semantic analysis, the parser layer can be upgraded per language.TDQS
B3.4/5.0
Scored across 7 tools
Disambiguation5/5
Each tool targets a distinct aspect of codebase analysis: tree structure, dependencies, file symbols, index status, references, indexing, and symbol search. There is no functional overlap.
Naming Consistency5/5
All tools follow a consistent verb_noun pattern in snake_case (get_*, index_*, search_*), making the set predictable and easy to navigate.
Tool Count5/5
Seven tools is well-scoped for the domain of code indexing and querying. Each tool serves a clear purpose without excess or deficiency.
Completeness4/5
The set covers all fundamental operations: indexing, status, and various retrievals (tree, dependencies, symbols, references, search). A minor gap is the lack of an explicit tool to delete or reset the index, but this is not critical for typical usage.
Maintenance
ActivityInactive
ResponsivenessNo issues