mcp-code-indexer 4.2.7__py3-none-any.whl → 4.2.8__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.
- mcp_code_indexer/main.py +35 -1
- {mcp_code_indexer-4.2.7.dist-info → mcp_code_indexer-4.2.8.dist-info}/METADATA +3 -3
- {mcp_code_indexer-4.2.7.dist-info → mcp_code_indexer-4.2.8.dist-info}/RECORD +6 -6
- {mcp_code_indexer-4.2.7.dist-info → mcp_code_indexer-4.2.8.dist-info}/LICENSE +0 -0
- {mcp_code_indexer-4.2.7.dist-info → mcp_code_indexer-4.2.8.dist-info}/WHEEL +0 -0
- {mcp_code_indexer-4.2.7.dist-info → mcp_code_indexer-4.2.8.dist-info}/entry_points.txt +0 -0
mcp_code_indexer/main.py
CHANGED
|
@@ -8,6 +8,7 @@ Entry point for the mcp-code-indexer package when installed via pip.
|
|
|
8
8
|
import argparse
|
|
9
9
|
import asyncio
|
|
10
10
|
import json
|
|
11
|
+
import signal
|
|
11
12
|
import sys
|
|
12
13
|
from pathlib import Path
|
|
13
14
|
from typing import Any, Dict, List, Optional
|
|
@@ -1094,7 +1095,40 @@ async def main() -> None:
|
|
|
1094
1095
|
if transport:
|
|
1095
1096
|
transport.server = server
|
|
1096
1097
|
|
|
1097
|
-
|
|
1098
|
+
# Setup signal handling for graceful shutdown
|
|
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
1132
|
|
|
1099
1133
|
except Exception as e:
|
|
1100
1134
|
error_handler.log_error(e, context={"phase": "startup"})
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: mcp-code-indexer
|
|
3
|
-
Version: 4.2.
|
|
3
|
+
Version: 4.2.8
|
|
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.
|
|
@@ -19,7 +19,7 @@ mcp_code_indexer/error_handler.py,sha256=ylciEM-cR7E8Gmd8cfh5olcllJm0FnaYBGH86ya
|
|
|
19
19
|
mcp_code_indexer/file_scanner.py,sha256=7Ab34lRQGeh5GBCzcSP96p4YK6LDWFGUHLXqi499UZ4,11838
|
|
20
20
|
mcp_code_indexer/git_hook_handler.py,sha256=sTtZV3-Yy1Evt06R5NZclELeepM4Ia9OQoR2O6BK3Hk,45517
|
|
21
21
|
mcp_code_indexer/logging_config.py,sha256=M5eVZ5PwfTROib7ISTQ522n2hUSc4hJ_wUgsrJKsTTg,10030
|
|
22
|
-
mcp_code_indexer/main.py,sha256=
|
|
22
|
+
mcp_code_indexer/main.py,sha256=fwiRj8z49oed-0L-VqMFk6P9ahrodj6DRjVzmLkvS14,38705
|
|
23
23
|
mcp_code_indexer/middleware/__init__.py,sha256=UCEPzOlZldlqFzYEfrXw1HvCDvY1jpLvyaDGUzVr2aw,368
|
|
24
24
|
mcp_code_indexer/middleware/auth.py,sha256=4HkHMDZBNsyPA1VE8qF7pRNKbqG4xIDZjllENbgynxI,7258
|
|
25
25
|
mcp_code_indexer/middleware/error_middleware.py,sha256=0RnKM5fK_n_7AITK2ueAqv30kLBdjU3vaWOTwWd2Xs0,11965
|
|
@@ -58,8 +58,8 @@ mcp_code_indexer/vector_mode/providers/voyage_client.py,sha256=pfm9BOx5Temf0LM-V
|
|
|
58
58
|
mcp_code_indexer/vector_mode/security/__init__.py,sha256=itfeuysSqV-m9xuo-CMkAoucxexVfPgeOU-ieTLvdls,336
|
|
59
59
|
mcp_code_indexer/vector_mode/security/patterns.py,sha256=0xaiMnZm7YXswq3hVe_DJYePE9MhWuvizApLnmXus9M,11572
|
|
60
60
|
mcp_code_indexer/vector_mode/security/redactor.py,sha256=tsFzhCJ99bp4EFqQVjZ-4f8Uf3ux9X4ODVR09oJG01U,13380
|
|
61
|
-
mcp_code_indexer-4.2.
|
|
62
|
-
mcp_code_indexer-4.2.
|
|
63
|
-
mcp_code_indexer-4.2.
|
|
64
|
-
mcp_code_indexer-4.2.
|
|
65
|
-
mcp_code_indexer-4.2.
|
|
61
|
+
mcp_code_indexer-4.2.8.dist-info/LICENSE,sha256=JN9dyPPgYwH9C-UjYM7FLNZjQ6BF7kAzpF3_4PwY4rY,1086
|
|
62
|
+
mcp_code_indexer-4.2.8.dist-info/METADATA,sha256=CZYuqiv_hWpYDHgoBLAwRYWCeKw9ZMXzrvzPVgVhc2Q,27483
|
|
63
|
+
mcp_code_indexer-4.2.8.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
64
|
+
mcp_code_indexer-4.2.8.dist-info/entry_points.txt,sha256=UABj7HZ0mC6rvF22gxaz2LLNLGQShTrFmp5u00iUtvo,67
|
|
65
|
+
mcp_code_indexer-4.2.8.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|