早在 2021 年, 我曾使用 Koishi 开发过一个 QQ 机器人.
然而, 大约半年后, 各种依赖库频繁出现问题, 需要不断更新版本, 每次升级后各种莫名其妙的问题, 维护成本过高, 最终放弃了继续使用.
最近一个月, 我偶然发现了 AstrBot 这个项目. 花了一个小时搭建 POC 后, 发现它比 Koishi 好用太多了, 于是开始深入研究.
本文将详细介绍如何在 AstrBot 中集成 MCP (Model Context Protocol) 功能, 让 QQ 机器人具备更强大的 AI 能力.
在开始集成 MCP 之前, 确保你已经具备以下条件:
其实满足上方 #5
就相当于已经满足了 #1
- #4
, 典型示例:
以下是 MCP (Model Context Protocol) 的要点:
我知道很多人不会看上面这段废话, 所以这里是 TL'DR
:
让 AI 听懂人话并完全按照命令执行复杂请求, 处理完后返回结果.
再傻瓜一些:
自然语言
-> 大模型
-> 按需调用一个或多个 MCP
-> 返回结果
-> 大模型
MCP 实现了一些动作的 精细化
, 防止了 AI 理解错误和幻觉的产生.
很幸运, 公司在年初 (这一点管理层视野很超前) 便开始向员工推广使用 MCP, 所以我们在 Q1 就进行了一些尝试, 也积累了一些经验.
当我看到 AstrBot 的文档中提到可以集成 MCP 时, 我便直接否决了 Koishi 的未来前景, 他已经落后了一步了.
AstrBot 里面配置 MCP 非常简单, 新增一个 MCP 服务器, 然后粘贴进可用的 MCP 服务器地址即可.
比如这里 szhshp-games
对应的配置为:
{
"transport": "streamable_http",
"url": "https://mcp.szhshp.org/games/mcp",
"timeout": 30
}
MCP 服务器的编写也很傻瓜, 就是一个 HTTP Server, 然后返回符合 MCP 规范的 JSON 数据即可.
甚至因为有封装好的 API to MCP 的工具, 你直接用现成的
express
或者koa
就可以快速转换.
我花了半小时写了一个超级简单的 MCP 服务器: GitHub
这里面实现了两个 MCP 服务
mcp: games
tool: game_tool
mcp: news
tool: news_tool
关于具体用法接入后直接问 AI 即可:
真的很简单很方便, 快速描述一下流程:
news_tool
)news_tool
, 实际上访问到了 https://mcp.szhshp.org/news/mcp
这个 MCP Server搜索一个叫 AI Reminder
的插件 这里是 Github 连接, 但是你应该从 AstrBot 的插件市场搜索并安装
然后直接和机器人发命令即可;
# Check Reminder
/rmd ls # 列出当前群里面的 Reminder
/rmdg ls {群号} # 列出特定群里面的 Reminder
/rmdg ls 111111111 # 列出群 111111111 里面的 Reminder
# Add Reminder
# 在群 222222222 中添加一个每天 21:50 执行 `MCP Tool: get_news` 并且参数是 thepaper 澎湃新闻
/rmdg command 222222222 /get_news--thepaper 21:50 daily
/rmdg command 333333333 /get_news--thepaper 11:00 daily
/rmdg command 111111111 /get_news--thepaper 10:00 daily
# 执行一次 `MCP Tool: game_tool` 并且参数是 freeGame_epic
/rmdg command 222222222 /game_tool--freeGame_epic 22:09
/rmdg command 333333333 /game_tool--freeGame_epic 12:00 daily
很简单就实现每日定时发送:
MCP 的注册让 QQ 机器人拥有无限种可能. 比如调用邮箱 MCP 实现自动发邮件, 调用钉钉 MCP 实现自动打卡, 调用 bilibili MCP 实现管理视频资源.
提升效率改善生活的就该多多推广.
文章标题 | 傻瓜都能懂的 AstrBot QQ 机器人集成 MCP 功能实战指南 |
发布日期 | 2025-10-08 |
文章分类 | Tech |
相关标签 | #QQ 机器人 #AstrBot #MCP #定时任务 #定时发送 #群消息 #QQ 群机器人 |