Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Accord Server MCPshow me the recent messages in channel general-1"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Accord MCP
MCP (Model Context Protocol) clients for the Accord ecosystem. This package provides two distinct MCP clients:
Client | Connects to | Auth | Scope | Use case |
Server MCP ( | accordserver (port 39099) | Server-wide | Full admin | Server automation, bots, data seeding |
Client MCP ( | daccord desktop app (port 39101) | Per-account bearer token | User's permissions + UI control | Personal AI assistant, UI auditing, testing |
Prerequisites
Server MCP
An Accord server running with
MCP_API_KEYsetThe server's base URL (e.g.
http://localhost:39099)
Client MCP
The daccord desktop app running with Developer Mode enabled
MCP Server toggled on in App Settings > Developer
The bearer token from the Developer settings page
Agent Setup
Server MCP (accordserver)
Accord exposes a streamable HTTP MCP endpoint at /mcp. The examples below assume your server is at http://localhost:39099 -- replace with your actual URL and API key.
Claude Code
Add a .mcp.json file to your project root (or ~/.claude/.mcp.json for global config):
{
"mcpServers": {
"accord": {
"type": "streamable-http",
"url": "http://localhost:39099/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY"
}
}
}
}Or add it interactively:
claude mcp add accord --transport http http://localhost:39099/mcp \
-H "Authorization: Bearer YOUR_MCP_API_KEY"Codex (OpenAI)
Create or edit codex.json in your project root (or ~/.codex/codex.json for global):
{
"mcpServers": {
"accord": {
"type": "streamable-http",
"url": "http://localhost:39099/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY"
}
}
}
}OpenCode
Add to your opencode.json (project root or ~/.config/opencode/config.json):
{
"mcp": {
"accord": {
"type": "streamable-http",
"url": "http://localhost:39099/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY"
}
}
}
}Claude Desktop
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"accord": {
"type": "streamable-http",
"url": "http://localhost:39099/mcp",
"headers": {
"Authorization": "Bearer YOUR_MCP_API_KEY"
}
}
}
}Client MCP (daccord desktop app)
The daccord desktop app exposes a local MCP server on port 39101 when Developer Mode is enabled. This provides user-scoped access plus UI control, navigation, and screenshot capabilities.
Claude Code
{
"mcpServers": {
"daccord": {
"type": "streamable-http",
"url": "http://localhost:39101/mcp",
"headers": {
"Authorization": "Bearer YOUR_DACCORD_MCP_TOKEN"
}
}
}
}Or add it interactively:
claude mcp add daccord --transport http http://localhost:39101/mcp \
-H "Authorization: Bearer YOUR_DACCORD_MCP_TOKEN"Using Both Together
An AI agent can use both MCP servers simultaneously -- server MCP for admin tasks and data seeding, client MCP for navigating the UI and visually verifying results:
{
"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"
}
}
}
}Any MCP-compatible client
Both endpoints speak standard MCP over streamable HTTP:
Server:
http://your-server:39099/mcp+Authorization: Bearer <MCP_API_KEY>Client:
http://localhost:39101/mcp+Authorization: Bearer <DACCORD_TOKEN>Transport: Streamable HTTP (POST)
Protocol version:
2025-03-26
Standalone CLI Clients
Server CLI (accord-mcp)
Interactive client for the accordserver MCP endpoint.
npm install && npm run build
export ACCORD_MCP_API_KEY="your-key"
npm startVariable | Description | Default |
| Server MCP endpoint URL |
|
| Server MCP API key (required) | -- |
Client CLI (daccord-mcp)
Interactive client for the daccord desktop app's local MCP server.
npm install && npm run build
export DACCORD_MCP_TOKEN="your-token"
npm run start:clientVariable | Description | Default |
| Client MCP endpoint URL |
|
| Client MCP bearer token (required) | -- |
Copy the token from daccord's App Settings > Developer > MCP Server section.
Quick install
curl -fsSL https://raw.githubusercontent.com/DaccordProject/accordserver-mcp/main/install.sh | bashServer CLI example session
$ 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> exitClient CLI example session
$ 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> exitServer CLI Commands
Command | Description |
| Server info and stats |
| List all spaces |
| Space details |
| List channels in a space |
| List space members |
| User details |
| Recent messages |
| Search messages |
| Send a message |
| Create a channel |
| Delete a channel |
| Delete a message |
| Kick a member |
| Ban a user |
| Unban a user |
| List all MCP tools |
| Call any tool directly |
| Show help |
| Quit |
Client CLI Commands
Command | Description |
Read | |
| Current app state (space, channel, layout) |
| List connected spaces |
| Space details |
| List channels |
| List members |
| User info |
| List messages |
| Search messages |
Navigate | |
| Switch to a space |
| Switch to a channel |
| Open a DM |
| Open settings |
| Open server discovery |
| Open a thread |
| Open voice view |
| Toggle member list |
| Toggle search panel |
| Navigate to UI surface |
| Open a named dialog |
| Resize viewport |
Screenshot | |
| Capture viewport |
| List UI surfaces |
| Surface prerequisites |
Message | |
| Send a message |
| Edit a message |
| Delete a message |
| Add a reaction |
Moderation | |
| Kick a member |
| Ban a user |
| Unban a user |
| Timeout a member |
Voice | |
| Join voice channel |
| Leave voice |
| Toggle mute |
| Toggle deafen |
Other | |
| List available MCP tools |
| Call any tool directly |
| Show help |
| Quit |
Available Tools
Server MCP Tools (15)
Read Operations
Tool | Description | Required Params |
| Server version, space count, online users, voice status | (none) |
| List all spaces on the server | (none) |
| Get details about a specific space |
|
| List channels in a space |
|
| List members of a space |
|
| Get user info by ID |
|
| List recent messages in a channel |
|
| Search messages in a space |
|
Write Operations
Tool | Description | Required Params |
| Send a message to a channel |
|
| Create a channel in a space |
|
| Delete a channel |
|
| Delete a message |
|
Moderation
Tool | Description | Required Params |
| Remove a member from a space |
|
| Ban a user from a space |
|
| Remove a ban |
|
Client MCP Tools (35)
Tools are organized into 6 groups. Only read, navigate, and screenshot are enabled by default; destructive groups (message, moderate, voice) require opt-in in daccord's Developer settings.
Read (8 tools)
Tool | Description | Required Params |
| Current app state | (none) |
| Connected spaces | (none) |
| Space details |
|
| Channels in a space |
|
| Space members |
|
| User info |
|
| Channel messages |
|
| Search messages |
|
Navigate (12 tools)
Tool | Description | Required Params |
| Switch active space |
|
| Switch active channel |
|
| Open DM conversation |
|
| Open settings | optional |
| Open server discovery | (none) |
| Open thread panel |
|
| Open voice view | (none) |
| Toggle member list | (none) |
| Toggle search | (none) |
| Navigate to UI surface |
|
| Open named dialog |
|
| Resize viewport | optional |
Screenshot (3 tools)
Tool | Description | Required Params |
| Capture viewport PNG | optional |
| List auditable UI surfaces | optional |
| Surface prerequisites |
|
Message (4 tools)
Tool | Description | Required Params |
| Send message as user |
|
| Edit own message |
|
| Delete message |
|
| React to message |
|
Moderate (4 tools)
Tool | Description | Required Params |
| Kick member |
|
| Ban user |
|
| Unban user |
|
| Timeout member |
|
Voice (4 tools)
Tool | Description | Required Params |
| Join voice channel |
|
| Leave voice | (none) |
| Toggle mute | (none) |
| Toggle deafen | (none) |
Protocol Details
Both clients use the same MCP protocol:
Transport: Streamable HTTP (POST)
Auth:
Authorization: Bearer <token>Protocol version:
2025-03-26Format: JSON-RPC 2.0
Key Differences
Aspect | Server MCP | Client MCP |
Endpoint |
|
|
Default port | 39099 | 39101 |
Auth token | Server-wide | Per-account token from Developer settings |
Permissions | Full admin access | User's own permissions only |
Message attribution |
| Current logged-in user |
UI control | N/A | Full navigation + screenshot |
Network | Can be remote | Localhost only ( |
Tool count | 15 | 35 |
Security Notes
Server MCP
The MCP API key grants full administrative access to the server
Treat it like a root credential -- do not expose it in client-side code or logs
The endpoint is disabled entirely unless
MCP_API_KEYis set on the serverMessages sent via MCP are attributed to author
"mcp"for auditability
Client MCP
Requires two explicit opt-in steps: Developer Mode + MCP toggle
Token is stored in encrypted per-profile config; displayed masked in the UI
Listener is bound to
127.0.0.1only -- never exposed to the networkDestructive tool groups (message, moderate, voice) require explicit opt-in
Moderation tools additionally check the user's server permissions before executing
Rate limited to 60 requests/second with 5-second read timeout
Token can be rotated at any time from Developer settings
TypeScript Library Usage
Both clients can be imported as libraries:
// 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");This server cannot be installed
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.