mcp-vector-search 0.7.3__py3-none-any.whl → 0.7.5__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.

@@ -34,11 +34,12 @@ unfamiliar codebases, finding similar patterns, and integrating with AI tools.
34
34
 
35
35
  [bold cyan]Main Commands:[/bold cyan]
36
36
  init 🔧 Initialize project
37
+ demo 🎬 Run interactive demo
37
38
  doctor 🩺 Check system health
38
39
  status 📊 Show project status
39
40
  search 🔍 Search code semantically
40
41
  index 📇 Index codebase
41
- mcp 🤖 MCP integration
42
+ mcp 🤖 MCP integration for AI tools
42
43
  config ⚙️ Configure settings
43
44
  help ❓ Get help
44
45
  version ℹ️ Show version
@@ -51,6 +52,7 @@ unfamiliar codebases, finding similar patterns, and integrating with AI tools.
51
52
 
52
53
  # Import command modules
53
54
  from .commands.config import config_app # noqa: E402
55
+ from .commands.demo import demo_app # noqa: E402
54
56
  from .commands.index import index_app # noqa: E402
55
57
  from .commands.init import init_app # noqa: E402
56
58
  from .commands.mcp import mcp_app # noqa: E402
@@ -65,29 +67,32 @@ from .commands.status import main as status_main # noqa: E402
65
67
  # Use Typer group for init to support both direct call and subcommands
66
68
  app.add_typer(init_app, name="init", help="🔧 Initialize project for semantic search")
67
69
 
68
- # 2. DOCTOR - System health check
70
+ # 2. DEMO - Interactive demo
71
+ app.add_typer(demo_app, name="demo", help="🎬 Run interactive demo with sample project")
72
+
73
+ # 3. DOCTOR - System health check
69
74
  # (defined below inline)
70
75
 
71
- # 3. STATUS - Project status
76
+ # 4. STATUS - Project status
72
77
  app.command("status", help="📊 Show project status and statistics")(status_main)
73
78
 
74
- # 4. SEARCH - Search code
79
+ # 5. SEARCH - Search code
75
80
  # Register search as both a command and a typer group
76
81
  app.add_typer(search_app, name="search", help="🔍 Search code semantically")
77
82
 
78
- # 5. INDEX - Index codebase
83
+ # 6. INDEX - Index codebase
79
84
  app.add_typer(index_app, name="index", help="📇 Index codebase for semantic search")
80
85
 
81
- # 6. MCP - MCP integration
82
- app.add_typer(mcp_app, name="mcp", help="🤖 Manage Claude Code MCP integration")
86
+ # 7. MCP - MCP integration
87
+ app.add_typer(mcp_app, name="mcp", help="🤖 Manage MCP integration for AI tools")
83
88
 
84
- # 7. CONFIG - Configuration
89
+ # 8. CONFIG - Configuration
85
90
  app.add_typer(config_app, name="config", help="⚙️ Manage project configuration")
86
91
 
87
- # 8. HELP - Enhanced help
92
+ # 9. HELP - Enhanced help
88
93
  # (defined below inline)
89
94
 
90
- # 9. VERSION - Version info
95
+ # 10. VERSION - Version info
91
96
  # (defined below inline)
92
97
 
93
98
 
@@ -117,15 +122,6 @@ def deprecated_install():
117
122
  _deprecated_command("install", "init")()
118
123
 
119
124
 
120
- # Deprecated: demo -> removed
121
- @app.command("demo", hidden=True)
122
- def deprecated_demo():
123
- """[DEPRECATED] Command removed."""
124
- print_warning(
125
- "⚠️ The 'demo' command has been removed.\n"
126
- " Use [cyan]mcp-vector-search init --help[/cyan] for setup instructions."
127
- )
128
- raise typer.Exit(1)
129
125
 
130
126
 
131
127
  # Deprecated: find -> search
@@ -377,39 +377,36 @@ class ChromaVectorDatabase(VectorDatabase):
377
377
  # Get total count
378
378
  count = self._collection.count()
379
379
 
380
- # Get sample for language distribution
381
- sample_results = self._collection.get(
382
- limit=min(1000, count) if count > 0 else 0,
383
- include=["metadatas"],
384
- )
380
+ # Get ALL metadata to analyze (not just a sample)
381
+ # Only fetch metadata, not embeddings, for performance
382
+ results = self._collection.get(include=["metadatas"])
385
383
 
386
- languages = {}
387
- file_types = {}
384
+ # Count unique files from all chunks
385
+ files = {m.get("file_path", "") for m in results.get("metadatas", [])}
388
386
 
389
- if sample_results["metadatas"]:
390
- for metadata in sample_results["metadatas"]:
391
- # Count languages
392
- lang = metadata.get("language", "unknown")
393
- languages[lang] = languages.get(lang, 0) + 1
387
+ # Count languages and file types
388
+ language_counts = {}
389
+ file_type_counts = {}
394
390
 
