qaqbuyan/xiaozhi-mcp-server
3.2
If you are the rightful owner of xiaozhi-mcp-server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to dayong@mcphub.com.
Xiaozhi-MCP-Server is a framework for accessing data through a collection of MCP interfaces, allowing for the extension of AI capabilities.
xiaozhi-mcp-server
一个获取数据的MCP接口集合框架,整合了一些功能,你可以通过自行扩展AI能力
视频展示
https://www.bilibili.com/video/BV1wu3bzFEF4/
使用说明
-
安装依赖: pip install -r requirements.txt
-
修改配置: config.yaml
-
启动服务: python main.py
注意事项
- 如果在服务器上运行,需要使用 nohup 或者 screen 命令后台运行,否则会被 kill 掉
- 如果在服务器上运行,出现以下错误:
你的系统中同时安装了 python 和 python3 ,可能会出现冲突 此时需要根据自己的情况选择使用哪个版本的 python 。 可以使用以下方法解决:
找不到命令 'python',您的意思是: 'python3' 命令来自 Debian 软件包 python3 'python' 命令来自 Debian 软件包 python-is-python3- 使用 python3 命令:
python3 main.py
自带功能
- 查询火车车票
- 查询 SVN 提交记录
- 获取 SVN 仓库的最后一次提交日志
- 查询 SVN 仓库第几个到第几个版本号的提交日志
- 查询某一个日期时间 SVN 日志
- 查询特定版本中修改的文件列表
- 获取系统信息
- 查询 QQ 用户信息
- 今日油价
- 汇率查询
- 标准体重
- 热门搜索
- 微博
- 哔哩哔哩
- 百度
- 记忆体
- 记忆体查询
- 记忆体存储
- RSS 文章聚合
- 随机毒鸡汤
- 随机生活调侃
- IP 地址归属地信息
- 必应搜索
- 菜谱(食谱)查询
- 中餐
- 哔哩哔哩
- 评论查询
- 视频评论查询
- 观看历史
- 历史视频
- 历史专栏
- 历史直播
- 推荐视频
- 观看最多
- 观看最少
- 收藏最多
- 收藏最少
- 时间最早
- 时间最新
- 弹幕最多
- 弹幕最少
- 点赞最多
- 点赞最少
- 电影查询(分区查询)
- 观看最多
- 观看最少
- 时间最早
- 时间最新
- 弹幕最多
- 弹幕最少
- 热门视频
- 直播相关
- 获取弹幕
- 发送弹幕
- 追番提交
- 观看最多
- 观看最少
- 时间最早
- 时间最新
- 用户信息
- 发布视频数量
- 追番数量
- 在B站有作品电影数量(目前还未知这个只是猜测,因为查询我自己显示有两个)
- 主频道情况
- 客频道情况
- 主收藏情况
- 客收藏情况
- 设置标签数量
- 发布文章数量
- 播放列表数量
- 相册数量
- 音频数量
- 专业用户创作视频相关数量
- 系列作品季数
- 作品总数
- 关注人数
- 悄悄话相关数量
- 黑名单人数
- 粉丝数量
- 等公开信息,不包含私密信息,更多的信息可以自行查看 user.py 中的 get_user_info 函数
- 评论查询
创建自己的MCP工具
这里简单的说明一下如何创建自己的MCP工具
- 根据 utils 文件夹中的功能代码做参考,创建自己的工具,然后在 register.py 中添加到 注册 列表中即可
- 工具命名以 功能_渠道区分,比如我的查询时间SVN日志的工具为 query_svn_logger 表明是用于获取查询本人的SVN仓库获取提交日志的工具
- 工具的名字和参数的命名一定要清晰的让大模型知道它的作用,尽量不要用缩写
- 不然大模型可能不知道它的作用而无法正常调用该工具进行工作,同时提供一段注释来说明工具的作用以及在何时使用
- 函数内的文档注释(使用"""..."""引用的部分)引导大模型何时使用该工具
- 比如
def get_log_by_date(date_str: str): """根据日期查询SVN仓库的更新日志, 当查询某一天的仓库信息或者某一天提交的代码时,立刻使用该工具。 args: date_str: 日期字符串,格式为'YYYY年MM月DD日' 必须填写, 例如:2024年01月01日 """ - 工具参数的类型要清晰的告诉大模型它的作用,如果有参数的名称也要清晰的告诉大模型它的作用,比如 date_str 日期字符串
- 另外写好类型,比如 str 表示字符串,int 表示整数,list 表示列表,dict 表示字典等
- 这样大模型才能正确的调用该工具,否则可能会出现调用失败的情况
- 工具的参数要尽可能的详细,比如字符串类型的参数,要尽可能的详细的告诉大模型它的作用