使用说明
带有MCP服务器的Discord机器人
安装 PYCORD:
使用 pip 升级安装来自 GitHub 的 Pycord 库:`pip install --upgrade git+https://github.com/Pycord-Development/pycord.git`
使用 pip 安装 requirements.txt 文件中的依赖
一个用(某种语言或工具)构建的Discord机器人 Pycord(通常指一个用于Python的Discord库) 包括:
- 录音功能
- 使用Wavelink/Lavalink进行音频播放
- MCP(模型上下文协议)服务器集成
- 用户管理的数据库集成
特点/功能
录音
/record- 在你的语音频道开始录制音频/stop_recording- 停止录音并接收音频文件
音频播放(Wavelink)
/play <search>- 从YouTube或其他来源播放一首歌曲/stop- 停止播放并断开连接/pause- 暂停当前曲目/resume- 恢复播放
MCP 工具
send_message_to_user- 向用户发送私信get_known_users- 获取已知用户列表add_known_user- 将用户添加到数据库中
设置
先决条件
- Python 3.8或更高版本
- 一个Discord机器人的令牌
- MySQL/MariaDB 数据库
- Lavalink服务器(用于音频播放)
安装
- 克隆仓库
- 创建一个虚拟环境:
python -m venv .venv
.\.venv\Scripts\activate
- 安装依赖项:
pip install -r requirements.txt
- 复制
.env.exampleto.env并进行配置:
DISCORD_TOKEN=your_discord_token_here
DB_HOST=localhost
DB_USER=your_db_user
DB_PORT=3306
DB_PASSWORD=your_db_password
DB_NAME=your_database_name
MESSAGE_UNKNOWN_USERS=FALSE
LAVALINK_URI=http://localhost:2333
LAVALINK_PASSWORD=youshallnotpass
Lavalink 设置(用于音频播放)
- 从以下链接下载 Lavalink:https://github.com/lavalink-devs/Lavalink/releases
- 创造
application.yml:
server:
port: 2333
address: 0.0.0.0
lavalink:
server:
password: "youshallnotpass"
sources:
youtube: true
bandcamp: true
soundcloud: true
twitch: true
vimeo: true
http: true
local: false
bufferDurationMs: 400
frameBufferDurationMs: 5000
youtubePlaylistLoadLimit: 6
playerUpdateInterval: 5
youtubeSearchEnabled: true
soundcloudSearchEnabled: true
gc-warnings: true
- 运行 Lavalink:
java -jar Lavalink.jar
运行机器人
.\.venv\Scripts\python.exe main.py
机器人架构
- **Pycord(一个用于Python的Discord库)**现代Discord API封装器,支持斜杠命令
- **Wavelink(可译为“瓦维尔链接”或根据具体语境简化为“无线链接”等,但通常直接音译为“瓦维尔链接”以保留原名特色)**用于音乐播放的Lavalink客户端
- FastMCP用于AI集成的模型上下文协议服务器
- **Asyncio(异步I/O)**机器人服务器和MCP服务器的并发执行
命令概览
记录命令
/record - Start recording in voice channel
/stop_recording - Stop recording and save files
音乐指令
/play <song> - Play audio (requires Lavalink)
/stop - Stop and disconnect
/pause - Pause playback
/resume - Resume playback
备注
- 语音录制要求机器人与用户处于同一个语音频道中
- 音频播放需要运行中的Lavalink服务器
- 这个机器人同时运行Discord和MCP服务器
- 已处理优雅关闭以实现干净退出
许可证
麻省理工学院许可证