mcp-vector-search 0.9.3__tar.gz → 0.12.1__tar.gz

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 (155) hide show
  1. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/.gitignore +15 -0
  2. mcp_vector_search-0.12.1/CLAUDE.md +49 -0
  3. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/PKG-INFO +87 -24
  4. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/README.md +85 -23
  5. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/CHANGELOG.md +101 -0
  6. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/pyproject.toml +4 -7
  7. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/pytest.ini +2 -1
  8. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/__init__.py +2 -2
  9. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/index.py +44 -22
  10. mcp_vector_search-0.12.1/src/mcp_vector_search/cli/commands/install.py +675 -0
  11. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/status.py +7 -5
  12. mcp_vector_search-0.12.1/src/mcp_vector_search/cli/commands/uninstall.py +485 -0
  13. mcp_vector_search-0.12.1/src/mcp_vector_search/cli/commands/visualize.py +1457 -0
  14. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/didyoumean.py +10 -0
  15. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/main.py +39 -21
  16. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/connection_pool.py +49 -11
  17. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/database.py +61 -28
  18. mcp_vector_search-0.12.1/src/mcp_vector_search/core/directory_index.py +318 -0
  19. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/indexer.py +146 -19
  20. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/models.py +61 -0
  21. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/project.py +16 -5
  22. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/base.py +54 -18
  23. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/javascript.py +41 -20
  24. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/python.py +19 -11
  25. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/registry.py +3 -2
  26. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/utils/gitignore.py +17 -5
  27. mcp_vector_search-0.12.1/src/mcp_vector_search/visualization/index.html +658 -0
  28. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/tests/conftest.py +7 -4
  29. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/uv.lock +10 -7
  30. mcp_vector_search-0.9.3/.changesets/20251009-204754-feat-add-comprehensive-changeset-and-documentation.md +0 -29
  31. mcp_vector_search-0.9.3/.changesets/20251009-205435-fix-update-readme-version-badge-to-0-7-1.md +0 -27
  32. mcp_vector_search-0.9.3/.changesets/20251009-205439-feat-add-comprehensive-changeset-support-system.md +0 -27
  33. mcp_vector_search-0.9.3/.changesets/EXAMPLE.md +0 -272
  34. mcp_vector_search-0.9.3/.changesets/IMPLEMENTATION_SUMMARY.md +0 -317
  35. mcp_vector_search-0.9.3/.changesets/README.md +0 -172
  36. mcp_vector_search-0.9.3/.changesets/template.md +0 -27
  37. mcp_vector_search-0.9.3/.editorconfig +0 -53
  38. mcp_vector_search-0.9.3/CLAUDE.md +0 -760
  39. mcp_vector_search-0.9.3/src/mcp_vector_search/cli/commands/visualize.py +0 -833
  40. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/.github/workflows/ci.yml +0 -0
  41. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/.pre-commit-config.yaml +0 -0
  42. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/LICENSE +0 -0
  43. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/Makefile +0 -0
  44. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/PERFORMANCE_OPTIMIZATION_SUMMARY.md +0 -0
  45. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/CLI_FEATURES.md +0 -0
  46. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/DEPLOY.md +0 -0
  47. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/DEVELOPMENT.md +0 -0
  48. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/FEATURES.md +0 -0
  49. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/IMPROVEMENTS_SUMMARY.md +0 -0
  50. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/MCP_FILE_WATCHING.md +0 -0
  51. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/RELEASES.md +0 -0
  52. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/STRUCTURE.md +0 -0
  53. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/VERSIONING.md +0 -0
  54. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/VERSIONING_WORKFLOW.md +0 -0
  55. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/_archive/CLAUDE_20251009_pre_mpm_init.md +0 -0
  56. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/_archive/CLAUDE_MPM_INIT_SUMMARY_20251009.md +0 -0
  57. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/_archive/MPM_INIT_EXECUTIVE_SUMMARY.md +0 -0
  58. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/analysis/SEARCH_ANALYSIS_REPORT.md +0 -0
  59. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/analysis/SEARCH_IMPROVEMENT_PLAN.md +0 -0
  60. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/architecture/REINDEXING_WORKFLOW.md +0 -0
  61. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/debugging/SEARCH_BUG_ANALYSIS.md +0 -0
  62. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/API.md +0 -0
  63. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/CONTRIBUTING.md +0 -0
  64. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/DEVELOPER.md +0 -0
  65. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/LINTING.md +0 -0
  66. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/REFACTORING_ANALYSIS.md +0 -0
  67. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/TESTING.md +0 -0
  68. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/TESTING_STRATEGY.md +0 -0
  69. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/developer/TEST_SUITE_SUMMARY.md +0 -0
  70. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/mcp-integration.md +0 -0
  71. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/optimizations/database-stats-chunked-processing.md +0 -0
  72. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/performance/CONNECTION_POOLING.md +0 -0
  73. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/performance/SEARCH_TIMING_ANALYSIS.md +0 -0
  74. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/prd/mcp_vector_search_prd_updated.md +0 -0
  75. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/reference/ENGINEER_TASK.md +0 -0
  76. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/reference/INSTALL.md +0 -0
  77. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/reference/INSTALL_COMMAND_ENHANCEMENTS.md +0 -0
  78. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/reference/MCP_SETUP.md +0 -0
  79. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/reference/PROJECT_ORGANIZATION.md +0 -0
  80. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/docs/technical/SIMILARITY_CALCULATION_FIX.md +0 -0
  81. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/examples/connection_pooling_example.py +0 -0
  82. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/examples/semi_automatic_reindexing_demo.py +0 -0
  83. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/mcp-vector-search-wrapper +0 -0
  84. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/README.md +0 -0
  85. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/analyze_search_bottlenecks.py +0 -0
  86. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/build.sh +0 -0
  87. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/changeset.py +0 -0
  88. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/comprehensive_build.py +0 -0
  89. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/deploy-test.sh +0 -0
  90. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/dev-build.py +0 -0
  91. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/dev-setup.py +0 -0
  92. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/dev-test.sh +0 -0
  93. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/fix_linting.py +0 -0
  94. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/mcp-dev +0 -0
  95. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/monitor_search_performance.py +0 -0
  96. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/publish.sh +0 -0
  97. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/quick_search_timing.py +0 -0
  98. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/run_search_timing_tests.py +0 -0
  99. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/run_tests.py +0 -0
  100. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/search_performance_monitor.py +0 -0
  101. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/search_quality_analyzer.py +0 -0
  102. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/setup/mcp-vector-search.sh +0 -0
  103. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/setup/setup-alias.sh +0 -0
  104. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/setup-dev-mcp.sh +0 -0
  105. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/update_docs.py +0 -0
  106. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/version_manager.py +0 -0
  107. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/scripts/workflow.sh +0 -0
  108. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/__init__.py +0 -0
  109. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/__init__.py +0 -0
  110. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/auto_index.py +0 -0
  111. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/config.py +0 -0
  112. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/demo.py +0 -0
  113. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/init.py +0 -0
  114. /mcp_vector_search-0.9.3/src/mcp_vector_search/cli/commands/install.py → /mcp_vector_search-0.12.1/src/mcp_vector_search/cli/commands/install_old.py +0 -0
  115. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/mcp.py +0 -0
  116. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/reset.py +0 -0
  117. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/search.py +0 -0
  118. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/commands/watch.py +0 -0
  119. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/export.py +0 -0
  120. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/history.py +0 -0
  121. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/interactive.py +0 -0
  122. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/output.py +0 -0
  123. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/cli/suggestions.py +0 -0
  124. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/config/__init__.py +0 -0
  125. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/config/constants.py +0 -0
  126. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/config/defaults.py +0 -0
  127. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/config/settings.py +0 -0
  128. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/__init__.py +0 -0
  129. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/auto_indexer.py +0 -0
  130. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/embeddings.py +0 -0
  131. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/exceptions.py +0 -0
  132. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/factory.py +0 -0
  133. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/git_hooks.py +0 -0
  134. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/scheduler.py +0 -0
  135. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/search.py +0 -0
  136. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/core/watcher.py +0 -0
  137. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/mcp/__init__.py +0 -0
  138. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/mcp/__main__.py +0 -0
  139. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/mcp/server.py +0 -0
  140. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/__init__.py +0 -0
  141. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/dart.py +0 -0
  142. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/html.py +0 -0
  143. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/php.py +0 -0
  144. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/ruby.py +0 -0
  145. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/text.py +0 -0
  146. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/parsers/utils.py +0 -0
  147. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/py.typed +0 -0
  148. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/utils/__init__.py +0 -0
  149. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/utils/monorepo.py +0 -0
  150. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/utils/timing.py +0 -0
  151. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/src/mcp_vector_search/utils/version.py +0 -0
  152. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/tests/__init__.py +0 -0
  153. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/tests/sample_code/ast_test_javascript.js +0 -0
  154. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/tests/sample_code/ast_test_python.py +0 -0
  155. {mcp_vector_search-0.9.3 → mcp_vector_search-0.12.1}/tests/sample_code/ast_test_typescript.ts +0 -0
