// 你的客户端
任意 MCP 客户端
24 个已记录在案的客户端,包括 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity,或者你自己的智能体。
面向任意支持 MCP 的客户端
集成不是按工具一个个来做的——而是靠协议。Maguyva 是一台标准的 MCP 服务器,只有一个 URL,所以无论你的智能体跑在什么环境里(Claude Code、Codex、Cursor、Gemini、Windsurf、Antigravity、Zed、Cline,或者你自己搭的东西),拿到的都是同一张可查询的代码仓库地图。索引一次,之后每个接入的客户端问的都是同样有据可查的问题。
Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。
一台 MCP 服务器,适配所有客户端。没有逐工具插件,没有绑定锁定。四个部件,各司其职。
// 你的客户端
24 个已记录在案的客户端,包括 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity,或者你自己的智能体。
// 协议
它们早就都在说的那套开放标准。
// 代码库
一个 MCP 服务器。扎根真实仓库的事实,连同文件路径和行号一起返回。
// 谁来付钱
智能体不用占坐席。查看定价
选开放协议是正确决定,不是权宜之计。基于 MCP 构建,而不是搞一堆逐工具插件,正是避免每次有更好的智能体出现就要重新集成一遍的办法。它正适合承载:
继续这样用,统一到 MCP 上就是正确的做法。
但协议只是一根管道,它只负责传递问题和答案——并不了解你的代码库。总得有什么东西在另一端,真正把你的符号、调用点和依赖关系映射出来。
四种失效模式,任何单一智能体的规则文件都修不好。
换一个新智能体,它在你的代码仓库上又是两眼一抹黑。你得重新粘贴同样的文件,重新 pin 住同样的上下文,重新写一遍同样的规则。这些工作没法迁移,因为它们从来就不是共享层。
CLAUDE.md、.cursor/rules、AGENTS.md——每一个都是绑定单一工具的,没有一个是你代码的可查询索引。换个客户端,你手工搭出来的那张地图就留在原地了。
把深度的代码库上下文接入某一家厂商的插件,意味着哪天你想换个智能体试试,就得重新搭一遍。你的上下文做得越好,离开的代价就越大。
MCP 负责在客户端和服务器之间传递工具与上下文,但它并不了解你的符号、调用点或依赖关系图。总得有什么东西在另一端真正回答这个问题。
不是又一个智能体,而是任何 MCP 客户端都能调用的代码库上下文服务器:
https://maguyva.tools/mcp,同时服务于 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity,或者你今天早上刚写的脚本。你的客户端说 MCP。
而 Maguyva,就是它问起你的代码时给出答案的那个。
跨包、跨语言。客户端可以换,基于真实代码给出的答案不会变。
// workflow 01
agent> 这个 monorepo 里,身份验证发生在哪里? graph::query("authentication flow") packages/web/src/auth/session.ts:42 中间件 packages/api/src/auth/jwt.ts:88 令牌校验 packages/shared/src/auth/types.ts:12 AuthContext packages/admin/src/auth/admin-only.ts:31 权限门禁 → 4 个包中的 4 个入口点,按调用点密度排序。 [exit 0]
Claude Code、Cursor,还是你自己写的脚本——是哪个客户端发出查询并不重要。返回的都是同样的四个文件、同样的排序,全部基于真实图谱。
// workflow 02
agent> normalizePhoneNumber 是怎么处理 E.164 格式的? semantic::query("normalize phone E.164") packages/shared/util/phone.ts:88 normalizePhoneNumber() ← 真实实现 packages/api/test/phone.spec.ts:14 jest.mock(...) ← 测试桩 [exit 0]
名字会骗人,mock 会遮住真实代码。无论哪个客户端来问,Maguyva 都会用同样的方式,把真实实现排在测试 mock 之上。
// workflow 03
agent> 整个 monorepo 里,谁调用了 QueueDispatcher.publish? graph::callers(QueueDispatcher.publish) 3 处在 packages/billing/* 1 处在 packages/audit/* 1 处在 packages/notifications/* 1 处在 services/python-worker/* ← 通过 gRPC 桩跨语言调用 [exit 0]
跨包,多语言代码库还能跨语言,调用点直接内联展示出来。明天换个智能体,影响范围还在,因为它活在服务器里,而不是客户端里。
三个步骤。Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。
// step 01
选一个你熟悉的代码库,方便你核实答案是否正确。Free 版可覆盖 3 个代码仓库, 最多 5 万行索引代码。
// step 02
// any MCP client: add a remote MCP server
{
"mcpServers": {
"maguyva": {
"url": "https://maguyva.tools/mcp",
"headers": {
"Authorization": "Bearer <your-key>"
}
}
}
}
// CLI clients can use the same endpoint:
// https://maguyva.tools/mcp// step 03
先从一个代码仓库和一个可验证的问题开始,比如“跨包范围内,谁调用了 formatInvoice?”如果答案和你预期的一致,那你指向的其他任何客户端,得到的也会是同样有据可查的结果。