Accord Server MCP
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.
Latest Blog Posts
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/DaccordProject/accordserver-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server