@@ -1,3 +1,13 @@
1
+ # All dotfiles and dot-directories (catch-all)
2
+ .*
3
+ !.gitignore
4
+ !.github/
5
+ !.pre-commit-config.yaml
6
+
7
+ # Explicitly exclude common dotfiles/directories
8
+ .claude/
9
+ .changesets/
10
+
1
11
  # MCP Vector Search specific
2
12
  .mcp-vector-search/
3
13
  *.db
@@ -179,6 +189,8 @@ test_*.py
179
189
  *_test.py
180
190
  debug_*.py
181
191
  test_js_project/
192
+ test-screenshots/
193
+ chunk-graph.json
182
194
 
183
195
  # UV specific
184
196
  .uv/
@@ -287,3 +299,6 @@ pip-wheel-metadata/
287
299
  site/
288
300
  temp/
289
301
  tmp/
302
+
303
+ # MCP Ticketer
304
+ .mcp-ticketer/
@@ -0,0 +1,49 @@
1
+ # Project Memory Configuration
2
+
3
+ This project uses KuzuMemory for intelligent context management.
4
+
5
+ ## Project Information
6
+ - **Path**: /Users/masa/Projects/mcp-vector-search
7
+ - **Language**: Python
8
+ - **Framework**: Unknown
9
+
10
+ ## Memory Integration
11
+
12
+ KuzuMemory is configured to enhance all AI interactions with project-specific context.
13
+
14
+ ### Available Commands:
15
+ - `kuzu-memory enhance <prompt>` - Enhance prompts with project context
16
+ - `kuzu-memory learn <content>` - Store learning from conversations (async)
17
+ - `kuzu-memory recall <query>` - Query project memories
18
+ - `kuzu-memory stats` - View memory statistics
19
+
20
+ ### MCP Tools Available:
21
+ When interacting with Claude Desktop, the following MCP tools are available:
22
+ - **kuzu_enhance**: Enhance prompts with project memories
23
+ - **kuzu_learn**: Store new learnings asynchronously
24
+ - **kuzu_recall**: Query specific memories
25
+ - **kuzu_stats**: Get memory system statistics
26
+
27
+ ## Project Context
28
+
29
+ CLI-first semantic code search with MCP integration
30
+
31
+ ## Key Technologies
32
+ - Python
33
+
34
+ ## Development Guidelines
35
+ - Use kuzu-memory enhance for all AI interactions
36
+ - Store important decisions with kuzu-memory learn
37
+ - Query context with kuzu-memory recall when needed
38
+ - Keep memories project-specific and relevant
39
+
40
+ ## Memory Guidelines
41
+
42
+ - Store project decisions and conventions
43
+ - Record technical specifications and API details
44
+ - Capture user preferences and patterns
45
+ - Document error solutions and workarounds
46
+
47
+ ---
48
+
49
+ *Generated by KuzuMemory Claude Hooks Installer*
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-vector-search
3
- Version: 0.9.3
3
+ Version: 0.12.1
4
4
  Summary: CLI-first semantic code search with MCP integration
