游侠网云服务,免实名免备案服务器 游侠云域名,免实名免备案域名

统一声明:

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
🔗 原文链接:点击查看原文全文