How to integrate Discord MCP with DeepSeek Harness

Connect DeepSeek Harness to Discord MCP. List all discord servers i belong to, show your connected accounts on discord, and more using natural language, with authentication handled for you.

Discord logoDiscord
Oauth2

Discord is a real-time messaging and VoIP platform for communities and teams. It lets users chat, share media, and collaborate across public and private channels.

27 Tools1 Triggers

Introduction

DeepSeek Harness (dsh) is an open-source agent runtime from DeepSeek AI, and every part of it is a plugin, so you can swap out the model adapter, the tool registry, or the agent loop. It runs on the Cordis framework and comes with a local Web UI, a headless CLI runner, and a Python SDK. You can point it at DeepSeek V4-Pro and V4-Flash, or at Anthropic, OpenAI, and other OpenAI-compatible providers. It is MIT licensed and still in developer preview.

This guide shows how to connect your Discord account to DeepSeek Harness, and you can do it with either the Composio Connect CLI or the Composio Connect MCP. The dsh-base bundle gives shell execution as a first-class tool, so the CLI is the easiest path for personal use. It is quick to set up and needs no server config, and the MCP path works well too, since the harness comes with a built-in MCP client.

Also integrate Discord with

What is Composio Connect?

Composio Connect lets anyone plug 1,000+ applications directly into their agent harness, including DeepSeek Harness, through a single hosted MCP endpoint. Each task runs as a session, a scoped runtime that ties together the user, the available toolkits, authentication, and execution state. It can:

  • Discover and load tools on-demand. A small set of meta tools lets the agent search for the right tool at runtime, so you never load hundreds of tool definitions into context.
  • Chain tools in a sandboxed remote workbench. Multi-step workflows run server-side, passing outputs between tools and working with files in the session's sandbox, so long chains finish without a lot of back-and-forth with the LLM.
  • Manage authentication end-to-end. Managed OAuth, per-user connected accounts, and account isolation are all handled for you, so you never wire up auth yourself.

Connect Discord to DeepSeek Harness with Composio

Prerequisites: Install DeepSeek Harness

DeepSeek Harness needs Node.js (20 or 22) and pnpm. Build it from source. This is also what the MCP path in Option 2 requires, since the built-in MCP client resolves its dependencies from the checkout:

bash
git clone https://github.com/deepseek-ai/deepseek-harness.git
cd deepseek-harness
pnpm install
pnpm run build
pnpm dsh web

The Web UI listens on http://127.0.0.1:3080 by default. Open that address to confirm it is up.

Then configure your model route. In the Web UI, open Settings → Models: the built-in DeepSeek card accepts a DeepSeek API key, and the same page supports Anthropic, OpenAI, and custom OpenAI-compatible endpoints. Full first-run details are in the DeepSeek Harness docs.

Option 1: Composio CLI (recommended)

DeepSeek Harness runs shell commands as a first-class tool through its dsh-base bundle, so the Composio Universal CLI fits well. There is no MCP server to configure, and multi-step tool chaining is reliable. Install and authenticate:

bash
# Install the Composio CLI
curl -fsSL https://composio.dev/install | bash

# Log in to Composio
composio login

Connect to Discord

Ask DeepSeek Harness to connect to Discord, or just request any Discord-related task. Under the hood the agent calls Composio commands like any other shell tool:

bash
composio search "what can I do with Discord?"
composio link discord

On the first Discord call, composio link discord opens an OAuth prompt so you can authorize access. After that, every Discord command works with your stored credentials automatically, so you just talk to the agent and it will search, execute, and chain Discord tools as needed.

Option 2: Composio MCP

DeepSeek Harness bridges MCP through its built-in @deepseek-ai/dsh-mcp-client plugin. You register one server as a plugin row, and its tools appear under server-qualified names (mcp__<serverName>__<rawName>), the same shape Claude Code and Codex use.

MCP requires the source build. The built-in client depends on the harness's own internal packages (cordis, dsh-llm, dsh-tools, dsh-invariants, dsh-subprocess), which resolve from the git checkout you built in the prerequisites. Run everything below from that checkout with pnpm dsh. For a route that avoids editing config files, see the community plugin at the end of this section.