5
5
  Project-URL: Homepage, https://github.com/bobmatnyc/mcp-vector-search
6
6
  Project-URL: Documentation, https://mcp-vector-search.readthedocs.io
@@ -39,6 +39,7 @@ Classifier: Topic :: Software Development :: Code Generators
39
39
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
40
40
  Requires-Python: >=3.11
41
41
  Requires-Dist: aiofiles>=23.0.0
42
+ Requires-Dist: authlib>=1.6.4
42
43
  Requires-Dist: chromadb>=0.5.0
43
44
  Requires-Dist: click-didyoumean>=0.3.0
44
45
  Requires-Dist: httpx>=0.25.0
@@ -110,49 +111,68 @@ cd mcp-vector-search
110
111
  uv sync && uv pip install -e .
111
112
  ```
112
113
 
113
- ### Complete Setup with Install Command
114
+ ### Complete Setup (One Command)
114
115
 
115
- The new **enhanced install command** provides a complete one-step setup:
116
+ The **hierarchical install command** (v0.13.0) provides complete project setup and MCP integration management:
116
117
 
117
118
  ```bash
118
- # Interactive setup with MCP configuration
119
+ # Quick setup (recommended)
119
120
  mcp-vector-search install
120
121
 
121
- # Setup without MCP configuration
122
- mcp-vector-search install --no-mcp
122
+ # This will:
123
+ # 1. Initialize your project configuration
124
+ # 2. Automatically index your codebase
125
+ # 3. Provide next-step hints for MCP integration
123
126
 
