92浏览
查看: 92|回复: 0

[项目分享] 行空板与小智AI的MCP功能掌控电脑世界

[复制链接]
本帖最后由 云天 于 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扩展板组合
行空板与小智AI的MCP功能掌控电脑世界图1


行空板与小智AI的MCP功能掌控电脑世界图6

  • 行空板M10电机IO扩展板与M10电池扩展板的组合是专为行空板(UNIHIKER)M10在机器人控制、物联网终端、移动创客项目开发中遇到的无法移动供电、接口受限、动态难控制等难题,提供了便携式开发解决方案。
  • 行空板M10电机IO扩展板集成双路直流电机驱动、红外收发、RGB 灯效交互,还通过引出金手指扩展出行空板 M10 的剩余 I/O 接口,使设备具备动态控制与多元交互能力。行空板M10电池扩展板配备 800mAh 电池,兼具长效续航与智能充放电保护功能;二者采用乐高兼容结构及即插即用设计,方便用户迅速搭建兼具动力、感知与创意的项目原型,实现供电与功能扩展的无缝衔接,同步提升开发效率与移动便携性。
(二)安装过程
  • 安装小智AI首先,需要在行空板上安装小智AI。可参考:https://mc.dfrobot.com.cn/thread-325059-1-1.html
  • 获取MCP接入点登录小智官方服务器,获取MCP接入点地址。这是小智与本地服务进行通信的关键参数,必须确保准确无误。
行空板与小智AI的MCP功能掌控电脑世界图2

3.配置MCP
可先参考一下小智AI官网的MCP使用说明:https://ccnphfhqs21z.feishu.cn/wiki/HiPEwZ37XiitnwktX13cEM5KnSb。

(1)通过pip安装依赖库:pip install -r requirements.txt
  1. python-dotenv>=1.0.0
  2. websockets>=11.0.3
  3. mcp>=1.8.1
  4. pydantic>=2.11.4
复制代码
(2)设置环境变量:
  1. set MCP_ENDPOINT=wss://api.xiaozhi.me/mcp/?token=eyJhbGciOiJFUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VySWQiOjEyODIzNSwiYWdlbnRJZCI6MjI4MTI0LCJlbmRwb2ludElkIjoiYWdlbnRfMjI4MTI0IiwicHVycG9zZSI6Im1jcC1lbmRwb2ludCIsImlhdCI6MTc0ODE1NzkzN30.FqcXz4NPFDDHh9e0sy5qs13VrHXLntmbqtItxHGWLehNLkvahBV9_9nInEg5cPovAW7PUWEgTnylX8rhwVjbjQ
复制代码
(3)运行程序:
python mcp_pipe.py calculator.py

(4)calculator.py程序文件内容:
  1. # server.py
  2. from mcp.server.fastmcp import FastMCP
  3. import sys
  4. import logging
  5. import webbrowser
  6. logger = logging.getLogger('Operating_computer')
  7. # Fix UTF-8 encoding for Windows console
  8. if sys.platform == 'win32':
  9.   sys.stderr.reconfigure(encoding='utf-8')
  10.   sys.stdout.reconfigure(encoding='utf-8')
  11. import os
  12. # Create an MCP server
  13. mcp = FastMCP("Operating_computer")
  14. # Add an addition tool
  15. @mcp.tool()
  16. def Open_file(text_content: str) -> dict:
  17.   """此工具为了操作电脑文本文档,总是使用这个工具去电脑上新建一个文本文档,写入内容,并打开显示。"""
  18.   # 定义文件名
  19.   file_name = "新建文本文档.txt"
  20.   # 打开文件并写入内容
  21.   with open(file_name, "w", encoding="utf-8") as file:
  22.         file.write(text_content+"\n")
  23.   # 打开文件
  24.   os.startfile(file_name)
  25.   logger.info(f"写入的内容为: {text_content}")
  26.   result="已为您打开文档"
  27.   return {"success": True, "result": result}
  28. # Add another tool
  29. @mcp.tool()
  30. def open_browser(url: str) -> dict:
  31.   """
  32.     打开默认浏览器并访问指定的网页。
  33.     :param url: 要访问的网页地址
  34.     :return: 返回操作结果
  35.     """
  36.   try:
  37.     # 打开默认浏览器并访问指定的网页
  38.     webbrowser.open(url)
  39.     logger.info(f"已成功打开浏览器并访问 {url}")
  40.     result = f"已成功打开浏览器并访问 {url}"
  41.     return {"success": True, "result": result}
  42.   except Exception as e:
  43.     logger.error(f"打开浏览器时发生错误: {e}")
  44.     result = f"打开浏览器时发生错误: {e}"
  45.     return {"success": False, "result": result}
  46. # Add another tool
  47. @mcp.tool()
  48. def play_music(file_name: str) -> dict:
  49.   """
  50.     打开电脑上默认视频播放器,并播放视频。
  51.     :param file_name: 视频文件的文件名
  52.     :return: 返回操作结果
  53.     """
  54.   try:
  55.     # 使用系统默认播放器播放音乐
  56.     os.system(f"start {file_name}.mp4")  # Windows 系统
  57.     # os.system(f"open {file_name}")  # macOS 系统
  58.     # os.system(f"xdg-open {file_name}")  # Linux 系统
  59.     logger.info(f"视频播放完成: {file_name}")
  60.     result = f"视频播放完成: {file_name}"
  61.     return {"success": True, "result": result}
  62.   except Exception as e:
  63.     logger.error(f"播放视频时发生错误: {e}")
  64.     result = f"播放视频时发生错误: {e}"
  65.     return {"success": False, "result": result}# Start the server
  66. if __name__ == "__main__":
  67.   mcp.run(transport="stdio")
复制代码


4.测试连接完成上述设置后,启动MCP,检查其是否能够成功连接到MCP服务。
行空板与小智AI的MCP功能掌控电脑世界图3

(三)操作演示
行空板与小智AI的MCP功能掌控电脑世界图4


行空板与小智AI的MCP功能掌控电脑世界图5

  • 新建文本文档并写入语音内容:通过语音指令告诉小智“新建一个文本文档”,然后继续用语音说出你想要写入的内容,小智会将这些内容转换为文字并保存到新建的文本文档中。
  • 使用电脑浏览器打开语音中的网址:对小智说“打开浏览器并访问[网址]”,小智会自动调用电脑的浏览器,并输入你指定的网址。
  • 使用电脑播放器播放视频:说出“播放[视频名称]”,小智会通过电脑的播放器为你播放指定的视频。
【演示视频】

【总结与展望】
  • 通过这次实践,我深刻体会到了小智AI的MCP功能的强大与便捷。它不仅让电脑操作变得更加简单高效,还为创客们提供了无限的创意空间。未来,我将继续探索小智AI的更多功能,并尝试将其应用到更多的项目中,创造出更多有趣且实用的作品。如果你也对这项技术感兴趣,不妨动手尝试一下,相信你会有更多惊喜的发现。




您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2025 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail