Day14 实操笔记:MCP — AI 工具的 USB 接口
Day14 实操笔记:MCP — AI 工具的 USB 接口
学 Agent 第十四天。今天学了 MCP,终于把 Day05 留下的那个坑填上了——用 MCP 给 Kiro 接入自定义 RAG。
📦 本文涉及的示例代码,以及全部 20 天的代码,都在文末的 GitHub 仓库里,嫌慢的朋友可以直接跳到文末自取。

先说一个痛点
Day03 学 Function Calling 时,工具是这样定义的:
tools = [{
"type": "function",
"function": {
"name": "search_web",
"description": "搜索网页",
"parameters": {...}
}
}]
这个工具只能在这个项目里用。如果我想在 LangChain 项目里用,要重写一遍。在 Kiro 里用,又要重写一遍。同一个工具,写了四五遍适配代码。
MCP 解决的就是这个问题。
MCP 是什么
Model Context Protocol,模型上下文协议。一句话:AI 工具领域的 USB 接口。
工具开发者实现一次 MCP Server,所有支持 MCP 的客户端(Kiro、Claude Desktop、Cursor 等)都能直接用,不需要重复适配。
写一个 MCP Server
用 FastMCP 写起来和 LangChain 的 @tool 几乎一样:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("agent-learning-notes")
@mcp.tool()
def add_note(title: str, content: str) -> str:
"""添加一条学习笔记"""
notes[title] = content
return f"已保存:{title}"
@mcp.tool()
def search_notes(keyword: str) -> str:
"""搜索包含关键词的笔记"""
...
mcp.run() # 启动 Server
@mcp.tool() 从函数签名和 docstring 自动生成工具定义,不需要手写 JSON Schema。
接入 Kiro
在 .kiro/settings/mcp.json 里加一段配置:
{
"mcpServers": {
"agent-learning-notes": {
"command": "python",
"args": ["agent-learning/03-multi-agent/day14/mcp_server.py"],
"autoApprove": ["list_notes", "get_note", "search_notes"]
}
}
}
配置好后,Kiro 就能调用 mcp_server.py 里的所有工具了。
autoApprove 里的工具调用时不需要确认,没列的工具(如 delete_note)每次都会弹确认框。原则:只读操作自动批准,写操作和删除需要确认。
填上 Day05 的坑
Day05 学 RAG 时,notes 里写了一个想法:把 RAG 包装成 MCP Server 接入 Kiro。今天可以落地了:
@mcp.tool()
def search_knowledge_base(query: str) -> str:
"""从公司内部文档中检索相关内容"""
results = retrieve(query, chunks, vectors) # Day05 的检索逻辑
return "\n".join(r["text"] for r in results)
这样问 Kiro “我们项目的热更新方案是什么”,Kiro 会通过 MCP 调用这个工具,检索内部文档,基于文档回答。
MCP vs Function Calling
Function Calling:工具和框架强耦合,不能复用
MCP:工具独立部署,任何客户端都能用
用 Function Calling:工具只在一个项目里用
用 MCP:工具需要在多个 AI 应用里复用
今日总结
MCP 是 AI 工具生态的基础设施。现在主流的 AI 工具(Kiro、Claude Desktop、Cursor)都支持 MCP,社区已经有数百个开源 MCP Server 可以直接用。
学会写 MCP Server,就能把任何系统(数据库、API、文件系统)接入任何 AI 工具,这是 Agent 工程师的核心技能之一。
明天学 Human-in-the-Loop——关键操作让人类确认,让 Agent 更安全。
📦 示例代码仓库
本文及全部 20 天的示例代码均已开源,欢迎自取:
https://github.com/DenseOoFog/push-me-to-learn-agents
夜雨聆风