124
- # Setup for specific MCP tool
125
- mcp-vector-search install --mcp-tool "Claude Code"
126
-
127
- # Setup without automatic indexing
128
- mcp-vector-search install --no-index
127
+ # Install with all MCP integrations at once
128
+ mcp-vector-search install --with-mcp
129
129
 
130
130
  # Custom file extensions
131
131
  mcp-vector-search install --extensions .py,.js,.ts,.dart
132
+
133
+ # Skip automatic indexing
134
+ mcp-vector-search install --no-auto-index
132
135
  ```
133
136
 
134
- The install command:
135
- - Initializes your project configuration
136
- - Detects and configures MCP tools (Claude Code, Cursor, Windsurf, VS Code)
137
- - Automatically indexes your codebase
138
- - Provides rich progress indicators and next-step hints
137
+ ### Add MCP Integration for AI Tools
139
138
 
140
- ### Basic Usage
139
+ ```bash
140
+ # Add Claude Code integration (project-scoped)
141
+ mcp-vector-search install claude-code
142
+
143
+ # Add Cursor IDE integration (global)
144
+ mcp-vector-search install cursor
145
+
146
+ # Add Claude Desktop integration (global)
147
+ mcp-vector-search install claude-desktop
148
+
149
+ # See all available platforms
150
+ mcp-vector-search install list
151
+ ```
152
+
153
+ ### Remove MCP Integrations
141
154
 
142
155
  ```bash
143
- # Initialize your project
144
- mcp-vector-search init
156
+ # Remove specific platform
157
+ mcp-vector-search uninstall claude-code
145
158
 
146
- # Index your codebase
147
- mcp-vector-search index
159
+ # Remove all integrations
160
+ mcp-vector-search uninstall --all
148
161
 
162
+ # List configured integrations
163
+ mcp-vector-search uninstall list
164
+ ```
165
+
166
+ ### Basic Usage
167
+
168
+ ```bash
149
169
  # Search your code
150
170
  mcp-vector-search search "authentication logic"
151
171
  mcp-vector-search search "database connection setup"
152
172
  mcp-vector-search search "error handling patterns"
153
173
 
154
- # Setup automatic reindexing (recommended)
155
- mcp-vector-search auto-index setup --method all
174
+ # Index your codebase (if not done during install)
175
+ mcp-vector-search index
156
176
 
157
177
  # Check project status
158
178
  mcp-vector-search status
@@ -191,7 +211,50 @@ See [docs/VERSIONING_WORKFLOW.md](docs/VERSIONING_WORKFLOW.md) for complete docu
191
211
 
192
212
  ### Commands
193
213
 
194
- #### `init` - Initialize Project
214
+ #### `install` - Install Project and MCP Integrations (v0.13.0)
215
+ ```bash
216
+ # Quick setup (recommended)
217
+ mcp-vector-search install
218
+
219
+ # Install with all MCP integrations
220
+ mcp-vector-search install --with-mcp
221
+
222
+ # Custom file extensions
223
+ mcp-vector-search install --extensions .py,.js,.ts
224
+
225
+ # Skip automatic indexing
226
+ mcp-vector-search install --no-auto-index
227
+
228
+ # Platform-specific MCP integration
229
+ mcp-vector-search install claude-code # Project-scoped
230
+ mcp-vector-search install claude-desktop # Global
231
+ mcp-vector-search install cursor # Global
232
+ mcp-vector-search install windsurf # Global
233
+ mcp-vector-search install vscode # Global
234
+
235
+ # List available platforms
236
+ mcp-vector-search install list
237
+ ```
238
+
239
+ #### `uninstall` - Remove MCP Integrations (v0.13.0)
240
+ ```bash
241
+ # Remove specific platform
242
+ mcp-vector-search uninstall claude-code
243
+
244
+ # Remove all integrations
245
+ mcp-vector-search uninstall --all
246
+
247
+ # List configured integrations
248
+ mcp-vector-search uninstall list
249
+
250
+ # Skip backup creation
251
+ mcp-vector-search uninstall claude-code --no-backup
252
+
253
+ # Alias (same as uninstall)
254
+ mcp-vector-search remove claude-code
255
+ ```
256
+
257
+ #### `init` - Initialize Project (Simple)
195
258
  ```bash
196
259
  # Basic initialization
197
260
  mcp-vector-search init
@@ -53,49 +53,68 @@ cd mcp-vector-search
53
53
  uv sync && uv pip install -e .
54
54
  ```
