# 如何选择代码智能 MCP 服务器

Canonical source: https://maguyva.ai/zh-hans/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-hans/docs/quickstart)
- [查看定价](https://maguyva.ai/zh-hans/pricing)
- [查看各语言能力](https://maguyva.ai/zh-hans/docs/compatibility)
- [阅读数据处理详情](https://maguyva.ai/zh-hans/security)
