---
slug: "discord-relay-mcp服务器"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/emiliobool/mcp-relay@main/README.md"
repo: "https://github.com/emiliobool/mcp-relay"
source_file: "README.md"
branch: "main"
---
# MCP Relay

This MCP server allows Claude to send messages and prompts to a Discord channel and receive responses.

## Setup Instructions

### 1. Create a Discord Application and Bot

1. Go to the [Discord Developer Portal](https://discord.com/developers/applications)
2. Click "New Application" and give it a name
3. Go to the "Bot" section in the left sidebar
4. Under the bot's token section, click "Reset Token" and copy the new token
   - Keep this token secure! Don't share it publicly
5. Under "Privileged Gateway Intents", enable:
   - Message Content Intent
   - Server Members Intent
   - Presence Intent

### 2. Invite the Bot to Your Server

1. Go to the "OAuth2" section in the left sidebar
2. Select "URL Generator"
3. Under "Scopes", select:
   - bot
   - applications.commands
4. Under "Bot Permissions", select:
   - Send Messages
   - Embed Links
   - Read Message History
5. Copy the generated URL and open it in your browser
6. Select your server and authorize the bot

### 3. Get Channel ID

1. In Discord, enable Developer Mode:
   - Go to User Settings > App Settings > Advanced
   - Turn on "Developer Mode"
2. Right-click the channel you want to use
3. Click "Copy Channel ID"

### 4. Configure MCP Settings

The server requires configuration in your MCP settings file. Add the following to your configuration file:

```json
{
    "mcpServers": {
        "discord-relay": {
            "command": "node",
            "args": [
                "/ABSOLUTE/PATH/TO/MCP Relay/build/index.js"
            ],
            "env": {
                "DISCORD_TOKEN": "your_bot_token_here",
                "DISCORD_CHANNEL_ID": "your_channel_id_here"
            }
        }
    }
}
```

Replace:
- `/ABSOLUTE/PATH/TO/MCP Relay` with the actual path to your MCP Relay project
- `your_bot_token_here` with your Discord bot token
- `your_channel_id_here` with your Discord channel ID

Note: Make sure to use absolute paths in the configuration.

## Usage

The server provides a tool called `send-message` that accepts the following parameters:

```typescript
{
  type: 'prompt' | 'notification',  // Type of message
  title: string,                    // Message title
  content: string,                  // Message content
  actions?: Array<{                 // Optional action buttons
    label: string,                  // Button label
    value: string                   // Value returned when clicked
  }>,
  timeout?: number                  // Optional timeout in milliseconds
}
```

### Message Types

1. **Notification**: Simple message that doesn't expect a response
   ```json
   {
     "type": "notification",
     "title": "Hello",
     "content": "This is a notification"
   }
   ```

2. **Prompt**: Message that waits for a response
   ```json
   {
     "type": "prompt",
     "title": "Question",
     "content": "Do you want to proceed?",
     "actions": [
       { "label": "Yes", "value": "yes" },
       { "label": "No", "value": "no" }
     ],
     "timeout": 60000  // Optional: 1 minute timeout
   }
   ```

Notes:
- Prompts can be answered either by clicking action buttons or sending a text message
- Only one response is accepted per prompt
- If a timeout is specified, the prompt will fail after the timeout period
- Notifications don't wait for responses and return immediately