55
55
 
56
- ### Complete Setup with Install Command
56
+ ### Complete Setup (One Command)
57
57
 
58
- The new **enhanced install command** provides a complete one-step setup:
58
+ The **hierarchical install command** (v0.13.0) provides complete project setup and MCP integration management:
59
59
 
60
60
  ```bash
61
- # Interactive setup with MCP configuration
61
+ # Quick setup (recommended)
62
62
  mcp-vector-search install
63
63
 
64
- # Setup without MCP configuration
65
- mcp-vector-search install --no-mcp
64
+ # This will:
65
+ # 1. Initialize your project configuration
66
+ # 2. Automatically index your codebase
67
+ # 3. Provide next-step hints for MCP integration
66
68
 
67
- # Setup for specific MCP tool
68
- mcp-vector-search install --mcp-tool "Claude Code"
69
-
70
- # Setup without automatic indexing
71
- mcp-vector-search install --no-index
69
+ # Install with all MCP integrations at once
70
+ mcp-vector-search install --with-mcp
72
71
 
73
72
  # Custom file extensions
74
73
  mcp-vector-search install --extensions .py,.js,.ts,.dart
74
+
75
+ # Skip automatic indexing
76
+ mcp-vector-search install --no-auto-index
75
77
  ```
76
78
 
77
- The install command:
78
- - Initializes your project configuration
79
- - Detects and configures MCP tools (Claude Code, Cursor, Windsurf, VS Code)
80
- - Automatically indexes your codebase
81
- - Provides rich progress indicators and next-step hints
79
+ ### Add MCP Integration for AI Tools
82
80
 
83
- ### Basic Usage
81
+ ```bash
82
+ # Add Claude Code integration (project-scoped)
83
+ mcp-vector-search install claude-code
84
+
85
+ # Add Cursor IDE integration (global)
86
+ mcp-vector-search install cursor
87
+
88
+ # Add Claude Desktop integration (global)
89
+ mcp-vector-search install claude-desktop
90
+
91
+ # See all available platforms
92
+ mcp-vector-search install list
93
+ ```
94
+
95
+ ### Remove MCP Integrations
84
96
 
85
97
  ```bash
86
- # Initialize your project
87
- mcp-vector-search init
98
+ # Remove specific platform
99
+ mcp-vector-search uninstall claude-code
88
100
 
89
- # Index your codebase
90
- mcp-vector-search index
101
+ # Remove all integrations
102
+ mcp-vector-search uninstall --all
91
103
 
104
+ # List configured integrations
105
+ mcp-vector-search uninstall list
106
+ ```
107
+
108
+ ### Basic Usage
109
+
110
+ ```bash
92
111
  # Search your code
93
112
  mcp-vector-search search "authentication logic"
94
113
  mcp-vector-search search "database connection setup"
95
114
  mcp-vector-search search "error handling patterns"
96
115
 
97
- # Setup automatic reindexing (recommended)
98
- mcp-vector-search auto-index setup --method all
116
+ # Index your codebase (if not done during install)
117
+ mcp-vector-search index
99
118
 
100
119
  # Check project status
101
120
  mcp-vector-search status
@@ -134,7 +153,50 @@ See [docs/VERSIONING_WORKFLOW.md](docs/VERSIONING_WORKFLOW.md) for complete docu
134
153
 
135
154
  ### Commands
136
155
 
137
- #### `init` - Initialize Project
156
+ #### `install` - Install Project and MCP Integrations (v0.13.0)
157
+ ```bash
158
+ # Quick setup (recommended)
159
+ mcp-vector-search install
160
+
161
+ # Install with all MCP integrations
162
+ mcp-vector-search install --with-mcp
163
+
164
+ # Custom file extensions
165
+ mcp-vector-search install --extensions .py,.js,.ts
166
+
167
+ # Skip automatic indexing
168
+ mcp-vector-search install --no-auto-index
169
+
170
+ # Platform-specific MCP integration
171
+ mcp-vector-search install claude-code # Project-scoped
172
+ mcp-vector-search install claude-desktop # Global
173
+ mcp-vector-search install cursor # Global
174
+ mcp-vector-search install windsurf # Global
175
+ mcp-vector-search install vscode # Global
176
+
177
+ # List available platforms
178
+ mcp-vector-search install list
179
+ ```
180
+
181
+ #### `uninstall` - Remove MCP Integrations (v0.13.0)
182
+ ```bash
183
+ # Remove specific platform
184
+ mcp-vector-search uninstall claude-code
185
+
186
+ # Remove all integrations
187
+ mcp-vector-search uninstall --all
188
+
189
+ # List configured integrations
190
+ mcp-vector-search uninstall list
191
+
192
+ # Skip backup creation
193
+ mcp-vector-search uninstall claude-code --no-backup
194
+
195
+ # Alias (same as uninstall)
196
+ mcp-vector-search remove claude-code
197
+ ```
198
+
199
+ #### `init` - Initialize Project (Simple)
138
200
  ```bash
