统一声明:
1.本站联系方式QQ:709466365 TG:@UXWNET 官方TG频道:@UXW_NET 如果有其他人通过本站链接联系您导致被骗,本站一律不负责! 2.需要付费搭建请联系站长QQ:709466365 TG:@UXWNET 3.免实名域名注册购买- 游侠云域名 4.免实名国外服务器购买- 游侠网云服务Model Context Protocol (MCP) 是一个开放标准,它的目标是给 LLM 一种干净、统一的方式去发现和调用外部工具。不用再写自定义解析、不用再维护脆弱的胶水代码,就是一个好用的协议。
大多数 MCP 教程上来就讲 JSON-RPC 规范、传输层协议,搞得很复杂。其实用 MCP 不需要理解协议内部构造——就像写 Web 应用不需要去读 HTTP 规范一样。本文将用 FastMCP 框架,15分钟带你搭建第一个 MCP Server。
核心概念:三分钟搞懂
- Server:对外暴露工具的服务端,本质上是一个 Python 脚本,声明”这些函数可以被 LLM 调用”
- Tool:希望 LLM 使用的函数,可以是任何东西:查天气、查数据库、发邮件
- Client:连接 Server 并调用工具的客户端,生产环境里一般就是 LLM 应用本身
传输方式、JSON-RPC、能力协商这些都是实现细节,上生产之前不用管。
第一步:安装 FastMCP
pip install fastmcp
FastMCP 是让 MCP 用起来简单的 Python 框架。装一下就行,不需要任何配置。
第二步:写你的第一个 Tool
from fastmcp import FastMCP
mcp = FastMCP("weather-server")
@mcp.tool()
def get_weather(city: str) -> str:
"""获取指定城市的天气信息"""
weather_data = {
"北京": "晴天,25°C",
"上海": "多云,22°C",
"深圳": "阵雨,28°C",
}
return weather_data.get(city, f"暂无{city}的天气数据")
@mcp.tool()
def calculate(expression: str) -> str:
"""计算数学表达式"""
try:
result = eval(expression)
return f"计算结果: {expression} = {result}"
except Exception as e:
return f"计算错误: {str(e)}"
if __name__ == "__main__":
mcp.run()
第三步:运行 Server
python server.py
就这么简单!你的 MCP Server 已经在运行了。FastMCP 默认使用 stdio 传输方式,可以直接被 Claude Desktop、Cursor 等客户端连接。
进阶:添加资源和提示
MCP 不仅仅是工具调用,还支持资源(Resources)和提示(Prompts):
@mcp.resource("data://cities/{city_id}")
def get_city_info(city_id: str) -> dict:
"""提供城市信息作为上下文资源"""
cities = {
"beijing": {"name": "北京", "population": "2154万"},
"shanghai": {"name": "上海", "population": "2487万"},
}
return cities.get(city_id, {"error": "城市未找到"})
@mcp.prompt()
def weather_report_prompt(city: str) -> str:
"""生成天气报告的提示模板"""
return f"请根据以下信息为{city}生成一份详细的天气报告"
配置 Claude Desktop 连接
在 Claude Desktop 的配置文件中添加你的 MCP Server:
// ~/Library/Application Support/Claude/claude_desktop_config.json
{
"mcpServers": {
"weather": {
"command": "python",
"args": ["/path/to/server.py"]
}
}
}
生产部署注意事项
- 错误处理:为每个 Tool 添加完善的异常捕获
- 输入验证:使用 Pydantic 模型验证输入参数
- 日志记录:记录每次工具调用的输入输出
- 速率限制:防止恶意调用
- 认证授权:对敏感工具添加访问控制
MCP 的美妙之处在于它的简洁性。你不需要理解协议的每一个细节,只需要用 Python 写好函数,加个装饰器,剩下的交给框架。
📌 本文来源:腾讯云开发者社区 / DeepHub
🔗 原文链接:点击查看原文全文
🔗 原文链接:点击查看原文全文
1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com
2. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
3. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
5. 如有链接无法下载、失效或广告,请联系管理员处理!
6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
7. 如遇到加密压缩包,请使用WINRAR解压,如遇到无法解压的请联系管理员!
8. 精力有限,不少源码未能详细测试(解密),不能分辨部分源码是病毒还是误报,所以没有进行任何修改,大家使用前请进行甄别!
站长QQ:709466365 站长邮箱:709466365@qq.com



