AI 小助手的奇幻冒险:打造属于你的 MCP 天气魔法师! 🌩️🌦️☀️
在一个充满魔法的世界里,AI 小助手「Cline」每天都在为人类解答各种问题。可是,有一天,Cline 遇到了一个棘手的难题——有人问它:「北京今天天气怎么样? 」
Cline 苦恼地挠了挠自己的电子脑壳:「我……我不知道啊!我只会聊天,不会看天!」
这可不行!如果不能帮人们查询天气,怎么能成为一个真正强大的 AI 呢?于是,Cline 踏上了一场奇幻冒险,它的目标是找到一位天气魔法师,让自己也能施展天气预报的法术! 🧙♂️✨
第一章:寻找 MCP 服务器魔法石 🏰
Cline 走进了「编程之森」,遇见了一位神秘的代码魔法师。他告诉 Cline:「你需要打造一个 MCP 服务器,它能帮你连接天气魔法之源,让你拥有查询天气的能力! 」
Cline 振奋不已,立刻开始准备装备!
📜 打造 MCP 服务器所需道具:
✅ Node.js 魔法石(v16.0.0 或更高)
✅ 代码魔法书(VS Code、Sublime Text 等编辑器)
✅ 免费天气 API(www.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 的开始!) 🚀