139
201
  # Basic initialization
140
202
  mcp-vector-search init
@@ -7,6 +7,61 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.13.0] - 2025-10-27
11
+
12
+ ### Added
13
+ - **Hierarchical Install/Uninstall Commands**: Complete CLI command restructuring for better user experience
14
+ - New `install` command with platform-specific subcommands
15
+ - New `uninstall` command for removing MCP integrations
16
+ - Support for 5 MCP platforms: claude-code, claude-desktop, cursor, windsurf, vscode
17
+ - Project-scoped configuration (`.mcp.json`) for claude-code
18
+ - Global-scoped configuration for other platforms (home directory)
19
+ - `install list` and `uninstall list` for platform discovery
20
+ - `remove` command as alias for `uninstall`
21
+ - `--with-mcp` flag to install all MCP integrations at once
22
+ - `--no-auto-index` flag to skip automatic indexing
23
+ - `--no-backup` flag for uninstall operations
24
+
25
+ ### Changed
26
+ - **MCP Command Reserved**: The `mcp` command is now exclusively for MCP server operations (not installation)
27
+ - `mcp-vector-search mcp` - Start MCP server (stdio mode)
28
+ - `mcp-vector-search mcp list` - List configured servers
29
+ - `mcp-vector-search mcp test` - Test server startup
30
+ - **Install Command Reintroduced**: Previously deprecated `install` command is back with new hierarchical structure
31
+ - `install` is now the primary command for project setup and MCP integration
32
+ - `init` remains available for simple project initialization without MCP
33
+
34
+ ### Deprecated
35
+ - `init-mcp` command deprecated in favor of `install claude-code` (or other platform subcommands)
36
+
37
+ ### Files Modified
38
+ - `src/mcp_vector_search/cli/commands/install.py` - Rewritten with hierarchical structure
39
+ - `src/mcp_vector_search/cli/commands/uninstall.py` - New command for MCP removal
40
+ - `src/mcp_vector_search/cli/main.py` - Updated command registration and help text
41
+ - `CLAUDE.md` - Updated with new command examples and structure
42
+ - `README.md` - Updated quick start and command documentation
43
+
44
+ ### Migration Guide
45
+ **Old Pattern** (v0.12.0 and earlier):
46
+ ```bash
47
+ mcp-vector-search init --mcp
48
+ ```
49
+
50
+ **New Pattern** (v0.13.0+):
51
+ ```bash
52
+ # Quick setup
53
+ mcp-vector-search install
54
+
55
+ # Add specific platform
56
+ mcp-vector-search install claude-code
57
+ ```
58
+
59
+ The new structure provides:
60
+ - Better command discoverability
61
+ - Fine-grained platform control
62
+ - Clear separation between installation and MCP server operations
63
+ - Ability to remove specific integrations
64
+
10
65
  ### Added
11
66
  - **HTML Language Support**: Full HTML parser implementation
12
67
  - Semantic content extraction from HTML tags
@@ -56,6 +111,52 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
56
111
  - Created parser utilities module to reduce code duplication (potential -800 to -1000 LOC)
57
112
  - Proper LRU cache implementation with statistics and configurable size
58
113
 