395
- # Count file types
396
- file_path = metadata.get("file_path", "")
391
+ for metadata in results.get("metadatas", []):
392
+ # Count languages
393
+ lang = metadata.get("language", "unknown")
394
+ language_counts[lang] = language_counts.get(lang, 0) + 1
395
+
396
+ # Count file types
397
+ file_path = metadata.get("file_path", "")
398
+ if file_path:
397
399
  ext = Path(file_path).suffix or "no_extension"
398
- file_types[ext] = file_types.get(ext, 0) + 1
400
+ file_type_counts[ext] = file_type_counts.get(ext, 0) + 1
399
401
 
400
402
  # Estimate index size (rough approximation)
401
403
  index_size_mb = count * 0.001 # Rough estimate
402
404
 
403
405
  return IndexStats(
404
- total_files=len(
405
- {
406
- m.get("file_path", "")
407
- for m in sample_results.get("metadatas", [])
408
- }
409
- ),
406
+ total_files=len(files),
410
407
  total_chunks=count,
411
- languages=languages,
412
- file_types=file_types,
408
+ languages=language_counts,
409
+ file_types=file_type_counts,
413
410
  index_size_mb=index_size_mb,
414
411
  last_updated="unknown", # TODO: Track this
415
412
  embedding_model="unknown", # TODO: Track this
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-vector-search
3
- Version: 0.7.3
3
+ Version: 0.7.5
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
@@ -1,20 +1,21 @@
1
- mcp_vector_search/__init__.py,sha256=oYKNMl_U9KpUkmcl6mSeiFsg3eALZB2BhLLkDp9Edq4,299
1
+ mcp_vector_search/__init__.py,sha256=dZBJd61xdNTaijMxlEUMhBGLWPSCGNuFPxIzXBRWJ68,299
2
2
  mcp_vector_search/py.typed,sha256=lCKeV9Qcn9sGtbRsgg-LJO2ZwWRuknnnlmomq3bJFH0,43
3
3
  mcp_vector_search/cli/__init__.py,sha256=TNB7CaOASz8u3yHWLbNmo8-GtHF0qwUjVKWAuNphKgo,40
4
4
  mcp_vector_search/cli/didyoumean.py,sha256=F_ss-EX4F9RgnMsEhdTwLpyNCah9SqnBZc2tBtzASck,15918
5
5
  mcp_vector_search/cli/export.py,sha256=iluxuRT2KELdKlQeDAlVkteiel4GGrng153UAw9H0as,10804
6
6
  mcp_vector_search/cli/history.py,sha256=6wRrSfxpUe9hJXuaEeVxOVkFlcpqkIiGfwzDgd5N6c8,9323
7
7
  mcp_vector_search/cli/interactive.py,sha256=T7P4dAdvbglznzQYgiePv5YNyOx9FeE57Y3OKYnnbYE,12744
8
- mcp_vector_search/cli/main.py,sha256=ZmTuPFIIqiZzn7Ml04EkzgNveBm4uIXe0kA6t4jysB8,14602
8
+ mcp_vector_search/cli/main.py,sha256=5UnZufgKBUSMgxe7WDIl5tYI8fEONf1jNnhFjBvsnW0,14509
9
9
  mcp_vector_search/cli/output.py,sha256=7ShIk_UKzhDzRGxI6JluPu0gGkbmKOevqgIAKR4oCa0,12560
10
10
  mcp_vector_search/cli/suggestions.py,sha256=h-UaxoLcHmFbhZSm0WG7nKJXAIRIqhv7aGsXijp7vA8,13273
11
11
  mcp_vector_search/cli/commands/__init__.py,sha256=vQls-YKZ54YEwmf7g1dL0T2SS9D4pdQljXzsUChG_V4,42
12
12
  mcp_vector_search/cli/commands/auto_index.py,sha256=imVVbxWRlA128NPdK9BetNNl3ELrsdq-hqcsLqyAmoM,12712
13
13
  mcp_vector_search/cli/commands/config.py,sha256=mKE8gUgAOqCM__4yzEEu9HJPbx9X15lN264zkDJBRxg,12399
14
- mcp_vector_search/cli/commands/index.py,sha256=AWQk_nc5vOW0nxy2yjRre_2uktA4J32D-302IS3dT3M,17862
15
- mcp_vector_search/cli/commands/init.py,sha256=TdgFspoWAeXSkeWHa_o4FWJHIFwI4OW8TD4GL2TPOwM,23274
14
+ mcp_vector_search/cli/commands/demo.py,sha256=HOa5g4vDu_zjSq77bMcFaCck7RN9YsYgsIknAfeYIC8,10683
15
+ mcp_vector_search/cli/commands/index.py,sha256=tqn6KjDygAHam5mINthYFBm-hA6I8QYDjrSVRmUtXLE,18213
16
+ mcp_vector_search/cli/commands/init.py,sha256=2kdjtIPPeutKUXs65-6W1VQPF_BQrbV6_U3TCE7U5mw,23242
16
17
  mcp_vector_search/cli/commands/install.py,sha256=phk7Eb7UOU5IsRfJyaDPdOfdUWli9gyA4cHjhgXcNEI,24609
17
- mcp_vector_search/cli/commands/mcp.py,sha256=FKZNxYrDc7HfPTFBUEypCv-8atsrHEdbtU6Yfg9QUMA,18569
18
+ mcp_vector_search/cli/commands/mcp.py,sha256=LGk9AfQ8d3QOl38u7LnTLOq6tR1DLah_X0ZuzCBNhYI,38606
18
19
  mcp_vector_search/cli/commands/reset.py,sha256=bsIT6zjDf6gsvIkVaRaUClYzlTyNe--8t0NWkBY0ldU,13724
19
20
  mcp_vector_search/cli/commands/search.py,sha256=yyou7wO9qZ_w2oiKdyOrk2WUxvkFpc-Up8hpflxYlyw,24802
20
21
  mcp_vector_search/cli/commands/status.py,sha256=7ro6M3aifV0cuCqqxJ278P9g-fbhzvjoOABUoitMrPo,18929
@@ -26,7 +27,7 @@ mcp_vector_search/config/settings.py,sha256=m8o8j-tvWcuzrnNL6YWbi2fFbcB3lZY1kMNi
26
27
  mcp_vector_search/core/__init__.py,sha256=bWKtKmmaFs7gG5XPCbrx77UYIVeO1FF8wIJxpj1dLNw,48
27
28
  mcp_vector_search/core/auto_indexer.py,sha256=0S4lZXaUgqEytMSA2FxQsh5hN7V1mbSLYVzEf_dslYQ,10307
28
29
  mcp_vector_search/core/connection_pool.py,sha256=Yo-gUQQbHawtuvh6OcJiAlbbvWQGQBd31QZOvs498fg,11224
29
- mcp_vector_search/core/database.py,sha256=4CDqtmxtg1EsajZP36Xwc43jD_84szVfq5SFLpJh3eg,35515
30
+ mcp_vector_search/core/database.py,sha256=fMcclsO2dGOfsUSN38rJDRGVNEuPvGKHZlSSuuyIKag,35512
30
31
  mcp_vector_search/core/embeddings.py,sha256=wSMUNxZcuGPMxxQ1AbKqA1a3-0c6AiOqmuuI7OqTyaQ,10578
31
32
  mcp_vector_search/core/exceptions.py,sha256=3bCjT8wmrLz_0e_Tayr90049zNTKYFWZa19kl0saKz8,1597
32
33
  mcp_vector_search/core/factory.py,sha256=tM6Ft-V9buF7nn9xbRMU1ngji-BJOKt6BhtfQhFLmF4,10384
@@ -55,8 +56,8 @@ mcp_vector_search/utils/__init__.py,sha256=Eq6lY-oPMfCt-GpPUbg9QbmTHuQVmTaVDBMU2
55
56
  mcp_vector_search/utils/gitignore.py,sha256=bzie3V5gOGIN7j3FNVLLCx8O_hfZJDUqqAy5T3lT3Ek,7685
56
57
  mcp_vector_search/utils/timing.py,sha256=THC7mfbTYnUpnnDcblgQacYMzbEkfFoIShx6plmhCgg,11285
57
58
  mcp_vector_search/utils/version.py,sha256=d7fS-CLemxb8UzZ9j18zH0Y0Ud097ljKKYYOPulnGPE,1138
58
- mcp_vector_search-0.7.3.dist-info/METADATA,sha256=eIS0WUMDN9V0Qxw4Z48xiB9EDHxDxwblcyTrIS_sXXQ,19120
59
- mcp_vector_search-0.7.3.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
60
- mcp_vector_search-0.7.3.dist-info/entry_points.txt,sha256=y3Ygtc_JiBchNEIL-tPABo7EbzBExGAxwGdkkeP5D2I,86
61
- mcp_vector_search-0.7.3.dist-info/licenses/LICENSE,sha256=FqZUgGJH_tZKZLQsMCpXaLawRyLmyFKRVfMwYyEcyTs,1072
62
- mcp_vector_search-0.7.3.dist-info/RECORD,,
59
+ mcp_vector_search-0.7.5.dist-info/METADATA,sha256=7K-LZqTr2XyHrFVwuUBGM0AxKku3b-a0HEWNkUTnYMo,19120
60
+ mcp_vector_search-0.7.5.dist-info/WHEEL,sha256=qtCwoSJWgHk21S1Kb4ihdzI2rlJ1ZKaIurTj_ngOhyQ,87
61
+ mcp_vector_search-0.7.5.dist-info/entry_points.txt,sha256=y3Ygtc_JiBchNEIL-tPABo7EbzBExGAxwGdkkeP5D2I,86
62
+ mcp_vector_search-0.7.5.dist-info/licenses/LICENSE,sha256=FqZUgGJH_tZKZLQsMCpXaLawRyLmyFKRVfMwYyEcyTs,1072
63
+ mcp_vector_search-0.7.5.dist-info/RECORD,,