mcp-vector-search 0.15.7__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of mcp-vector-search might be problematic. Click here for more details.

Files changed (86) hide show
  1. mcp_vector_search/__init__.py +10 -0
  2. mcp_vector_search/cli/__init__.py +1 -0
  3. mcp_vector_search/cli/commands/__init__.py +1 -0
  4. mcp_vector_search/cli/commands/auto_index.py +397 -0
  5. mcp_vector_search/cli/commands/chat.py +534 -0
  6. mcp_vector_search/cli/commands/config.py +393 -0
  7. mcp_vector_search/cli/commands/demo.py +358 -0
  8. mcp_vector_search/cli/commands/index.py +762 -0
  9. mcp_vector_search/cli/commands/init.py +658 -0
  10. mcp_vector_search/cli/commands/install.py +869 -0
  11. mcp_vector_search/cli/commands/install_old.py +700 -0
  12. mcp_vector_search/cli/commands/mcp.py +1254 -0
  13. mcp_vector_search/cli/commands/reset.py +393 -0
  14. mcp_vector_search/cli/commands/search.py +796 -0
  15. mcp_vector_search/cli/commands/setup.py +1133 -0
  16. mcp_vector_search/cli/commands/status.py +584 -0
  17. mcp_vector_search/cli/commands/uninstall.py +404 -0
  18. mcp_vector_search/cli/commands/visualize/__init__.py +39 -0
  19. mcp_vector_search/cli/commands/visualize/cli.py +265 -0
  20. mcp_vector_search/cli/commands/visualize/exporters/__init__.py +12 -0
  21. mcp_vector_search/cli/commands/visualize/exporters/html_exporter.py +33 -0
  22. mcp_vector_search/cli/commands/visualize/exporters/json_exporter.py +29 -0
  23. mcp_vector_search/cli/commands/visualize/graph_builder.py +709 -0
  24. mcp_vector_search/cli/commands/visualize/layout_engine.py +469 -0
  25. mcp_vector_search/cli/commands/visualize/server.py +201 -0
  26. mcp_vector_search/cli/commands/visualize/state_manager.py +428 -0
  27. mcp_vector_search/cli/commands/visualize/templates/__init__.py +16 -0
  28. mcp_vector_search/cli/commands/visualize/templates/base.py +218 -0
  29. mcp_vector_search/cli/commands/visualize/templates/scripts.py +3670 -0
  30. mcp_vector_search/cli/commands/visualize/templates/styles.py +779 -0
  31. mcp_vector_search/cli/commands/visualize.py.original +2536 -0
  32. mcp_vector_search/cli/commands/watch.py +287 -0
  33. mcp_vector_search/cli/didyoumean.py +520 -0
  34. mcp_vector_search/cli/export.py +320 -0
  35. mcp_vector_search/cli/history.py +295 -0
  36. mcp_vector_search/cli/interactive.py +342 -0
  37. mcp_vector_search/cli/main.py +484 -0
  38. mcp_vector_search/cli/output.py +414 -0
  39. mcp_vector_search/cli/suggestions.py +375 -0
  40. mcp_vector_search/config/__init__.py +1 -0
  41. mcp_vector_search/config/constants.py +24 -0
  42. mcp_vector_search/config/defaults.py +200 -0
  43. mcp_vector_search/config/settings.py +146 -0
  44. mcp_vector_search/core/__init__.py +1 -0
  45. mcp_vector_search/core/auto_indexer.py +298 -0
  46. mcp_vector_search/core/config_utils.py +394 -0
  47. mcp_vector_search/core/connection_pool.py +360 -0
  48. mcp_vector_search/core/database.py +1237 -0
  49. mcp_vector_search/core/directory_index.py +318 -0
  50. mcp_vector_search/core/embeddings.py +294 -0
  51. mcp_vector_search/core/exceptions.py +89 -0
  52. mcp_vector_search/core/factory.py +318 -0
  53. mcp_vector_search/core/git_hooks.py +345 -0
  54. mcp_vector_search/core/indexer.py +1002 -0
  55. mcp_vector_search/core/llm_client.py +453 -0
  56. mcp_vector_search/core/models.py +294 -0
  57. mcp_vector_search/core/project.py +350 -0
  58. mcp_vector_search/core/scheduler.py +330 -0
  59. mcp_vector_search/core/search.py +952 -0
  60. mcp_vector_search/core/watcher.py +322 -0
  61. mcp_vector_search/mcp/__init__.py +5 -0
  62. mcp_vector_search/mcp/__main__.py +25 -0
  63. mcp_vector_search/mcp/server.py +752 -0
  64. mcp_vector_search/parsers/__init__.py +8 -0
  65. mcp_vector_search/parsers/base.py +296 -0
  66. mcp_vector_search/parsers/dart.py +605 -0
  67. mcp_vector_search/parsers/html.py +413 -0
  68. mcp_vector_search/parsers/javascript.py +643 -0
  69. mcp_vector_search/parsers/php.py +694 -0
  70. mcp_vector_search/parsers/python.py +502 -0
  71. mcp_vector_search/parsers/registry.py +223 -0
  72. mcp_vector_search/parsers/ruby.py +678 -0
  73. mcp_vector_search/parsers/text.py +186 -0
  74. mcp_vector_search/parsers/utils.py +265 -0
  75. mcp_vector_search/py.typed +1 -0
  76. mcp_vector_search/utils/__init__.py +42 -0
  77. mcp_vector_search/utils/gitignore.py +250 -0
  78. mcp_vector_search/utils/gitignore_updater.py +212 -0
  79. mcp_vector_search/utils/monorepo.py +339 -0
  80. mcp_vector_search/utils/timing.py +338 -0
  81. mcp_vector_search/utils/version.py +47 -0
  82. mcp_vector_search-0.15.7.dist-info/METADATA +884 -0
  83. mcp_vector_search-0.15.7.dist-info/RECORD +86 -0
  84. mcp_vector_search-0.15.7.dist-info/WHEEL +4 -0
  85. mcp_vector_search-0.15.7.dist-info/entry_points.txt +3 -0
  86. mcp_vector_search-0.15.7.dist-info/licenses/LICENSE +21 -0
