Skip to main content

Universal code-indexer MCP server for AI coding agents

Project description

SymDex

Universal code-indexer MCP server for AI coding agents — Claude, Codex, Gemini, Cursor, and any agent that speaks MCP.

The problem: Reading a full file to find one function costs ~7,500 tokens. SymDex pre-indexes your codebase once, then returns precise byte-offset locations. The same lookup costs ~200 tokens — a 97% reduction.

Installation

pip install symdex

Quickstart

1. Index a project

symdex index ./myproject --name myproject

2. Search for a symbol

symdex search "validate email"

3. Start the MCP server

symdex serve          # stdio mode (for local agents)
symdex serve --port 8080  # HTTP mode

MCP Tool Reference

Tool Description
index_folder Index a local folder (run once per session)
search_symbols Find function/class by name (~200 tokens)
get_symbol Get one function's full source by byte offset
get_file_outline All symbols in a file, no full content
get_repo_outline Directory structure + symbol stats
search_text Text search, returns matching lines only
get_file_tree Directory tree without content
list_repos List all indexed repos
get_symbols Bulk symbol retrieval
index_repo Index a named repo
invalidate_cache Force re-index on next request
semantic_search Find symbols by meaning (embedding similarity)
get_callers Who calls this function
get_callees What this function calls

CLI Commands

symdex index ./myproject              # Index a folder
symdex search "validate email"        # Search symbols
symdex find MyClass                   # Exact name lookup
symdex outline myproject/module.py --repo myproject   # File outline
symdex text "TODO" --repo myproject   # Text search
symdex semantic "parse authentication token" --repo myproject  # Semantic search
symdex callers my_function --repo myproject   # Call graph: who calls this
symdex callees my_function --repo myproject   # Call graph: what this calls
symdex repos                          # List indexed repos
symdex serve                          # Start MCP server

Supported Languages

Python, JavaScript, TypeScript, Go, Rust, Java, PHP, C#, C, C++, Elixir, Ruby (13 languages via tree-sitter)

Agent Configuration

Add to your agent's MCP config:

{
  "mcpServers": {
    "symdex": {
      "command": "symdex",
      "args": ["serve"]
    }
  }
}

License

MIT — see LICENSE

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

symdex-0.1.0.tar.gz (19.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

symdex-0.1.0-py3-none-any.whl (23.4 kB view details)

Uploaded Python 3

File details

Details for the file symdex-0.1.0.tar.gz.

File metadata

  • Download URL: symdex-0.1.0.tar.gz
  • Upload date:
  • Size: 19.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for symdex-0.1.0.tar.gz
Algorithm Hash digest
SHA256 4826c852543fe10d5baee5d85487a6014bc96245723525a27d41b4a62bfdf4c9
MD5 6945d99078f9842b31bae9d438398934
BLAKE2b-256 d7b87fdeef3aea48a85669d3835ce774ff6fcadf21a292057572fb52d131c242

See more details on using hashes here.

File details

Details for the file symdex-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: symdex-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 23.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for symdex-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 49e890b0c7d85baa68b541d65ce14cf9e18c375146adfa250b454f13489f0cfe
MD5 5d50ca4835e8c879206da4ce45d1bccd
BLAKE2b-256 11428ca41a32d56d68a25ee0c559f7764415e7069dfdbe293528f46c462fc310

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page