学习笔记 Datewhale MCP Server Task2

魔搭MCP &Agent赛事(MCP Server开发)/夏令营:动手开发MCP Server学习链接:魔搭MCP &Agent赛事(MCP Server开发) - Datawhale

Task1回顾

1.task1应用功能

luner_info每日黄历

这是一个可以获取某天黄历情况的MCP,你可以输入空或日期获取当日或某日的黄历。日期格式形如:1991年1月1日或1991-01-01。

获取得到的回答如下:

日期 : 2025-07-01 00:00:00 农历 : 二零二五 乙巳年 六月大初七 星期 : 星期二 八字 : 乙巳 壬午 辛未 戊子 今日节气: 无 下一节气: ('小暑', (7, 7), 2025) 季节 : 仲夏 生肖冲煞: 羊日冲牛 星座 : 巨蟹座 吉神方位: '喜神西南', '财神正东', '福神西北', '阳贵东北', '阴贵正南' 宜 : '祭祀', '出行', '宴会', '沐浴', '剃头', '修造', '上表章', '上官', '进人口', '竖柱上梁', '经络', '纳财', '扫舍宇', '栽种', '牧养', '破土', '安葬', '祈福', '恤孤茕', '举正直', '裁制', '纳采', '搬移', '招贤', '宣政事', '覃恩', '施恩', '安抚边境', '解除', '求嗣', '整手足甲', '庆赐', '修仓库', '立券交易', '选将', '营建', '上册', '出师', '临政', '纳畜', '缮城郭', '整容', '颁诏', '雪冤' 忌 : '畋猎', '取鱼'

2.MCP上传流程

在task1进行对lunar_info黄历应用进行复刻后,了解了在魔搭上搭建MCP的过程。

1.创建一个创空间,上传应用代码

2.通过API使用,点击MCP,将sse链接和npx的安装链接保存好备用

3.在MCP Inspector · 创空间这个测试界面进行测试,使用sse方式连接。连接成功才能往后正常使用

4.MCP 详情 · 魔搭社区在这个链接进行MCP服务的部署,交给魔搭平台托管

如果需要参赛,中文名称中一定要带上**"MCP&Agent挑战赛"**,才算参赛~

(1)选择自定义创建

(2)来源地址输入自己创空间的网址

(3)托管类型选择可托管部署

(4)将npx的链接粘贴至服务配置区域

(5)自行补充其他未填入的内容

5.获取SSE URL连接服务,复制临时链接,到MCP Playground的配置区域,全选替换,自己的MCP就添加成功了。

回到试验场窗口,进行试用,看是否正确调起了自己的mcp工具,效果如何

MCP Playground:MCP Playground · 创空间

MCP 开发要点

1.什么是MCP?

MCP协议 是AI时代的"HTTP协议" 就像互联网上的HTTP协议统一了网页的访问方式一样,MCP旨在成为AI世界的基础通信协议。MCP Server 就是 "AI互联网" 上的一个"网站",给AI提供特定的服务。

2.为什么推荐用Gradio来搭建MCP Server?

目前搭建mcp server的方法有很多,可以直接使用Python的mcp库或者fastmcp库,搭建mcp服务后本地调用。

如果需要部署到云,目前可以部署到pipy平台或者云服务器上。

但是在pipy平台由于网络问题,不方便国内用户直接使用。

部署在云上可以在自有云或托管云平台,自有云上会面临网络配置等问题,对于新手也不太友好。

有些小伙伴甚至没有自己的云服务器。所以我们推荐把目标放在托管云平台。

使用gradio快速搭建MCP服务,既解决了MCP云服务平台的问题,整体的搭建也不是很复杂,代码量少而且很好玩,大家可以在20分钟快速搞定一个自己的mcp。

3.MCP 开发要点

  1. 明确输入输出: 这是MCP Server设计的核心。你的函数需要清晰地定义接受什么参数(输入)和返回什么结果(输出)。例如,黄历查询的输入是一个日期字符串,输出是黄历信息字符串。

  2. 准确的MCP声明(Docstring): 函数的Docstring必须准确、完整地描述其功能、参数类型、描述和返回值。大模型会依赖这些信息来理解和调用你的工具,如果声明不准确,大模型可能无法正确调用。

  3. 功能实现: 编写实际的Python代码来实现MCP Server的核心逻辑。这可能涉及调用第三方API(使用requests库)、进行数据处理(使用pandas库)、或执行特定计算。

  4. 异常处理: 考虑各种可能出现的异常情况(如无效输入、网络请求失败、API调用错误),并使用try-except块进行适当的错误处理,以提高MCP Server的稳定性和鲁棒性。

  5. 依赖管理: 确保你的requirements.txt文件包含了所有必要的Python库(例如gradio, requests等),以便在魔搭创空间部署时能够正确安装。

