Code Index MCP 是一個基於 Model Context Protocol 的服務器,允許大型語言模型 (LLMs) 索引、搜索和分析專案目錄中的程式碼。
- 索引並導航專案文件結構
- 搜索特定模式的程式碼
- 獲取文件的詳細摘要
- 分析程式碼結構和複雜性
- 支持多種程式語言
- 專案設定持久化存儲
本專案使用 uv 進行環境管理和依賴安裝。
-
確保您已安裝 Python 3.10 或更高版本
-
安裝 uv (推薦):
# Windows powershell -c "irm https://astral.sh/uv/install.ps1 | iex" # macOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh
-
獲取代碼:
# clone 儲存庫 git clone https://github.com/your-username/code-index-mcp.git
您可以輕鬆地將 Code Index MCP 與 Claude Desktop 整合:
-
確保已安裝 UV (參見上方安裝部分)
-
找到或創建 Claude Desktop 配置文件:
- Windows:
%APPDATA%\Claude\claude_desktop_config.json - macOS/Linux:
~/Library/Application Support/Claude/claude_desktop_config.json
- Windows:
-
添加以下配置 (請替換為您的實際路徑):
適用於 Windows:
{ "mcpServers": { "code-indexer": { "command": "uv", "args": [ "--directory", "C:\\Users\\username\\path\\to\\code-index-mcp", "run", "run.py" ] } } }適用於 macOS/Linux:
{ "mcpServers": { "code-indexer": { "command": "uv", "args": [ "--directory", "/home/username/path/to/code-index-mcp", "run", "run.py" ] } } }注意:
--directory選項非常重要,它確保 uv 在正確的項目目錄中運行,並可以正確載入所有依賴項。 -
重啟 Claude Desktop,就可以使用 Code Indexer 來分析代碼專案
無需手動安裝依賴 - UV 在運行服務器時會自動處理所有依賴。
-
設定專案路徑 (必要第一步):
- 首次使用時,必須先設定要分析的專案路徑
- 透過 Claude 指令: "我需要分析一個專案,幫我設定專案路徑"
- 提供完整的專案目錄路徑
-
代碼搜索:
- 搜索特定關鍵字或模式: "在專案中搜索 'function name'"
- 支援按文件類型過濾: "搜索所有 .py 文件中的 'import'"
-
文件分析:
- 分析特定文件: "分析 src/main.py 這個文件"
- 獲取文件摘要: "給我 utils/helpers.js 的函數列表"
-
專案導航:
- 查看專案結構: "顯示這個專案的結構"
- 查找特定模式的文件: "找出所有的 test_*.py 文件"
所有索引和設定數據存儲在專案目錄下的 .code_indexer 文件夾中:
config.json: 專案配置資訊file_index.pickle: 檔案索引數據content_cache.pickle: 檔案內容緩存
這確保了不需要在每次使用時重新索引整個專案。
Code Index MCP 使用 UV 進行依賴管理,這提供了多項優勢:
- 根據專案需求自動解析依賴關係
- 更快的套件安裝和環境設置
- 通過鎖定文件確保依賴版本的一致性
目前支持以下文件類型的索引和分析:
- Python (.py)
- JavaScript/TypeScript (.js, .ts, .jsx, .tsx)
- Java (.java)
- C/C++ (.c, .cpp, .h, .hpp)
- C# (.cs)
- Go (.go)
- Ruby (.rb)
- PHP (.php)
- Swift (.swift)
- Kotlin (.kt)
- Rust (.rs)
- Scala (.scala)
- Shell (.sh, .bash)
- HTML/CSS (.html, .css, .scss)
- Markdown (.md)
- JSON (.json)
- XML (.xml)
- YAML (.yml, .yaml)
- 檔案路徑驗證防止目錄遍歷攻擊
- 不允許透過絕對路徑存取文件
- 專案路徑必須明確設定,無預設值
.code_indexer資料夾包含.gitignore文件,防止索引數據被提交
歡迎提交問題或拉取請求,以添加新功能或修復錯誤。