# 如何選擇程式碼智慧 MCP 伺服器

Canonical source: https://maguyva.ai/zh-hant/guides/choosing-a-code-intelligence-mcp-server

License: text under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/); code samples under [MIT-0](https://opensource.org/license/mit-0); the Maguyva name, logos, brand assets and other code are not covered. Details: [maguyva.ai/license](https://maguyva.ai/license).

選擇能回答代理對你自己程式碼的真實提問的伺服器：某個符號在哪裡定義、誰在呼叫它、改了它會弄壞什麼，以及一個沒人記得名稱的概念究竟藏在哪裡。

這需要多種檢索方式、對你所交付語言的真正剖析、能跟上提交的索引，以及幾分鐘內就能在用戶端完成的設定。在你熟悉的儲存庫上跑一遍下方的 15 分鐘測試：它勝過任何功能清單，包括這一份。

## 要比較什麼

向每個候選者提出同樣的問題，再用你自己的程式碼核對答案。功能清單只是說法；在你的儲存庫上給出正確答案才是證據。

| 標準 | 要問什麼 | 如何驗證 |
|---|---|---|
| **檢索方式** | 它是否結合語意搜尋、結構（AST）搜尋、圖搜尋與精確文字搜尋，並把每個問題分派給合適的方式？只有一種方式，就會有整類問題無法回答。 | 每種各問一個問題：一個概念、一種程式碼形態、一份呼叫端清單，以及一則精確的錯誤訊息。 |
| **語言支援深度** | 對你交付的每種語言，程式碼是被剖析成帶有符號與關係的 AST，還是只當作文字索引？很長的語言清單可能掩蓋淺層支援。 | 找到你所用語言公開的能力標記，然後在每種語言裡查一個符號。 |
| **儲存庫規模** | 它能否撐住你最大的儲存庫，以及同時處理多個儲存庫？結果是否維持排序且數量受控，還是一個大檔案就淹沒了答案？ | 索引你最大的真實儲存庫，而不是示範專案，並記錄得到第一個有用答案所需的時間。 |
| **新鮮度與同步** | 索引如何得知新的提交，一個變更要多久才能被搜尋到？過時的索引會自信地回答早已不存在的程式碼。 | 提交一次重新命名，然後分別搜尋新名稱與舊名稱。 |
| **安全與資料處理** | 你的原始碼存放在哪裡、哪些內容會傳給第三方、是否用於訓練，以及中斷連線後會刪除什麼？ | 閱讀資料處理頁面。尋找具名的服務商與具體的刪除規則，而不是徽章。 |
| **各用戶端的設定** | 團隊使用的每個用戶端是否都有文件化的設定，一個端點能否服務所有用戶端？ | 連接團隊已經在用的兩個用戶端，並分別計時。 |
| **定價模式** | 價格是否公開？按席位、按代理還是按工作區計費？免費方案是否足以做一次真實試用？ | 依真實設定估算價格：你實際會執行的代理、儲存庫與索引行數。 |
| **在你的程式碼上驗證** | 能否今天就在自己的儲存庫上試用，而不必先和業務通話？ | 如果試用前必須先開會，這本身也是一個答案。 |

### 索引放在哪裡

索引放在哪裡，遠不如它能回答什麼重要。代理在規劃修改的那一刻，需要的是正確的檔案、符號與呼叫端清單。所以請用上方的問題、在你自己的程式碼上評判每個候選者。

## 15 分鐘在你的儲存庫上測試

用一個你很熟悉的儲存庫，每個答案你一眼就能評分。記下你不得不修正的答案數量。

1. 連接儲存庫，記下第一次搜尋傳回結果前花了多少時間。
2. 提出一個與程式碼沒有共同關鍵字的概念性問題，例如「我們在哪裡處理過期的工作階段？」打開每一個被引用的檔案與行。
3. 依名稱查找一個符號，再詢問它的呼叫端。把清單與你已知的情況比對。
4. 挑一個你打算修改的函式，問問有什麼依賴它。這份清單就是它的影響範圍：把它與能抓到破壞的測試對照檢查。
5. 依程式碼形態而非名稱提問，例如所有路由處理器，或所有實作某個介面的類別。
6. 搜尋一個精確字串，例如一則錯誤訊息，確認每個命中都是真的。
7. 提交一次小的重新命名，等索引跟上後，再搜尋新舊兩個名稱。
8. 數一數修正次數。修正最少的伺服器勝出，不管它的功能清單寫了什麼。

## 術語釋義

- **程式碼智慧 MCP 伺服器**: 一種 MCP 伺服器，它索引原始碼並以工具的形式提供給 AI 代理。代理不必把整個檔案貼進提示詞，只要提出問題，就能得到附檔案路徑與行號的排序結果。
- **程式碼圖**: 描繪符號、檔案與模組如何相互連結的地圖：定義、參照、呼叫、匯入與繼承。不必讀遍每個檔案，就能回答「誰在用這個？」
- **影響範圍**: 某個符號變更時可能受影響的程式碼：它的呼叫端、相依者，以及涵蓋它們的測試。在修改前掌握它，正是圖搜尋的用途。
- **AST 搜尋**: 在抽象語法樹（也就是剖析後的程式碼結構）上進行的搜尋。它依形態找出程式碼，例如所有帶某個裝飾器的函式，這是一般文字搜尋無法可靠做到的。
- **語意搜尋**: 藉由嵌入向量依意義搜尋。即使程式碼與問題沒有任何相同的字詞，它也能找到符合描述的程式碼。
- **精確文字搜尋**: 字面值或正規表示式比對。用來查找錯誤訊息、設定鍵與你已經知道的識別碼時，它是合適的工具。

## Maguyva 的定位

Maguyva 是一個託管的程式碼智慧 MCP 伺服器。它索引你連接的 GitHub 儲存庫，為你的代理提供 11 個 MCP 工具，每個結果都附有檔案路徑。

- **檢索**: 語意搜尋、結構搜尋、圖搜尋與精確文字搜尋，另有符號查找，以及一個為每個問題挑選合適方式的路由工具。 (`intelligent_search`, `semantic_search`, `structural_search`, `text_pattern_search`, `find_symbol`, `dependency_search`, `analyze_dependencies`)
- **語言**: 已索引 285 種語言與文字格式：其中 247 種支援以 AST 為基礎的結構搜尋，282 種支援符號擷取，151 種支援圖關係。支援深度因語言而異，請查看你所用的語言。
- **新鮮度**: 程式碼變更時，索引會透過 GitHub 同步作業更新。
- **設定**: 一個遠端 MCP 端點，並為 23 個有文件的用戶端提供逐步設定。
- **定價**: 價格公開，按工作區而非按席位計費。Free 方案包含 3 個儲存庫與 50,000 行索引，足夠完成 15 分鐘測試。
- **資料處理**: 安全性頁面寫明了什麼存放在哪裡、什麼會被傳送去產生嵌入，以及中斷連線時會刪除什麼。

目前儲存庫透過 GitHub 連接。如果你的程式碼放在別處，開始前請先查看相容性頁面。

- [開始快速入門](https://maguyva.ai/zh-hant/docs/quickstart)
- [查看定價](https://maguyva.ai/zh-hant/pricing)
- [查看各語言能力](https://maguyva.ai/zh-hant/docs/compatibility)
- [閱讀資料處理詳情](https://maguyva.ai/zh-hant/security)