114
+ ## [0.12.0] - 2025-10-25
115
+
116
+ ### Added
117
+ - **Hierarchical Graph Visualization**: Complete directory, file, and chunk-based visualization system
118
+ - Interactive D3.js force-directed graph with expand/collapse functionality
119
+ - Directory nodes expand to show all files and subdirectories
120
+ - File nodes expand to show individual code chunks with metadata
121
+ - Visual hierarchy with optimized 35px folder/file icons
122
+ - Cache-busting URL parameters and meta tags for fresh data loading
123
+
124
+ ### Enhanced
125
+ - **Graph Link Visibility**: Improved visual clarity of relationships
126
+ - Enhanced link colors with better opacity (0.4 for directories, 0.3 for files)
127
+ - Dynamic link distances based on node types (150px directories, 80px files/chunks)
128
+ - Optimized collision detection with dynamic radius calculations
129
+ - Better auto-spacing with enhanced force simulation parameters
130
+
131
+ - **Expand/Collapse Functionality**: Robust node interaction system
132
+ - Working directory expansion showing all child files and subdirectories
133
+ - File expansion revealing all contained code chunks
134
+ - Preserves original link structure before D3 modifications
135
+ - Proper state management for expanded/collapsed nodes
136
+ - Visual feedback with node color changes
137
+
138
+ ### Fixed
139
+ - **Parent Directory Linking**: Corrected absolute to relative path conversion
140
+ - Fixed lookup of parent directory IDs during graph generation
141
+ - Proper handling of nested directory structures
142
+ - Consistent path normalization across all node types
143
+
144
+ - **Stale Data Prevention**: Enhanced data freshness mechanisms
145
+ - Added `Cache-Control: no-cache, no-store, must-revalidate` meta tags
146
+ - Implemented timestamp-based cache-busting for JSON files
147
+ - Ensured visualization directory contains latest graph data
148
+ - Prevents browser caching of outdated graph structures
149
+
150
+ ### Files Modified
151
+ - `src/mcp_vector_search/visualization/index.html` - UI improvements, expand/collapse fixes, cache prevention
152
+ - `src/mcp_vector_search/cli/commands/visualize.py` - Parent directory path normalization and linking fixes
153
+
154
+ ### Technical Details
155
+ - Zero new dependencies (uses existing D3.js v7)
156
+ - Enhanced force simulation with configurable parameters
157
+ - Improved node interaction state management
158
+ - Better visual design with optimized spacing and colors
159
+
59
160
  ## [0.5.0] - 2025-10-02
60
161
 
61
162
  ### Added
@@ -38,6 +38,7 @@ dependencies = [
38
38
  "mcp>=1.12.4",
39
39
  "click-didyoumean>=0.3.0",
40
40
  "packaging>=23.0",
41
+ "authlib>=1.6.4",
41
42
  ]
42
43
 
43
44
  [dependency-groups]
@@ -47,6 +48,8 @@ dev = [
47
48
  "pytest-benchmark>=4.0.0",
48
49
  "pytest-cov>=4.1.0",
49
50
  "pytest-mock>=3.11.0",
51
+ "pytest-xdist>=3.3.0",
52
+ "pytest-watch>=4.2.0",
50
53
  "hypothesis>=6.88.0",
51
54
  "black>=23.0.0",
52
55
  "ruff>=0.1.0",
@@ -80,13 +83,7 @@ path = "src/mcp_vector_search/__init__.py"
80
83
  packages = ["src/mcp_vector_search"]
81
84
 
82
85
  # UV-specific configuration
83
- [tool.uv]
84
- dev-dependencies = [
85
- "pytest-xdist>=3.3.0",
86
- "pytest-watch>=4.2.0",
87
- ]
88
-
89
- # UV sources configuration removed - using standard dependencies
86
+ # Note: dev-dependencies moved to [dependency-groups] section above
90
87
 
91
88
  # Development tools configuration
92
89
  [tool.black]
@@ -33,7 +33,8 @@ minversion = 6.0
33
33
  timeout = 300
34
34
 
35
35
  # Async test configuration
36
- asyncio_mode = auto
36
+ asyncio_mode = "auto"
37
+ asyncio_default_fixture_loop_scope = function
37
38
 
38
39
  # Logging configuration
39
40
  log_cli = false
@@ -1,7 +1,7 @@
1
1
  """MCP Vector Search - CLI-first semantic code search with MCP integration."""
2
2
 
3
- __version__ = "0.9.3"
4
- __build__ = "40"
3
+ __version__ = "0.12.1"
4
+ __build__ = "51"
5
5
  __author__ = "Robert Matsuoka"
6
6
  __email__ = "bobmatnyc@gmail.com"
7
7
 
@@ -67,6 +67,13 @@ def main(
67
67
  max=128,
68
68
  rich_help_panel="⚡ Performance",
69
69
  ),
70
+ debug: bool = typer.Option(
71
+ False,
72
+ "--debug",
73
+ "-d",
74
+ help="Enable debug output (shows hierarchy building details)",
75
+ rich_help_panel="🔍 Debugging",
76
+ ),
70
77
  ) -> None:
