本帖最后由 云天 于 2025-5-25 19:18 编辑
【项目背景】 在创客的世界里,我们总是渴望用有限的资源创造出无限的可能。而一款好的硬件组合,往往能成为实现创意的关键。最近,DF创客社区推出的行空板M10扩展板组合让我眼前一亮,它集移动供电、双电机控制和金手指扩展于一身,完美契合了我的项目需求。于是,我毫不犹豫地在DF商城下单购买,迫不及待地想要将它应用到我的项目中,开启一段全新的创作之旅。 在科技飞速发展的今天,人工智能已融入我们生活的方方面面,为我们的生活和工作带来诸多便利。作为一名创客,我一直在探索如何将这些前沿技术应用到实际项目中,创造出更具实用性和趣味性的作品。最近,我尝试使用行空板安装小智AI,并利用其MCP功能控制电脑进行一系列操作,收获颇丰,今天就来和大家分享一下这段奇妙的探索之旅。
【MCP功能简介】
MCP,即模型上下文协议,是一种强大的技术手段,它如同AI领域的“万能适配器”,能够使小智语音助手突破传统功能的局限,实现与本地MCP服务及大模型的无缝连接借助MCP,小智不再局限于简单的聊天解闷,它还能远程控制各种设备、进行复杂计算、自动处理邮件以及快速精准地搜索知识。例如,当你想查询天气时,小智可以通过MCP调用天气API,在瞬间为你提供准确信息,极大地提升了生活与工作效率。
【小智AI的MCP功能】
小智AI的MCP功能为用户带来了前所未有的智能体验。它允许小智通过MCP接入点连接到各种本地服务,从而实现对电脑等设备的控制。这意味着你可以用语音指令让小智帮你完成诸如新建文本文档、写入语音内容、打开浏览器中的网址以及播放视频等操作,让电脑操作变得更加便捷和高效。
【小智MCP设置过程】
(一)准备工作
在开始设置之前,你需要确保已经准备好以下几样东西:
行空板 : 这是我们的硬件基础,用于安装和运行小智AI。行空板M10扩展板组合
行空板M10电机IO扩展板与M10电池扩展板的组合是专为行空板(UNIHIKER)M10在机器人 控制、物联网终端、移动创客项目开发中遇到的无法移动供电、接口受限、动态难控制等难题,提供了便携式开发解决方案。 行空板M10电机IO扩展板集成双路直流电机驱动、红外收发、RGB 灯效交互,还通过引出金手指扩展出行空板 M10 的剩余 I/O 接口,使设备具备动态控制与多元交互能力。行空板M10电池扩展板配备 800mAh 电池,兼具长效续航与智能充放电保护功能;二者采用乐高兼容结构及即插即用设计,方便用户迅速搭建兼具动力、感知与创意的项目原型,实现供电与功能扩展的无缝衔接,同步提升开发效率与移动便携性。
(二)安装过程
3.配置MCP :
可先参考一下小智AI官网的MCP 使用说明: https://ccnphfhqs21z.feishu.cn/wiki/HiPEwZ37XiitnwktX13cEM5KnSb。
(1)通过pip安装依赖库:pip install -r requirements.txt
python-dotenv>=1.0.0
websockets>=11.0.3
mcp>=1.8.1
pydantic>=2.11.4 复制代码
(2)设置环境变量:
set MCP_ENDPOINT=wss://api.xiaozhi.me/mcp/?token=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEyODIzNSwiYWdlbnRJZCI6MjI4MTI0LCJlbmRwb2ludElkIjoiYWdlbnRfMjI4MTI0IiwicHVycG9zZSI6Im1jcC1lbmRwb2ludCIsImlhdCI6MTc0ODE1NzkzN30.FqcXz4NPFDDHh9e0sy5qs13VrHXLntmbqtItxHGWLehNLkvahBV9_9nInEg5cPovAW7PUWEgTnylX8rhwVjbjQ 复制代码
(3)运行程序:
python mcp_pipe.py calculator.py
(4)calculator.py程序文件内容:
# server.py
from mcp.server.fastmcp import FastMCP
import sys
import logging
import webbrowser
logger = logging.getLogger('Operating_computer')
# Fix UTF-8 encoding for Windows console
if sys.platform == 'win32':
sys.stderr.reconfigure(encoding='utf-8')
sys.stdout.reconfigure(encoding='utf-8')
import os
# Create an MCP server
mcp = FastMCP("Operating_computer")
# Add an addition tool
@mcp.tool()
def Open_file(text_content: str) -> dict:
"""此工具为了操作电脑文本文档,总是使用这个工具去电脑上新建一个文本文档,写入内容,并打开显示。"""
# 定义文件名
file_name = "新建文本文档.txt"
# 打开文件并写入内容
with open(file_name, "w", encoding="utf-8") as file:
file.write(text_content+"\n")
# 打开文件
os.startfile(file_name)
logger.info(f"写入的内容为: {text_content}")
result="已为您打开文档"
return {"success": True, "result": result}
# Add another tool
@mcp.tool()
def open_browser(url: str) -> dict:
"""
打开默认浏览器并访问指定的网页。
:param url: 要访问的网页地址
:return: 返回操作结果
"""
try:
# 打开默认浏览器并访问指定的网页
webbrowser.open(url)
logger.info(f"已成功打开浏览器并访问 {url}")
result = f"已成功打开浏览器并访问 {url}"
return {"success": True, "result": result}
except Exception as e:
logger.error(f"打开浏览器时发生错误: {e}")
result = f"打开浏览器时发生错误: {e}"
return {"success": False, "result": result}
# Add another tool
@mcp.tool()
def play_music(file_name: str) -> dict:
"""
打开电脑上默认视频播放器,并播放视频。
:param file_name: 视频文件的文件名
:return: 返回操作结果
"""
try:
# 使用系统默认播放器播放音乐
os.system(f"start {file_name}.mp4") # Windows 系统
# os.system(f"open {file_name}") # macOS 系统
# os.system(f"xdg-open {file_name}") # Linux 系统
logger.info(f"视频播放完成: {file_name}")
result = f"视频播放完成: {file_name}"
return {"success": True, "result": result}
except Exception as e:
logger.error(f"播放视频时发生错误: {e}")
result = f"播放视频时发生错误: {e}"
return {"success": False, "result": result}# Start the server
if __name__ == "__main__":
mcp.run(transport="stdio")
复制代码
4.测试连接 : 完成上述设置后,启动MCP,检查其是否能够成功连接到MCP服务。
(三)操作演示
新建文本文档并写入语音内容 :通过语音指令告诉小智“新建一个文本文档”,然后继续用语音说出你想要写入的内容,小智会将这些内容转换为文字并保存到新建的文本文档中。使用电脑浏览器打开语音中的网址 :对小智说“打开浏览器并访问[网址]”,小智会自动调用电脑的浏览器,并输入你指定的网址。使用电脑播放器播放视频 :说出“播放[视频名称]”,小智会通过电脑的播放器为你播放指定的视频。
【演示视频】
【总结与展望】
通过这次实践,我深刻体会到了小智AI的MCP功能的强大与便捷。它不仅让电脑操作变得更加简单高效,还为创客们提供了无限的创意空间。未来,我将继续探索小智AI的更多功能,并尝试将其应用到更多的项目中,创造出更多有趣且实用的作品。如果你也对这项技术感兴趣,不妨动手尝试一下,相信你会有更多惊喜的发现。