mcp-code-indexer 1.2.3__py3-none-any.whl → 1.4.0__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.
@@ -252,7 +252,7 @@ class MCPCodeIndexServer:
252
252
  ),
253
253
  types.Tool(
254
254
  name="check_codebase_size",
255
- description="Checks the total token count of a codebase's file structure and descriptions. Returns whether the codebase is 'large' and recommends using search instead of the full overview.",
255
+ description="Checks the total token count of a codebase's file structure and descriptions - if you're in a git repo be sure to run `git rev-parse --abbrev-ref HEAD` to see what branch you're on before running this tool. Returns whether the codebase is 'large' and recommends using search instead of the full overview.",
256
256
  inputSchema={
257
257
  "type": "object",
258
258
  "properties": {
@@ -350,7 +350,7 @@ class MCPCodeIndexServer:
350
350
  ),
351
351
  types.Tool(
352
352
  name="get_codebase_overview",
353
- description="Returns a condensed, interpretive overview of the entire codebase. This is a single comprehensive narrative that captures the architecture, key components, relationships, and design patterns. Unlike get_all_descriptions which lists every file, this provides a holistic view suitable for understanding the codebase's structure and purpose. If no overview exists, returns empty string.",
353
+ description="Returns a condensed, interpretive overview of the entire codebase - if you're in a git repo be sure to run `git rev-parse --abbrev-ref HEAD` to see what branch you're on before running this tool. This is a single comprehensive narrative that captures the architecture, key components, relationships, and design patterns. Unlike get_all_descriptions which lists every file, this provides a holistic view suitable for understanding the codebase's structure and purpose. If no overview exists, returns empty string.",
354
354
  inputSchema={
355
355
  "type": "object",
356
356
  "properties": {
@@ -417,7 +417,7 @@ src/
417
417
  ),
418
418
  types.Tool(
419
419
  name="get_word_frequency",
420
- description="Analyzes all file descriptions to find the most frequently used technical terms. Filters out common English stop words and symbols, returning the top 200 meaningful terms. Useful for understanding the codebase's domain vocabulary and finding all functions/files related to specific concepts.",
420
+ description="Analyzes all file descriptions to find the most frequently used technical terms - if you're in a git repo be sure to run `git rev-parse --abbrev-ref HEAD` to see what branch you're on before running this tool. Filters out common English stop words and symbols, returning the top 200 meaningful terms. Useful for understanding the codebase's domain vocabulary and finding all functions/files related to specific concepts.",
421
421
  inputSchema={
422
422
  "type": "object",
423
423
  "properties": {
@@ -579,6 +579,15 @@ src/
579
579
  score += 1
580
580
  match_factors.append("folder_path")
581
581
 
582
+ # Enhanced matching: If name matches and no remote origins are provided,
583
+ # consider it a strong match to prevent duplicates
584
+ if (score == 1 and "name" in match_factors and
585
+ not remote_origin and not project.remote_origin and
586
+ not upstream_origin and not project.upstream_origin):
587
+ logger.info(f"Name-only match with no remotes for project {project.name} - treating as strong match to prevent duplicates")
588
+ score = 2 # Boost score to strong match level
589
+ match_factors.append("no_remotes_boost")
590
+
582
591
  # If we have 2+ matches, this is a strong candidate
583
592
  if score >= 2:
584
593
  if score > best_score:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: mcp-code-indexer
3
- Version: 1.2.3
3
+ Version: 1.4.0
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
@@ -35,6 +35,8 @@ Requires-Dist: gitignore_parser==0.1.11
35
35
  Requires-Dist: pydantic>=2.8.0
36
36
  Requires-Dist: aiofiles==23.2.0
37
37
  Requires-Dist: aiosqlite==0.19.0
38
+ Requires-Dist: aiohttp>=3.8.0
39
+ Requires-Dist: tenacity>=8.0.0
38
40
  Provides-Extra: dev
39
41
  Requires-Dist: pytest>=8.0.0; extra == "dev"
40
42
  Requires-Dist: pytest-asyncio>=0.21.0; extra == "dev"
@@ -55,11 +57,11 @@ Dynamic: requires-python
55
57
 
56
58
  # MCP Code Indexer 🚀
57
59
 
58
- [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?1)](https://badge.fury.io/py/mcp-code-indexer)
59
- [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?1)](https://pypi.org/project/mcp-code-indexer/)
60
+ [![PyPI version](https://badge.fury.io/py/mcp-code-indexer.svg?2)](https://badge.fury.io/py/mcp-code-indexer)
61
+ [![Python](https://img.shields.io/pypi/pyversions/mcp-code-indexer.svg?2)](https://pypi.org/project/mcp-code-indexer/)
60
62
  [![License](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
61
63
 
62
- A production-ready **Model Context Protocol (MCP) server** that provides intelligent codebase navigation for AI agents through searchable file descriptions, token-aware overviews, and advanced merge capabilities.
64
+ A production-ready **Model Context Protocol (MCP) server** that revolutionizes how AI agents navigate and understand codebases. Instead of repeatedly scanning files, agents get instant access to intelligent descriptions, semantic search, and context-aware recommendations.
63
65
 
64
66
  ## 🎯 What It Does
65
67
 
@@ -75,40 +77,107 @@ Perfect for AI-powered code review, refactoring tools, documentation generation,
75
77
 
76
78
  ## ⚡ Quick Start
77
79
 
78
- ### Install from PyPI
80
+ ### 👨‍💻 For Developers
81
+
82
+ Get started integrating MCP Code Indexer into your AI agent workflow:
79
83
 
80
84
  ```bash
81
85
  # Install the package
82
86
  pip install mcp-code-indexer
83
87
 
84
- # Run the server
85
- mcp-code-indexer --token-limit 32000
88
+ # Start the MCP server
89
+ mcp-code-indexer
90
+
91
+ # Connect your MCP client and start using tools
92
+ # See API Reference for complete tool documentation
93
+ ```
94
+
95
+ ### 🔧 For System Administrators
86
96
 
87
- # Check version
97
+ Deploy and configure the server for your team:
98
+
99
+ ```bash
100
+ # Production deployment with custom settings
101
+ mcp-code-indexer \
102
+ --token-limit 64000 \
103
+ --db-path /data/mcp-index.db \
104
+ --cache-dir /var/cache/mcp \
105
+ --log-level INFO
106
+
107
+ # Check installation
88
108
  mcp-code-indexer --version
89
109
  ```
90
110
 
91
- ### Install from Source
111
+ ### 🎯 For Everyone
112
+
113
+ **New to MCP Code Indexer?** Start here:
114
+
115
+ 1. **Install**: `pip install mcp-code-indexer`
116
+ 2. **Run**: `mcp-code-indexer --token-limit 32000`
117
+ 3. **Connect**: Use your favorite MCP client
118
+ 4. **Explore**: Try the `check_codebase_size` tool first
119
+
120
+ **Development Setup**:
92
121
 
93
122
  ```bash
94
- # Clone and setup
95
- git clone https://github.com/your-username/mcp-code-indexer.git
123
+ # Clone and setup for contributing
124
+ git clone https://github.com/fluffypony/mcp-code-indexer.git
96
125
  cd mcp-code-indexer
97
126
 
98
- # Install in development mode
127
+ # Install in development mode (required)
99
128
  pip install -e .
100
129
 
101
130
  # Run the server
102
131
  mcp-code-indexer --token-limit 32000
103
132
  ```
104
133
 
134
+ ## 🔗 Git Hook Integration
135
+
136
+ 🚀 **NEW Feature**: Automated code indexing with AI-powered analysis! Keep your file descriptions synchronized automatically as your codebase evolves.
137
+
138
+ ### 👤 For Users: Quick Setup
139
+
140
+ ```bash
141
+ # Set your OpenRouter API key
142
+ export OPENROUTER_API_KEY="sk-or-v1-your-api-key-here"
143
+
144
+ # Test git hook functionality
145
+ mcp-code-indexer --githook
146
+
147
+ # Install post-commit hook
148
+ cp examples/git-hooks/post-commit .git/hooks/
149
+ chmod +x .git/hooks/post-commit
150
+ ```
151
+
152
+ ### 👨‍💻 For Developers: How It Works
153
+
154
+ The git hook integration provides intelligent automation:
155
+
156
+ - **📊 Git Analysis**: Automatically analyzes git diffs after commits/merges
157
+ - **🤖 AI Processing**: Uses OpenRouter API with Anthropic's Claude Sonnet 4
158
+ - **⚡ Smart Updates**: Only processes files that actually changed
159
+ - **🔄 Overview Maintenance**: Updates project overview when structure changes
160
+ - **🛡️ Error Isolation**: Git operations continue even if indexing fails
161
+ - **⏱️ Rate Limiting**: Built-in retry logic with exponential backoff
162
+
163
+ ### 🎯 Key Benefits
164
+
165
+ 💡 **Zero Manual Work**: Descriptions stay current without any effort
166
+ ⚡ **Performance**: Only analyzes changed files, not entire codebase
167
+ 🔒 **Reliability**: Robust error handling ensures git operations never fail
168
+ 🎛️ **Configurable**: Support for custom models and timeout settings
169
+
170
+ **Learn More**: See [Git Hook Setup Guide](docs/git-hook-setup.md) for complete configuration options and troubleshooting.
171
+
105
172
  ## 🔧 Development Setup
106
173
 
107
- For development work, you **must** install the package in editable mode to ensure proper import resolution:
174
+ ### 👨‍💻 For Contributors
175
+
176
+ Contributing to MCP Code Indexer? Follow these steps for a proper development environment:
108
177
 
109
178
  ```bash
110
179
  # Setup development environment
111
- git clone https://github.com/your-username/mcp-code-indexer.git
180
+ git clone https://github.com/fluffypony/mcp-code-indexer.git
112
181
  cd mcp-code-indexer
113
182
 
114
183
  # Create and activate virtual environment
@@ -126,11 +195,9 @@ python main.py --help
126
195
  mcp-code-indexer --version
127
196
  ```
128
197
 
129
- ### Why Editable Install is Required
130
-
131
- The project uses a proper PyPI package structure with absolute imports like `from mcp_code_indexer.database.database import DatabaseManager`. Without the editable installation (`pip install -e .`), Python cannot resolve these imports and you'll get `ModuleNotFoundError` exceptions.
198
+ ⚠️ **Important**: The editable install (`pip install -e .`) is **required** for development. The project uses proper PyPI package structure with absolute imports like `from mcp_code_indexer.database.database import DatabaseManager`. Without editable installation, you'll get `ModuleNotFoundError` exceptions.
132
199
 
133
- ### Development Workflow
200
+ ### 🎯 Development Workflow
134
201
 
135
202
  ```bash
136
203
  # Activate virtual environment
@@ -158,27 +225,27 @@ mypy src/
158
225
 
159
226
  ## 🛠️ MCP Tools Available
160
227
 
161
- The server provides **11 powerful MCP tools** for intelligent codebase management:
228
+ The server provides **11 powerful MCP tools** for intelligent codebase management. Whether you're an AI agent or human developer, these tools make navigating code effortless.
162
229
 
163
- ### Core Operations
164
- - **`get_file_description`** - Retrieve stored file descriptions instantly
165
- - **`update_file_description`** - Store detailed file summaries and metadata
166
- - **`check_codebase_size`** - Get token count and size-based recommendations with automatic file cleanup
230
+ ### 🎯 For Everyone: Start Here
231
+ - **`check_codebase_size`** - Get instant recommendations for how to navigate your codebase
232
+ - **`search_descriptions`** - Find files by what they do, not just their names
233
+ - **`get_codebase_overview`** - Get a high-level understanding of any project
167
234
 
168
- ### Batch Operations
235
+ ### 👨‍💻 For Developers: Core Operations
236
+ - **`get_file_description`** - Retrieve stored file descriptions instantly
237
+ - **`update_file_description`** - Store detailed file summaries and metadata
169
238
  - **`find_missing_descriptions`** - Scan projects for files without descriptions
170
239
  - **`update_missing_descriptions`** - Bulk update multiple file descriptions
171
240
 
172
- ### Search & Discovery
173
- - **`search_descriptions`** - Fast full-text search across all descriptions
241
+ ### 🔍 For Advanced Users: Search & Discovery
174
242
  - **`get_all_descriptions`** - Complete hierarchical project structure
175
- - **`get_codebase_overview`** - Condensed narrative overview of entire codebase
176
243
  - **`get_word_frequency`** - Technical vocabulary analysis with stop-word filtering
177
-
178
- ### Advanced Features
179
244
  - **`merge_branch_descriptions`** - Two-phase merge with conflict resolution
180
245
  - **`update_codebase_overview`** - Create comprehensive codebase documentation
181
246
 
247
+ 💡 **Pro Tip**: Always start with `check_codebase_size` to get personalized recommendations for navigating your specific codebase.
248
+
182
249
  ## 🏗️ Architecture Highlights
183
250
 
184
251
  ### Performance Optimized
@@ -202,10 +269,16 @@ The server provides **11 powerful MCP tools** for intelligent codebase managemen
202
269
 
203
270
  ## 📖 Documentation
204
271
 
205
- - **[API Reference](docs/api-reference.md)** - Complete MCP tool documentation
206
- - **[Configuration Guide](docs/configuration.md)** - Setup and tuning options
207
- - **[Architecture Overview](docs/architecture.md)** - Technical deep dive
208
- - **[Contributing Guide](docs/contributing.md)** - Development workflow
272
+ ### 👤 For Users
273
+ - **[Git Hook Setup Guide](docs/git-hook-setup.md)** - Automated code indexing setup
274
+ - **[Configuration Guide](docs/configuration.md)** - Production deployment and tuning
275
+
276
+ ### 👨‍💻 For Developers
277
+ - **[API Reference](docs/api-reference.md)** - Complete MCP tool documentation with examples
278
+ - **[Architecture Overview](docs/architecture.md)** - Technical deep dive into system design
279
+
280
+ ### 🤝 For Contributors
281
+ - **[Contributing Guide](docs/contributing.md)** - Development setup and workflow guidelines
209
282
 
210
283
  ## 🚦 System Requirements
211
284
 
@@ -329,6 +402,39 @@ The server provides structured JSON logs for monitoring:
329
402
  }
330
403
  ```
331
404
 
405
+ ## 📋 Command Line Options
406
+
407
+ ### Server Mode (Default)
408
+ ```bash
409
+ mcp-code-indexer [OPTIONS]
410
+
411
+ Options:
412
+ --token-limit INT Maximum tokens before recommending search (default: 32000)
413
+ --db-path PATH SQLite database path (default: ~/.mcp-code-index/tracker.db)
414
+ --cache-dir PATH Cache directory path (default: ~/.mcp-code-index/cache)
415
+ --log-level LEVEL Logging level: DEBUG|INFO|WARNING|ERROR|CRITICAL (default: INFO)
416
+ ```
417
+
418
+ ### Git Hook Mode
419
+ ```bash
420
+ mcp-code-indexer --githook [OPTIONS]
421
+
422
+ # Automated analysis of git changes using OpenRouter API
423
+ # Requires: OPENROUTER_API_KEY environment variable
424
+ ```
425
+
426
+ ### Utility Commands
427
+ ```bash
428
+ # List all projects and branches
429
+ mcp-code-indexer --getprojects
430
+
431
+ # Execute MCP tool directly
432
+ mcp-code-indexer --runcommand '{"method": "tools/call", "params": {...}}'
433
+
434
+ # Export descriptions for a project
435
+ mcp-code-indexer --dumpdescriptions PROJECT_ID [BRANCH]
436
+ ```
437
+
332
438
  ## 🛡️ Security Features
333
439
 
334
440
  - **Input validation** on all MCP tool parameters
@@ -339,10 +445,20 @@ The server provides structured JSON logs for monitoring:
339
445
 
340
446
  ## 🚀 Next Steps
341
447
 
342
- 1. **[Read the API docs](docs/api-reference.md)** to understand available tools
343
- 2. **[Check the configuration guide](docs/configuration.md)** for advanced setup
344
- 3. **[Review the architecture](docs/architecture.md)** for technical details
345
- 4. **[Contribute](docs/contributing.md)** to help improve the project
448
+ Ready to supercharge your AI agents with intelligent codebase navigation?
449
+
450
+ ### 👤 Getting Started
451
+ 1. **[Install and run your first server](#-quick-start)** - Get up and running in 2 minutes
452
+ 2. **[Set up git hooks](docs/git-hook-setup.md)** - Automate your workflow
453
+ 3. **[Configure for production](docs/configuration.md)** - Deploy for your team
454
+
455
+ ### 👨‍💻 For Developers
456
+ 4. **[Explore the API tools](docs/api-reference.md)** - Master all 11 MCP tools
457
+ 5. **[Understand the architecture](docs/architecture.md)** - Deep dive into the technical design
458
+
459
+ ### 🤝 Join the Community
460
+ 6. **[Contribute to the project](docs/contributing.md)** - Help make it even better
461
+ 7. **[Report issues on GitHub](https://github.com/fluffypony/mcp-code-indexer/issues)** - Share feedback and suggestions
346
462
 
347
463
  ## 🤝 Contributing
348
464
 
@@ -361,8 +477,14 @@ MIT License - see **[LICENSE](LICENSE)** for details.
361
477
  - **[Model Context Protocol](https://github.com/modelcontextprotocol/python-sdk)** - The foundation for tool integration
362
478
  - **[tiktoken](https://pypi.org/project/tiktoken/)** - Fast BPE tokenization
363
479
  - **[aiosqlite](https://pypi.org/project/aiosqlite/)** - Async SQLite operations
480
+ - **[aiohttp](https://pypi.org/project/aiohttp/)** - Async HTTP client for OpenRouter API
481
+ - **[tenacity](https://pypi.org/project/tenacity/)** - Robust retry logic and rate limiting
364
482
  - **[Pydantic](https://pydantic.dev/)** - Data validation and settings
365
483
 
366
484
  ---
367
485
 
368
- **Ready to supercharge your AI agents with intelligent codebase navigation?** 🚀 [Install from PyPI](#install-from-pypi) or [explore the API docs](docs/api-reference.md)!
486
+ **Transform how your AI agents understand code!** 🚀
487
+
488
+ 🎯 **New User?** [Get started in 2 minutes](#-quick-start)
489
+ 👨‍💻 **Developer?** [Explore the complete API](docs/api-reference.md)
490
+ 🔧 **Production?** [Deploy with confidence](docs/configuration.md)
@@ -1,24 +1,25 @@
1
- mcp_code_indexer/__init__.py,sha256=DIRa9PMADE0REdFtjY6OkI0-1-f1aFpkKPqgUbbLjNI,473
1
+ mcp_code_indexer/__init__.py,sha256=i4UXNO0XCAzlG7V66eUuKQ9GCtuMeKAjxqVpB9Is_cI,473
2
2
  mcp_code_indexer/__main__.py,sha256=4Edinoe0ug43hobuLYcjTmGp2YJnlFYN4_8iKvUBJ0Q,213
3
3
  mcp_code_indexer/error_handler.py,sha256=cNSUFFrGBMLDv4qa78c7495L1wSl_dXCRbzCJOidx-Q,11590
4
4
  mcp_code_indexer/file_scanner.py,sha256=ctXeZMROgDThEtjzsANTK9TbK-fhTScMBd4iyuleBT4,11734
5
- mcp_code_indexer/logging_config.py,sha256=5L1cYIG8IAX91yCjc5pzkbO_KPt0bvm_ABHB53LBZjI,5184
6
- mcp_code_indexer/main.py,sha256=eRc0Vl3DVDGS5XtuPCDBArgmqcBIi92O97LbE8HYGGA,13601
5
+ mcp_code_indexer/git_hook_handler.py,sha256=kp58PZUEU52H3ReqT84SC-BftwOo9WCjsAM6QHoj9rg,19448
6
+ mcp_code_indexer/logging_config.py,sha256=yCGQD-xx9oobS-YctOFcaE1Q3iiuOj2E6cTfKHbh_wc,7358
7
+ mcp_code_indexer/main.py,sha256=F1Ym1bSyatLk3jr9D2utqYZvWF7zq-bgOWjcmMZkvb4,30193
7
8
  mcp_code_indexer/merge_handler.py,sha256=lJR8eVq2qSrF6MW9mR3Fy8UzrNAaQ7RsI2FMNXne3vQ,14692
8
9
  mcp_code_indexer/token_counter.py,sha256=WrifOkbF99nWWHlRlhCHAB2KN7qr83GOHl7apE-hJcE,8460
9
10
  mcp_code_indexer/data/stop_words_english.txt,sha256=7Zdd9ameVgA6tN_zuXROvHXD4hkWeELVywPhb7FJEkw,6343
10
11
  mcp_code_indexer/database/__init__.py,sha256=aPq_aaRp0aSwOBIq9GkuMNjmLxA411zg2vhdrAuHm-w,38
11
- mcp_code_indexer/database/database.py,sha256=BRdV6XOn4yySHviAyNKG1faV_rzvsajU0ZppRGcvakg,26607
12
+ mcp_code_indexer/database/database.py,sha256=c7-rtj7ZM2w9HcKphSjNccygwnTwDCiret79xbP1Jtg,31000
12
13
  mcp_code_indexer/database/models.py,sha256=_vCmJnPXZSiInRzyvs4c7QUWuNNW8qsOoDlGX8J-Gnk,7124
13
14
  mcp_code_indexer/middleware/__init__.py,sha256=p-mP0pMsfiU2yajCPvokCUxUEkh_lu4XJP1LyyMW2ug,220
14
15
  mcp_code_indexer/middleware/error_middleware.py,sha256=v6jaHmPxf3qerYdb85X1tHIXLxgcbybpitKVakFLQTA,10109
15
16
  mcp_code_indexer/server/__init__.py,sha256=16xMcuriUOBlawRqWNBk6niwrvtv_JD5xvI36X1Vsmk,41
16
- mcp_code_indexer/server/mcp_server.py,sha256=tYL-VJXJO-H41uyz6lDdZ6e21-sk__QkWJWFhbHSd1o,60284
17
+ mcp_code_indexer/server/mcp_server.py,sha256=bRl5JTFWlQ0MrIulkts6fDws6kPqfy6kKoQdenMOk04,61290
17
18
  mcp_code_indexer/tiktoken_cache/9b5ad71b2ce5302211f9c61530b329a4922fc6a4,sha256=Ijkht27pm96ZW3_3OFE-7xAPtR0YyTWXoRO8_-hlsqc,1681126
18
19
  mcp_code_indexer/tools/__init__.py,sha256=m01mxML2UdD7y5rih_XNhNSCMzQTz7WQ_T1TeOcYlnE,49
19
- mcp_code_indexer-1.2.3.dist-info/licenses/LICENSE,sha256=JN9dyPPgYwH9C-UjYM7FLNZjQ6BF7kAzpF3_4PwY4rY,1086
20
- mcp_code_indexer-1.2.3.dist-info/METADATA,sha256=ogWMe_BwsnkgYX49tVqZqCOJofET_LtyRMiwQWLfIpc,12205
21
- mcp_code_indexer-1.2.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
22
- mcp_code_indexer-1.2.3.dist-info/entry_points.txt,sha256=8HqWOw1Is7jOP1bvIgaSwouvT9z_Boe-9hd4NzyJOhY,68
23
- mcp_code_indexer-1.2.3.dist-info/top_level.txt,sha256=yKYCM-gMGt-cnupGfAhnZaoEsROLB6DQ1KFUuyKx4rw,17
24
- mcp_code_indexer-1.2.3.dist-info/RECORD,,
20
+ mcp_code_indexer-1.4.0.dist-info/licenses/LICENSE,sha256=JN9dyPPgYwH9C-UjYM7FLNZjQ6BF7kAzpF3_4PwY4rY,1086
21
+ mcp_code_indexer-1.4.0.dist-info/METADATA,sha256=C4obIa-pLTBrTg0k6OnU5LT6eSKajLWcen6rc5cgJFA,16721
22
+ mcp_code_indexer-1.4.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
23
+ mcp_code_indexer-1.4.0.dist-info/entry_points.txt,sha256=8HqWOw1Is7jOP1bvIgaSwouvT9z_Boe-9hd4NzyJOhY,68
24
+ mcp_code_indexer-1.4.0.dist-info/top_level.txt,sha256=yKYCM-gMGt-cnupGfAhnZaoEsROLB6DQ1KFUuyKx4rw,17
25
+ mcp_code_indexer-1.4.0.dist-info/RECORD,,