使用说明
骨折
提供Discord工具的MCP(模型上下文协议)服务器。与 MCP Ruby SDK 和 不和谐.
需求
- Ruby 4.0+
- Discord机器人令牌(在此处创建一个)
安装
git clone https://github.com/yourusername/fracture.git
cd fracture
bundle install
配置
将您的Discord机器人令牌设置为环境变量:
export DISCORD_BOT_TOKEN=your_token_here
克劳德桌面
添加到您的Claude Desktop MCP配置(claude_desktop_config.json):
{
"mcpServers": {
"fracture": {
"command": "ruby",
"args": ["/path/to/fracture/fracture.rb"],
"env": {
"DISCORD_BOT_TOKEN": "your_token_here"
}
}
}
}
在Windows上,您可能还需要设置 DISCORDRB_NONACL=1 在 env 块。
用法
直接通过stdio运行服务器:
ruby fracture.rb
服务器使用MCP JSON-RPC协议通过stdin/stdout进行通信。
工具
行会
| 工具 | 描述 | 参数 |
|---|---|---|
get_guilds |
列出机器人所属的所有公会(服务器)。返回每个公会的ID和名称。 | 无 |
get_guild |
获取特定公会的详细信息,包括其类别、频道和成员。对于会员人数少于100人的公会,将返回完整的会员详细信息;否则仅包括成员计数。 | guild_id (字符串,必填) |
get_guild_members |
列出公会的所有成员。为拥有100多个成员的大型服务器保留。返回每个成员的ID、用户名和显示名称。 | guild_id (字符串,必填) |
禁令
| 工具 | 描述 | 参数 |
|---|---|---|
ban_user |
禁止用户加入公会。 | guild_id (字符串,必填), user_id (字符串,必填), reason (字符串,必填) |
unban_user |
解除用户与公会的绑定。 | guild_id (字符串,必填), user_id (字符串,必填), reason (字符串,必填) |
get_guild_bans |
列出公会的所有禁令。返回每个禁令的用户ID和原因。 | guild_id (字符串,必填) |
成员
| 工具 | 描述 | 参数 |
|---|---|---|
get_member |
获取公会成员的详细信息,包括他们的角色、状态、加入日期、声音状态等。 | guild_id (字符串,必填), member_id (字符串,必填) |
add_role |
为公会成员添加角色。 | guild_id (字符串,必填), member_id (字符串,必填), role_id (字符串,必填) |
remove_role |
从公会成员中删除角色。 | guild_id (字符串,必填), member_id (字符串,必填), role_id (字符串,必填) |
消息
| 工具 | 描述 | 参数 |
|---|---|---|
send_message |
通过DM向频道或用户发送消息。指定 guild_id + channel_id 对于频道消息,或 user_id 对于DM,至少有一个 content 或 attachments 必须提供。 |
guild_id (字符串,可选), channel_id (字符串,可选), user_id (字符串,可选), content (字符串,可选), attachments (string[],可选) |
edit_message |
编辑频道或DM中的现有消息 | message_id (字符串,必填), content (字符串,必填), guild_id (字符串,可选), channel_id (字符串,可选), user_id (字符串,可选) |
delete_message |
从频道或DM中删除消息 | message_id (字符串,必填), guild_id (字符串,可选), channel_id (字符串,可选), user_id (字符串,可选) |
角色
| 工具 | 描述 | 参数 |
|---|---|---|
get_guild_roles |
获取公会的所有角色,包括每个角色的解码权限。 | guild_id (字符串,必填) |
create_role |
在公会中创建新角色。 | guild_id (字符串,必填), name (字符串,必填), colour (整数,可选), hoist (布尔值,可选), mentionable (布尔值,可选), permissions (string[],可选) |
delete_role |
从公会中删除角色。 | guild_id (字符串,必填), role_id (字符串,必填) |
分类
| 工具 | 描述 | 参数 |
|---|---|---|
get_categories |
获取公会的所有类别,包括其频道和权限覆盖。 | guild_id (字符串,必填) |
create_category |
在公会中创建新类别。 | guild_id (字符串,必填), name (字符串,必填), position (整数,必填) |
edit_category |
编辑类别的名称和/或位置。至少一个 name 或 position 应该提供。 |
guild_id (字符串,必填), category_id (字符串,必填), name (字符串,可选), position (整数,可选) |
delete_category |
从公会中删除类别。 | guild_id (字符串,必填), category_id (字符串,必填) |
频道
| 工具 | 描述 | 参数 |
|---|---|---|
create_channel |
在公会中创建一个新的文本频道,可以选择在某个类别下。 | guild_id (字符串,必填), name (字符串,必填), category_id (字符串,可选) |
read_channel |
从频道读取消息。返回包含作者信息、内容、附件和时间戳的消息。 | guild_id (字符串,必填), channel_id (字符串,必填), limit (整数,可选——默认100,最大100), offset (整数,可选--默认值0) |
rename_channel |
重命名公会中的频道。 | guild_id (字符串,必填), channel_id (字符串,必填), name (字符串,必填) |
delete_channel |
从公会中删除频道。 | guild_id (字符串,必填), channel_id (字符串,必填) |
权限
| 工具 | 描述 | 参数 |
|---|---|---|
define_overwrite |
定义频道或类别上角色或用户的权限覆盖。这 type 确定目标: role, channel, category,或 userThe target_id 是否为互补目标(例如,如果类型为 role,target_id是频道或类别)。 |
guild_id (字符串,必填), type (string,必填--其中之一 role, channel, category, user), id (字符串,必填), target_id (字符串,必填), allowed (string[],必填), denied (string[],必填), reason (字符串,必填) |
可用权限
create_instant_invite, kick_members, ban_members, administrator, manage_channels, manage_server, add_reactions, view_audit_log, priority_speaker, stream, read_messages, send_messages, send_tts_messages, manage_messages, embed_links, attach_files, read_message_history, mention_everyone, use_external_emoji, view_server_insights, connect, speak, mute_members, deafen_members, move_members, use_voice_activity, change_nickname, manage_nicknames, manage_roles, manage_webhooks, manage_emojis
发展
# Run tests
bundle exec rspec
# Run linter
bundle exec rubocop
许可证
麻省理工学院