模型上下文协议 (Model Context Protocol) 解析
不要再一遍又一遍地编写重复的集成代码了。
如果你将 LLM 连接到数据库或 API,通常需要为每个新模型编写自定义的胶水代码。这会导致局面变得混乱,最终你不得不为许多工具管理大量的连接。
模型上下文协议 (Model Context Protocol, MCP) 解决了这个问题。它就像是 AI 的 USB-C 接口。你只需构建一次工具,任何模型都可以使用它。
该架构包含三个部分:
• Host (宿主):你使用的应用程序,例如 Claude Code 或 IDE。 • Client (客户端):宿主内部的连接器。 • Server (服务器):你构建的用于暴露数据或工具的程序。
你可以使用三个主要原语来构建 MCP 服务器:
- Tools (工具):模型调用的用于执行任务的函数,例如发送电子邮件。
- Resources (资源):应用程序拉取的只读数据,例如日志文件。
- Prompts (提示词):针对特定任务的可复用模板。
以下是如何使用 FastMCP SDK 在 Python 中构建一个基础服务器:
from mcp.server.fastmcp import FastMCP
mcp = FastMCP("demo-tools")
@mcp.tool()
def word_count(text: str) -> int:
"""Count 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 code reviews."""
return f"Review this {language} code: {code}"
if __name__ == "__main__":
mcp.run()
这段代码会为你处理复杂的通信。你的文档字符串 (docstrings) 将成为模型的指令。
三个生产环境建议:
- 安全性:在运行会更改数据的工具之前,务必请求用户批准。
- 上下文:保持工具描述简短。冗长的描述会浪费 Token。
- 错误处理:返回清晰的消息。模型可以修复“未找到用户”之类的错误,但无法修复原始代码崩溃。
不要再构建定制化的连接器了。构建一次 MCP 服务器,让每个模型都能使用它。
来源:https://dev.to/galian/model-context-protocol-explained-build-your-first-mcp-server-in-python-ian