模型上下文协议 (Model Context Protocol) 解析
如果你将 LLM 连接到数据库或 API,你需要编写胶水代码。你为一种模型编写代码,然后又为下一个模型重新编写。这会导致集成工作变得一团糟。
模型上下文协议 (MCP) 解决了这个问题。它就像是 AI 的 USB-C 接口。不再需要为每个设备定制电缆,所有人都可以使用同一种标准连接器。
MCP 将集成复杂度从 M x N 降低到了 M + N。
- 工具作者编写一个 MCP server。
- 应用作者添加一个 MCP client。
- 任何支持 MCP 的 host 都可以使用任何 server。
该架构包含三个角色:
• Host (宿主):你使用的 AI 应用,例如 Claude Code 或 IDE。它决定连接哪些 server。 • Client (客户端):host 内部的连接器。它负责维持与 server 的连接。 • Server (服务器):你构建的程序。它提供工具、数据或 prompts。
你会用到三个主要的基元 (Primitives):
- Tools (工具):模型调用的函数,用于执行操作,例如发送电子邮件或查询数据库。
- Resources (资源):应用拉取到上下文中的只读数据,例如文件或日志。
- Prompts (提示词):帮助用户触发特定任务的可复用模板。
你可以使用 FastMCP SDK 在 Python 中构建一个 server。这是一个简单的示例:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count the words in a text."""
return len(text.split())
@mcp.resource("notes://team")
def team_notes() -> str:
"""Expose team notes."""
return "Release freeze starts Friday."
@mcp.prompt()
def code_review(language: str, code: str) -> str:
"""Template for reviewing code."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
在构建 server 时,请记住以下规则:
- 安全性:对于具有破坏性的工具,请使用用户确认机制。验证所有参数。
- 上下文:保持工具描述简短。冗长的描述会消耗你的 token 预算。
- 错误处理:返回清晰的消息,以便模型能够纠正自己的错误。
MCP 让工具成为了可复用的资产。编写一次,即可让所有模型使用。
来源:https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian
可选学习社区:https://t.me/GyaanSetuAi