跳转到内容

面向任意支持 MCP 的客户端

只要它说 MCP,
就能和 Maguyva 对话。

集成不是按工具一个个来做的——而是靠协议。Maguyva 是一台标准的 MCP 服务器,只有一个 URL,所以无论你的智能体跑在什么环境里(Claude Code、Codex、Cursor、Gemini、Windsurf、Antigravity、Zed、Cline,或者你自己搭的东西),拿到的都是同一张可查询的代码仓库地图。索引一次,之后每个接入的客户端问的都是同样有据可查的问题。

Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。

一台 MCP 服务器,适配所有客户端。没有逐工具插件,没有绑定锁定。

每一层各自的作用

四个部件,各司其职。

// 你的客户端

任意 MCP 客户端

24 个已记录在案的客户端,包括 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity,或者你自己的智能体。

// 协议

MCP

它们早就都在说的那套开放标准。

// 代码库

Maguyva

一个 MCP 服务器。扎根真实仓库的事实,连同文件路径和行号一起返回。

// 谁来付钱

按工作区计费,而非按坐席

智能体不用占坐席。查看定价

MCP 就是集成方案,统一用它就对了。

选开放协议是正确决定,不是权宜之计。基于 MCP 构建,而不是搞一堆逐工具插件,正是避免每次有更好的智能体出现就要重新集成一遍的办法。它正适合承载:

  • 一份能塞进任意合规客户端的服务器配置块。
  • 可以在编辑器、CLI 和智能体之间移植的工具与资源。
  • 一道你的安全团队只需审查一次、而不必逐个厂商审查的边界。
  • 切换客户端而无需重建整套上下文技术栈的自由。

继续这样用,统一到 MCP 上就是正确的做法。

但协议只是一根管道,它只负责传递问题和答案——并不了解你的代码库。总得有什么东西在另一端,真正把你的符号、调用点和依赖关系映射出来。

逐工具做上下文,扩展不下去的地方

四种失效模式,任何单一智能体的规则文件都修不好。

// 每换一个工具都得从零开始上手

换一个新智能体,它在你的代码仓库上又是两眼一抹黑。你得重新粘贴同样的文件,重新 pin 住同样的上下文,重新写一遍同样的规则。这些工作没法迁移,因为它们从来就不是共享层。

// 规则文件不会跟着你走

CLAUDE.md.cursor/rulesAGENTS.md——每一个都是绑定单一工具的,没有一个是你代码的可查询索引。换个客户端,你手工搭出来的那张地图就留在原地了。

// 集成锁定是一种税

把深度的代码库上下文接入某一家厂商的插件,意味着哪天你想换个智能体试试,就得重新搭一遍。你的上下文做得越好,离开的代价就越大。

// 协议只是一根管道,不是地图

MCP 负责在客户端和服务器之间传递工具与上下文,但它并不了解你的符号、调用点或依赖关系图。总得有什么东西在另一端真正回答这个问题。

Maguyva 就是协议另一端的那一层

不是又一个智能体,而是任何 MCP 客户端都能调用的代码库上下文服务器:

  • 一个端点,适配所有客户端 同一个 https://maguyva.tools/mcp,同时服务于 Claude Code, Codex CLI, Gemini CLI, Cursor, Windsurf, Antigravity,或者你今天早上刚写的脚本。
  • 语义 + AST + 图谱 + 文本 按含义、结构、依赖关系或字面文本搜索。无论是哪个客户端发起的请求,每个命中结果都会返回文件路径和行号。
  • 感知分支,跨包 Maguyva 能看到智能体正在编辑的那个版本的代码,覆盖 monorepo 中的每一个包。
  • 无厂商锁定 随时切换智能体;上下文层不会跟着变。按工作区定价,而非按坐席——索引 1 个仓库还是 50 个都一样。

你的客户端说 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]

跨包,多语言代码库还能跨语言,调用点直接内联展示出来。明天换个智能体,影响范围还在,因为它活在服务器里,而不是客户端里。

在任意 MCP 客户端中配置

三个步骤。Free 层级:3 个代码仓库, 最多 5 万行索引代码,无需信用卡。

  1. // step 01

    在 maguyva.ai 索引一个代码仓库

    选一个你熟悉的代码库,方便你核实答案是否正确。Free 版可覆盖 3 个代码仓库, 最多 5 万行索引代码。

  2. // step 02

    在你用的任意客户端里把 Maguyva 添加为 MCP 服务器

    // 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
  3. // step 03

    问一个你已经知道答案的问题

    先从一个代码仓库和一个可验证的问题开始,比如“跨包范围内,谁调用了 formatInvoice?”如果答案和你预期的一致,那你指向的其他任何客户端,得到的也会是同样有据可查的结果。

来源