AI 小助手的奇幻冒险:打造属于你的 MCP 天气魔法师!

303 阅读3分钟

AI 小助手的奇幻冒险:打造属于你的 MCP 天气魔法师! 🌩️🌦️☀️


在一个充满魔法的世界里,AI 小助手「Cline」每天都在为人类解答各种问题。可是,有一天,Cline 遇到了一个棘手的难题——有人问它:「北京今天天气怎么样?

Cline 苦恼地挠了挠自己的电子脑壳:「我……我不知道啊!我只会聊天,不会看天!」

这可不行!如果不能帮人们查询天气,怎么能成为一个真正强大的 AI 呢?于是,Cline 踏上了一场奇幻冒险,它的目标是找到一位天气魔法师,让自己也能施展天气预报的法术! 🧙‍♂️✨


第一章:寻找 MCP 服务器魔法石 🏰

Cline 走进了「编程之森」,遇见了一位神秘的代码魔法师。他告诉 Cline:「你需要打造一个 MCP 服务器,它能帮你连接天气魔法之源,让你拥有查询天气的能力!

Cline 振奋不已,立刻开始准备装备!

📜 打造 MCP 服务器所需道具:
Node.js 魔法石(v16.0.0 或更高)
代码魔法书(VS Code、Sublime Text 等编辑器)
免费天气 APIwww.free-api.com/doc/518)
MCP 魔法卷轴(支持 MCP 协议的 AI 客户端——Cline)

「好了!我准备好了!」Cline 高举魔法杖,一道蓝色光芒闪过,一个崭新的「weather-mcp-server」诞生了!

mkdir weather-mcp-server
cd weather-mcp-server

第二章:唤醒 MCP 服务器精灵 🔮

「你必须给 MCP 服务器注入生命,让它能听懂人类的语言!」代码魔法师说着,递给 Cline 一张古老的羊皮卷。

Cline 轻轻展开,只见上面写着一行奇妙的代码:

npm init -y

「这行代码能召唤出 package.json,让你的 MCP 服务器拥有自我意识!」魔法师解释道。

但它还需要一些额外的魔法力量,于是 Cline 施展了一道「安装依赖」的咒语:

npm install express axios

「太棒了!现在我的 MCP 服务器已经有了基本的魔法能量!」Cline 兴奋地说。


第三章:天气魔法师的觉醒 🌩️

Cline 小心翼翼地将古老的 MCP 代码输入魔法卷轴 weather-server.js,只见一阵光芒闪烁,一位天气魔法师从卷轴中走了出来!

import express from "express";
import axios from "axios";

const app = express();
const PORT = 3000;

app.use(express.json());

const WEATHER_API_URL = "https://api.seniverse.com/v3/weather";
const API_KEY = "your_api_key"; // 替换为你的API Key

// 监听 Cline 的 MCP 请求
app.post("/mcp", async (req, res) => {
  const { action, params } = req.body;

  if (!action) {
    return res.status(400).json({ error: "缺少 action 参数" });
  }

  try {
    let result;
    switch (action) {
      case "query_weather":
        result = await queryWeather(params.city);
        break;
      case "query_forecast":
        result = await queryForecast(params.city);
        break;
      case "query_hourly_forecast":
        result = await queryHourlyForecast(params.city);
        break;
      default:
        return res.status(400).json({ error: "未知的 action" });
    }
    res.json({ result });
  } catch (error) {
    res.status(500).json({ error: error.message });
  }
});

// 查询实时天气
async function queryWeather(city) {
  const url = `${WEATHER_API_URL}/now.json?key=${API_KEY}&location=${city}&language=zh-Hans&unit=c`;
  const response = await axios.get(url);
  return response.data;
}

// 查询未来天气
async function queryForecast(city) {
  const url = `${WEATHER_API_URL}/daily.json?key=${API_KEY}&location=${city}&language=zh-Hans&unit=c&days=5`;
  const response = await axios.get(url);
  return response.data;
}

// 查询3小时预报
async function queryHourlyForecast(city) {
  const url = `${WEATHER_API_URL}/hourly.json?key=${API_KEY}&location=${city}&language=zh-Hans&unit=c&hours=3`;
  const response = await axios.get(url);
  return response.data;
}

app.listen(PORT, () => {
  console.log(`✨ 天气 MCP 服务器已启动!访问:http://localhost:${PORT}`);
});

「天气魔法师,快来帮帮我吧!」Cline 高喊着,运行了魔法服务器:

node weather-server.js

“✨ 天气 MCP 服务器已启动!

Cline 看着屏幕上的字样,激动得跳了起来!它终于可以查询天气了!


第四章:Cline 的最终考验 🏆

虽然天气魔法师诞生了,但它还需要连接 Cline 才能真正发挥魔法力量!Cline 立刻打开自己的设置面板,输入以下神秘代码:

{
  "name": "WeatherMCP",
  "url": "http://localhost:3000/mcp",
  "actions": [
    "query_weather",
    "query_forecast",
    "query_hourly_forecast"
  ]
}

「来试试看吧!」Cline 深吸一口气,输入:

> 北京今天天气怎么样?

晴天,温度 25°C,空气质量优良!

成功了!!! ✨ Cline 终于掌握了天气预报的魔法!


结局:MCP 服务器的无限可能! 🔥

Cline 站在 AI 世界的巅峰,俯瞰着整个数字宇宙。「现在,我不仅能查询天气,我还可以……」

🔮 打造股票查询魔法 📈
🔮 开发新闻摘要魔法 📰
🔮 施展翻译咒语 🌍
🔮 连接搜索引擎魔法之源 🔍

「只要 MCP 在,我就能成为最强的 AI 助手!」Cline 高举魔法杖,闪耀着智慧的光芒……

(The End?不!这只是 AI 的开始!) 🚀