@@ -0,0 +1,884 @@
1
+ Metadata-Version: 2.4
2
+ Name: mcp-vector-search
3
+ Version: 0.15.7
4
+ Summary: CLI-first semantic code search with MCP integration and interactive D3.js visualization for exploring code relationships
5
+ Project-URL: Homepage, https://github.com/bobmatnyc/mcp-vector-search
6
+ Project-URL: Documentation, https://mcp-vector-search.readthedocs.io
7
+ Project-URL: Repository, https://github.com/bobmatnyc/mcp-vector-search
8
+ Project-URL: Bug Tracker, https://github.com/bobmatnyc/mcp-vector-search/issues
9
+ Author-email: Robert Matsuoka <bobmatnyc@gmail.com>
10
+ License: MIT License
11
+
12
+ Copyright (c) 2024 Robert Matsuoka
13
+
14
+ Permission is hereby granted, free of charge, to any person obtaining a copy
15
+ of this software and associated documentation files (the "Software"), to deal
16
+ in the Software without restriction, including without limitation the rights
17
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
18
+ copies of the Software, and to permit persons to whom the Software is
19
+ furnished to do so, subject to the following conditions:
20
+
21
+ The above copyright notice and this permission notice shall be included in all
22
+ copies or substantial portions of the Software.
23
+
24
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
25
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
26
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
27
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
28
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
29
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
30
+ SOFTWARE.
31
+ License-File: LICENSE
32
+ Keywords: code-graph,code-search,d3js,force-layout,interactive-graph,mcp,semantic-search,vector-database,visualization
33
+ Classifier: Development Status :: 3 - Alpha
34
+ Classifier: Intended Audience :: Developers
35
+ Classifier: License :: OSI Approved :: MIT License
36
+ Classifier: Programming Language :: Python :: 3.11
37
+ Classifier: Programming Language :: Python :: 3.12
38
+ Classifier: Topic :: Scientific/Engineering :: Visualization
39
+ Classifier: Topic :: Software Development :: Code Generators
40
+ Classifier: Topic :: Software Development :: Libraries :: Python Modules
41
+ Classifier: Topic :: Software Development :: Quality Assurance
42
+ Requires-Python: >=3.11
43
+ Requires-Dist: aiofiles>=23.0.0
44
+ Requires-Dist: authlib>=1.6.4
45
+ Requires-Dist: chromadb>=0.5.0
46
+ Requires-Dist: click-didyoumean>=0.3.0
47
+ Requires-Dist: fastapi>=0.104.0
48
+ Requires-Dist: httpx>=0.25.0
49
+ Requires-Dist: loguru>=0.7.0
50
+ Requires-Dist: mcp>=1.12.4
51
+ Requires-Dist: packaging>=23.0
52
+ Requires-Dist: py-mcp-installer>=0.1.0
53
+ Requires-Dist: pydantic-settings>=2.1.0
54
+ Requires-Dist: pydantic>=2.5.0
55
+ Requires-Dist: rich>=13.0.0
56
+ Requires-Dist: sentence-transformers>=2.2.2
57
+ Requires-Dist: starlette>=0.49.1
58
+ Requires-Dist: tree-sitter-language-pack>=0.9.0
59
+ Requires-Dist: tree-sitter>=0.20.1
60
+ Requires-Dist: typer>=0.9.0
61
+ Requires-Dist: uvicorn>=0.24.0
62
+ Requires-Dist: watchdog>=3.0.0
63
+ Description-Content-Type: text/markdown
64
+
65
+ # MCP Vector Search
66
+
67
+ 🔍 **CLI-first semantic code search with MCP integration**
68
+
69
+ [![PyPI version](https://badge.fury.io/py/mcp-vector-search.svg)](https://badge.fury.io/py/mcp-vector-search)
70
+ [![Python 3.11+](https://img.shields.io/badge/python-3.11+-blue.svg)](https://www.python.org/downloads/)
71
+ [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
72
+
73
+ > ⚠️ **Alpha Release (v0.12.7)**: This is an early-stage project under active development. Expect breaking changes and rough edges. Feedback and contributions are welcome!
74
+
75
+ A modern, fast, and intelligent code search tool that understands your codebase through semantic analysis and AST parsing. Built with Python, powered by ChromaDB, and designed for developer productivity.
76
+
77
+ ## ✨ Features
78
+
79
+ ### 🚀 **Core Capabilities**
80
+ - **Semantic Search**: Find code by meaning, not just keywords
81
+ - **AST-Aware Parsing**: Understands code structure (functions, classes, methods)
82
+ - **Multi-Language Support**: 8 languages - Python, JavaScript, TypeScript, Dart/Flutter, PHP, Ruby, HTML, and Markdown/Text (with extensible architecture)
83
+ - **Real-time Indexing**: File watching with automatic index updates
84
+ - **Automatic Version Tracking**: Smart reindexing on tool upgrades
85
+ - **Local-First**: Complete privacy with on-device processing
86
+ - **Zero Configuration**: Auto-detects project structure and languages
87
+
88
+ ### 🛠️ **Developer Experience**
89
+ - **CLI-First Design**: Simple commands for immediate productivity
90
+ - **Rich Output**: Syntax highlighting, similarity scores, context
91
+ - **Fast Performance**: Sub-second search responses, efficient indexing
92
+ - **Modern Architecture**: Async-first, type-safe, modular design
93
+ - **Semi-Automatic Reindexing**: Multiple strategies without daemon processes
94
+
95
+ ### 🔧 **Technical Features**
96
+ - **Vector Database**: ChromaDB with connection pooling for 13.6% performance boost
97
+ - **Embedding Models**: Configurable sentence transformers
98
+ - **Smart Reindexing**: Search-triggered, Git hooks, scheduled tasks, and manual options
99
+ - **Extensible Parsers**: Plugin architecture for new languages
100
+ - **Configuration Management**: Project-specific settings
101
+ - **Production Ready**: Connection pooling, auto-indexing, comprehensive error handling
102
+
103
+ ## 🚀 Quick Start
104
+
105
+ ### Installation
106
+
107
+ ```bash
108
+ # Install from PyPI (recommended)
109
+ pip install mcp-vector-search
110
+
111
+ # Or with UV (faster)
112
+ uv pip install mcp-vector-search
113
+
114
+ # Or install from source
115
+ git clone https://github.com/bobmatnyc/mcp-vector-search.git
116
+ cd mcp-vector-search
117
+ uv sync && uv pip install -e .
118
+ ```
119
+
120
+ **Verify Installation:**
121
+ ```bash
122
+ # Check that all dependencies are installed correctly
123
+ mcp-vector-search doctor
124
+
125
+ # Should show all ✓ marks
126
+ # If you see missing dependencies, try:
127
+ pip install --upgrade mcp-vector-search
128
+ ```
129
+
130
+ ### Zero-Config Setup (Recommended)
131
+
132
+ The fastest way to get started - **completely hands-off, just one command**:
133
+
134
+ ```bash
135
+ # Smart zero-config setup (recommended)
136
+ mcp-vector-search setup
137
+ ```
138
+
139
+ **What `setup` does automatically:**
140
+ - ✅ Detects your project's languages and file types
141
+ - ✅ Initializes semantic search with optimal settings
142
+ - ✅ Indexes your entire codebase
143
+ - ✅ Configures ALL installed MCP platforms (Claude Code, Cursor, etc.)
144
+ - ✅ **Uses native Claude CLI integration** (`claude mcp add`) when available
145
+ - ✅ **Falls back to `.mcp.json`** if Claude CLI not available
146
+ - ✅ Sets up file watching for auto-reindex
147
+ - ✅ **Zero user input required!**
148
+
149
+ **Behind the scenes:**
150
+ - **Server name**: `mcp` (for consistency with other MCP projects)
151
+ - **Command**: `uv run python -m mcp_vector_search.mcp.server {PROJECT_ROOT}`
152
+ - **File watching**: Enabled via `MCP_ENABLE_FILE_WATCHING=true`
153
+ - **Integration method**: Native `claude mcp add` (or `.mcp.json` fallback)
154
+
155
+ **Example output:**
156
+ ```
157
+ 🚀 Smart Setup for mcp-vector-search
158
+ 🔍 Detecting project...
159
+ ✅ Found 3 language(s): Python, JavaScript, TypeScript
160
+ ✅ Detected 8 file type(s)
161
+ ✅ Found 2 platform(s): claude-code, cursor
162
+ ⚙️ Configuring...
163
+ ✅ Embedding model: sentence-transformers/all-MiniLM-L6-v2
164
+ 🚀 Initializing...
165
+ ✅ Vector database created
166
+ ✅ Configuration saved
167
+ 🔍 Indexing codebase...
168
+ ✅ Indexing completed in 12.3s
169
+ 🔗 Configuring MCP integrations...
170
+ ✅ Using Claude CLI for automatic setup
171
+ ✅ Registered with Claude CLI
172
+ ✅ Configured 2 platform(s)
173
+ 🎉 Setup Complete!
174
+ ```
175
+
176
+ **Options:**
177
+ ```bash
178
+ # Force re-setup
179
+ mcp-vector-search setup --force
180
+
181
+ # Verbose output for debugging (shows Claude CLI commands)
182
+ mcp-vector-search setup --verbose
183
+ ```
184
+
185
+ ### Advanced Setup Options
186
+
187
+ For more control over the installation process:
188
+
189
+ ```bash
190
+ # Manual setup with MCP integration
191
+ mcp-vector-search install --with-mcp
192
+
193
+ # Custom file extensions
194
+ mcp-vector-search install --extensions .py,.js,.ts,.dart
195
+
196
+ # Skip automatic indexing
197
+ mcp-vector-search install --no-auto-index
198
+
199
+ # Just initialize (no indexing or MCP)
200
+ mcp-vector-search init
201
+ ```
202
+
203
+ ### Add MCP Integration for AI Tools
204
+
205
+ **Automatic (Recommended):**
206
+ ```bash
207
+ # One command sets up all detected platforms
208
+ mcp-vector-search setup
209
+ ```
210
+
211
+ **Manual Platform Installation:**
212
+ ```bash
213
+ # Add Claude Code integration (project-scoped)
214
+ mcp-vector-search install claude-code
215
+
216
+ # Add Cursor IDE integration (global)
217
+ mcp-vector-search install cursor
218
+
219
+ # See all available platforms
220
+ mcp-vector-search install list
221
+ ```
222
+
223
+ **Note**: The `setup` command uses native `claude mcp add` when Claude CLI is available, providing better integration than manual `.mcp.json` creation.
224
+
225
+ ### Remove MCP Integrations
226
+
227
+ ```bash
228
+ # Remove specific platform
229
+ mcp-vector-search uninstall claude-code
230
+
231
+ # Remove all integrations
232
+ mcp-vector-search uninstall --all
233
+
234
+ # List configured integrations
235
+ mcp-vector-search uninstall list
236
+ ```
237
+
238
+ ### Basic Usage
239
+
240
+ ```bash
241
+ # Search your code
242
+ mcp-vector-search search "authentication logic"
243
+ mcp-vector-search search "database connection setup"
244
+ mcp-vector-search search "error handling patterns"
245
+
246
+ # Index your codebase (if not done during setup)
247
+ mcp-vector-search index
248
+
249
+ # Check project status
250
+ mcp-vector-search status
251
+
252
+ # Start file watching (auto-update index)
253
+ mcp-vector-search watch
254
+ ```
255
+
256
+ ### Smart CLI with "Did You Mean" Suggestions
257
+
258
+ The CLI includes intelligent command suggestions for typos:
259
+
260
+ ```bash
261
+ # Typos are automatically detected and corrected
262
+ $ mcp-vector-search serach "auth"
263
+ No such command 'serach'. Did you mean 'search'?
264
+
265
+ $ mcp-vector-search indx
266
+ No such command 'indx'. Did you mean 'index'?
267
+ ```
268
+
269
+ See [docs/guides/cli-usage.md](docs/guides/cli-usage.md) for more details.
270
+
271
+ ## Versioning & Releasing
272
+
273
+ This project uses semantic versioning with an automated release workflow.
274
+
275
+ ### Quick Commands
276
+ - `make version-show` - Display current version
277
+ - `make release-patch` - Create patch release
278
+ - `make publish` - Publish to PyPI
279
+
280
+ See [docs/development/versioning.md](docs/development/versioning.md) for complete documentation.
281
+
282
+ ## 📖 Documentation
283
+
284
+ ### Commands
285
+
286
+ #### `setup` - Zero-Config Smart Setup (Recommended)
287
+ ```bash
288
+ # One command to do everything (recommended)
289
+ mcp-vector-search setup
290
+
291
+ # What it does automatically:
292
+ # - Detects project languages and file types
293
+ # - Initializes semantic search
294
+ # - Indexes entire codebase
295
+ # - Configures all detected MCP platforms
296
+ # - Sets up file watching
297
+ # - Zero configuration needed!
298
+
299
+ # Force re-setup
300
+ mcp-vector-search setup --force
301
+
302
+ # Verbose output for debugging
303
+ mcp-vector-search setup --verbose
304
+ ```
305
+
306
+ **Key Features:**
307
+ - **Zero Configuration**: No user input required
308
+ - **Smart Detection**: Automatically discovers languages and platforms
309
+ - **Comprehensive**: Handles init + index + MCP setup in one command
310
+ - **Idempotent**: Safe to run multiple times
311
+ - **Fast**: Timeout-protected scanning (won't hang on large projects)
312
+ - **Team-Friendly**: Commit `.mcp.json` to share configuration
313
+
314
+ **When to use:**
315
+ - ✅ First-time project setup
316
+ - ✅ Team onboarding
317
+ - ✅ Quick testing in new codebases
318
+ - ✅ Setting up multiple MCP platforms at once
319
+
320
+ #### `install` - Install Project and MCP Integrations (Advanced)
321
+ ```bash
322
+ # Manual setup with more control
323
+ mcp-vector-search install
324
+
325
+ # Install with all MCP integrations
326
+ mcp-vector-search install --with-mcp
327
+
328
+ # Custom file extensions
329
+ mcp-vector-search install --extensions .py,.js,.ts
330
+
331
+ # Skip automatic indexing
332
+ mcp-vector-search install --no-auto-index
333
+
334
+ # Platform-specific MCP integration
335
+ mcp-vector-search install claude-code # Project-scoped
336
+ mcp-vector-search install cursor # Global
337
+ mcp-vector-search install windsurf # Global
338
+ mcp-vector-search install vscode # Global
339
+
340
+ # List available platforms
341
+ mcp-vector-search install list
342
+ ```
343
+
344
+ **When to use:**
345
+ - Use `install` when you need fine-grained control over extensions, models, or MCP platforms
346
+ - Use `setup` for quick, zero-config onboarding (recommended)
347
+
348
+ #### `uninstall` - Remove MCP Integrations
349
+ ```bash
350
+ # Remove specific platform
351
+ mcp-vector-search uninstall claude-code
352
+
353
+ # Remove all integrations
354
+ mcp-vector-search uninstall --all
355
+
356
+ # List configured integrations
357
+ mcp-vector-search uninstall list
358
+
359
+ # Skip backup creation
360
+ mcp-vector-search uninstall claude-code --no-backup
361
+
362
+ # Alias (same as uninstall)
363
+ mcp-vector-search remove claude-code
364
+ ```
365
+
366
+ #### `init` - Initialize Project (Simple)
367
+ ```bash
368
+ # Basic initialization (no indexing or MCP)
369
+ mcp-vector-search init
370
+
371
+ # Custom configuration
372
+ mcp-vector-search init --extensions .py,.js,.ts --embedding-model sentence-transformers/all-MiniLM-L6-v2
373
+
374
+ # Force re-initialization
375
+ mcp-vector-search init --force
376
+ ```
377
+
378
+ **Note**: For most users, use `setup` instead of `init`. The `init` command is for advanced users who want manual control.
379
+
380
+ #### `index` - Index Codebase
381
+ ```bash
382
+ # Index all files
383
+ mcp-vector-search index
384
+
385
+ # Index specific directory
386
+ mcp-vector-search index /path/to/code
387
+
388
+ # Force re-indexing
389
+ mcp-vector-search index --force
390
+
391
+ # Reindex entire project
392
+ mcp-vector-search index reindex
393
+
394
+ # Reindex entire project (explicit)
395
+ mcp-vector-search index reindex --all
396
+
397
+ # Reindex entire project without confirmation
398
+ mcp-vector-search index reindex --force
399
+
400
+ # Reindex specific file
401
+ mcp-vector-search index reindex path/to/file.py
402
+ ```
403
+
404
+ #### `search` - Semantic Search
405
+ ```bash
406
+ # Basic search
407
+ mcp-vector-search search "function that handles user authentication"
408
+
409
+ # Adjust similarity threshold
410
+ mcp-vector-search search "database queries" --threshold 0.7
411
+
412
+ # Limit results
413
+ mcp-vector-search search "error handling" --limit 10
414
+
415
+ # Search in specific context
416
+ mcp-vector-search search similar "path/to/function.py:25"
417
+ ```
418
+
419
+ #### `auto-index` - Automatic Reindexing
420
+ ```bash
421
+ # Setup all auto-indexing strategies
422
+ mcp-vector-search auto-index setup --method all
423
+
424
+ # Setup specific strategies
425
+ mcp-vector-search auto-index setup --method git-hooks
426
+ mcp-vector-search auto-index setup --method scheduled --interval 60
427
+
428
+ # Check for stale files and auto-reindex
429
+ mcp-vector-search auto-index check --auto-reindex --max-files 10
430
+
431
+ # View auto-indexing status
432
+ mcp-vector-search auto-index status
433
+
434
+ # Remove auto-indexing setup
435
+ mcp-vector-search auto-index teardown --method all
436
+ ```
437
+
438
+ #### `watch` - File Watching
439
+ ```bash
440
+ # Start watching for changes
441
+ mcp-vector-search watch
442
+
443
+ # Check watch status
444
+ mcp-vector-search watch status
445
+
446
+ # Enable/disable watching
447
+ mcp-vector-search watch enable
448
+ mcp-vector-search watch disable
449
+ ```
450
+
451
+ #### `status` - Project Information
452
+ ```bash
453
+ # Basic status
454
+ mcp-vector-search status
455
+
456
+ # Detailed information
457
+ mcp-vector-search status --verbose
458
+ ```
459
+
460
+ #### `config` - Configuration Management
461
+ ```bash
462
+ # View configuration
463
+ mcp-vector-search config show
464
+
465
+ # Update settings
466
+ mcp-vector-search config set similarity_threshold 0.8
467
+ mcp-vector-search config set embedding_model microsoft/codebert-base
468
+
469
+ # Configure indexing behavior
470
+ mcp-vector-search config set skip_dotfiles true # Skip dotfiles (default)
471
+ mcp-vector-search config set respect_gitignore true # Respect .gitignore (default)
472
+
473
+ # Get specific setting
474
+ mcp-vector-search config get skip_dotfiles
475
+ mcp-vector-search config get respect_gitignore
476
+
477
+ # List available models
478
+ mcp-vector-search config models
479
+
480
+ # List all configuration keys
481
+ mcp-vector-search config list-keys
482
+ ```
483
+
484
+ ## 🚀 Performance Features
485
+
486
+ ### Connection Pooling
487
+ Automatic connection pooling provides **13.6% performance improvement** with zero configuration:
488
+
489
+ ```python
490
+ # Automatically enabled for high-throughput scenarios
491
+ from mcp_vector_search.core.database import PooledChromaVectorDatabase
492
+
493
+ database = PooledChromaVectorDatabase(
494
+ max_connections=10, # Pool size
495
+ min_connections=2, # Warm connections
496
+ max_idle_time=300.0, # 5 minutes
497
+ )
498
+ ```
499
+
500
+ ### Semi-Automatic Reindexing
501
+ Multiple strategies to keep your index up-to-date without daemon processes:
502
+
503
+ 1. **Search-Triggered**: Automatically checks for stale files during searches
504
+ 2. **Git Hooks**: Triggers reindexing after commits, merges, checkouts
505
+ 3. **Scheduled Tasks**: System-level cron jobs or Windows tasks
506
+ 4. **Manual Checks**: On-demand via CLI commands
507
+ 5. **Periodic Checker**: In-process periodic checks for long-running apps
508
+
509
+ ```bash
510
+ # Setup all strategies
511
+ mcp-vector-search auto-index setup --method all
512
+
513
+ # Check status
514
+ mcp-vector-search auto-index status
515
+ ```
516
+
517
+ ### Configuration
518
+
519
+ Projects are configured via `.mcp-vector-search/config.json`:
520
+
521
+ ```json
522
+ {
523
+ "project_root": "/path/to/project",
524
+ "file_extensions": [".py", ".js", ".ts"],
525
+ "embedding_model": "sentence-transformers/all-MiniLM-L6-v2",
526
+ "similarity_threshold": 0.75,
527
+ "languages": ["python", "javascript", "typescript"],
528
+ "watch_files": true,
529
+ "cache_embeddings": true,
530
+ "skip_dotfiles": true,
531
+ "respect_gitignore": true
532
+ }
533
+ ```
534
+
535
+ #### Indexing Configuration Options
536
+
537
+ **`skip_dotfiles`** (default: `true`)
538
+ - Controls whether files and directories starting with "." are skipped during indexing
539
+ - **Whitelisted directories** are always indexed regardless of this setting:
540
+ - `.github/` - GitHub workflows and actions
541
+ - `.gitlab-ci/` - GitLab CI configuration
542
+ - `.circleci/` - CircleCI configuration
543
+ - When `false`: All dotfiles are indexed (subject to gitignore rules if `respect_gitignore` is `true`)
544
+
545
+ **`respect_gitignore`** (default: `true`)
546
+ - Controls whether `.gitignore` patterns are respected during indexing
547
+ - When `false`: Files in `.gitignore` are indexed (subject to `skip_dotfiles` if enabled)
548
+
549
+ #### Configuration Use Cases
550
+
551
+ **Default Behavior** (Recommended for most projects):
552
+ ```bash
553
+ # Skip dotfiles AND respect .gitignore
554
+ mcp-vector-search config set skip_dotfiles true
555
+ mcp-vector-search config set respect_gitignore true
556
+ ```
557
+
558
+ **Index Everything** (Useful for deep code analysis):
559
+ ```bash
560
+ # Index all files including dotfiles and gitignored files
561
+ mcp-vector-search config set skip_dotfiles false
562
+ mcp-vector-search config set respect_gitignore false
563
+ ```
564
+
565
+ **Index Dotfiles but Respect .gitignore**:
566
+ ```bash
567
+ # Index configuration files but skip build artifacts
568
+ mcp-vector-search config set skip_dotfiles false
569
+ mcp-vector-search config set respect_gitignore true
570
+ ```
571
+
572
+ **Skip Dotfiles but Ignore .gitignore**:
573
+ ```bash
574
+ # Useful when you want to index files in .gitignore but skip hidden config files
575
+ mcp-vector-search config set skip_dotfiles true
576
+ mcp-vector-search config set respect_gitignore false
577
+ ```
578
+
579
+ ## 🏗️ Architecture
580
+
581
+ ### Core Components
582
+
583
+ - **Parser Registry**: Extensible system for language-specific parsing
584
+ - **Semantic Indexer**: Efficient code chunking and embedding generation
585
+ - **Vector Database**: ChromaDB integration for similarity search
586
+ - **File Watcher**: Real-time monitoring and incremental updates
587
+ - **CLI Interface**: Rich, user-friendly command-line experience
588
+
589
+ ### Supported Languages
590
+
591
+ MCP Vector Search supports **8 programming languages** with full semantic search capabilities:
592
+
593
+ | Language | Extensions | Status | Features |
594
+ |------------|------------|--------|----------|
595
+ | Python | `.py`, `.pyw` | ✅ Full | Functions, classes, methods, docstrings |
596
+ | JavaScript | `.js`, `.jsx`, `.mjs` | ✅ Full | Functions, classes, JSDoc, ES6+ syntax |
597
+ | TypeScript | `.ts`, `.tsx` | ✅ Full | Interfaces, types, generics, decorators |
598
+ | Dart | `.dart` | ✅ Full | Functions, classes, widgets, async, dartdoc |
599
+ | PHP | `.php`, `.phtml` | ✅ Full | Classes, methods, traits, PHPDoc, Laravel patterns |
600
+ | Ruby | `.rb`, `.rake`, `.gemspec` | ✅ Full | Modules, classes, methods, RDoc, Rails patterns |
601
+ | HTML | `.html`, `.htm` | ✅ Full | Semantic content extraction, heading hierarchy, text chunking |
602
+ | Text/Markdown | `.txt`, `.md`, `.markdown` | ✅ Basic | Semantic chunking for documentation |
603
+
604
+ **Planned Languages:**
605
+ | Language | Status | Features |
606
+ |------------|--------|----------|
607
+ | Java | 🔄 Planned | Classes, methods, annotations |
608
+ | Go | 🔄 Planned | Functions, structs, interfaces |
609
+ | Rust | 🔄 Planned | Functions, structs, traits |
610
+
611
+ #### New Language Support
612
+
613
+ **HTML Support** (Unreleased):
614
+ - **Semantic Extraction**: Content from h1-h6, p, section, article, main, aside, nav, header, footer
615
+ - **Intelligent Chunking**: Based on heading hierarchy (h1-h6)
616
+ - **Context Preservation**: Maintains class and id attributes for searchability
617
+ - **Script/Style Filtering**: Ignores non-content elements
618
+ - **Use Cases**: Static sites, documentation, web templates, HTML fragments
619
+
620
+ **Dart/Flutter Support** (v0.4.15):
621
+ - **Widget Detection**: StatelessWidget, StatefulWidget recognition
622
+ - **State Classes**: Automatic parsing of `_WidgetNameState` patterns
623
+ - **Async Support**: Future<T> and async function handling
624
+ - **Dartdoc**: Triple-slash comment extraction
625
+ - **Tree-sitter AST**: Fast, accurate parsing with regex fallback
626
+
627
+ **PHP Support** (v0.5.0):
628
+ - **Class Detection**: Classes, interfaces, traits
629
+ - **Method Extraction**: Public, private, protected, static methods
630
+ - **Magic Methods**: __construct, __get, __set, __call, etc.
631
+ - **PHPDoc**: Full comment extraction
632
+ - **Laravel Patterns**: Controllers, Models, Eloquent support
633
+ - **Tree-sitter AST**: Fast parsing with regex fallback
634
+
635
+ **Ruby Support** (v0.5.0):
636
+ - **Module/Class Detection**: Full namespace support (::)
637
+ - **Method Extraction**: Instance and class methods
638
+ - **Special Syntax**: Method names with ?, ! support
639
+ - **Attribute Macros**: attr_accessor, attr_reader, attr_writer
640
+ - **RDoc**: Comment extraction (# and =begin...=end)
641
+ - **Rails Patterns**: ActiveRecord, Controllers support
642
+ - **Tree-sitter AST**: Fast parsing with regex fallback
643
+
644
+ ## 🤝 Contributing
645
+
646
+ We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details.
647
+
648
+ ### Development Setup
649
+
650
+ ```bash
651
+ # Clone the repository
652
+ git clone https://github.com/bobmatnyc/mcp-vector-search.git
653
+ cd mcp-vector-search
654
+
655
+ # Install development environment (includes dependencies + editable install)
656
+ make dev
657
+
658
+ # Test CLI from source (recommended during development)
659
+ ./dev-mcp version # Shows [DEV] indicator
660
+ ./dev-mcp search "test" # No reinstall needed after code changes
661
+
662
+ # Run tests and quality checks
663
+ make test-unit # Run unit tests
664
+ make quality # Run linting and type checking
665
+ make fix # Auto-fix formatting issues
666
+
667
+ # View all available targets
668
+ make help
669
+ ```
670
+
671
+ For detailed development workflow and `dev-mcp` usage, see the [Development](#-development) section below.
672
+
673
+ ### Adding Language Support
674
+
675
+ 1. Create a new parser in `src/mcp_vector_search/parsers/`
676
+ 2. Extend the `BaseParser` class
677
+ 3. Register the parser in `parsers/registry.py`
678
+ 4. Add tests and documentation
679
+
680
+ ## 📊 Performance
681
+
682
+ - **Indexing Speed**: ~1000 files/minute (typical Python project)
683
+ - **Search Latency**: <100ms for most queries
684
+ - **Memory Usage**: ~50MB baseline + ~1MB per 1000 code chunks
685
+ - **Storage**: ~1KB per code chunk (compressed embeddings)
686
+
687
+ ## ⚠️ Known Limitations (Alpha)
688
+
689
+ - **Tree-sitter Integration**: Currently using regex fallback parsing (Tree-sitter setup needs improvement)
690
+ - **Search Relevance**: Embedding model may need tuning for code-specific queries
691
+ - **Error Handling**: Some edge cases may not be gracefully handled
692
+ - **Documentation**: API documentation is minimal
693
+ - **Testing**: Limited test coverage, needs real-world validation
694
+
695
+ ## 🙏 Feedback Needed
696
+
697
+ We're actively seeking feedback on:
698
+
699
+ - **Search Quality**: How relevant are the search results for your codebase?
700
+ - **Performance**: How does indexing and search speed feel in practice?
701
+ - **Usability**: Is the CLI interface intuitive and helpful?
702
+ - **Language Support**: Which languages would you like to see added next?
703
+ - **Features**: What functionality is missing for your workflow?
704
+
705
+ Please [open an issue](https://github.com/bobmatnyc/mcp-vector-search/issues) or start a [discussion](https://github.com/bobmatnyc/mcp-vector-search/discussions) to share your experience!
706
+
707
+ ## 🔮 Roadmap
708
+
709
+ ### v0.0.x: Alpha (Current) 🔄
710
+ - [x] Core CLI interface
711
+ - [x] Python/JS/TS parsing
712
+ - [x] ChromaDB integration
713
+ - [x] File watching
714
+ - [x] Basic search functionality
715
+ - [ ] Real-world testing and feedback
716
+ - [ ] Bug fixes and stability improvements
717
+ - [ ] Performance optimizations
718
+
719
+ ### v0.1.x: Beta 🔮
720
+ - [ ] Advanced search modes (contextual, similar code)
721
+ - [ ] Additional language support (Java, Go, Rust)
722
+ - [ ] Configuration improvements
723
+ - [ ] Comprehensive testing suite
724
+ - [ ] Documentation improvements
725
+
726
+ ### v1.0.x: Stable 🔮
727
+ - [ ] MCP server implementation
728
+ - [ ] IDE extensions (VS Code, JetBrains)
729
+ - [ ] Git integration
730
+ - [ ] Team collaboration features
731
+ - [ ] Production-ready performance
732
+
733
+ ## 🛠️ Development
734
+
735
+ ### Three-Stage Development Workflow
736
+
737
+ **Stage A: Local Development & Testing**
738
+ ```bash
739
+ # Setup development environment
740
+ make dev
741
+
742
+ # Run development tests
743
+ make test-unit
744
+
745
+ # Run CLI from source (recommended during development)
746
+ ./dev-mcp version # Visual [DEV] indicator
747
+ ./dev-mcp status # Any command works
748
+ ./dev-mcp search "auth" # Immediate feedback on changes
749
+
750
+ # Run quality checks
751
+ make quality
752
+
753
+ # Alternative: use uv run directly
754
+ uv run mcp-vector-search version
755
+ ```
756
+
757
+ #### Using the `dev-mcp` Development Helper
758
+
759
+ The `./dev-mcp` script provides a streamlined way to run the CLI from source code during development, eliminating the need for repeated installations.
760
+
761
+ **Key Features:**
762
+ - **Visual [DEV] Indicator**: Shows `[DEV]` prefix to distinguish from installed version
763
+ - **No Reinstall Required**: Reflects code changes immediately
764
+ - **Complete Argument Forwarding**: Works with all CLI commands and options
765
+ - **Verbose Mode**: Debug output with `--verbose` flag
766
+ - **Built-in Help**: Script usage with `--help`
767
+
768
+ **Usage Examples:**
769
+ ```bash
770
+ # Basic commands (note the [DEV] prefix in output)
771
+ ./dev-mcp version
772
+ ./dev-mcp status
773
+ ./dev-mcp index
774
+ ./dev-mcp search "authentication logic"
775
+
776
+ # With CLI options
777
+ ./dev-mcp search "error handling" --limit 10
778
+ ./dev-mcp index --force
779
+
780
+ # Script verbose mode (shows Python interpreter, paths)
781
+ ./dev-mcp --verbose search "database"
782
+
783
+ # Script help (shows dev-mcp usage, not CLI help)
784
+ ./dev-mcp --help
785
+
786
+ # CLI command help (forwards --help to the CLI)
787
+ ./dev-mcp search --help
788
+ ./dev-mcp index --help
789
+ ```
790
+
791
+ **When to Use:**
792
+ - **`./dev-mcp`** → Development workflow (runs from source code)
793
+ - **`mcp-vector-search`** → Production usage (runs installed version via pipx/pip)
794
+
795
+ **Benefits:**
796
+ - **Instant Feedback**: Changes to source code are reflected immediately
797
+ - **No Build Step**: Skip the reinstall cycle during active development
798
+ - **Clear Context**: Visual `[DEV]` indicator prevents confusion about which version is running
799
+ - **Error Handling**: Built-in checks for uv installation and project structure
800
+
801
+ **Requirements:**
802
+ - Must have `uv` installed (`pip install uv`)
803
+ - Must run from project root directory
804
+ - Requires `pyproject.toml` in current directory
805
+
806
+ **Stage B: Local Deployment Testing**
807
+ ```bash
808
+ # Build and test clean deployment
809
+ ./scripts/deploy-test.sh
810
+
811
+ # Test on other projects
812
+ cd ~/other-project
813
+ mcp-vector-search init && mcp-vector-search index
814
+ ```
815
+
816
+ **Stage C: PyPI Publication**
817
+ ```bash
818
+ # Publish to PyPI
819
+ ./scripts/publish.sh
820
+
821
+ # Verify published version
822
+ pip install mcp-vector-search --upgrade
823
+ ```
824
+
825
+ ### Quick Reference
826
+ ```bash
827
+ ./scripts/workflow.sh # Show workflow overview
828
+ ```
829
+
830
+ See [DEVELOPMENT.md](DEVELOPMENT.md) for detailed development instructions.
831
+
832
+ ## 📚 Documentation
833
+
834
+ For comprehensive documentation, see **[docs/index.md](docs/index.md)** - the complete documentation hub.
835
+
836
+ ### Getting Started
837
+ - **[Installation Guide](docs/getting-started/installation.md)** - Complete installation instructions
838
+ - **[First Steps](docs/getting-started/first-steps.md)** - Quick start tutorial
839
+ - **[Configuration](docs/getting-started/configuration.md)** - Basic configuration
840
+
841
+ ### User Guides
842
+ - **[Searching Guide](docs/guides/searching.md)** - Master semantic code search
843
+ - **[Indexing Guide](docs/guides/indexing.md)** - Indexing strategies and optimization
844
+ - **[CLI Usage](docs/guides/cli-usage.md)** - Advanced CLI features
845
+ - **[MCP Integration](docs/guides/mcp-integration.md)** - AI tool integration
846
+ - **[File Watching](docs/guides/file-watching.md)** - Real-time index updates
847
+
848
+ ### Reference
849
+ - **[CLI Commands](docs/reference/cli-commands.md)** - Complete command reference
850
+ - **[Configuration Options](docs/reference/configuration-options.md)** - All configuration settings
851
+ - **[Features](docs/reference/features.md)** - Feature overview
852
+ - **[Architecture](docs/reference/architecture.md)** - System architecture
853
+
854
+ ### Development
855
+ - **[Contributing](docs/development/contributing.md)** - How to contribute
856
+ - **[Testing](docs/development/testing.md)** - Testing guide
857
+ - **[Code Quality](docs/development/code-quality.md)** - Linting and formatting
858
+ - **[API Reference](docs/development/api.md)** - Internal API docs
859
+ - **[Deployment](docs/deployment/README.md)** - Release and deployment guide
860
+
861
+ ### Advanced
862
+ - **[Troubleshooting](docs/advanced/troubleshooting.md)** - Common issues and solutions
863
+ - **[Performance](docs/architecture/performance.md)** - Performance optimization
864
+ - **[Extending](docs/advanced/extending.md)** - Adding new features
865
+
866
+ ## 🤝 Contributing
867
+
868
+ Contributions are welcome! Please feel free to submit a Pull Request. For major changes, please open an issue first to discuss what you would like to change.
869
+
870
+ ## 📄 License
871
+
872
+ MIT License - see [LICENSE](LICENSE) file for details.
873
+
874
+ ## 🙏 Acknowledgments
875
+
876
+ - [ChromaDB](https://github.com/chroma-core/chroma) for vector database
877
+ - [Tree-sitter](https://tree-sitter.github.io/) for parsing infrastructure
878
+ - [Sentence Transformers](https://www.sbert.net/) for embeddings
879
+ - [Typer](https://typer.tiangolo.com/) for CLI framework
880
+ - [Rich](https://rich.readthedocs.io/) for beautiful terminal output
881
+
882
+ ---
883
+
884
+ **Built with ❤️ for developers who love efficient code search**