mcp-code-indexer 4.2.4__tar.gz → 4.2.5__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.
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/PKG-INFO +3 -3
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/README.md +2 -2
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/pyproject.toml +1 -1
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/daemon.py +19 -3
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/LICENSE +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/__main__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/ask_handler.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/claude_api_handler.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/cleanup_manager.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/commands/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/commands/makelocal.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/data/stop_words_english.txt +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/connection_health.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/database.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/database_factory.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/exceptions.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/models.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/path_resolver.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/retry_executor.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/deepask_handler.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/error_handler.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/file_scanner.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/git_hook_handler.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/logging_config.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/main.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/auth.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/error_middleware.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/logging.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/security.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/001_initial.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/002_performance_indexes.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/003_project_overviews.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/004_remove_branch_dependency.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/005_remove_git_remotes.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/006_vector_mode.sql +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/query_preprocessor.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/server/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/server/mcp_server.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/token_counter.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/tools/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/base.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/http_transport.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/stdio_transport.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/chunking/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/chunking/ast_chunker.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/chunking/chunk_optimizer.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/chunking/language_handlers.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/config.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/monitoring/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/monitoring/change_detector.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/monitoring/file_watcher.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/monitoring/merkle_tree.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/providers/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/providers/turbopuffer_client.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/providers/voyage_client.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/security/__init__.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/security/patterns.py +0 -0
- {mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/security/redactor.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: mcp-code-indexer
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.5
|
|
4
4
|
Summary: MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews.
|
|
5
5
|
License: MIT
|
|
6
6
|
Keywords: mcp,model-context-protocol,code-indexer,ai-tools,codebase-navigation,file-descriptions,llm-tools
|
|
@@ -48,8 +48,8 @@ Description-Content-Type: text/markdown
|
|
|
48
48
|
|
|
49
49
|
# MCP Code Indexer 🚀
|
|
50
50
|
|
|
51
|
-
[](https://badge.fury.io/py/mcp-code-indexer)
|
|
52
|
+
[](https://pypi.org/project/mcp-code-indexer/)
|
|
53
53
|
[](https://opensource.org/licenses/MIT)
|
|
54
54
|
|
|
55
55
|
A production-ready **Model Context Protocol (MCP) server** that revolutionizes how AI agents navigate and understand codebases. Built for high-concurrency environments with advanced database resilience, the server provides instant access to intelligent descriptions, semantic search, and context-aware recommendations while maintaining 800+ writes/sec throughput.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
# MCP Code Indexer 🚀
|
|
2
2
|
|
|
3
|
-
[](https://badge.fury.io/py/mcp-code-indexer)
|
|
4
|
+
[](https://pypi.org/project/mcp-code-indexer/)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
6
|
|
|
7
7
|
A production-ready **Model Context Protocol (MCP) server** that revolutionizes how AI agents navigate and understand codebases. Built for high-concurrency environments with advanced database resilience, the server provides instant access to intelligent descriptions, semantic search, and context-aware recommendations while maintaining 800+ writes/sec throughput.
|
|
@@ -4,7 +4,7 @@ build-backend = "poetry.core.masonry.api"
|
|
|
4
4
|
|
|
5
5
|
[tool.poetry]
|
|
6
6
|
name = "mcp-code-indexer"
|
|
7
|
-
version = "4.2.
|
|
7
|
+
version = "4.2.5"
|
|
8
8
|
description = "MCP server that tracks file descriptions across codebases, enabling AI agents to efficiently navigate and understand code through searchable summaries and token-aware overviews."
|
|
9
9
|
authors = ["MCP Code Indexer Contributors"]
|
|
10
10
|
maintainers = ["MCP Code Indexer Contributors"]
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/daemon.py
RENAMED
|
@@ -44,6 +44,7 @@ class VectorDaemon:
|
|
|
44
44
|
self.monitored_projects: Set[str] = set()
|
|
45
45
|
self.processing_queue: asyncio.Queue = asyncio.Queue(maxsize=config.max_queue_size)
|
|
46
46
|
self.workers: list[asyncio.Task] = []
|
|
47
|
+
self.monitor_tasks: list[asyncio.Task] = []
|
|
47
48
|
|
|
48
49
|
# Statistics
|
|
49
50
|
self.stats = {
|
|
@@ -101,6 +102,7 @@ class VectorDaemon:
|
|
|
101
102
|
# Start monitoring tasks
|
|
102
103
|
monitor_task = asyncio.create_task(self._monitor_projects())
|
|
103
104
|
stats_task = asyncio.create_task(self._stats_reporter())
|
|
105
|
+
self.monitor_tasks.extend([monitor_task, stats_task])
|
|
104
106
|
|
|
105
107
|
# Wait for shutdown signal
|
|
106
108
|
await self._run_until_shutdown()
|
|
@@ -141,6 +143,9 @@ class VectorDaemon:
|
|
|
141
143
|
|
|
142
144
|
await asyncio.sleep(self.config.daemon_poll_interval)
|
|
143
145
|
|
|
146
|
+
except asyncio.CancelledError:
|
|
147
|
+
logger.info("Project monitoring cancelled")
|
|
148
|
+
break
|
|
144
149
|
except Exception as e:
|
|
145
150
|
logger.error(f"Error in project monitoring: {e}")
|
|
146
151
|
self.stats["errors_count"] += 1
|
|
@@ -180,6 +185,9 @@ class VectorDaemon:
|
|
|
180
185
|
await self._process_task(task, worker_id)
|
|
181
186
|
self.stats["last_activity"] = time.time()
|
|
182
187
|
|
|
188
|
+
except asyncio.CancelledError:
|
|
189
|
+
logger.info(f"Worker {worker_id} cancelled")
|
|
190
|
+
break
|
|
183
191
|
except Exception as e:
|
|
184
192
|
logger.error(f"Worker {worker_id} error: {e}")
|
|
185
193
|
self.stats["errors_count"] += 1
|
|
@@ -251,6 +259,9 @@ class VectorDaemon:
|
|
|
251
259
|
|
|
252
260
|
await asyncio.sleep(60.0) # Report every minute
|
|
253
261
|
|
|
262
|
+
except asyncio.CancelledError:
|
|
263
|
+
logger.info("Stats reporting cancelled")
|
|
264
|
+
break
|
|
254
265
|
except Exception as e:
|
|
255
266
|
logger.error(f"Error in stats reporting: {e}")
|
|
256
267
|
await asyncio.sleep(10.0)
|
|
@@ -264,9 +275,14 @@ class VectorDaemon:
|
|
|
264
275
|
for worker in self.workers:
|
|
265
276
|
worker.cancel()
|
|
266
277
|
|
|
267
|
-
#
|
|
268
|
-
|
|
269
|
-
|
|
278
|
+
# Cancel monitor tasks
|
|
279
|
+
for task in self.monitor_tasks:
|
|
280
|
+
task.cancel()
|
|
281
|
+
|
|
282
|
+
# Wait for all tasks to finish
|
|
283
|
+
all_tasks = self.workers + self.monitor_tasks
|
|
284
|
+
if all_tasks:
|
|
285
|
+
await asyncio.gather(*all_tasks, return_exceptions=True)
|
|
270
286
|
|
|
271
287
|
logger.info("Vector daemon shutdown complete")
|
|
272
288
|
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/claude_api_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/commands/makelocal.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/data/stop_words_english.txt
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/connection_health.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/database_factory.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/path_resolver.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/database/retry_executor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/logging.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/middleware/security.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/migrations/001_initial.sql
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/query_preprocessor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/http_transport.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/transport/stdio_transport.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.4 → mcp_code_indexer-4.2.5}/src/mcp_code_indexer/vector_mode/config.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|