Skip to content

Releases: johnhuang316/code-index-mcp

Release v2.8.0

05 Nov 08:38

Choose a tag to compare

Highlights

  • feat: add Go docstring extraction
  • fix: harden Go import parsing and async discovery
  • ci: reworked release workflow with verification/publish stages
  • tests: expanded Go/Python discovery coverage

Verification

  • uv run pytest
  • uv run code-index-mcp --help
  • uv run python -m build
  • uv run twine check dist/*

Release v2.7.0

30 Oct 06:39

Choose a tag to compare

  • Added pagination defaults to search_code_advanced (10 matches per page) with max_results/start_index controls.

Full Changelog: v2.6.0...v2.7.0

Release v2.6.0

29 Oct 08:36

Choose a tag to compare

Highlights

  • Added --project-path CLI flag so the server can initialize a repository immediately on startup.
  • CLI docs updated across all supported languages to document the new startup flag.
  • Server now guards optional --mount-path usage for older FastMCP versions that do not support it.

Notes

  • Supplying an invalid path with --project-path causes startup to fail fast with a clear error.

2.5.1 - Relative Symbol IDs

29 Oct 06:00

Choose a tag to compare

  • Deep index symbol identifiers now use project-relative paths, preventing SQLite uniqueness collisions during rebuilds.
  • Added regression coverage to ensure duplicate filenames across directories generate distinct symbol IDs.
  • Release notes migrated to Markdown for easier editing.

Full Changelog: v2.5.0...v2.5.1

2.5.0 - SQLite Deep Index & Middleware Coverage

28 Oct 03:44

Choose a tag to compare

Highlights

  • Deep index now persists to SQLite via the new SQLiteIndexStore, replacing the legacy JSON cache while keeping build performance stable.
  • JavaScript strategy records middleware callbacks in the call graph, giving accurate called_by links for Express-style handlers.
  • TypeScript strategy captures limiter callbacks, closing gaps for .ts middleware exports and aligning coverage with JavaScript.
  • Added dedicated regression tests for the SQLite store/manager plus JavaScript and TypeScript call graph fixtures.

Full Changelog: v2.4.1...v2.5.0

2.4.1 - Search Filtering Alignment

03 Oct 02:32

Choose a tag to compare

  • Code search now shares the central FileFilter blacklist, keeping results consistent with indexing (no more node_modules noise).
  • CLI search strategies emit the appropriate exclusion flags automatically (ripgrep, ugrep, ag, grep).
  • Basic fallback search prunes excluded directories during traversal, avoiding unnecessary IO.
  • Added regression coverage for the new filtering behaviour (tests/search/test_search_filters.py).

Full Changelog: v2.4.0...v2.4.1

Shallow Index Default & Streamlined Server

02 Oct 02:51

Choose a tag to compare

Highlights

  • Shallow index by default: Projects initialize with the new JSON-based shallow index for rapid file discovery.
  • Deep index on demand: Added the build_deep_index tool so symbol extraction happens only when you request it.
  • Watcher-friendly rebuilds: File watcher callbacks now refresh the shallow index, keeping file lists current without long rebuilds.
  • Server cleanup: Removed unused structure://project resource, legacy prompts, and auxiliary documents for a leaner runtime.

Developer Experience Improvements

  • find_files now enforces true glob semantics (single * for one segment, ** for recursive matches).
  • get_file_summary responds with a needs_deep_index hint when deep symbols are unavailable.
  • Index management services split shallow vs deep rebuild paths to clarify tool behavior.
  • Repository docs (README, localized copies) highlight when to run build_deep_index.

Cleanups

  • Removed deprecated architecture and benchmarking documents.
  • Trimmed benchmark scripts and outdated tests tied to the old SCIP experiment.

Upgrade Notes

  1. After updating, call set_project_path as usual - the server will build the shallow index automatically.
  2. Run build_deep_index whenever you need symbol-level summaries (get_file_summary) or deep search capabilities.
  3. Optionally run refresh_index to refresh the shallow index if the watcher is disabled.

Compatibility

  • Tool names and signatures are unchanged.
  • Deep-index workflows remain available; they now require an explicit build_deep_index call.
  • Python 3.10+ requirement unchanged; no new third-party dependencies.

Enjoy faster cold starts and a simpler interface tailored for LLM-driven workflows.

v2.3.2 - ugrep Search Improvements

15 Sep 05:03

Choose a tag to compare

🔧 Bug Fixes

ugrep Search Tool Improvements

  • Fixed recursive search: Added flag to enable searching in subdirectories
  • Fixed path handling: Corrected relative path processing for consistent results across all search tools
  • Improved file patterns: Changed from to for better glob filtering

Impact

  • ugrep now behaves consistently with other search tools (ripgrep, ag, grep)
  • Eliminates incorrect path conversion errors when processing search results
  • Ensures complete subdirectory coverage during code searches

Technical Details

This release resolves critical integration issues where:

  1. ugrep wasn't searching subdirectories due to missing recursion flag
  2. Relative paths from ugrep output were incorrectly processed by os.path.relpath()

Both fixes are essential for proper ugrep functionality and maintain backward compatibility with existing search implementations.


Full Changelog: v2.3.1...v2.3.2

v2.3.1

11 Sep 09:20

Choose a tag to compare

Full Changelog: v2.3.0...v2.3.1

Release v2.3.0

11 Sep 03:08

Choose a tag to compare

Major Performance Optimizations

This release includes performance optimizations to the code indexing engine.

Performance Improvements

Python Strategy Optimization

  • Reduced from 3 separate AST traversals to 1 single-pass visitor

Java Strategy Optimization

  • Merged double tree-sitter traversals into single unified pass

TypeScript Strategy Optimization

  • Consolidated double traversals into single optimized pass

System-Level Parallelization

  • Implemented ThreadPoolExecutor for concurrent file processing
  • Automatic worker count optimization based on CPU cores
  • Thread-safe strategy sharing for memory efficiency

Algorithm Optimization

  • Replaced O(n²) symbol lookups with O(1) hash table operations
  • Eliminated quadratic complexity in call relationship analysis

Bug Fixes

Java Method Call Analysis

  • Improved accuracy of method call detection and relationships
  • Fixed false positives in method name matching
  • Enhanced support for obj.method() call patterns

Cross-Platform Search Support

  • Added support for Linux/Unix grep context line formats
  • Fixed grep parsing issues on different operating systems
  • Improved handling of absolute and relative paths

Search Configuration

  • Changed max_line_length default from 200 to None for backward compatibility
  • Preserved existing behavior for users who don't set explicit limits
  • Added comprehensive parameter validation

Improvements

  • Reduced computational complexity in parsing strategies
  • Parallel processing for faster indexing of large codebases
  • Optimized symbol lookup algorithms

What's Changed

  • Single-pass AST/tree-sitter parsing across all optimized strategies
  • Parallel file processing with configurable worker pools
  • Hash table-based symbol lookup indexes
  • Maintained full backward compatibility

Technical Details

  • All strategies are thread-safe and support parallel execution
  • Strategy instances remain shared and stateless for memory efficiency
  • File watcher integration uses optimized rebuilds automatically
  • No configuration changes required - improvements are transparent

Deployment

Automatic Benefits:

  • Performance improvements work immediately after update
  • Existing installations benefit without configuration changes
  • File monitoring automatically uses optimized indexing

Recommended:

  • Restart MCP server after upgrade
  • Optionally run refresh_index() for immediate optimization

Compatibility

  • All existing MCP tool interfaces unchanged
  • Existing project configurations work without modification
  • No new external dependencies required
  • Python 3.10+ requirement maintained

This release transforms code-index-mcp into a high-performance solution suitable for enterprise-scale codebases.