mcp-code-indexer 3.1.2__tar.gz → 3.1.4__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 (53) hide show
  1. {mcp_code_indexer-3.1.2/src/mcp_code_indexer.egg-info → mcp_code_indexer-3.1.4}/PKG-INFO +3 -3
  2. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/README.md +2 -2
  3. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/pyproject.toml +1 -1
  4. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/database.py +1 -58
  5. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/server/mcp_server.py +27 -26
  6. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4/src/mcp_code_indexer.egg-info}/PKG-INFO +3 -3
  7. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/LICENSE +0 -0
  8. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/MANIFEST.in +0 -0
  9. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/api-reference.md +0 -0
  10. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/architecture.md +0 -0
  11. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/configuration.md +0 -0
  12. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/contributing.md +0 -0
  13. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/database-resilience.md +0 -0
  14. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/git-hook-setup.md +0 -0
  15. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/monitoring.md +0 -0
  16. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/docs/performance-tuning.md +0 -0
  17. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/requirements.txt +0 -0
  18. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/setup.cfg +0 -0
  19. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/setup.py +0 -0
  20. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/__init__.py +0 -0
  21. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/__main__.py +0 -0
  22. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/ask_handler.py +0 -0
  23. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/claude_api_handler.py +0 -0
  24. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/cleanup_manager.py +0 -0
  25. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/data/stop_words_english.txt +0 -0
  26. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/__init__.py +0 -0
  27. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/connection_health.py +0 -0
  28. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/exceptions.py +0 -0
  29. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/models.py +0 -0
  30. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/database/retry_executor.py +0 -0
  31. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/deepask_handler.py +0 -0
  32. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/error_handler.py +0 -0
  33. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/file_scanner.py +0 -0
  34. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/git_hook_handler.py +0 -0
  35. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/logging_config.py +0 -0
  36. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/main.py +0 -0
  37. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/middleware/__init__.py +0 -0
  38. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/middleware/error_middleware.py +0 -0
  39. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/migrations/001_initial.sql +0 -0
  40. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/migrations/002_performance_indexes.sql +0 -0
  41. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/migrations/003_project_overviews.sql +0 -0
  42. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/migrations/004_remove_branch_dependency.sql +0 -0
  43. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/migrations/005_remove_git_remotes.sql +0 -0
  44. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/query_preprocessor.py +0 -0
  45. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/server/__init__.py +0 -0
  46. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4 +0 -0
  47. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/token_counter.py +0 -0
  48. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer/tools/__init__.py +0 -0
  49. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer.egg-info/SOURCES.txt +0 -0
  50. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer.egg-info/dependency_links.txt +0 -0
  51. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer.egg-info/entry_points.txt +0 -0
  52. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer.egg-info/requires.txt +0 -0
  53. {mcp_code_indexer-3.1.2 → mcp_code_indexer-3.1.4}/src/mcp_code_indexer.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-code-indexer
3
- Version: 3.1.2
3
+ Version: 3.1.4
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
  Author: MCP Code Indexer Contributors
6
6
  Maintainer: MCP Code Indexer Contributors
@@ -59,8 +59,8 @@ Dynamic: requires-python
59
59
 
60
60
  # MCP Code Indexer 🚀
61
61
 
62
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?23)](https://badge.fury.io/py/mcp-code-indexer)
63
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?23)](https://pypi.org/project/mcp-code-indexer/)
62
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?24)](https://badge.fury.io/py/mcp-code-indexer)
63
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?24)](https://pypi.org/project/mcp-code-indexer/)
64
64
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
65
65
 
66
66
  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?23)](https://badge.fury.io/py/mcp-code-indexer)
4
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?23)](https://pypi.org/project/mcp-code-indexer/)
3
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?24)](https://badge.fury.io/py/mcp-code-indexer)
4
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?24)](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 = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "mcp-code-indexer"
7
- version = "3.1.2"
7
+ version = "3.1.4"
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
  readme = "README.md"
10
10
  license = {text = "MIT"}
@@ -910,64 +910,7 @@ class DatabaseManager:
910
910
  row = await cursor.fetchone()
911
911
  return row['count'] if row else 0
912
912
 
913
- # Upstream inheritance operations
914
-
915
- async def inherit_from_upstream(self, project: Project, target_branch: str = "main") -> int:
916
- """
917
- Inherit file descriptions from upstream repository.
918
-
919
- Args:
920
- project: Target project that should inherit descriptions
921
- target_branch: Branch to inherit descriptions into
922
-
923
- Returns:
924
- Number of descriptions inherited
925
- """
926
- if not project.upstream_origin:
927
- return 0
928
-
929
- # Find upstream project
930
- upstream_project = await self.find_project_by_origin(project.upstream_origin)
931
- if not upstream_project:
932
- logger.debug(f"No upstream project found for {project.upstream_origin}")
933
- return 0
934
-
935
- # Get upstream descriptions
936
- upstream_descriptions = await self.get_all_file_descriptions(
937
- upstream_project.id, target_branch
938
- )
939
-
940
- if not upstream_descriptions:
941
- logger.debug(f"No upstream descriptions found in branch {target_branch}")
942
- return 0
943
-
944
- # Get existing descriptions to avoid overwriting
945
- existing_descriptions = await self.get_all_file_descriptions(
946
- project.id, target_branch
947
- )
948
- existing_paths = {desc.file_path for desc in existing_descriptions}
949
-
950
- # Create new descriptions for files that don't exist locally
951
- inherited_descriptions = []
952
- for upstream_desc in upstream_descriptions:
953
- if upstream_desc.file_path not in existing_paths:
954
- new_desc = FileDescription(
955
- project_id=project.id,
956
- branch=target_branch,
957
- file_path=upstream_desc.file_path,
958
- description=upstream_desc.description,
959
- file_hash=None, # Don't copy hash as local file may differ
960
- last_modified=datetime.utcnow(),
961
- version=1,
962
- source_project_id=upstream_project.id # Track inheritance source
963
- )
964
- inherited_descriptions.append(new_desc)
965
-
966
- if inherited_descriptions:
967
- await self.batch_create_file_descriptions(inherited_descriptions)
968
- logger.info(f"Inherited {len(inherited_descriptions)} descriptions from upstream")
969
-
970
- return len(inherited_descriptions)
913
+
971
914
 
972
915
 
973
916
 
@@ -349,48 +349,49 @@ class MCPCodeIndexServer:
349
349
  ),
