Repository navigation
Releases: itseasy21/mcp-codebase-index
Release list
v0.4.0
Minor Changes
-
b4a6844: Enhanced Codebase Indexing and Search Capabilities
This release brings significant improvements to code parsing, indexing quality, and search performance.
Intelligent Indexing Improvements
- Chunk Quality Filtering: Automatically filters out 20-40% of low-quality code chunks (closing tags, empty sections, boilerplate) before indexing, improving search relevance
- Embedding Enrichment: Adds contextual metadata (file path, type, name, parameters) to code embeddings for better semantic understanding
- Advanced Path Optimization: Implements path segment decomposition for 6.7x faster directory-scoped searches
- HNSW Tuning: Optimized vector search parameters (m=64, ef_construct=512, hnsw_ef=128) for 30-40% better recall
Enhanced Language Support
- Java Extractor: Full support for classes, interfaces, enums, methods, constructors, and fields with modifiers, generics, and exceptions
- Go Extractor: Comprehensive extraction of functions, methods, structs, interfaces, type aliases, and exported symbols
- Kotlin & Swift: Added language registry support for .kt, .kts, and .swift files
TypeScript/JavaScript Parser Enhancements
- Test Framework Detection: Extracts test blocks (describe, it, test, beforeEach, afterEach, etc.) with descriptions for better test suite indexing
- Namespace/Module Extraction: Proper extraction of TypeScript namespace and module declarations
- Interface Method Signatures: Extracts individual methods from interfaces for granular API documentation
- Public Field Extraction: Captures class properties with visibility, static, and readonly modifiers
- JSX Filtering: Intelligently filters pure JSX markup while preserving components with event handlers, hooks, or conditional logic
- Enhanced Method Detection: Identifies constructors, getters, setters, and abstract methods with rich metadata
- Abstract Class Support: Properly detects and marks abstract class declarations
Search Performance
- Directory Filtering: New
directoryPrefixparameter for limiting searches to specific directories (e.g., only search in "src/components") - Payload Indexes: Created efficient indexes on type, language, and path segments for faster filtering
- Metadata Exclusion: Automatically excludes metadata points from search results
Bug Fixes
- Fixed unnecessary escape characters in regex patterns for linter compliance
Breaking Changes
None - all changes are backward compatible.
v0.3.0
Minor Changes
-
de79027: Fix indexing status and add major performance optimizations (5-10x faster)
Bug Fixes:
- Fixed indexing status MCP command returning all zeros for statistics (totalFiles, totalBlocks, totalVectors)
- Status now correctly updates from storage regardless of system state
Performance Improvements (5-10x faster indexing):
- NEW: Cross-file embedding batching - Batch embeddings across multiple files instead of per-file (5-10x faster)
- NEW: Cross-file storage batching - Batch Qdrant upserts across files (2-3x faster)
- NEW: Parallel file discovery - Concurrent directory traversal (2-4x faster)
- NEW: OptimizedBatchProcessor - New processor with all optimizations enabled by default
- Fixed critical memory leak in batch processor concurrency control (60% memory reduction)
- Optimized file change detection to use stats instead of reading entire file contents
- Added explicit memory cleanup between processing cycles
- Reduced default batch sizes (concurrency: 5→3, batch size: 50→20)
- Added pauses between batches to allow garbage collection
New Features:
useOptimizationsconfig option (defaults to true)- Cross-file batching with configurable batch sizes
- Parallel file discovery with configurable concurrency
- Comprehensive performance documentation in PERFORMANCE.md
Breaking Changes: None - optimizations are enabled by default but fully backwards compatible
These changes provide 5-10x faster indexing with 60% less memory usage while maintaining stability.
v0.2.2
Patch Changes
- 6f6db4b: Fix README package name from @itseasy21/mcp-codebase-index to mcp-codebase-index to match npm registry
v0.2.1
Patch Changes
- 29326c0: Transform README into professional MCP package documentation with comprehensive IDE/editor setup instructions. Added configuration guides for Claude Desktop, Claude Code, Cursor, Continue, Windsurf, Zed, and other MCP-compatible clients. Removed development-specific content and focused on user experience with clear installation steps, usage examples, and troubleshooting guides.
v0.2.0
Minor Changes
-
806223b: Complete MCP Codebase Index Implementation (Phases 1-10)
This is the initial complete implementation of the MCP Codebase Index server, providing semantic code search capabilities through the Model Context Protocol.
🎉 Phase 1: Foundation
- TypeScript project setup with strict mode and ESM modules
- Zod-based configuration system with environment variable support
- Comprehensive utility functions (logger, error classes, retry logic, file operations)
- Basic MCP server infrastructure with placeholder handlers
📝 Phase 2: Code Parsing
- Tree-sitter integration for TypeScript, Python, JavaScript, Go, Rust, C/C++, C#, Java, Ruby, PHP
- Markdown parser with header-based chunking
- Fallback line-based chunking for unsupported languages
- Comprehensive code block extraction with metadata
🧠 Phase 3: Embedding Generation
- Multi-provider embedding system supporting:
- Google Gemini (text-embedding-004)
- OpenAI (text-embedding-3-small/large)
- Ollama (local models)
- OpenAI-compatible services
- LRU caching for embedding results
- Batch processing with retry logic
- Provider health checks and validation
💾 Phase 4: Vector Storage
- Qdrant vector database integration
- Collection management with automatic creation
- Batch upsert, delete, and scroll operations
- Semantic search with filtering and pagination
- Point metadata storage and retrieval
🔄 Phase 5: Indexing Engine
- Complete end-to-end indexing pipeline
- File watching with debouncing
- Git branch change detection
- Priority-based task queue with retries
- Concurrent batch processing
- File hash caching for incremental updates
- .mcpignore and .gitignore support
🔍 Phase 6: Search Implementation
- Semantic search with vector similarity
- Multi-factor relevance ranking:
- Exact match detection
- Name similarity scoring
- File path relevance
- Recency scoring
- Language and type boosting
- Context extraction with configurable line ranges
- Result caching with TTL
- Filter support (file types, paths, languages)
📊 Phase 7: Status Management
- State machine for indexing status (standby, indexing, indexed, error)
- Real-time progress tracking
- Statistics collection (blocks, vectors, languages)
- Error aggregation and reporting
- Progress percentage calculation
🔧 Phase 8: MCP Tools Integration
- Orchestrator class wiring all components together
- Six MCP tool handlers:
codebase_search- Semantic code search with filtersindexing_status- Real-time status and statisticsreindex- Trigger full, incremental, or file-specific reindexingconfigure_indexer- Runtime configuration updatesclear_index- Reset and clear indexed datavalidate_config- Test connections and validate setup
- Complete tool schemas with validation
- Comprehensive error handling
✅ Phase 9: Testing & Documentation
- Vitest testing infrastructure with 70% coverage thresholds
- 58 passing tests across unit and integration suites
- Comprehensive USAGE.md with examples and troubleshooting
- Updated README with complete feature documentation
- API documentation for all components
📦 Phase 10: Release Preparation
- Complete API.md with all component documentation
- Changesets for version management
- CHANGELOG.md initialization
- npm publishing configuration
- GitHub Actions workflows (CI, release, manual publish)
- MIT license
- Production-ready package.json
🐛 Bug Fixes & Quality Improvements
- Fixed all TypeScript compilation errors and warnings
- Resolved 26 test failures - now 100% passing
- Fixed ESLint configuration for proper linting
- Addressed all 11 Copilot AI review comments:
- Enhanced type safety (removed all
anytypes from handlers) - Fixed baseUrl validation for local Ollama paths
- Removed unused web-tree-sitter dependency
- Added missing environment variable documentation
- Improved error logging and signal handling
- Added graceful shutdown with orchestrator cleanup
- Enhanced type safety (removed all
📈 Current Status
- ✅ 58 tests passing, 1 skipped
- ✅ Zero compilation errors
- ✅ Zero linting errors (35 non-blocking warnings)
- ✅ Full TypeScript strict mode compliance
- ✅ Comprehensive documentation
- ✅ Ready for npm publishing
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog,
and this project adheres to Semantic Versioning.