mcp-code-indexer 4.2.9__tar.gz → 4.2.11__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.9 → mcp_code_indexer-4.2.11}/PKG-INFO +3 -3
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/README.md +2 -2
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/pyproject.toml +1 -1
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/main.py +9 -34
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/LICENSE +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/__main__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/ask_handler.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/claude_api_handler.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/cleanup_manager.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/commands/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/commands/makelocal.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/data/stop_words_english.txt +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/connection_health.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/database.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/database_factory.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/exceptions.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/models.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/path_resolver.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/retry_executor.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/deepask_handler.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/error_handler.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/file_scanner.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/git_hook_handler.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/logging_config.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/auth.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/error_middleware.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/logging.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/security.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/001_initial.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/002_performance_indexes.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/003_project_overviews.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/004_remove_branch_dependency.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/005_remove_git_remotes.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/migrations/006_vector_mode.sql +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/query_preprocessor.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/server/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/server/mcp_server.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/token_counter.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/tools/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/base.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/http_transport.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/stdio_transport.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/chunking/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/chunking/ast_chunker.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/chunking/chunk_optimizer.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/chunking/language_handlers.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/config.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/daemon.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/monitoring/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/monitoring/change_detector.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/monitoring/file_watcher.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/monitoring/merkle_tree.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/providers/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/providers/turbopuffer_client.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/providers/voyage_client.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/security/__init__.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/security/patterns.py +0 -0
- {mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/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.11
|
|
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.11"
|
|
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"]
|
|
@@ -1095,40 +1095,7 @@ async def main() -> None:
|
|
|
1095
1095
|
if transport:
|
|
1096
1096
|
transport.server = server
|
|
1097
1097
|
|
|
1098
|
-
|
|
1099
|
-
shutdown_event = asyncio.Event()
|
|
1100
|
-
|
|
1101
|
-
def signal_handler(signum):
|
|
1102
|
-
logger.info(f"Received shutdown signal {signum}")
|
|
1103
|
-
shutdown_event.set()
|
|
1104
|
-
|
|
1105
|
-
# Register signal handlers
|
|
1106
|
-
loop = asyncio.get_running_loop()
|
|
1107
|
-
for sig in [signal.SIGTERM, signal.SIGINT]:
|
|
1108
|
-
loop.add_signal_handler(sig, signal_handler, sig)
|
|
1109
|
-
|
|
1110
|
-
# Run server and wait for shutdown signal
|
|
1111
|
-
server_task = asyncio.create_task(server.run())
|
|
1112
|
-
shutdown_task = asyncio.create_task(shutdown_event.wait())
|
|
1113
|
-
|
|
1114
|
-
try:
|
|
1115
|
-
# Wait for either server completion or shutdown signal
|
|
1116
|
-
done, pending = await asyncio.wait(
|
|
1117
|
-
[server_task, shutdown_task],
|
|
1118
|
-
return_when=asyncio.FIRST_COMPLETED
|
|
1119
|
-
)
|
|
1120
|
-
|
|
1121
|
-
# Cancel remaining tasks
|
|
1122
|
-
for task in pending:
|
|
1123
|
-
task.cancel()
|
|
1124
|
-
try:
|
|
1125
|
-
await task
|
|
1126
|
-
except asyncio.CancelledError:
|
|
1127
|
-
pass
|
|
1128
|
-
|
|
1129
|
-
except Exception as e:
|
|
1130
|
-
error_handler.log_error(e, context={"phase": "runtime"})
|
|
1131
|
-
raise
|
|
1098
|
+
await server.run()
|
|
1132
1099
|
|
|
1133
1100
|
except Exception as e:
|
|
1134
1101
|
error_handler.log_error(e, context={"phase": "startup"})
|
|
@@ -1145,6 +1112,14 @@ async def main() -> None:
|
|
|
1145
1112
|
await vector_daemon_task
|
|
1146
1113
|
except asyncio.CancelledError:
|
|
1147
1114
|
logger.info("Vector daemon cancelled successfully")
|
|
1115
|
+
|
|
1116
|
+
# Clean up any remaining asyncio tasks to prevent hanging
|
|
1117
|
+
tasks = [task for task in asyncio.all_tasks() if not task.done()]
|
|
1118
|
+
if tasks:
|
|
1119
|
+
logger.info(f"Cancelling {len(tasks)} remaining tasks")
|
|
1120
|
+
for task in tasks:
|
|
1121
|
+
task.cancel()
|
|
1122
|
+
await asyncio.gather(*tasks, return_exceptions=True)
|
|
1148
1123
|
|
|
1149
1124
|
|
|
1150
1125
|
def cli_main() -> None:
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/claude_api_handler.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/commands/__init__.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/commands/makelocal.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/data/stop_words_english.txt
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/database.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/database_factory.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/exceptions.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/database/path_resolver.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/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
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/logging.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/middleware/security.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/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.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/query_preprocessor.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/server/mcp_server.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/http_transport.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/transport/stdio_transport.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/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.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/config.py
RENAMED
|
File without changes
|
{mcp_code_indexer-4.2.9 → mcp_code_indexer-4.2.11}/src/mcp_code_indexer/vector_mode/daemon.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
|