协议客户端

Accord MCP为Accord生态系统提供两种协议客户端,分别用于服务器自动化和个人AI助手等场景。

  • by DaccordProject
  • JavaScript
  • 混合部署
  • 更新于
在 GitHub 查看 DaccordProject/accordserver-mcp

使用说明

协议MCP

MCP(模型上下文协议)客户端 协议 生态系统。此软件包提供了两个不同的MCP客户端:

客户端 连接到 Auth 作用域 用例
服务器MCP (accord-mcp) accordserver(端口39099) 服务器范围 MCP_API_KEY 完全管理员 服务器自动化、机器人、数据种子
客户端MCP (daccord-mcp) daccord桌面应用程序(端口39101) 每个帐户持有者令牌 用户权限+UI控制 个人AI助理、UI审计、测试

先决条件

服务器MCP

  • Accord服务器运行 MCP_API_KEY 集
  • 服务器的基本URL(例如。 http://localhost:39099)

客户端MCP

  • 启用开发者模式运行的daccord桌面应用程序
  • MCP服务器已在“应用程序设置”>“开发人员”中打开
  • 开发人员设置页面中的承载令牌

代理设置

服务器MCP(accordserver)

Accord在以下位置公开了一个可流式传输的HTTP MCP端点 /mcp。以下示例假设您的服务器位于 http://localhost:39099 --替换为实际的URL和API密钥。

克劳德代码

添加一个 .mcp.json 将文件保存到项目根目录(或 ~/.claude/.mcp.json 全局配置):

{
  "mcpServers": {
    "accord": {
      "type": "streamable-http",
      "url": "http://localhost:39099/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_API_KEY"
      }
    }
  }
}

或者以交互方式添加:

claude mcp add accord --transport http http://localhost:39099/mcp \
  -H "Authorization: Bearer YOUR_MCP_API_KEY"

食品法典委员会(OpenAI)

创建或编辑 codex.json 在项目根目录中(或 ~/.codex/codex.json 全球):

{
  "mcpServers": {
    "accord": {
      "type": "streamable-http",
      "url": "http://localhost:39099/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_API_KEY"
      }
    }
  }
}

开源代码

添加到您的 opencode.json (项目根或 ~/.config/opencode/config.json):

{
  "mcp": {
    "accord": {
      "type": "streamable-http",
      "url": "http://localhost:39099/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_API_KEY"
      }
    }
  }
}

克劳德桌面版

增添 ~/.claude/claude_desktop_config.json:

{
  "mcpServers": {
    "accord": {
      "type": "streamable-http",
      "url": "http://localhost:39099/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_API_KEY"
      }
    }
  }
}

客户端MCP(daccord桌面应用程序)

启用开发人员模式时,daccord桌面应用程序在端口39101上显示本地MCP服务器。这提供了用户范围的访问以及UI控制、导航和屏幕截图功能。

克劳德代码

{
  "mcpServers": {
    "daccord": {
      "type": "streamable-http",
      "url": "http://localhost:39101/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_DACCORD_MCP_TOKEN"
      }
    }
  }
}

或者以交互方式添加:

claude mcp add daccord --transport http http://localhost:39101/mcp \
  -H "Authorization: Bearer YOUR_DACCORD_MCP_TOKEN"

两者结合使用

AI代理可以同时使用两个MCP服务器——服务器MCP用于管理任务和数据种子,客户端MCP用于导航UI和可视化验证结果:

{
  "mcpServers": {
    "accord": {
      "type": "streamable-http",
      "url": "http://localhost:39099/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_MCP_API_KEY"
      }
    },
    "daccord": {
      "type": "streamable-http",
      "url": "http://localhost:39101/mcp",
      "headers": {
        "Authorization": "Bearer YOUR_DACCORD_MCP_TOKEN"
      }
    }
  }
}

任何兼容MCP的客户端

两个端点都通过流式HTTP使用标准MCP:

  • 服务器: http://your-server:39099/mcp + Authorization: Bearer <MCP_API_KEY>
  • 客户: http://localhost:39101/mcp + Authorization: Bearer <DACCORD_TOKEN>
  • 运输:流式HTTP(POST)
  • 协议版本: 2025-03-26

独立CLI客户端

服务器CLI(accord-mcp)

accordserver MCP端点的交互式客户端。

npm install && npm run build
export ACCORD_MCP_API_KEY="your-key"
npm start
变量 描述 默认值
ACCORD_MCP_URL 服务器MCP端点URL http://localhost:39099/mcp
ACCORD_MCP_API_KEY 服务器MCP API密钥(必需) --

客户端CLI(daccord-mcp)

daccord桌面应用程序本地MCP服务器的交互式客户端。

