第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

如何用MCP搭建一個簡單的天氣數(shù)據(jù)服務器?

你有没有想过AI系统是如何实时获取数据并执行动态任务而无需人工干预的?想象一下一个可以提供即时天气更新、预测未来的天气,或只需轻轻一点就能查询过去的天气数据的AI。这听起来像是未来的科技。现在,这一切已经通过MCP(模型上下文协议)成为可能,这是一个强大而灵活的框架,能够无缝地连接AI模型到外部API和数据源。

Model Context Protocol

在这份教程中,我们将一步步指导你建立一个简单的MCP服务器,该服务器能够抓取实时天气数据,并提供最新的预报,让你能够探索历史天气模式。通过这份指南,你将了解如何设置自己的MCP服务器,并通过集成实时数据来增强AI系统的功能。

模型上下文协议(Model Context Protocol,MCP)就像是AI的USB接口。它使语言模型能够轻松连接到现实世界的工具和API。不论是获取天气数据、提取财务记录,还是管理任务自动化,MCP规范了LLM与这些工具之间的交互方式。

让我们来建一个简单的MCP服务器

在这节课或这个教程中,我们将做什么。

  • 使用 MCP 设置一个 Python 环境
  • 连接到天气 API
  • 提供有用的工具,例如当前天气、预报和历史数据
  • 使用 MCP Inspector 测试并检查服务器

这会帮助希望使用现代AI整合进行实际操作以构建代理型工具的新手,或希望了解如何将外部数据整合进AI项目中的人。

一. 先来设置一下环境吧.

首先,你需要为你的MCP服务器创建一个项目文件夹。在这个文件夹里,创建一个名为“weather_server.py”的Python文件。这个文件将存放我们的MCP服务器代码。

运行以下命令:

    mkdir weather_mcp  
    cd weather_mcp  
    touch weather_server.py
2. 编写MCP服务器端代码

现在,我们来建立一个天气MCP服务器。这个服务器会提供获取当前天气、天气预报以及历史天气数据的工具。

    from mcp.server.fastmcp import FastMCP  
    import requests  
    import json  
    # OpenWeatherMap API 密钥(请用自己的密钥替换)  
    API_KEY = "your_openweathermap_api_key"  
    BASE_URL = "http://api.openweathermap.org/data/2.5"  
    # 创建一个带有自定义名称的 MCP 服务器  
    mcp = FastMCP("Weather Data Server")  
    # 获取给定城市的当前天气的函数  
    @mcp.tool()  
    def get_current_weather(city: str) -> str:  
        """  
        获取给定城市的当前天气。  
        """  
        try:  
            url = f"{BASE_URL}/weather?q={city}&appid={API_KEY}&units=metric"  
            response = requests.get(url)  
            data = response.json()  
            if data.get("cod") != 200:  
                return f"错误: {data.get('message')},请检查您的输入或API密钥是否正确"  
            main_data = data["main"]  
            weather = data["weather"][0]["description"]  
            temperature = main_data["temp"]  
            humidity = main_data["humidity"]  
            return f"{city} 当前温度为 {temperature}°C,湿度为 {humidity}%。"  
        except Exception as e:  
            return f"获取天气数据时出错: {str(e)}"  
    # 获取给定城市的未来5天的天气预报的函数  
    @mcp.tool()  
    def get_weather_forecast(city: str) -> str:  
        """  
        获取给定城市的未来5天的天气预报。  
        """  
        try:  
            url = f"{BASE_URL}/forecast?q={city}&appid={API_KEY}&units=metric"  
            response = requests.get(url)  
            data = response.json()  
            if data.get("cod") != 200:  
                return f"错误: {data.get('message')},请检查您的输入或API密钥是否正确"  
            forecast = ""  
            for entry in data["list"]:  
                time = entry["dt_txt"]  
                weather = entry["weather"][0]["description"]  
                temperature = entry["main"]["temp"]  
                forecast += f"{time} 天气预报为 {weather},温度为 {temperature}°C。"  
            return forecast  
        except Exception as e:  
            return f"获取预报数据时出错: {str(e)}"  
    # 获取给定城市的最近5天的天气历史数据的函数  
    @mcp.tool()  
    def get_historical_weather(city: str) -> str:  
        """  
        获取给定城市的最近5天的天气历史数据。  
        """  
        try:  
            url = f"{BASE_URL}/weather?q={city}&appid={API_KEY}&units=metric"  
            response = requests.get(url)  
            data = response.json()  
            if data.get("cod") != 200:  
                return f"错误: {data.get('message')},请检查您的输入或API密钥是否正确"  
            historical_data = data["current"]  
            temperature = historical_data["temp"]  
            weather = historical_data["weather"][0]["description"]  
            return f"历史天气数据:{weather},温度为 {temperature}°C。"  
        except Exception as e:  
            return f"获取历史数据时出错: {str(e)},请确保输入的城市经纬度和时间戳正确"  
    # 启动 MCP 服务器并运行  
    if __name__ == "__main__":  
        mcp.run()