Auth note: The built-in client passes static headers only and has no OAuth flow, so authenticate to Composio Connect with the x-consumer-api-key header. For Composio's OAuth flow, use the community plugin below.

1. Register the Composio server

The web profile's user patch layer is $DSH_HOME/profiles/web/cordis.patch.yml ($DSH_HOME defaults to ~/.dsh). This is a patch file, so a new plugin goes under an insert: entry. A bare - id: row instead targets an existing entry and fails to boot with patch: entry "…" not found. Add:

bash
- insert:
    - id: mcp-composio
      name: '@deepseek-ai/dsh-mcp-client'
      config:
        serverName: composio
        transport: streamable-http
        url: https://connect.composio.dev/mcp
        headers:
          x-consumer-api-key: !!js process.env.COMPOSIO_API_KEY

2. Set the API key and launch

The header value must resolve to a string at load time. Export your Composio consumer API key (ck_...), which is on the Connect → Settings → Sessions page of the Composio dashboard, in the shell you launch from. If it is unset, process.env.COMPOSIO_API_KEY is undefined and the config fails validation:

bash
export COMPOSIO_API_KEY=ck_your_key
pnpm dsh web

3. Done!

Open http://127.0.0.1:3080 and start a session on Standard or Code mode. (Minimal mode exposes only bash and str_replace_editor, so it hides MCP tools.) Composio's tools register as mcp__composio__*. Ask DeepSeek Harness to connect to Discord or request any Discord-related task, and Composio authorizes Discord on demand on the first call.

The dsh-mcp-client config schema (transport, serverName, url, headers, plus reconnect.* and toolCallTimeoutMs) is the current developer-preview interface and may change between releases.

Alternative: OAuth via the community plugin

To use Composio Connect's OAuth flow instead of a static key, or to skip editing cordis.patch.yml by hand, use the community dsh-mcp-manager plugin. It installs as a self-contained external plugin, ships a bundle patch so it auto-mounts, and adds a Settings → MCP page plus OAuth (authorization code + PKCE, RFC 7591 dynamic client registration, and refresh-token rotation). It needs the web profile and Node.js ^22.19 or >=24, with pnpm on your PATH.

Install it from your source checkout, then restart pnpm dsh web and refresh:

bash
pnpm dsh plugin --profile web add github:hyqhyq3/dsh-mcp-manager

Open Settings → MCP → + Add MCP server, choose HTTP, set the name to composio, the URL to https://connect.composio.dev/mcp, and the auth mode to OAuth. Click Authenticate, and Composio's login and consent screen opens in the browser, then redirects back and registers the tools as mcp__composio__*. The row should read connected (N tools).

