首页
学习
活动
专区
圈层
工具
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

太炸裂,10分钟小白用Cursor开发自己的MCP服务器,赶紧学起来

视频配套飞书版文档请见文末。

在本教程中,我们将构建一个简易的 MCP 天气服务器(参考MCP官方文档),并将其与一个主机(客户端),即 Cursor 客户端相连接。

当前,许多大语言模型(LLM)尚不具备获取天气预报及恶劣天气警报的能力。我们将借助 MCP 来解决这一问题!

我们会构建一个服务器,该服务器将暴露两个工具:get-alerts 和 get-forecast。随后,我们会把此服务器连接到一个 MCP 客户端。

众多编程语言都支持开发 MCP 服务器,例如 Python、JavaScript、Java、Kotlin、C# 等。在此,我们选用 Python 进行演示。

配套视频

搭建Python开发环境

首先,让我们安装 uv ,uv(Rust 版)需要 Python 3.8+ 环境:

通过 pip 安装(推荐):

以MacOS/Linux为例: 

以Windows为例:

之后请务必重启你的终端,以确保 uv 命令被识别。

创建项目

现在,让我们创建并设置我们的项目:

以MacOS/Linux为例:

以Windows为例:

现在让我们深入构建你的服务器。

服务器代码编写

将如下代码添加到你的 weather.py 文件的顶部:

让我们详细解释FastMCP类的功能和用法。FastMCP是一个用于构建工具服务器的框架,具有以下主要特点:

1初始化

FastMCP实例化时需要一个名称参数,这里使用"weather"作为服务名称。这个名称用于标识该工具服务器。

1工具装饰器 

FastMCP提供了@mcp.tool()装饰器,用于将函数注册为工具。例如:

这个装饰器将普通函数转换为可以通过MCP服务器调用的工具。

1异步支持

FastMCP完全支持异步操作,可以处理异步函数(使用async/await语法)。这在处理I/O密集型操作(如API请求)时特别有用。

1运行服务器

FastMCP提供了run()方法来启动服务器。可以指定不同的传输方式,这里使用'stdio'(标准输入输出)作为传输方式。

1依赖管理

从pyproject.toml文件可以看出,FastMCP是通过mcp[cli]包提供的,版本要求≥1.6.0:

在这个天气应用中,FastMCP被用来:

1创建一个天气服务工具服务器

1提供两个主要工具函数:

1get_alerts: 获取特定州的天气警报

1get_forecast: 获取特定位置的天气预报

1处理异步API请求

1格式化和返回天气数据 

查询天气和格式化函数

接下来这2个函数,用于查询和格式化来自 National Weather Service API 的数据:

编写2个工具函数 

Tool 函数负责实际执行每个 tool 的逻辑。让我们添加它:

运行服务器

最后,让我们初始化并运行 server:

Server 已经完成!运行 uv run weather.py 以确认一切正常。 

现在让我们从现有的 MCP host(Cursor) 测试你的 server。

Cursor 连接你的Server

在Cursor中填写MCP的配置信息:

这告诉 Cursor:

1有一个名为 “weather” 的 MCP server。

1通过运行 uv --directory /ABSOLUTE/PATH/TO/PARENT/FOLDER/weather run weather.py 来启动它。

底层执行流程

当你通过客户端(Cursor)提出问题时:

1客户端(client)将你的问题发送给 LLM;

1LLM 分析可用的 tools 并决定使用哪些 tool;

1客户端(client) 通过 MCP server 执行选择的 tool;

1结果被发回给 LLM;

1LLM 制定自然语言响应;

1响应显示给你; 

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OQ2olcrgwCZw1g9kLfRNgGbQ0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
首页
学习
活动
专区
圈层
工具
MCP广场