350
350
  types.Tool(
351
351
  name="update_codebase_overview",
352
- description="""Updates the condensed codebase overview. Create a comprehensive narrative that would help a new developer understand this codebase. Include: (1) A visual directory tree showing the main folders and their purposes, (2) Overall architecture - how components fit together, (3) Core business logic and main workflows, (4) Key technical patterns and conventions used, (5) Important dependencies and integrations, (6) Database schema overview if applicable, (7) API structure if applicable, (8) Testing approach, (9) Build and deployment notes. Write in a clear, structured format with headers and sections. Be thorough but organized - imagine writing a technical onboarding document. The overview should be substantial (think 10-20 pages of text) but well-structured so specific sections can be found easily.
352
+ description="""Creates a concise codebase overview for AI agents. Focus on essential navigation and context in 3500-7000 words. Include: (1) One-paragraph system summary - what it does and its core purpose, (2) Directory tree with one-line descriptions for each major folder, (3) Key architectural patterns (e.g., MVC, microservices, event-driven) in 2-3 sentences, (4) Critical file locations (entry points, config, main business logic), (5) Essential conventions (naming, file organization, error handling), (6) Important gotchas or non-obvious connections. Keep it scannable and action-oriented.
353
353
 
354
- Example Structure:
354
+ Example:
355
355
 
356
356
  ````
357
+ ## System Summary
358
+ E-commerce platform handling product catalog, orders, and payments with React frontend and Node.js API.
359
+
357
360
  ## Directory Structure
358
361
  ```
359
362
  src/
360
- ├── api/ # REST API endpoints and middleware
361
- ├── models/ # Database models and business logic
362
- ├── services/ # External service integrations
363
- ├── utils/ # Shared utilities and helpers
364
- └── tests/ # Test suites
363
+ ├── api/ # REST endpoints (auth in auth.js, orders in orders/)
364
+ ├── models/ # Sequelize models (User, Product, Order)
365
+ ├── services/ # Stripe (payments/), SendGrid (email/)
366
+ ├── client/ # React app (components/, pages/, hooks/)
367
+ └── shared/ # Types and constants used by both API and client
365
368
  ```
366
369
 
367
- ## Architecture Overview
368
- [Describe how components interact, data flow, key design decisions]
369
-
370
- ## Core Components
371
- ### API Layer
372
- [Details about API structure, authentication, routing]
370
+ ## Architecture
371
+ RESTful API with JWT auth. React frontend calls API. Background jobs via Bull queue. PostgreSQL with Sequelize ORM.
373
372
 
374
- ### Data Model
375
- [Key entities, relationships, database design]
373
+ ## Key Files
374
+ - Entry: `src/index.js` (starts Express server)
375
+ - Config: `src/config/` (env-specific settings)
376
+ - Routes: `src/api/routes.js` (all endpoints defined here)
377
+ - Auth: `src/middleware/auth.js` (JWT validation)
376
378
 
377
- ## Key Workflows
378
- 1. User Authentication Flow
379
- [Step-by-step description]
380
- 2. Data Processing Pipeline
381
- [How data moves through the system]
379
+ ## Conventions
380
+ - Files named `[entity].service.js` handle business logic
381
+ - All API routes return `{ success: boolean, data?: any, error?: string }`
382
+ - Database migrations in `migrations/` - run before adding models
382
383
 
383
- [Continue with other sections...]"
384
- ````
385
-
386
- """,
384
+ ## Important Notes
385
+ - Payment webhooks MUST be idempotent (check `processedWebhooks` table)
386
+ - User emails are case-insensitive (lowercase in DB)
387
+ - Order status transitions enforced in `Order.beforeUpdate` hook
388
+ ````""",
387
389
  inputSchema={
388
390
  "type": "object",
389
391
  "properties": {
390
392
  "projectName": {"type": "string", "description": "The name of the project"},
391
393
  "folderPath": {"type": "string", "description": "Absolute path to the project folder on disk"},
392
-
393
- "overview": {"type": "string", "description": "Comprehensive narrative overview of the codebase (10-30k tokens recommended)"}
394
+ "overview": {"type": "string", "description": "Concise codebase overview (aim for 3500-7500 words / 5k-10k tokens)"}
394
395
  },
395
396
  "required": ["projectName", "folderPath", "overview"],
396
397
  "additionalProperties": False
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-code-indexer
3
- Version: 3.1.2
3
+ Version: 3.1.4
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
  Author: MCP Code Indexer Contributors
6
6
  Maintainer: MCP Code Indexer Contributors
@@ -59,8 +59,8 @@ Dynamic: requires-python
59
59
 
60
60
  # MCP Code Indexer 🚀
61
61
 
62
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?23)](https://badge.fury.io/py/mcp-code-indexer)
63
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?23)](https://pypi.org/project/mcp-code-indexer/)
62
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?24)](https://badge.fury.io/py/mcp-code-indexer)
63
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?24)](https://pypi.org/project/mcp-code-indexer/)
64
64
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
65
65
 
66
66
  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.