The plugin catches the OAuth code on a loopback redirect (http://127.0.0.1:<port>/mcp-manager/callback/<id>), so Composio's OAuth provider must allow that loopback URL. Server configs and tokens persist at ~/.dsh/mcp-manager.json, so treat that file as a secret. Being a community plugin on a preview harness, its commands may change, so check the plugin repo if a step drifts.

What is the Discord MCP server, and what's possible with it?

The Discord MCP server is an implementation of the Model Context Protocol that connects your AI agent and assistants like Claude, Cursor, etc directly to your Discord account. It provides structured and secure access to your Discord profile, connected accounts, servers, and invites, so your agent can fetch user details, list your servers (guilds), retrieve invite info, and manage your Discord presence on your behalf.

  • Retrieve and manage user profile information: Your agent can fetch your Discord profile details, including email and connected third-party accounts, to help keep your data organized and up-to-date.
  • Server (guild) discovery and membership checks: Effortlessly list all servers you belong to and verify your membership status in any server.
  • Access invite details and server info: Instantly get information about specific Discord invite codes, including the destination server or channel details.
  • Guild member insights: Allow your agent to retrieve your own guild member information across servers, including permissions and roles.
  • OAuth2 application and authorization review: Let your agent fetch your app’s OAuth2 authorization details, so you always know what permissions are granted and when tokens expire.

Way Forward

With Discord connected, DeepSeek Harness can now act on your behalf whenever you ask it to.

From here, you can extend the harness further:

  • Connect more apps: Calendar, Slack, Notion, Linear, and hundreds of others are available through the same Composio Connect setup, and each new integration adds to what your agent can do for you.
  • Build workflows across tools: Once multiple apps are connected, DeepSeek Harness can chain actions together, so it can turn an email into a calendar invite, a Slack message into a Linear ticket, or a meeting note into a follow-up draft.
  • Use the plugin system: Wrap common Discord flows as dsh plugins or prompt templates so recurring tasks become one-line commands, and bundle your most-used Discord tools into a named profile you can boot on demand.

If you run into trouble or want to share what you've built, join the community or check out the Docs for more configuration options.

TOOLS & TRIGGERS

Supported Tools and Triggers

Every Discord action and event your agent gets out of the box.

Consume Entitlement

Marks a one-time purchase consumable entitlement as consumed for a given application.

Delete Test Entitlement

Deletes a currently active test entitlement for a given application.

Delete User Application Role Connection

Deletes the current user's application role connection for the specified application.

Edit Application Command Permissions

Edits the permissions for a specific application command in a guild.

Get Application Command Permissions

Retrieves the permissions for a specific application command in a guild.

Get Batch Application Command Permissions

Retrieves permissions for all commands of an application in a guild.

Get Current User Application Entitlements

Tool to retrieve entitlements for the current user for a given application.

Get Gateway

Tool to retrieve a valid WebSocket (wss) URL for establishing a Gateway connection to Discord.

Get Guild Template

Tool to retrieve information about a Discord guild template using its unique template code.

Get Guild Widget

Tool to retrieve the guild widget in JSON format.

Get Guild Widget PNG

Tool to retrieve a PNG image widget for a Discord guild.

Get my guild member

Retrieves the guild member object for the currently authenticated user within a specified guild, including roles, nickname, join date, and permissions.

Get my OAuth2 authorization

Retrieves current OAuth2 authorization details for the application, including app info, scopes, token expiration, and user data (contingent on scopes like 'identify').

Get My User

Fetches comprehensive profile information for the currently authenticated Discord user, including email if the 'email' scope is granted.

Get OpenID Connect userinfo

Retrieve OpenID Connect compliant user information for the authenticated user.

Get Public Keys

Tool to retrieve Discord OAuth2 public keys.

Get SKU Subscription

Retrieves a specific subscription by ID for a given SKU.

Get User

Retrieve information about a Discord user.

Get User Application Role Connection

Retrieves the application role connection for the currently authenticated user for a specified application.

Resolve Invite

Tool to resolve and retrieve information about a Discord invite code.

Leave Guild

Leaves a Discord guild (server) on behalf of the currently authenticated user.

List My Connections

Retrieves a list of the authenticated user's connected third-party accounts on Discord.

List My Guilds

Lists the current user's guilds, returning partial data for each; primarily used for displaying server lists or verifying memberships.

List SKU Subscriptions

Lists all subscriptions for a given SKU.

List Sticker Packs

Tool to retrieve all available Discord Nitro sticker packs.

Modify Current User

Modifies the currently authenticated Discord user's profile.

Update User Application Role Connection

Updates the application role connection for the currently authenticated user for a specified application.

FAQ

Frequently asked questions

With a standalone Discord MCP server, the agents and LLMs can only access a fixed set of Discord tools tied to that server. However, with the Composio Tool Router, agents can dynamically load tools from Discord and many other apps based on the task at hand, all through a single MCP endpoint.

Yes, you can. DeepSeek Harness fully supports MCP integration. You get structured tool calling, message history handling, and model orchestration while Tool Router takes care of discovering and serving the right Discord tools.

Yes, absolutely. You can configure which Discord scopes and actions are allowed when connecting your account to Composio. You can also bring your own OAuth credentials or API configuration so you keep full control over what the agent can do.

All sensitive data such as tokens, keys, and configuration is fully encrypted at rest and in transit. Composio is SOC 2 Type 2 compliant and follows strict security practices so your Discord data and credentials are handled as safely as possible.

Start with Discord.It takes 30 seconds.

Managed auth, hosted MCP servers, and every Discord tool your agent needs.Free to start.

Start building