跳转到主要内容

WRITING

MCP 协议实战:从代码检索到 gmail 的 Agent 生态

2026年4月12日3 分钟阅读曾田力
AIAgentMCPLLMClaude
MCP 协议实战:从代码检索到 gmail 的 Agent 生态

MCP 不只是协议,是生态

Model Context Protocol (MCP) 让 LLM 能调用外部工具,但真正的价值不在协议本身,而在于围绕它构建的工具生态。我目前在 Claude Code 中集成了 3 个 MCP Server,它们覆盖了日常工作的三个核心场景。

三个 MCP Server

Claude Code 连接 code-search、cclog、gmail 三个 MCP Server 的拓扑与各自的安全边界
三个 Server 各管一个场景:code-search 搜代码、cclog 搜会话、gmail 收发邮件;安全边界各自清晰——code-search 只索引 Git 仓库,gmail 走 OAuth 不存密码。

1. code-search — 代码库语义搜索

code-search 为 Git 仓库建立语义索引,让 Claude 能用自然语言搜索代码。

典型用法

  • "找到处理 cookie 的中间件代码"
  • "哪些文件涉及 track 切换逻辑"
  • "水资源承载力计算的核心公式在哪"

它的限制是只能索引 Git 仓库(安全策略),不能搜 ~/.personal_env 等配置文件。这反而是个好设计——敏感信息天然隔离。

2. cclog — 会话历史搜索

cclog 是我写的 MCP Server,基于 SQLite 索引 Claude Code 的 512+ 历史会话。

核心 API

  • search_sessions(query) — 按关键词搜会话
  • get_session_detail(id) — 拉取完整对话记录
  • get_daily_digest(date) — 某天做了什么

为什么需要它:Claude Code 会话结束后上下文就丢了。cclog 让我能跨会话检索,比如"上周修 deploy.sh 的那次会话具体改了什么"。

3. gmail — 邮件读写

node 实现的 Gmail MCP,支持搜索、读取、发送、打标签。配合每日 Briefing 系统,实现自动化信息推送。

注册与管理

MCP Server 注册在 ~/.claude.jsonmcpServers 字段:

claude mcp add code-search -- code-search --mcp --mcp-auto-workspace
claude mcp add cclog -- python3 ~/Dev/cclog/src/cclog/mcp_server.py
claude mcp list  # 验证

修改后必须重启 CC 会话,否则新 Server 不会加载。

Agent 工作流实例

一个典型的跨 MCP 工作流——"检查上周的部署问题":

「检查上周的部署问题」四步跨 MCP 时序:cclog 两次检索、code-search 定位脚本、修复后 gmail 发通知
四步跨三个 Server:cclog 先找到会话、再挖出「CSS 哈希不匹配」的根因,code-search 定位部署脚本,修复后 gmail 自动发通知——全程 Claude 自主编排,无需手动切换工具。
  1. cclog: search_sessions("deploy 失败") → 找到相关会话
  2. cclog: get_session_detail(id) → 获取完整对话,发现是 CSS 哈希不匹配
  3. code-search: codebase-retrieval("deploy.sh rsync") → 找到部署脚本
  4. 修复后 → gmail: 发通知邮件

整个流程 Claude 自主完成,不需要我手动切换工具。

经验总结

  1. MCP Server 要小而专:每个 Server 只做一件事,组合起来才灵活
  2. 注册在全局而非项目~/.claude.json 而不是 .mcp.json,这样所有项目都能用
  3. 安全边界要清晰:code-search 不索引非 Git 目录,gmail 走 OAuth 不存密码
  4. 失败要优雅:MCP Server 挂了不应该阻塞整个会话

下一步计划:接入 Cloudflare API 和 VPS 状态监控的 MCP Server,让 Claude 能直接管理基础设施。

订阅

新文章都先发在这里。用 RSS 订阅: /feed.xml

作者

曾田力

水利工程师。在这里写 AI 方法论、投资日复盘和工程实践。

这篇写错了、写漏了,或者你有别的想法?