3. 把工具当资源来展示

在上面的例子中,我们已经列出了三个主要的工具:

  1. get_current_weather: 获取指定城市的当前天气。
  2. get_weather_forecast: 获取指定城市的5天天气预报。
  3. get_historical_weather: 获取指定城市的天气历史数据,包括温度和天气情况。
4.: 启动 MCP 服务器步骤

代码配置完成后,可以运行MCP服务器,可以按照以下步骤操作:打开终端,进入你的项目文件夹并输入命令:然后运行:

在终端中输入以下命令:```
$ mcp dev weather_server.py

天气服务器的Python脚本

这将启动服务器并使其通过MCP接口可用。该命令将生成一个URL,以便用该MCP Inspector测试您的MCP服务器。

# 5. 检查MCP服务器情况

使用MCP Inspector提供的URL来打开网页控制台。你会看到一个选项,可以与你在服务器中定义的工具进行交互。例如,你在输入一个城市名后,可以观察`get_current_weather`工具的输出结果。

#6 测试MCP服务器

我们来用一些示例指令测试服务器。

1. **查一下现在的天气怎么样?**

“你能告诉我纽约现在的天气怎么样吗?”

**2\. 查询未来5天的天气预报**

未来5天巴黎的天气预报怎么样?

**3\. 查询历史天气数据。**

“你能给我东京过去几年的天气情况吗?”

这些指令会触发相应的MCP工具并直接输出结果。

# 7\. 与Claude Desktop集成:

一旦你满意了服务器,你就可以通过运行命令将其与Claude Desktop(或其他界面)集成。
$ mcp 安装:weather_server.py --name "天气数据服务端"

重启并打开 Claude Desktop 后,新的天气相关工具就可以用了。

# MCP服务器的工作方式是这样的
+--------------------+         +-------------------------+  
|   Claude Desktop   | <-----> |  MCP 天气服务           |  
| (LLM 接口)         |         | (工具:天气、预报)      |  
+--------------------+         +-------------------------+  
                                         |  
                                         v  
                             +----------------------+  
                             |  Open-Meteo API      |  
                             +----------------------+  


这个过程展示了Claude怎样调用你的服务器上的工具从天气API获取实时信息。

模型上下文协议(MCP)使连接AI系统与外部数据源变得简单。你可以引入实时天气更新、财务数据或任何公共API,创建更智能且响应更快的应用程序。这个实际操作项目展示了如何使用MCP来搭建一个基本的天气服务器,该服务器可以轻松扩展,例如用于天气警报或定制的预测工具。

随着大型语言模型领域的增长,像MCP这样的框架将成为构建依赖实时信息的AI系统中不可或缺的工具。如果你想了解更多关于LLM和工具集成的真实世界项目,像[ProjectPro](https://www.projectpro.io/)这样的平台可以帮助你以引导和实用的方式练习和应用这些AI技能。
點擊查看更多內容
TA 點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學習,寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

舉報

0/150
提交
取消