Skip to main content
Glama

codexray πŸ”¦

X-ray vision for your codebase β€” a fast C++ symbol indexer exposed as an MCP server for AI coding agents.

CI License: MIT C++17 Python

Give your coding agent instant, whole-repo symbol awareness without running a language server:

$ codexray search conn --root ./myproject
  950   method      42  onConnect     src/net/server.cpp
  870   function    18  connect_db    src/db/pool.cpp

Why

AI agents working in large repos waste tokens grepping blindly or re-deriving structure. codexray answers the three questions agents ask most, in milliseconds:

  • "Where is this symbol?" β†’ fuzzy search_symbols

  • "What's in this file?" β†’ file_outline

  • "Where else is it used?" β†’ find_references

It speaks Model Context Protocol, so Claude Code, opencode, Cursor, Codex CLI, Windsurf and friends can use it as a tool β€” no plugins, no LSP server, no config soup.

Related MCP server: codemogger

Highlights

  • ⚑ C++17 core, zero external dependencies β€” single translation unit, ~1100 LOC

  • 🐍 Python interface via ctypes (no pybind11 build headaches)

  • πŸ”Œ MCP server out of the box (codexray-mcp)

  • 🧭 Fuzzy search: gret β†’ Greeter, onConnect; exact > prefix > substring > subsequence scoring

  • πŸ“š 5 languages today: C/C++, Python, JavaScript/TypeScript, Go, Rust

  • πŸ“– References index: every identifier occurrence, definitions flagged

  • πŸͺΆ No daemon, no database β€” an index is just memory; rebuild is cheap

Measured on a laptop (AMD Ryzen): 25,395 system headers Β· 6.5M lines Β· 364k symbols Β· 9.8M references indexed in ~29 s (~225k lines/s), fuzzy search over all symbols in <100 ms.

Quickstart

Requires: a C++ compiler (g++ or clang++) and Python β‰₯ 3.10.

git clone https://github.com/akashmark8-cloud/codexray && cd codexray
make                       # builds build/libcodexray.so
pip install -e ".[dev]"    # python package + mcp sdk

CLI

codexray stats  --root path/to/repo        # what got indexed
codexray search Widget --root path/to/repo # fuzzy symbol search
codexray outline src/main.rs               # file outline
codexray refs main                         # references (defs flagged *)
codexray serve --root path/to/repo         # run the MCP server (stdio)

Use it from your AI agent

Point any MCP client at codexray-mcp:

claude mcp add codexray -- codexray-mcp --root /path/to/your/project
{
  "mcp": {
    "codexray": {
      "type": "local",
      "command": ["codexray-mcp", "--root", "/path/to/your/project"]
    }
  }
}
{
  "mcpServers": {
    "codexray": {
      "command": "codexray-mcp",
      "args": ["--root", "/path/to/your/project"]
    }
  }
}

Tools exposed: index_repository, search_symbols, file_outline, find_references, get_index_stats.

Python API

from codexray import CodeIndex

idx = CodeIndex()
idx.add_tree("./myproject")

for hit in idx.search("connect", limit=5):
    print(hit["kind"], hit["name"], f'{hit["path"]}:{hit["line"]}')

print(idx.outline("src/server.cpp"))
print(idx.references("Server"))

How it works

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  your repo                 β”‚         β”‚  AI agent (Claude Code,      β”‚
β”‚  .cpp .py .ts .go .rs ...  β”‚         β”‚  opencode, Cursor, Codex…)   β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–²β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
              β”‚ os.walk + read                        β”‚ MCP (stdio)
β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚  C++ core (libcodexray)    │◀──ctypesβ”‚  Python layer                β”‚
β”‚  β€’ tokenizer (comments,    β”‚         β”‚  β€’ tree walker + excludes    β”‚
β”‚    strings, raw strings)   β”‚         β”‚  β€’ CodeIndex high-level API  β”‚
β”‚  β€’ heuristic def scanner   β”‚         β”‚  β€’ FastMCP-style tool server β”‚
β”‚  β€’ scope/end-line tracker  β”‚         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
β”‚  β€’ fuzzy scorer            β”‚
β”‚  β€’ JSON output             β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

One pass per file builds two indexes: a symbol table (name, kind, span, signature) and a reference map (identifier β†’ occurrences). Search scores candidates by exact / prefix / substring / word-boundary-subsequence match with gap penalties.

Project layout

src/cpp/codexray.h        C API (usable from any FFI-capable language)
src/cpp/codexray.cpp      the entire native core
src/codexray/_native.py   ctypes bindings
src/codexray/index.py     CodeIndex (tree walking, excludes, summaries)
src/codexray/server.py    MCP server (5 tools)
src/codexray/cli.py       command-line interface
tests/                    pytest suite
examples/demo/            polyglot sample project

Status & roadmap

This is a young project β€” the parser is intentionally heuristic (fast, dependency-free) rather than a full AST. It handles real-world code well but not everything. Known limitations:

  • Out-of-line C++ member definitions (void Widget::set(...)) are tagged function, not method

  • Macros can confuse brace matching; templates only partially understood

  • References are identifier-level, not resolved across scopes/overloads

  • No incremental re-index yet (index_repository rebuilds)

Ideas welcome β€” tree-sitter backends, watch-mode incremental updates, more languages, persisted indexes. Open an issue!

Development

make test          # build + pytest
python -m pytest tests/ -v

License

MIT Β© 2026 akashmark8-cloud

A
license - permissive license
Not graded
quality - not tested
C
maintenance

Maintenance

–Maintainers
–Response time
–Release cycle
–Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A minimalist indexing tool that provides AI agents with semantic search and structural AST parsing for deep codebase understanding. It enables autonomous agents to navigate large codebases predictably using vector embeddings and native language server capabilities like definition and reference tracking.
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local code indexing and search library that enables AI agents to perform semantic and keyword searches across codebases using tree-sitter and SQLite. It provides tools for indexing projects and finding precise code definitions without requiring external APIs, Docker, or server infrastructure.
    1,472
    338
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Provides IDE-like code navigation and search for local repositories, enabling AI assistants to perform symbol search, trigram indexing, and semantic navigation.
    AGPL 3.0
  • A
    license
    Not graded
    quality
    D
    maintenance
    Exposes type-aware code navigation and fast file search to AI agents via language servers, enabling definitions, references, symbols, and file lookup without reading entire codebases.
    3,520
    MIT

View all related MCP servers

Related MCP Connectors

  • Code intelligence for coding agents: semantic, AST, graph, and full-text search. 279+ languages.

  • Give your AI agent a persistent map of your project's structure, dependencies, and bugs.

  • Provide your AI coding tools with token-efficient access to up-to-date technical documentation for…

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/akashmark8-cloud/codexray'

If you have feedback or need assistance with the MCP directory API, please join our Discord server