mcp-vector-search 0.0.3__tar.gz → 0.4.12__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.
- mcp_vector_search-0.4.12/.claude/agents/.dependency_cache +13 -0
- mcp_vector_search-0.4.12/.claude/agents/.mpm_deployment_state +11 -0
- mcp_vector_search-0.4.12/.claude/settings.local.json +16 -0
- mcp_vector_search-0.4.12/.claude-mpm/.gitignore +4 -0
- mcp_vector_search-0.4.12/.claude-mpm/config/project.json +11 -0
- mcp_vector_search-0.4.12/.claude-mpm/memories/README.md +36 -0
- mcp_vector_search-0.4.12/.claude-mpm/memories/engineer_memories.md +3 -0
- mcp_vector_search-0.4.12/.claude-mpm/memories/research_memories.md +3 -0
- mcp_vector_search-0.4.12/.claude-mpm/memories/version-control_memories.md +3 -0
- mcp_vector_search-0.4.12/.github/workflows/ci.yml +251 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/.gitignore +7 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/.pre-commit-config.yaml +11 -2
- mcp_vector_search-0.4.12/CLAUDE.md +204 -0
- mcp_vector_search-0.4.12/ENGINEER_TASK.md +107 -0
- mcp_vector_search-0.4.12/INSTALL.md +153 -0
- mcp_vector_search-0.4.12/Makefile +487 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/PKG-INFO +173 -7
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/README.md +169 -5
- mcp_vector_search-0.4.12/docs/CHANGELOG.md +325 -0
- mcp_vector_search-0.4.12/docs/CLI_FEATURES.md +90 -0
- mcp_vector_search-0.4.12/docs/DEPLOY.md +365 -0
- mcp_vector_search-0.4.12/docs/DEVELOPMENT.md +243 -0
- mcp_vector_search-0.4.12/docs/FEATURES.md +300 -0
- mcp_vector_search-0.4.12/docs/IMPROVEMENTS_SUMMARY.md +247 -0
- mcp_vector_search-0.4.12/docs/MCP_FILE_WATCHING.md +167 -0
- mcp_vector_search-0.4.12/docs/RELEASES.md +479 -0
- mcp_vector_search-0.4.12/docs/STRUCTURE.md +355 -0
- mcp_vector_search-0.4.12/docs/VERSIONING.md +410 -0
- mcp_vector_search-0.4.12/docs/VERSIONING_WORKFLOW.md +411 -0
- mcp_vector_search-0.4.12/docs/analysis/SEARCH_ANALYSIS_REPORT.md +230 -0
- mcp_vector_search-0.4.12/docs/analysis/SEARCH_IMPROVEMENT_PLAN.md +389 -0
- mcp_vector_search-0.4.12/docs/architecture/REINDEXING_WORKFLOW.md +261 -0
- mcp_vector_search-0.4.12/docs/debugging/SEARCH_BUG_ANALYSIS.md +164 -0
- mcp_vector_search-0.4.12/docs/developer/API.md +568 -0
- mcp_vector_search-0.4.12/docs/developer/CONTRIBUTING.md +442 -0
- mcp_vector_search-0.4.12/docs/developer/LINTING.md +418 -0
- mcp_vector_search-0.4.12/docs/developer/REFACTORING_ANALYSIS.md +356 -0
- mcp_vector_search-0.4.12/docs/developer/TESTING.md +677 -0
- mcp_vector_search-0.4.12/docs/developer/TESTING_STRATEGY.md +249 -0
- mcp_vector_search-0.4.12/docs/developer/TEST_SUITE_SUMMARY.md +210 -0
- mcp_vector_search-0.4.12/docs/mcp-integration.md +278 -0
- mcp_vector_search-0.4.12/docs/performance/CONNECTION_POOLING.md +279 -0
- mcp_vector_search-0.4.12/docs/performance/SEARCH_TIMING_ANALYSIS.md +229 -0
- mcp_vector_search-0.4.12/docs/technical/SIMILARITY_CALCULATION_FIX.md +181 -0
- mcp_vector_search-0.4.12/examples/connection_pooling_example.py +282 -0
- mcp_vector_search-0.4.12/examples/semi_automatic_reindexing_demo.py +293 -0
- mcp_vector_search-0.4.12/mcp-vector-search-wrapper +28 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/pyproject.toml +18 -11
- mcp_vector_search-0.4.12/pytest.ini +49 -0
- mcp_vector_search-0.4.12/scripts/README.md +516 -0
- mcp_vector_search-0.4.12/scripts/analyze_search_bottlenecks.py +317 -0
- mcp_vector_search-0.4.12/scripts/build.sh +65 -0
- mcp_vector_search-0.4.12/scripts/comprehensive_build.py +328 -0
- mcp_vector_search-0.4.12/scripts/deploy-test.sh +65 -0
- mcp_vector_search-0.4.12/scripts/dev-build.py +212 -0
- mcp_vector_search-0.4.12/scripts/dev-test.sh +49 -0
- mcp_vector_search-0.4.12/scripts/fix_linting.py +81 -0
- mcp_vector_search-0.4.12/scripts/monitor_search_performance.py +196 -0
- mcp_vector_search-0.4.12/scripts/publish.sh +74 -0
- mcp_vector_search-0.4.12/scripts/quick_search_timing.py +238 -0
- mcp_vector_search-0.4.12/scripts/run_search_timing_tests.py +533 -0
- mcp_vector_search-0.4.12/scripts/run_tests.py +293 -0
- mcp_vector_search-0.4.12/scripts/search_performance_monitor.py +360 -0
- mcp_vector_search-0.4.12/scripts/search_quality_analyzer.py +563 -0
- mcp_vector_search-0.4.12/scripts/version_manager.py +406 -0
- mcp_vector_search-0.4.12/scripts/workflow.sh +53 -0
- mcp_vector_search-0.4.12/search_javascript_20250817_224715.json +45 -0
- mcp_vector_search-0.4.12/shell-aliases.sh +64 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/__init__.py +3 -2
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/commands/auto_index.py +397 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/config.py +88 -40
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/index.py +198 -52
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/commands/init.py +625 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/commands/install.py +284 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/commands/mcp.py +495 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/search.py +241 -87
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/status.py +184 -58
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/watch.py +34 -35
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/didyoumean.py +184 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/export.py +320 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/history.py +292 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/interactive.py +342 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/cli/main.py +265 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/output.py +63 -45
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/config/defaults.py +50 -36
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/config/settings.py +49 -35
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/auto_indexer.py +298 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/connection_pool.py +322 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/database.py +741 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/embeddings.py +73 -29
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/exceptions.py +19 -2
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/factory.py +310 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/git_hooks.py +345 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/indexer.py +237 -73
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/models.py +21 -19
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/project.py +73 -58
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/scheduler.py +330 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/core/search.py +812 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/watcher.py +48 -46
- mcp_vector_search-0.4.12/src/mcp_vector_search/mcp/__init__.py +5 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/mcp/__main__.py +25 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/mcp/server.py +701 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/parsers/base.py +30 -31
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/parsers/javascript.py +74 -48
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/parsers/python.py +57 -49
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/parsers/registry.py +47 -32
- mcp_vector_search-0.4.12/src/mcp_vector_search/parsers/text.py +179 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/utils/__init__.py +40 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/utils/gitignore.py +229 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/utils/timing.py +334 -0
- mcp_vector_search-0.4.12/src/mcp_vector_search/utils/version.py +47 -0
- mcp_vector_search-0.4.12/tests/conftest.py +510 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/uv.lock +349 -95
- mcp_vector_search-0.0.3/src/mcp_vector_search/cli/commands/init.py +0 -212
- mcp_vector_search-0.0.3/src/mcp_vector_search/cli/main.py +0 -117
- mcp_vector_search-0.0.3/src/mcp_vector_search/core/database.py +0 -431
- mcp_vector_search-0.0.3/src/mcp_vector_search/core/search.py +0 -324
- mcp_vector_search-0.0.3/src/mcp_vector_search/mcp/__init__.py +0 -1
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/LICENSE +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/docs/prd/mcp_vector_search_prd_updated.md +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/scripts/dev-setup.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/__init__.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/cli/commands/__init__.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/config/__init__.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/core/__init__.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/parsers/__init__.py +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/src/mcp_vector_search/py.typed +0 -0
- {mcp_vector_search-0.0.3 → mcp_vector_search-0.4.12}/tests/__init__.py +0 -0
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
{
|
|
2
|
+
"bb661a7aa0e44dd4632e80c04c7337b9": {
|
|
3
|
+
"timestamp": 1755844432.4411361,
|
|
4
|
+
"results": {
|
|
5
|
+
"agents": {},
|
|
6
|
+
"summary": {
|
|
7
|
+
"total_agents": 0
|
|
8
|
+
}
|
|
9
|
+
},
|
|
10
|
+
"deployment_hash": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855",
|
|
11
|
+
"context": {}
|
|
12
|
+
}
|
|
13
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"mcpServers": {
|
|
3
|
+
"mcp-vector-search": {
|
|
4
|
+
"type": "stdio",
|
|
5
|
+
"command": "/Users/masa/Projects/managed/mcp-vector-search/.venv/bin/python3",
|
|
6
|
+
"args": [
|
|
7
|
+
"-m",
|
|
8
|
+
"mcp_vector_search.mcp.server",
|
|
9
|
+
"/Users/masa/Projects/managed/mcp-vector-search"
|
|
10
|
+
],
|
|
11
|
+
"env": {
|
|
12
|
+
"MCP_ENABLE_FILE_WATCHING": "true"
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# Agent Memory System
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Each agent maintains project-specific knowledge in these files. Agents read their memory file before tasks and update it when they learn something new.
|
|
5
|
+
|
|
6
|
+
## Manual Editing
|
|
7
|
+
Feel free to edit these files to:
|
|
8
|
+
- Add project-specific guidelines
|
|
9
|
+
- Remove outdated information
|
|
10
|
+
- Reorganize for better clarity
|
|
11
|
+
- Add domain-specific knowledge
|
|
12
|
+
|
|
13
|
+
## Memory Limits
|
|
14
|
+
- Max file size: 80KB (~20k tokens)
|
|
15
|
+
- Max sections: 10
|
|
16
|
+
- Max items per section: 15
|
|
17
|
+
- Files auto-truncate when limits exceeded
|
|
18
|
+
|
|
19
|
+
## File Format
|
|
20
|
+
Standard markdown with structured sections. Agents expect:
|
|
21
|
+
- Project Architecture
|
|
22
|
+
- Implementation Guidelines
|
|
23
|
+
- Common Mistakes to Avoid
|
|
24
|
+
- Current Technical Context
|
|
25
|
+
|
|
26
|
+
## How It Works
|
|
27
|
+
1. Agents read their memory file before starting tasks
|
|
28
|
+
2. Agents add learnings during or after task completion
|
|
29
|
+
3. Files automatically enforce size limits
|
|
30
|
+
4. Developers can manually edit for accuracy
|
|
31
|
+
|
|
32
|
+
## Memory File Lifecycle
|
|
33
|
+
- Created automatically when agent first runs
|
|
34
|
+
- Updated through hook system after delegations
|
|
35
|
+
- Manually editable by developers
|
|
36
|
+
- Version controlled with project
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
name: CI/CD Pipeline
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [ main, develop ]
|
|
6
|
+
tags: [ 'v*' ]
|
|
7
|
+
pull_request:
|
|
8
|
+
branches: [ main, develop ]
|
|
9
|
+
|
|
10
|
+
env:
|
|
11
|
+
PYTHON_VERSION: "3.11"
|
|
12
|
+
|
|
13
|
+
jobs:
|
|
14
|
+
lint:
|
|
15
|
+
name: Lint & Format Check
|
|
16
|
+
runs-on: ubuntu-latest
|
|
17
|
+
steps:
|
|
18
|
+
- uses: actions/checkout@v4
|
|
19
|
+
|
|
20
|
+
- name: Install uv
|
|
21
|
+
uses: astral-sh/setup-uv@v3
|
|
22
|
+
with:
|
|
23
|
+
version: "latest"
|
|
24
|
+
|
|
25
|
+
- name: Set up Python
|
|
26
|
+
run: uv python install ${{ env.PYTHON_VERSION }}
|
|
27
|
+
|
|
28
|
+
- name: Install dependencies
|
|
29
|
+
run: uv sync --dev
|
|
30
|
+
|
|
31
|
+
- name: Run ruff format check
|
|
32
|
+
run: uv run ruff format --check src/
|
|
33
|
+
|
|
34
|
+
- name: Run ruff lint
|
|
35
|
+
run: uv run ruff check src/
|
|
36
|
+
|
|
37
|
+
- name: Run mypy
|
|
38
|
+
run: uv run mypy src/mcp_vector_search --ignore-missing-imports
|
|
39
|
+
|
|
40
|
+
test:
|
|
41
|
+
name: Test Suite
|
|
42
|
+
runs-on: ${{ matrix.os }}
|
|
43
|
+
strategy:
|
|
44
|
+
matrix:
|
|
45
|
+
os: [ubuntu-latest, macos-latest, windows-latest]
|
|
46
|
+
python-version: ["3.11", "3.12"]
|
|
47
|
+
|
|
48
|
+
steps:
|
|
49
|
+
- uses: actions/checkout@v4
|
|
50
|
+
|
|
51
|
+
- name: Install uv
|
|
52
|
+
uses: astral-sh/setup-uv@v3
|
|
53
|
+
with:
|
|
54
|
+
version: "latest"
|
|
55
|
+
|
|
56
|
+
- name: Set up Python ${{ matrix.python-version }}
|
|
57
|
+
run: uv python install ${{ matrix.python-version }}
|
|
58
|
+
|
|
59
|
+
- name: Install dependencies
|
|
60
|
+
run: uv sync --dev
|
|
61
|
+
|
|
62
|
+
- name: Run tests
|
|
63
|
+
run: uv run pytest tests/ -v --cov=src/mcp_vector_search --cov-report=xml --cov-report=term-missing
|
|
64
|
+
|
|
65
|
+
- name: Upload coverage to Codecov
|
|
66
|
+
if: matrix.os == 'ubuntu-latest' && matrix.python-version == '3.11'
|
|
67
|
+
uses: codecov/codecov-action@v3
|
|
68
|
+
with:
|
|
69
|
+
file: ./coverage.xml
|
|
70
|
+
fail_ci_if_error: true
|
|
71
|
+
|
|
72
|
+
build:
|
|
73
|
+
name: Build Package
|
|
74
|
+
runs-on: ubuntu-latest
|
|
75
|
+
needs: [lint, test]
|
|
76
|
+
steps:
|
|
77
|
+
- uses: actions/checkout@v4
|
|
78
|
+
|
|
79
|
+
- name: Install uv
|
|
80
|
+
uses: astral-sh/setup-uv@v3
|
|
81
|
+
with:
|
|
82
|
+
version: "latest"
|
|
83
|
+
|
|
84
|
+
- name: Set up Python
|
|
85
|
+
run: uv python install ${{ env.PYTHON_VERSION }}
|
|
86
|
+
|
|
87
|
+
- name: Install dependencies
|
|
88
|
+
run: uv sync --dev
|
|
89
|
+
|
|
90
|
+
- name: Build package
|
|
91
|
+
run: uv build
|
|
92
|
+
|
|
93
|
+
- name: Check package
|
|
94
|
+
run: uv run twine check dist/*
|
|
95
|
+
|
|
96
|
+
- name: Upload build artifacts
|
|
97
|
+
uses: actions/upload-artifact@v4
|
|
98
|
+
with:
|
|
99
|
+
name: dist
|
|
100
|
+
path: dist/
|
|
101
|
+
|
|
102
|
+
security:
|
|
103
|
+
name: Security Scan
|
|
104
|
+
runs-on: ubuntu-latest
|
|
105
|
+
steps:
|
|
106
|
+
- uses: actions/checkout@v4
|
|
107
|
+
|
|
108
|
+
- name: Install uv
|
|
109
|
+
uses: astral-sh/setup-uv@v3
|
|
110
|
+
with:
|
|
111
|
+
version: "latest"
|
|
112
|
+
|
|
113
|
+
- name: Set up Python
|
|
114
|
+
run: uv python install ${{ env.PYTHON_VERSION }}
|
|
115
|
+
|
|
116
|
+
- name: Install dependencies
|
|
117
|
+
run: uv sync --dev
|
|
118
|
+
|
|
119
|
+
- name: Run safety check
|
|
120
|
+
run: uv run safety check --json || true
|
|
121
|
+
|
|
122
|
+
- name: Run bandit security scan
|
|
123
|
+
run: uv run bandit -r src/ -f json || true
|
|
124
|
+
|
|
125
|
+
release:
|
|
126
|
+
name: Release to PyPI
|
|
127
|
+
runs-on: ubuntu-latest
|
|
128
|
+
needs: [lint, test, build, security]
|
|
129
|
+
if: startsWith(github.ref, 'refs/tags/v')
|
|
130
|
+
environment: release
|
|
131
|
+
permissions:
|
|
132
|
+
id-token: write # For trusted publishing
|
|
133
|
+
|
|
134
|
+
steps:
|
|
135
|
+
- uses: actions/checkout@v4
|
|
136
|
+
|
|
137
|
+
- name: Download build artifacts
|
|
138
|
+
uses: actions/download-artifact@v4
|
|
139
|
+
with:
|
|
140
|
+
name: dist
|
|
141
|
+
path: dist/
|
|
142
|
+
|
|
143
|
+
- name: Publish to PyPI
|
|
144
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
145
|
+
with:
|
|
146
|
+
password: ${{ secrets.PYPI_API_TOKEN }}
|
|
147
|
+
|
|
148
|
+
performance:
|
|
149
|
+
name: Performance Benchmarks
|
|
150
|
+
runs-on: ubuntu-latest
|
|
151
|
+
needs: [lint, test]
|
|
152
|
+
if: github.event_name == 'push' && github.ref == 'refs/heads/main'
|
|
153
|
+
|
|
154
|
+
steps:
|
|
155
|
+
- uses: actions/checkout@v4
|
|
156
|
+
|
|
157
|
+
- name: Install uv
|
|
158
|
+
uses: astral-sh/setup-uv@v3
|
|
159
|
+
with:
|
|
160
|
+
version: "latest"
|
|
161
|
+
|
|
162
|
+
- name: Set up Python
|
|
163
|
+
run: uv python install ${{ env.PYTHON_VERSION }}
|
|
164
|
+
|
|
165
|
+
- name: Install dependencies
|
|
166
|
+
run: uv sync --dev
|
|
167
|
+
|
|
168
|
+
- name: Run performance tests
|
|
169
|
+
run: |
|
|
170
|
+
# Create a test project for benchmarking
|
|
171
|
+
mkdir -p /tmp/test-project
|
|
172
|
+
cd /tmp/test-project
|
|
173
|
+
echo "def hello(): pass" > test.py
|
|
174
|
+
|
|
175
|
+
# Initialize and run benchmarks
|
|
176
|
+
uv run mcp-vector-search init --file-extensions .py --embedding-model sentence-transformers/all-MiniLM-L6-v2
|
|
177
|
+
python3 ${{ github.workspace }}/scripts/search_performance_monitor.py --save
|
|
178
|
+
|
|
179
|
+
- name: Upload performance results
|
|
180
|
+
uses: actions/upload-artifact@v4
|
|
181
|
+
with:
|
|
182
|
+
name: performance-results
|
|
183
|
+
path: /tmp/test-project/.mcp-vector-search/performance_metrics.jsonl
|
|
184
|
+
|
|
185
|
+
docs:
|
|
186
|
+
name: Documentation Check
|
|
187
|
+
runs-on: ubuntu-latest
|
|
188
|
+
steps:
|
|
189
|
+
- uses: actions/checkout@v4
|
|
190
|
+
|
|
191
|
+
- name: Check README links
|
|
192
|
+
run: |
|
|
193
|
+
# Check for broken links in README
|
|
194
|
+
grep -o 'http[s]*://[^)]*' README.md | while read url; do
|
|
195
|
+
if ! curl -s --head "$url" | head -n 1 | grep -q "200 OK"; then
|
|
196
|
+
echo "Broken link: $url"
|
|
197
|
+
exit 1
|
|
198
|
+
fi
|
|
199
|
+
done || true
|
|
200
|
+
|
|
201
|
+
- name: Check documentation completeness
|
|
202
|
+
run: |
|
|
203
|
+
# Ensure key documentation files exist
|
|
204
|
+
required_docs=("README.md" "docs/CHANGELOG.md" "docs/VERSIONING_WORKFLOW.md")
|
|
205
|
+
for doc in "${required_docs[@]}"; do
|
|
206
|
+
if [ ! -f "$doc" ]; then
|
|
207
|
+
echo "Missing documentation: $doc"
|
|
208
|
+
exit 1
|
|
209
|
+
fi
|
|
210
|
+
done
|
|
211
|
+
|
|
212
|
+
integration:
|
|
213
|
+
name: Integration Tests
|
|
214
|
+
runs-on: ubuntu-latest
|
|
215
|
+
needs: [build]
|
|
216
|
+
steps:
|
|
217
|
+
- uses: actions/checkout@v4
|
|
218
|
+
|
|
219
|
+
- name: Download build artifacts
|
|
220
|
+
uses: actions/download-artifact@v4
|
|
221
|
+
with:
|
|
222
|
+
name: dist
|
|
223
|
+
path: dist/
|
|
224
|
+
|
|
225
|
+
- name: Install uv
|
|
226
|
+
uses: astral-sh/setup-uv@v3
|
|
227
|
+
with:
|
|
228
|
+
version: "latest"
|
|
229
|
+
|
|
230
|
+
- name: Set up Python
|
|
231
|
+
run: uv python install ${{ env.PYTHON_VERSION }}
|
|
232
|
+
|
|
233
|
+
- name: Test package installation
|
|
234
|
+
run: |
|
|
235
|
+
# Install from wheel
|
|
236
|
+
uv pip install dist/*.whl
|
|
237
|
+
|
|
238
|
+
# Test CLI is available
|
|
239
|
+
mcp-vector-search --version
|
|
240
|
+
|
|
241
|
+
# Test basic functionality
|
|
242
|
+
mkdir -p /tmp/integration-test
|
|
243
|
+
cd /tmp/integration-test
|
|
244
|
+
echo "def test(): pass" > test.py
|
|
245
|
+
|
|
246
|
+
# Initialize project
|
|
247
|
+
mcp-vector-search init --file-extensions .py --embedding-model sentence-transformers/all-MiniLM-L6-v2
|
|
248
|
+
|
|
249
|
+
# Index and search
|
|
250
|
+
mcp-vector-search index
|
|
251
|
+
mcp-vector-search search "function" --limit 5
|
|
@@ -231,3 +231,10 @@ tramp
|
|
|
231
231
|
*.tar.gz
|
|
232
232
|
*.rar
|
|
233
233
|
*.7z
|
|
234
|
+
|
|
235
|
+
# Claude configuration
|
|
236
|
+
# The .claude/settings.local.json file contains project-specific MCP configuration
|
|
237
|
+
# and should be committed to the repository for team collaboration
|
|
238
|
+
.claude/cache/
|
|
239
|
+
.claude/tmp/
|
|
240
|
+
# Note: .claude/settings.local.json is NOT ignored - it should be committed
|
|
@@ -16,14 +16,23 @@ repos:
|
|
|
16
16
|
language_version: python3.11
|
|
17
17
|
|
|
18
18
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
19
|
-
rev: v0.
|
|
19
|
+
rev: v0.6.0
|
|
20
20
|
hooks:
|
|
21
21
|
- id: ruff
|
|
22
22
|
args: [--fix, --exit-non-zero-on-fix]
|
|
23
|
+
- id: ruff-format
|
|
23
24
|
|
|
24
25
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
25
26
|
rev: v1.8.0
|
|
26
27
|
hooks:
|
|
27
28
|
- id: mypy
|
|
28
29
|
additional_dependencies: [types-all]
|
|
29
|
-
args: [--
|
|
30
|
+
args: [--ignore-missing-imports]
|
|
31
|
+
|
|
32
|
+
# Security scanning
|
|
33
|
+
- repo: https://github.com/PyCQA/bandit
|
|
34
|
+
rev: 1.7.5
|
|
35
|
+
hooks:
|
|
36
|
+
- id: bandit
|
|
37
|
+
args: ['-r', 'src/', '-f', 'json']
|
|
38
|
+
exclude: tests/
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
# MCP Vector Search - Project Documentation Index
|
|
2
|
+
|
|
3
|
+
## 📋 Project Overview
|
|
4
|
+
|
|
5
|
+
**MCP Vector Search** is a CLI-first semantic code search tool with MCP (Model Context Protocol) integration. It provides intelligent code search capabilities using vector embeddings and AST-aware parsing.
|
|
6
|
+
|
|
7
|
+
### 🎯 Core Purpose
|
|
8
|
+
- **Semantic Code Search**: Find code by meaning, not just text matching
|
|
9
|
+
- **Multi-language Support**: Python, JavaScript, TypeScript with extensible architecture
|
|
10
|
+
- **Real-time Updates**: File watching with incremental indexing
|
|
11
|
+
- **Local-first Privacy**: Complete on-device processing
|
|
12
|
+
- **Developer Productivity**: Fast, intelligent code discovery
|
|
13
|
+
|
|
14
|
+
### 🏗️ Architecture Overview
|
|
15
|
+
- **CLI Interface**: Typer-based command-line tool
|
|
16
|
+
- **Vector Database**: ChromaDB for semantic embeddings
|
|
17
|
+
- **AST Parsing**: Tree-sitter with regex fallback
|
|
18
|
+
- **File Watching**: Real-time change detection
|
|
19
|
+
- **Async Processing**: Modern Python with type safety
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 📚 Documentation Structure
|
|
24
|
+
|
|
25
|
+
### 🚀 Quick Start
|
|
26
|
+
- **[README.md](README.md)** - Installation, usage, and basic examples
|
|
27
|
+
- **[DEVELOPMENT.md](DEVELOPMENT.md)** - Three-stage development workflow
|
|
28
|
+
|
|
29
|
+
### 🏗️ Architecture & Structure
|
|
30
|
+
- **[docs/STRUCTURE.md](docs/STRUCTURE.md)** - File organization and module architecture
|
|
31
|
+
- **[docs/DEPLOY.md](docs/DEPLOY.md)** - Deployment and installation instructions
|
|
32
|
+
- **[docs/architecture/REINDEXING_WORKFLOW.md](docs/architecture/REINDEXING_WORKFLOW.md)** - Reindexing implementation and workflow analysis
|
|
33
|
+
|
|
34
|
+
### 👨💻 Developer Resources
|
|
35
|
+
- **[docs/developer/](docs/developer/)** - Detailed developer documentation
|
|
36
|
+
- **[CONTRIBUTING.md](docs/developer/CONTRIBUTING.md)** - Contribution guidelines
|
|
37
|
+
- **[API.md](docs/developer/API.md)** - Internal API documentation
|
|
38
|
+
- **[TESTING.md](docs/developer/TESTING.md)** - Testing strategies and practices
|
|
39
|
+
- **[LINTING.md](docs/developer/LINTING.md)** - Code quality and linting setup
|
|
40
|
+
|
|
41
|
+
### 🚀 Performance & Features
|
|
42
|
+
- **[docs/FEATURES.md](docs/FEATURES.md)** - Comprehensive feature overview and usage guide
|
|
43
|
+
- **[docs/IMPROVEMENTS_SUMMARY.md](docs/IMPROVEMENTS_SUMMARY.md)** - Summary of major improvements and performance gains
|
|
44
|
+
- **[docs/performance/CONNECTION_POOLING.md](docs/performance/CONNECTION_POOLING.md)** - Connection pooling implementation and benchmarks
|
|
45
|
+
- **[examples/connection_pooling_example.py](examples/connection_pooling_example.py)** - Connection pooling usage examples
|
|
46
|
+
- **[examples/semi_automatic_reindexing_demo.py](examples/semi_automatic_reindexing_demo.py)** - Semi-automatic reindexing strategies demo
|
|
47
|
+
|
|
48
|
+
### 📦 Release Management
|
|
49
|
+
- **[docs/VERSIONING.md](docs/VERSIONING.md)** - Semantic versioning guidelines
|
|
50
|
+
- **[docs/CHANGELOG.md](docs/CHANGELOG.md)** - Version history and changes
|
|
51
|
+
- **[docs/RELEASES.md](docs/RELEASES.md)** - Release process and best practices
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 🔧 Major Functions & Components
|
|
56
|
+
|
|
57
|
+
### Core Modules
|
|
58
|
+
|
|
59
|
+
#### **CLI Interface** (`src/mcp_vector_search/cli/`)
|
|
60
|
+
- **`main.py`** - Entry point and command routing
|
|
61
|
+
- **`commands/`** - Individual command implementations
|
|
62
|
+
- `init.py` - Project initialization
|
|
63
|
+
- `index.py` - Codebase indexing
|
|
64
|
+
- `search.py` - Semantic search
|
|
65
|
+
- `watch.py` - File watching
|
|
66
|
+
- `status.py` - Project statistics
|
|
67
|
+
- `config.py` - Configuration management
|
|
68
|
+
- `auto_index.py` - Automatic reindexing management
|
|
69
|
+
|
|
70
|
+
#### **Core Engine** (`src/mcp_vector_search/core/`)
|
|
71
|
+
- **`indexer.py`** - Code indexing and chunking
|
|
72
|
+
- **`search.py`** - Semantic search implementation
|
|
73
|
+
- **`database.py`** - Vector database abstraction with connection pooling
|
|
74
|
+
- **`connection_pool.py`** - Database connection pooling for performance
|
|
75
|
+
- **`auto_indexer.py`** - Semi-automatic reindexing strategies
|
|
76
|
+
- **`git_hooks.py`** - Git hooks integration for auto-reindexing
|
|
77
|
+
- **`scheduler.py`** - Scheduled task management for auto-reindexing
|
|
78
|
+
- **`embeddings.py`** - Text embedding generation
|
|
79
|
+
- **`project.py`** - Project management
|
|
80
|
+
- **`watcher.py`** - File system monitoring
|
|
81
|
+
|
|
82
|
+
#### **Language Parsers** (`src/mcp_vector_search/parsers/`)
|
|
83
|
+
- **`base.py`** - Abstract parser interface
|
|
84
|
+
- **`python.py`** - Python AST parsing
|
|
85
|
+
- **`javascript.py`** - JavaScript/TypeScript parsing
|
|
86
|
+
- **`registry.py`** - Parser registration system
|
|
87
|
+
|
|
88
|
+
#### **Configuration** (`src/mcp_vector_search/config/`)
|
|
89
|
+
- **`settings.py`** - Application settings
|
|
90
|
+
- **`defaults.py`** - Default configurations
|
|
91
|
+
|
|
92
|
+
### Key Algorithms
|
|
93
|
+
|
|
94
|
+
#### **Semantic Chunking**
|
|
95
|
+
```python
|
|
96
|
+
# Intelligent code chunking for optimal search
|
|
97
|
+
def chunk_code(content: str, language: str) -> List[CodeChunk]:
|
|
98
|
+
# AST-aware chunking with function/class boundaries
|
|
99
|
+
# Fallback to regex-based chunking
|
|
100
|
+
# Preserve context and relationships
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
#### **Vector Search**
|
|
104
|
+
```python
|
|
105
|
+
# Similarity-based code search
|
|
106
|
+
def search_similar(query: str, limit: int = 10) -> List[SearchResult]:
|
|
107
|
+
# Generate query embedding
|
|
108
|
+
# Perform vector similarity search
|
|
109
|
+
# Rank and filter results
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
#### **Incremental Indexing**
|
|
113
|
+
```python
|
|
114
|
+
# Real-time file change processing
|
|
115
|
+
def update_index(file_path: Path, change_type: str):
|
|
116
|
+
# Detect file changes
|
|
117
|
+
# Update vector database
|
|
118
|
+
# Maintain index consistency
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 🎯 Quick Navigation
|
|
124
|
+
|
|
125
|
+
### For Users
|
|
126
|
+
1. **Getting Started**: [README.md](README.md) → Installation & Usage
|
|
127
|
+
2. **Deployment**: [docs/DEPLOY.md](docs/DEPLOY.md) → Production setup
|
|
128
|
+
|
|
129
|
+
### For Developers
|
|
130
|
+
1. **Development Setup**: [DEVELOPMENT.md](DEVELOPMENT.md) → Three-stage workflow
|
|
131
|
+
2. **Code Structure**: [docs/STRUCTURE.md](docs/STRUCTURE.md) → Architecture overview
|
|
132
|
+
3. **Contributing**: [docs/developer/CONTRIBUTING.md](docs/developer/CONTRIBUTING.md) → Guidelines
|
|
133
|
+
4. **API Reference**: [docs/developer/API.md](docs/developer/API.md) → Internal APIs
|
|
134
|
+
|
|
135
|
+
### For Maintainers
|
|
136
|
+
1. **Versioning**: [docs/VERSIONING.md](docs/VERSIONING.md) → Version management
|
|
137
|
+
2. **Releases**: [docs/RELEASES.md](docs/RELEASES.md) → Release process
|
|
138
|
+
3. **Changelog**: [docs/CHANGELOG.md](docs/CHANGELOG.md) → Version history
|
|
139
|
+
|
|
140
|
+
---
|
|
141
|
+
|
|
142
|
+
## 🚀 Common Tasks
|
|
143
|
+
|
|
144
|
+
### Development
|
|
145
|
+
```bash
|
|
146
|
+
./scripts/workflow.sh # Show development workflow
|
|
147
|
+
./scripts/dev-test.sh # Run development tests
|
|
148
|
+
uv run mcp-vector-search # Test CLI locally
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
### Deployment
|
|
152
|
+
```bash
|
|
153
|
+
./scripts/deploy-test.sh # Test local deployment
|
|
154
|
+
./scripts/publish.sh # Publish to PyPI
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
### Versioning & Releasing
|
|
158
|
+
```bash
|
|
159
|
+
make version-show # Display current version
|
|
160
|
+
make version-patch # Bump patch version
|
|
161
|
+
make release-minor # Full release with minor bump
|
|
162
|
+
make publish # Publish to PyPI
|
|
163
|
+
```
|
|
164
|
+
|
|
165
|
+
### Usage
|
|
166
|
+
```bash
|
|
167
|
+
mcp-vector-search init # Initialize project
|
|
168
|
+
mcp-vector-search index # Index codebase
|
|
169
|
+
mcp-vector-search search "query" # Search code
|
|
170
|
+
mcp-vector-search watch # Start file watching
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
---
|
|
174
|
+
|
|
175
|
+
## 📈 Project Status
|
|
176
|
+
|
|
177
|
+
- **Version**: 0.0.3 (Alpha)
|
|
178
|
+
- **Status**: Active development
|
|
179
|
+
- **License**: MIT
|
|
180
|
+
- **Python**: 3.11+
|
|
181
|
+
- **Platform**: Cross-platform (macOS, Linux, Windows)
|
|
182
|
+
|
|
183
|
+
### Current Capabilities
|
|
184
|
+
- ✅ Multi-language code parsing (Python, JavaScript, TypeScript)
|
|
185
|
+
- ✅ Semantic vector search with similarity scoring
|
|
186
|
+
- ✅ Real-time file watching and incremental updates
|
|
187
|
+
- ✅ CLI interface with rich output and syntax highlighting
|
|
188
|
+
- ✅ Project-aware configuration management
|
|
189
|
+
- ✅ **Connection pooling** for 13.6% performance improvement
|
|
190
|
+
- ✅ **Semi-automatic reindexing** with 5 different strategies
|
|
191
|
+
- ✅ **Production-ready features** (error handling, monitoring, graceful degradation)
|
|
192
|
+
- ✅ **Git hooks integration** for development workflows
|
|
193
|
+
- ✅ **Scheduled tasks** for production environments
|
|
194
|
+
|
|
195
|
+
### Roadmap
|
|
196
|
+
- 🔄 Enhanced Tree-sitter integration
|
|
197
|
+
- 🔄 Additional language support
|
|
198
|
+
- 🔮 MCP server implementation
|
|
199
|
+
- 🔮 IDE extensions
|
|
200
|
+
- 🔮 Team collaboration features
|
|
201
|
+
|
|
202
|
+
---
|
|
203
|
+
|
|
204
|
+
**For detailed information on any topic, follow the links to specific documentation files.**
|