Back to Directory/Developer Tools

io.github.Jhackman2019/codebase-context-mcp

Codebase indexing and search via WASM tree-sitter. Works on ARM64 and x86_64.

Developer ToolsTypeScriptv1.0.1

codebase-context-mcp

MCP server for codebase indexing and search that works on every platform — including ARM64 devices like Raspberry Pi and Apple Silicon where most alternatives fail.

The Problem

Popular codebase-indexing MCP servers like @zilliz/claude-context-mcp depend on native C++ bindings (tree-sitter, faiss-node) that ship pre-built binaries only for x86_64. If you're on ARM64 — a Raspberry Pi, Apple Silicon Mac, AWS Graviton, or any other arm64 host — npm install fails with missing prebuilts and no fallback. There's no workaround short of cross-compiling the native modules yourself.

The Solution

This package replaces every native dependency with a WASM equivalent. The tree-sitter parser runs as WebAssembly, search uses a pure-JS BM25 implementation, and the index is stored as plain JSON. Zero native bindings means npm install succeeds on the first try on any architecture: ARM64, x86_64, macOS, Linux, Windows.

Drop-in compatible — provides the same core tools (index, search, outline, summary) via the standard MCP stdio transport.

Tools

ToolDescription
index_codebaseParse a directory into symbols/chunks, cache as JSON
search_symbolsFind functions, classes, types by name or pattern
search_codeBM25 full-text search across indexed files
get_file_outlineFile structure: functions, classes, imports, exports with line numbers
get_project_summaryTech stack, file counts by language, directory structure

Supported Languages

TypeScript, TSX, JavaScript, Python, C#, VB.NET, XML, CSS, JSON

Install

Claude Code (recommended)

claude mcp add codebase-context -s user -- npx codebase-context-mcp

Or from a local clone:

git clone https://github.com/Jhackman2019/codebase-context-mcp.git
cd codebase-context-mcp
npm install && npm run build
claude mcp add codebase-context -s user -- node /path/to/codebase-context-mcp/dist/index.js

MCP Settings (JSON)

{
  "mcpServers": {
    "codebase-context": {
      "command": "npx",
      "args": ["codebase-context-mcp"]
    }
  }
}

How It Works

  • Parsing: web-tree-sitter (WASM) — same AST quality as native tree-sitter, runs on any architecture
  • Search: BM25 text ranking (pure JS) + symbol name matching
  • Storage: JSON file index at ~/.codebase-context-mcp/<project-hash>.json
  • Transport: MCP stdio via @modelcontextprotocol/sdk
  • Incremental: Files with unchanged content hash are skipped on re-index

Safety Limits

LimitValue
Max files20,000
Max file size512KB
Default ignoresnode_modules, .git, dist, build, .venv, binaries, lock files
.gitignoreRespected (root level)

Development

npm install
npm run build    # Build with tsup
npm run dev      # Watch mode
npm start        # Run the server

License

MIT

Installation

Source-derived launch command. Check the maintainer’s required arguments and credentials before running:

bash
npx -y codebase-context-mcp

Set up in your AI client

Merge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.

json
{
  "mcpServers": {
    "io-github-jhackman2019-codebase-context-mcp": {
      "command": "npx",
      "args": [
        "-y",
        "codebase-context-mcp"
      ]
    }
  }
}

Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.

Claude Desktop setup reference

Package

codebase-context-mcpnpm

Compatible MCP Clients

io.github.Jhackman2019/codebase-context-mcp works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.

  • Claude Desktop~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.
  • Cursor~/.cursor/mcp.jsonRestart Cursor for changes to take effect.
  • VS Code.vscode/mcp.jsonReload VS Code window for changes to take effect.
  • Windsurf~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect.
  • Claude Code.mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.

Learn More