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.
- mcp_vector_search/__init__.py +2 -2
- mcp_vector_search/cli/commands/demo.py +360 -0
- mcp_vector_search/cli/commands/index.py +14 -4
- mcp_vector_search/cli/commands/init.py +0 -1
- mcp_vector_search/cli/commands/mcp.py +646 -36
- mcp_vector_search/cli/main.py +15 -19
- mcp_vector_search/core/database.py +20 -23
- {mcp_vector_search-0.7.3.dist-info → mcp_vector_search-0.7.5.dist-info}/METADATA +1 -1
- {mcp_vector_search-0.7.3.dist-info → mcp_vector_search-0.7.5.dist-info}/RECORD +12 -11
- {mcp_vector_search-0.7.3.dist-info → mcp_vector_search-0.7.5.dist-info}/WHEEL +0 -0
- {mcp_vector_search-0.7.3.dist-info → mcp_vector_search-0.7.5.dist-info}/entry_points.txt +0 -0
- {mcp_vector_search-0.7.3.dist-info → mcp_vector_search-0.7.5.dist-info}/licenses/LICENSE +0 -0
mcp_vector_search/cli/main.py
CHANGED
|
@@ -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.
|
|
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
|
-
#
|
|
76
|
+
# 4. STATUS - Project status
|
|
72
77
|
app.command("status", help="📊 Show project status and statistics")(status_main)
|
|
73
78
|
|
|
74
|
-
#
|
|
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
|
-
#
|
|
83
|
+
# 6. INDEX - Index codebase
|
|
79
84
|
app.add_typer(index_app, name="index", help="📇 Index codebase for semantic search")
|
|
80
85
|
|
|
81
|
-
#
|
|
82
|
-
app.add_typer(mcp_app, name="mcp", help="🤖 Manage
|
|
86
|
+
# 7. MCP - MCP integration
|
|
87
|
+
app.add_typer(mcp_app, name="mcp", help="🤖 Manage MCP integration for AI tools")
|
|
83
88
|
|
|
84
|
-
#
|
|
89
|
+
# 8. CONFIG - Configuration
|
|
85
90
|
app.add_typer(config_app, name="config", help="⚙️ Manage project configuration")
|
|
86
91
|
|
|
87
|
-
#
|
|
92
|
+
# 9. HELP - Enhanced help
|
|
88
93
|
# (defined below inline)
|
|
89
94
|
|
|
90
|
-
#
|
|
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
|
|
381
|
-
|
|
382
|
-
|
|
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
|
-
|
|
387
|
-
|
|
384
|
+
# Count unique files from all chunks
|
|
385
|
+
files = {m.get("file_path", "") for m in results.get("metadatas", [])}
|
|
388
386
|
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
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
|
-
|
|
396
|
-
|
|
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
|
-
|
|
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=
|
|
412
|
-
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
|
+
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=
|
|
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=
|
|
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/
|
|
15
|
-
mcp_vector_search/cli/commands/
|
|
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=
|
|
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=
|
|
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.
|
|
59
|
-
mcp_vector_search-0.7.
|
|
60
|
-
mcp_vector_search-0.7.
|
|
61
|
-
mcp_vector_search-0.7.
|
|
62
|
-
mcp_vector_search-0.7.
|
|
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,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|