Task2 过程

1.选题

初步设定为:疯狂星期四文案生成器

(1)选题原因:

与lunar_info的用法是比较相似的,在示例代码上直接进行修改即可:

lunar_info:

输入:一个日期

输出:固定格式的,与输入日期相关的答案

疯狂星期四:

输入:待设计

输出:返回一段疯狂星期四文案

(2)大模型目前生成的这类型的文案没有那味。可能需要一个非常好的提示词才能有效果。

prompt:给我写一个疯狂星期四的文案

deepseek

那年我18岁,第一次进城打工。在工地扛水泥,一袋50斤,一天扛200袋。老板说干满一个月给3000块。我咬着牙干,手上磨得全是血泡,夜里疼得睡不着。月底去要钱,工头却卷款跑了。

我蹲在霓虹闪烁的街头,兜里只剩3个钢镚。手机欠费,联系不上家里。饿得眼前发黑时,闻到一阵香味......是街角肯德基!金黄酥脆的炸鸡,滋滋冒油。我扒着玻璃窗看别人大快朵颐,口水混着眼泪往下掉。

突然有人拍拍我肩,是个穿西装的大哥。他塞给我一张50元钞票:"小兄弟,吃顿饱饭吧。" 我攥着钱冲进店里,却看到海报上写着------

🔥疯狂星期四🔥 原味鸡+黄金脆皮鸡+薯条+可乐= 29.9元!

我捏着皱巴巴的50块愣在原地,泪水再次决堤...

所以今天,谁请我吃?V我50,我替你传递这份爱。

豆包

🔥肯德基疯四警报拉响!🔥​

今日份快乐已炸至金黄 ------​

香辣鸡翅买一送一还冒热气​

脆皮炸鸡啃到指尖流油才够本​

冰阔落吨吨灌进喉咙的瞬间​

所有烦恼都被酥脆咔嚓声碾碎​

⏰倒计时 8 小时清空库存​

错过今天?​

你的胃要等整整 7 天才能再撒野​

现在冲门店 / 戳小程序​

让炸鸡的香气替你宣告:​

星期四,就该对自己好一点!​

#疯四文学照进现实 #不吃炸鸡会疯

2.开发过程

去网上寻找一些疯狂星期四的文案,经过处理,转换为json格式。

利用AI编程软件,告知MCP声明,让他根据json文件,帮我写代码。

MCP声明(Docstring)

"""

Get a random Crazy Thursday reference and suggestions from the JSON file.

Args:

category: The category to select from. Options: "随机"

Returns:

A formatted string with reference text and modification suggestions

"""

内部代码逻辑是基本一致的

3.遇到的问题与解决

代码写完上传至创空间,发现创空间可用,但是测试mcp服务时显示未连接。

然后再比对baseline,怀疑多了这个json文件可能是出错的原因。(暂未弄清楚具体是啥原因)

将json直接写进app.py,成为app_2.py,再次上传,解决问题,可以正常使用。

后续该做什么

1.优化 MCP声明(Docstring)

2.设计更合理的功能,不要光有随机召回这么一回事,并做好异常情况

3.寻找更多文案

相关推荐
2501_915106326 小时前
Swift 4开发环境设置教程:xCode安装与Playground入门
ide·vscode·ios·objective-c·个人开发·swift·敏捷流程
一支黑色の铅笔7 小时前
VSCode 克隆Git项目
ide·git·vscode
蓝白云21 小时前
告别繁琐配置!TreeATE Copilot 插件 VS Code 完整使用教程
vscode·copilot
一叶龙洲1 天前
Ubuntu24.04 Cursor导入vscode配置
vscode·编辑器
好悬给我拽开线2 天前
RoboTTT
ide·vscode·编辑器
时间的情敌3 天前
几款常用的编程AI工具
vscode
捷瑞电子工坊3 天前
VSCode的配置和一些报错问题
vscode·ubuntu·c/c++·编译报错·开发环境配置·初学者教程·json配置
孙小l懒_keep_update4 天前
【VSCODE中的Codex 打不开(页面空白,一直 Loading)】
vscode
面包狗AI4S4 天前
Codex/ChatGPT 反复 Reconnecting(正在重新连接) 5/5 的最简修复方法
人工智能·vscode·chatgpt
与自己和解7414 天前
使用ssh实现 VScode 直连 ubuntu
vscode·ubuntu·ssh