npm install && npm run build
export DACCORD_MCP_TOKEN="your-token"
npm run start:client
变量 描述 默认值
DACCORD_MCP_URL 客户端MCP端点URL http://localhost:39101/mcp
DACCORD_MCP_TOKEN 客户端MCP承载令牌(必需) --

从daccord的应用程序设置>开发人员>MCP服务器部分复制令牌。

快速安装

curl -fsSL https://raw.githubusercontent.com/DaccordProject/accordserver-mcp/main/install.sh | bash

服务器CLI示例会话

$ export ACCORD_MCP_API_KEY="your-key"
$ npm start

Connecting to http://localhost:39099/mcp...
Connected. Type 'help' for commands.

accord> info
accord> spaces
accord> channels abc123
accord> messages def456 10
accord> send def456 Hello from the CLI!
accord> exit

客户端CLI示例会话

$ export DACCORD_MCP_TOKEN="dk_a1b2...c3d4"
$ npm run start:client

Connecting to daccord client at http://localhost:39101/mcp...
Connected. Type 'help' for commands.

daccord> state
daccord> spaces
daccord> select-space abc123
daccord> select-channel def456
daccord> screenshot /tmp/audit.png
daccord> viewport compact
daccord> screenshot /tmp/audit_compact.png
daccord> navigate 6.2 with_reply
daccord> screenshot
daccord> exit

服务器CLI命令

命令 描述
info 服务器信息和统计数据
spaces 列出所有空间
space <id> 空间详细信息
channels <space_id> 列出空间中的频道
members <space_id> [limit] 列出空间成员
user <user_id> 用户详细信息
messages <channel_id> [limit] 最近的消息
search <space_id> <query> 搜索邮件
send <channel_id> <message> 发送消息
create-channel <space_id> <name> [topic] 创建频道
delete-channel <channel_id> 删除频道
delete-message <message_id> 删除消息
kick <space_id> <user_id> 踢会员
ban <space_id> <user_id> [reason] 禁止用户
unban <space_id> <user_id> 取消阻止用户
tools 列出所有MCP工具
call <tool> [json_args] 直接调用任何工具
help 显示帮助
exit 退出

客户端CLI命令

命令 描述
阅读
state 当前应用程序状态(空间、频道、布局)
spaces 列出连接的空间
space <id> 空间详细信息
channels <space_id> 列出频道
members <space_id> [limit] 列出成员
user <user_id> 用户信息
messages <channel_id> [limit] 列出消息
search <space_id> <query> 搜索邮件
导航
select-space <space_id> 切换到空间
select-channel <channel_id> 切换到频道
open-dm <user_id> 打开DM
open-settings [page] 打开设置
open-discovery 开放式服务器发现
open-thread <message_id> 打开一个线程
open-voice 打开语音视图
toggle-members 切换成员列表
toggle-search 切换搜索面板
navigate <surface_id> [state] 导航到UI表面
dialog <name> 打开一个命名对话框
viewport <preset|WxH> 调整视口大小
截图
screenshot [save_path] 捕获视口
surfaces [section] 列出UI表面
surface-info <surface_id> 表面先决条件
消息
send <channel_id> <message> 发送消息
edit <message_id> <content> 编辑消息
delete-message <message_id> 删除消息
react <message_id> <emoji> 添加反应
节制
kick <space_id> <user_id> 踢会员
ban <space_id> <user_id> [reason] 禁止用户
unban <space_id> <user_id> 取消阻止用户
timeout <space_id> <user_id> <s> 成员超时
语音
join-voice <channel_id> 加入语音频道
leave-voice 留下声音
mute 切换静音
deafen 切换静音
其他
tools 列出可用的MCP工具
call <tool> [json_args] 直接调用任何工具
help 显示帮助
exit 退出

可用工具

服务器MCP工具(15)

读取操作

工具 描述 必需参数
server_info 服务器版本、空间计数、在线用户、语音状态 (无)
list_spaces 列出服务器上的所有空间 (无)
get_space 获取特定空间的详细信息 space_id
list_channels 列出空间中的频道 space_id
list_members 列出空间成员 space_id,可选 limit
get_user 按ID获取用户信息 user_id
list_messages 列出频道中的最新消息 channel_id,可选 limit, after
search_messages 在空间中搜索邮件 space_id,可选 query, author_id, channel_id, limit

写入操作

工具 描述 必需参数
send_message 向频道发送消息 channel_id, content,可选 reply_to
create_channel 在空间中创建频道 space_id, name,可选 channel_type, topic
delete_channel 删除频道 channel_id
delete_message 删除消息 message_id

节制

