网站销售需要注册公司吗,免费制作小程序的平台,松岗做网站费用,网络规划设计师2022年FastMCP是一个用于快速构建MCP#xff08;Model Context Protocol#xff09;服务器的Python框架#xff0c;它能帮你轻松地将自定义工具和数据源接入大型语言模型#xff08;LLM#xff09;。你的核心需求是查询天气和热点新闻#xff0c;这正是FastMCP的典型应用场景。…FastMCP是一个用于快速构建MCPModel Context Protocol服务器的Python框架它能帮你轻松地将自定义工具和数据源接入大型语言模型LLM。你的核心需求是查询天气和热点新闻这正是FastMCP的典型应用场景。 FastMCP核心概念与安装为了高效开发了解其核心概念很有帮助。你可以把它看作是为LLM构建“API”的专用框架。核心概念作用简单类比工具 (Tools)让LLM执行具体操作如查询天气、搜索新闻。可执行的函数资源 (Resources)向LLM提供只读数据如配置文件、静态文档。数据文件或只读API提示 (Prompts)为LLM定义可复用的对话模板。预设好的对话脚本安装FastMCP非常简单推荐使用uv进行高效的依赖管理# 安装uvbrewinstalluv# macOS系统# 使用uv安装FastMCPuv pipinstallfastmcp️ 实战一构建天气查询工具要查询天气通常需要调用第三方天气API。这里提供一个基于美国国家气象局 (NWS) API的示例该API免费且无需注册。fromtypingimportAnyimporthttpxfromfastmcpimportFastMCP# 初始化FastMCP服务器mcpFastMCP(Weather Server)# 常量NWS_API_BASEhttps://api.weather.govUSER_AGENTweather-app/1.0asyncdefmake_nws_request(url:str)-dict[str,Any]|None:辅助函数向NWS API发起请求headers{User-Agent:USER_AGENT,Accept:application/geojson}asyncwithhttpx.AsyncClient()asclient:try:responseawaitclient.get(url,headersheaders,timeout30.0)response.raise_for_status()returnresponse.json()exceptException:returnNonemcp.tool()asyncdefget_forecast(latitude:float,longitude:float)-str:获取指定经纬度的天气预报。 参数: latitude: 纬度 longitude: 经度 # 1. 获取该坐标点的预报接口地址points_urlf{NWS_API_BASE}/points/{latitude},{longitude}points_dataawaitmake_nws_request(points_url)ifnotpoints_data:return无法获取该地点的预报数据。# 2. 获取详细的天气预报forecast_urlpoints_data[properties][forecast]forecast_dataawaitmake_nws_request(forecast_url)ifnotforecast_data:return无法获取详细的预报信息。# 3. 格式化返回未来5个时段的预报periodsforecast_data[properties][periods][:5]forecasts[]forperiodinperiods:forecastf{period[name]}: 温度:{period[temperature]}°{period[temperatureUnit]}风速:{period[windSpeed]}{period[windDirection]}详情:{period[detailedForecast]}forecasts.append(forecast)return\n---\n.join(forecasts)if__name____main__:# 启动服务器mcp.run()⚠️注意此工具基于美国国家气象局(NWS) API主要覆盖美国地区。如需查询全球天气可以改用OpenWeatherMap等商业API通常需要注册并获取API密钥。 实战二获取热点新闻要获取热点新闻我们可以通过调用聚合新闻的RSS或API来实现。下面是一个示例它使用了News API需要注册获取免费API密钥。importosimporthttpxfromfastmcpimportFastMCP# 初始化FastMCP服务器mcpFastMCP(News Server)NEWS_API_KEYos.getenv(NEWS_API_KEY)# 请将你的API密钥设置在环境变量中NEWS_API_BASEhttps://newsapi.org/v2mcp.tool()asyncdefget_top_headlines(category:strgeneral,country:strus)-str:获取指定分类和国家的头条新闻。 参数: category: 新闻分类如 business, entertainment, general, health, science, sports, technology country: 国家代码如 us, gb, cn ifnotNEWS_API_KEY:return错误未配置NEWS_API_KEY环境变量。urlf{NEWS_API_BASE}/top-headlinesparams{apiKey:NEWS_API_KEY,category:category,country:country,pageSize:10# 获取10条新闻}asyncwithhttpx.AsyncClient()asclient:try:responseawaitclient.get(url,paramsparams,timeout30.0)response.raise_for_status()dataresponse.json()excepthttpx.RequestErrorase:returnf请求出错:{e}excepthttpx.HTTPStatusErrorase:returnfAPI返回错误:{e.response.status_code}ifdata[status]!okordata[totalResults]0:return未找到相关新闻。articlesdata[articles]news_list[]foridx,articleinenumerate(articles,1):news_list.append(f{idx}.{article[title]}\nf 来源:{article[source][name]}\nf 发布时间:{article.get(publishedAt,N/A)}\nf 摘要:{article.get(description,暂无描述)}\n)returnf找到{len(articles)}条新闻\n\n\n.join(news_list)if__name____main__:# 运行服务器mcp.run() 运行、调试与集成创建好工具后你需要运行服务器并连接到LLM客户端。运行与调试最便捷的方式是使用fastmcp dev命令。这会启动一个带图形界面的MCP Inspector你可以在其中直接测试刚编写的工具查看参数和返回结果。fastmcp dev weather_news_server.py集成到LLM客户端调试无误后可以将服务器安装到支持MCP的桌面应用如Claude Desktop中。fastmcpinstallweather_news_server.py --name我的天气新闻工具安装后在Claude等助手中你就可以直接问“查询纽约的天气”或“给我看看今天的科技新闻”模型会自动调用对应的工具并返回结果。为了让你更清晰地了解完整的开发流程下图总结了从创建工具到集成使用的关键步骤flowchart TD A[定义工具函数] -- B[使用 mcp.tool 装饰器注册] B -- C[使用 fastmcp dev 调试] C -- D[使用 fastmcp install 部署到客户端] D -- E[在LLM客户端中br如Claude通过对话调用]总的来说FastMCP通过其简洁的Python接口极大地降低了为大语言模型开发外部工具的门槛。除了天气和新闻你还可以用同样的方式创建计算、文件处理、数据库查询等任何你需要的工具。