发帖
3 0 0

【AiPi-PalchatV1】外部接入能力测试

WildboarG
论坛元老

29

主题

176

回帖

4409

积分

论坛元老

积分
4409
小安AI 47 3 前天 10:39
[i=s] 本帖最后由 WildboarG 于 2025-6-2 10:39 编辑 [/i]

小安AI MCP外部接入能力测试

测试背景

尝试了小安AI的MCP(Message Control Protocol)外部接入功能,测试了两个实用场景:语音签到和Bark通知推送。

测试内容

1. 语音控制签到脚本

  • 通过MCP协议实现了自动签到功能
  • 使用WebSocket连接(wss://api.xiaozhi.me/mcp/)进行通信
  • 成功实现了语音控制自动执行签到操作

2. Bark通知推送

  • 配置了Bark服务器:http://xxxxxxxx.xxxx
  • 设置了设备密钥用于消息推送
  • 成功实现了语音消息的推送通知功能

测试过程

  • 配网、上电、接入小智 见另一篇测评帖子(还没写这里占位先)
  • MCP接入过程相对简单,阅读小智官方MCP接入文档

image.png

  • 从github拉取实例代码
  • git clone https://github.com/78/mcp-calculator.git

  • 拉取依赖
  • pip install -r requirements.txt

  • 设置接入点环境变量
  • export MCP_ENDPOINT=<your_mcp_endpoint>

  • 运行实例
  • python mcp_pipe.py calculator.py

  • 根据实例程序编写自己的tool工具。我们起名工具名叫multi_tools.py 里边有多个函数,以bark 通知为例,用mcp.tool装饰器包裹我们的任务函数
//Bark通知功能
@mcp.tool()
def bark_notify(title: str, content: str, sound: str = "default", level: str = "active", url: str = None) -> dict:
/*
发送Bark通知到iPhone

Args:
title: 通知标题
content: 通知内容
sound: 通知声音,可选值:default, minuet, alarm, anticlock, bell, birdsong, bloom, calypso, chime, choo, descending, electronic, fantasy, gotit, lmt, mechanical, minuet, notification, oldphone, shake, silence, timepiece, tritone, updown
level: 通知级别,可选值:active, timeSensitive, passive
url: 点击通知跳转的URL(可选)

Returns:
dict: 包含发送结果的字典
try:
从环境变量获取Bark服务器地址和设备密钥
*/

bark_server = os.environ.get('BARK_SERVER')
device_key = os.environ.get('BARK_DEVICE_KEY')

if not bark_server or not device_key:
return {"success": False, "message": "请先设置BARK_SERVER和BARK_DEVICE_KEY环境变量"}

// 构建通知URL

base_url = f"{bark_server}/{device_key}"

//构建参数

params = {
"title": title,
"body": content,
"sound": sound,
"level": level
}

if url:
params["url"] = url

//发送通知

response = requests.get(base_url, params=params)

if response.status_code == 200:
logger.info(f"Bark通知发送成功: {title}")
return {"success": True, "message": "通知发送成功"}
else:
logger.error(f"Bark通知发送失败: {response.text}")
return {"success": False, "message": f"通知发送失败: {response.text}"}

except Exception as e:
logger.error(f"Bark通知发送出错: {str(e)}")
return {"success": False, "message": f"通知发送失败: {str(e)}"}
  • 需要两个环境变量我们从终端导入
export BARK_SERVER=http://<ip>:<port>
export BARK_DEVICE_KEY=xxxxxxxxxxxxxxxx
  • 然后运行
  • python mcp_pipe.py multi_tools.py

  • 来看看效果吧

总结

小安AI的MCP外部接入功能非常强大,我们可以编写自己的函数脚本调用API,然后用语音指令去控制执行,这大大拓展了了AI的能力。

FAQ


扩展的函数需要独立运行,需要一个能运行python的环境,将自定义的功能接入MCP。

──── 0人觉得很赞 ────

使用道具 举报

这个好玩呀
昨天 09:41

那必须
赞~
您需要登录后才可以回帖 立即登录
高级模式
返回
统计信息
  • 会员数: 28878 个
  • 话题数: 41340 篇