mcp-code-indexer 4.2.13__tar.gz → 4.2.14__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.
Files changed (64) hide show
  1. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/PKG-INFO +3 -3
  2. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/README.md +2 -2
  3. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/pyproject.toml +1 -1
  4. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/main.py +26 -0
  5. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/LICENSE +0 -0
  6. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/__init__.py +0 -0
  7. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/__main__.py +0 -0
  8. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/ask_handler.py +0 -0
  9. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/claude_api_handler.py +0 -0
  10. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/cleanup_manager.py +0 -0
  11. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/commands/__init__.py +0 -0
  12. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/commands/makelocal.py +0 -0
  13. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/data/stop_words_english.txt +0 -0
  14. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/__init__.py +0 -0
  15. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/connection_health.py +0 -0
  16. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/database.py +0 -0
  17. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/database_factory.py +0 -0
  18. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/exceptions.py +0 -0
  19. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/models.py +0 -0
  20. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/path_resolver.py +0 -0
  21. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/database/retry_executor.py +0 -0
  22. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/deepask_handler.py +0 -0
  23. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/error_handler.py +0 -0
  24. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/file_scanner.py +0 -0
  25. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/git_hook_handler.py +0 -0
  26. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/logging_config.py +0 -0
  27. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/middleware/__init__.py +0 -0
  28. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/middleware/auth.py +0 -0
  29. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/middleware/error_middleware.py +0 -0
  30. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/middleware/logging.py +0 -0
  31. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/middleware/security.py +0 -0
  32. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/001_initial.sql +0 -0
  33. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/002_performance_indexes.sql +0 -0
  34. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/003_project_overviews.sql +0 -0
  35. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/004_remove_branch_dependency.sql +0 -0
  36. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/005_remove_git_remotes.sql +0 -0
  37. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/migrations/006_vector_mode.sql +0 -0
  38. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/query_preprocessor.py +0 -0
  39. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/server/__init__.py +0 -0
  40. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/server/mcp_server.py +0 -0
  41. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  42. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/token_counter.py +0 -0
  43. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/tools/__init__.py +0 -0
  44. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/transport/__init__.py +0 -0
  45. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/transport/base.py +0 -0
  46. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/transport/http_transport.py +0 -0
  47. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/transport/stdio_transport.py +0 -0
  48. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/__init__.py +0 -0
  49. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/chunking/__init__.py +0 -0
  50. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/chunking/ast_chunker.py +0 -0
  51. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/chunking/chunk_optimizer.py +0 -0
  52. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/chunking/language_handlers.py +0 -0
  53. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/config.py +0 -0
  54. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/daemon.py +0 -0
  55. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/monitoring/__init__.py +0 -0
  56. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/monitoring/change_detector.py +0 -0
  57. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/monitoring/file_watcher.py +0 -0
  58. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/monitoring/merkle_tree.py +0 -0
  59. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/providers/__init__.py +0 -0
  60. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/providers/turbopuffer_client.py +0 -0
  61. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/providers/voyage_client.py +0 -0
  62. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/security/__init__.py +0 -0
  63. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/src/mcp_code_indexer/vector_mode/security/patterns.py +0 -0
  64. {mcp_code_indexer-4.2.13 → mcp_code_indexer-4.2.14}/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.13
3
+ Version: 4.2.14
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
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?60)](https://badge.fury.io/py/mcp-code-indexer)
52
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?60)](https://pypi.org/project/mcp-code-indexer/)
51
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?61)](https://badge.fury.io/py/mcp-code-indexer)
52
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?61)](https://pypi.org/project/mcp-code-indexer/)
53
53
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](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
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?60)](https://badge.fury.io/py/mcp-code-indexer)
4
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?60)](https://pypi.org/project/mcp-code-indexer/)
3
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?61)](https://badge.fury.io/py/mcp-code-indexer)
4
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?61)](https://pypi.org/project/mcp-code-indexer/)
5
5
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](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.13"
7
+ version = "4.2.14"
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"]
@@ -1129,6 +1129,19 @@ async def main() -> None:
1129
1129
  )
1130
1130
  except asyncio.TimeoutError:
1131
1131
  logger.warning("Some tasks did not cancel within timeout")
1132
+
1133
+ # Force close any remaining connections and cleanup resources
1134
+ try:
1135
+ # Give a moment for final cleanup
1136
+ await asyncio.sleep(0.1)
1137
+
1138
+ # Shutdown the event loop executor to stop any background threads
1139
+ loop = asyncio.get_running_loop()
1140
+ if hasattr(loop, '_default_executor') and loop._default_executor:
1141
+ loop._default_executor.shutdown(wait=False)
1142
+
1143
+ except Exception as e:
1144
+ logger.warning(f"Error during final cleanup: {e}")
1132
1145
 
1133
1146
 
1134
1147
  def cli_main() -> None:
@@ -1146,6 +1159,19 @@ def cli_main() -> None:
1146
1159
  print(f"Server failed to start: {e}", file=sys.stderr)
1147
1160
  print(f"Traceback: {traceback.format_exc()}", file=sys.stderr)
1148
1161
  sys.exit(1)
1162
+ finally:
1163
+ # Force cleanup of any remaining resources to prevent hanging
1164
+ import threading
1165
+ import time
1166
+
1167
+ # Give main threads a moment to finish
1168
+ time.sleep(0.1)
1169
+
1170
+ # Force exit if daemon threads are preventing shutdown
1171
+ active_threads = threading.active_count()
1172
+ if active_threads > 1: # More than just the main thread
1173
+ import os
1174
+ os._exit(0)
1149
1175
 
1150
1176
 
1151
1177
  if __name__ == "__main__":