71
78
  """📑 Index your codebase for semantic search.
72
79
 
@@ -114,6 +121,7 @@ def main(
114
121
  force_reindex=force,
115
122
  batch_size=batch_size,
116
123
  show_progress=True,
124
+ debug=debug,
117
125
  )
118
126
  )
119
127
 
@@ -134,6 +142,7 @@ async def run_indexing(
134
142
  force_reindex: bool = False,
135
143
  batch_size: int = 32,
136
144
  show_progress: bool = True,
145
+ debug: bool = False,
137
146
  ) -> None:
138
147
  """Run the indexing process."""
139
148
  # Load project configuration
@@ -179,6 +188,7 @@ async def run_indexing(
179
188
  database=database,
180
189
  project_root=project_root,
181
190
  file_extensions=file_extensions,
191
+ debug=debug,
182
192
  )
183
193
 
184
194
  try:
@@ -324,19 +334,41 @@ async def _run_batch_indexing(
324
334
  )
325
335
  )
326
336
 
337
+ # Rebuild directory index after indexing completes
338
+ try:
339
+ import os
340
+
341
+ chunk_stats = {}
342
+ for file_path in files_to_index:
343
+ try:
344
+ mtime = os.path.getmtime(file_path)
345
+ chunk_stats[str(file_path)] = {
346
+ "modified": mtime,
347
+ "chunks": 1, # Placeholder - real counts are in database
348
+ }
349
+ except OSError:
350
+ pass
351
+
352
+ indexer.directory_index.rebuild_from_files(
353
+ files_to_index, indexer.project_root, chunk_stats=chunk_stats
354
+ )
355
+ indexer.directory_index.save()
356
+ except Exception as e:
357
+ logger.error(f"Failed to update directory index: {e}")
358
+
327
359
  # Final progress summary
328
360
  console.print()
329
361
  if failed_count > 0:
330
362
  console.print(
331
363
  f"[yellow]⚠ {failed_count} files failed to index[/yellow]"
332
364
  )
333
- error_log_path = indexer.project_root / ".mcp-vector-search" / "indexing_errors.log"
365
+ error_log_path = (
366
+ indexer.project_root / ".mcp-vector-search" / "indexing_errors.log"
367
+ )
334
368
  if error_log_path.exists():
335
369
  # Prune log to keep only last 1000 errors
336
370
  _prune_error_log(error_log_path, max_lines=1000)
337
- console.print(
338
- f"[dim] → See details in: {error_log_path}[/dim]"
339
- )
371
+ console.print(f"[dim] → See details in: {error_log_path}[/dim]")
340
372
  else:
341
373
  # Non-progress mode (fallback to original behavior)
342
374
  indexed_count = await indexer.index_project(
@@ -643,22 +675,10 @@ def watch_cmd(
643
675
  watch_app()
644
676
 
645
677
 
646
- @index_app.command("auto")
647
- def auto_cmd() -> None:
648
- """🔄 Manage automatic indexing.
649
-
650
- Configure automatic indexing strategies like git hooks and scheduled tasks.
651
- This command provides subcommands for setup, status, and checking.
652
-
653
- Examples:
654
- mcp-vector-search index auto setup
655
- mcp-vector-search index auto status
656
- mcp-vector-search index auto check
657
- """
658
- from .auto_index import auto_index_app
678
+ # Import and register auto-index sub-app as a proper typer group
679
+ from .auto_index import auto_index_app # noqa: E402
659
680
 
660
- # This will show help for the auto subcommands
661
- auto_index_app()
681
+ index_app.add_typer(auto_index_app, name="auto", help="🔄 Manage automatic indexing")
662
682
 
663
683
 
664
684
  @index_app.command("health")
@@ -702,17 +722,19 @@ def _prune_error_log(log_path: Path, max_lines: int = 1000) -> None:
702
722
  max_lines: Maximum number of lines to keep (default: 1000)
703
723
  """
704
724
  try:
705
- with open(log_path, 'r') as f:
725
+ with open(log_path) as f:
706
726
  lines = f.readlines()
707
727
 
708
728
  if len(lines) > max_lines:
709
729
  # Keep only the last max_lines lines
710
730
  pruned_lines = lines[-max_lines:]
711
731
 
712
- with open(log_path, 'w') as f:
732
+ with open(log_path, "w") as f:
713
733
  f.writelines(pruned_lines)
714
734
 
715
- logger.debug(f"Pruned error log from {len(lines)} to {len(pruned_lines)} lines")
735
+ logger.debug(
736
+ f"Pruned error log from {len(lines)} to {len(pruned_lines)} lines"
737
+ )
716
738
  except Exception as e:
717
739
  logger.warning(f"Failed to prune error log: {e}")
718
740