工具 描述 必需参数
kick_member 从空间中删除成员 space_id, user_id
ban_user 禁止用户进入空间 space_id, user_id,可选 reason
unban_user 删除禁令 space_id, user_id

客户端MCP工具(35)

工具分为6组。仅 read, navigate,以及 screenshot 默认情况下启用;破坏性团体(message, moderate, voice)需要在daccord的开发人员设置中选择加入。

阅读(8个工具)

工具 描述 必需参数
get_current_state 当前应用程序状态 (无)
list_spaces 互联空间 (无)
get_space 空间详细信息 space_id
list_channels 空间中的频道 space_id
list_members 空间成员 space_id,可选 limit
get_user 用户信息 user_id
list_messages 频道消息 channel_id,可选 limit, after
search_messages 搜索邮件 space_id,可选 query, author_id, channel_id, limit

导航(12个工具)

工具 描述 必需参数
select_space 切换活动空间 space_id
select_channel 切换活动频道 channel_id
open_dm 打开DM对话 user_id
open_settings 打开设置 可选 page
open_discovery 开放式服务器发现 (无)
open_thread 打开螺纹面板 message_id
open_voice_view 打开语音视图 (无)
toggle_member_list 切换成员列表 (无)
toggle_search 切换搜索 (无)
navigate_to_surface 导航到UI表面 surface_id,可选 state
open_dialog 打开命名对话框 dialog_name
set_viewport_size 调整视口大小 可选 preset, width, height

屏幕截图(3个工具)

工具 描述 必需参数
take_screenshot 捕获视口PNG 可选 save_path
list_surfaces 列出可审计的UI表面 可选 section
get_surface_info 表面先决条件 surface_id

消息(4个工具)

工具 描述 必需参数
send_message 以用户身份发送消息 channel_id, content,可选 reply_to
edit_message 编辑自己的消息 message_id, content
delete_message 删除邮件 message_id
add_reaction 对消息作出反应 message_id, emoji

中等(4个工具)

工具 描述 必需参数
kick_member Kick会员 space_id, user_id
ban_user 禁止用户 space_id, user_id,可选 reason
unban_user 取消阻止用户 space_id, user_id
timeout_member 超时成员 space_id, user_id, duration_seconds

语音(4个工具)

工具 描述 必需参数
join_voice_channel 加入语音频道 channel_id
leave_voice 留下声音 (无)
toggle_mute 切换静音 (无)
toggle_deafen 切换静音 (无)

协议细节

两个客户端使用相同的MCP协议:

  • 运输:流式HTTP(POST)
  • 认证: Authorization: Bearer <token>
  • 协议版本: 2025-03-26
  • 格式:JSON-RPC 2.0

主要区别

特性 服务器MCP 客户端MCP
端点 POST /mcp 在accordserver上 POST /mcp daccord客户端
默认端口 39099 39101
身份验证令牌 服务器范围 MCP_API_KEY env var 来自开发人员设置的每个帐户令牌
权限 完全管理员访问权限 仅限用户自己的权限
消息归因 "mcp" author 当前登录用户
UI控件 N/A 全导航+截图
网络 可以是远程 仅本地主机(127.0.0.1)
刀具数量 15 35

安全须知

服务器MCP

  • MCP API密钥授予对服务器的完全管理访问权限
  • 将其视为根凭据——不要在客户端代码或日志中公开它
  • 除非满足以下条件,否则将完全禁用终结点 MCP_API_KEY 已在服务器上设置
  • 通过MCP发送的消息归作者所有 "mcp" 可审计性

客户端MCP

  • 需要两个明确的选择加入步骤:开发人员模式+MCP切换
  • 令牌按照配置文件加密存储;在UI中隐藏显示
  • 监听器绑定到 127.0.0.1 只是——从未接触过网络
  • 破坏性工具组(消息、温和、声音)需要明确的选择加入
  • 审核工具在执行之前还会检查用户的服务器权限
  • 速率限制为每秒60个请求,读取超时5秒
  • 令牌可以随时从开发人员设置中旋转

TypeScript库使用

两个客户端都可以作为库导入:

// Server MCP
import { AccordMCPClient } from "accordserver-mcp-client";

const server = new AccordMCPClient({
  url: "http://localhost:39099/mcp",
  apiKey: "your-api-key",
});
await server.connect();
const spaces = await server.listSpaces();

// Client MCP
import { DaccordClientMCPClient } from "accordserver-mcp-client/client-mcp";

const client = new DaccordClientMCPClient({
  url: "http://localhost:39101/mcp",
  token: "dk_a1b2...c3d4",
});
await client.connect();
const state = await client.getCurrentState();
await client.selectSpace("123");
const screenshot = await client.takeScreenshot("/tmp/audit.png");