Skip to main content
Glama
markgregg

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