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
npm install
Build
npm run build
Run
npm run start
For development:
npm run dev
MCP Tools
The server exposes these tools:
index_codebase- Inputs:
workspacePath(required, absolute path)forceReindex(optional boolean)
- Inputs:
get_code_tree- Inputs:
workspacePath(required)pathPrefix(optional, workspace-relative prefix)limit(optional)
- Inputs:
get_file_symbols- Inputs:
workspacePath(required)filePath(required, workspace-relative)
- Inputs:
search_symbols- Inputs:
workspacePath(required)query(required)language(optional:javascript,typescript,java,python)nodeType(optional:module,class,interface,type,function,method)limit(optional)
- Inputs:
get_dependencies- Inputs:
workspacePath(required)filePath(optional)dependency(optional)limit(optional)
- Inputs:
Example MCP Server Configuration
Use your MCP client configuration format to register:
{
"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:
{
"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.