discord-ops 0.2.0 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -1
- package/README.md +106 -69
- package/dist/cli/index.js +40 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/setup.d.ts +7 -0
- package/dist/cli/setup.d.ts.map +1 -0
- package/dist/cli/setup.js +397 -0
- package/dist/cli/setup.js.map +1 -0
- package/dist/server.d.ts +4 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +30 -1
- package/dist/server.js.map +1 -1
- package/dist/tools/channels/index.d.ts +1 -0
- package/dist/tools/channels/index.d.ts.map +1 -1
- package/dist/tools/channels/index.js +1 -0
- package/dist/tools/channels/index.js.map +1 -1
- package/dist/tools/channels/permissions.d.ts +3 -0
- package/dist/tools/channels/permissions.d.ts.map +1 -0
- package/dist/tools/channels/permissions.js +34 -0
- package/dist/tools/channels/permissions.js.map +1 -0
- package/dist/tools/guilds/index.d.ts +1 -0
- package/dist/tools/guilds/index.d.ts.map +1 -1
- package/dist/tools/guilds/index.js +1 -0
- package/dist/tools/guilds/index.js.map +1 -1
- package/dist/tools/guilds/invites.d.ts +4 -0
- package/dist/tools/guilds/invites.d.ts.map +1 -0
- package/dist/tools/guilds/invites.js +93 -0
- package/dist/tools/guilds/invites.js.map +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +14 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/messaging/index.d.ts +3 -0
- package/dist/tools/messaging/index.d.ts.map +1 -1
- package/dist/tools/messaging/index.js +3 -0
- package/dist/tools/messaging/index.js.map +1 -1
- package/dist/tools/messaging/pin.d.ts +3 -0
- package/dist/tools/messaging/pin.d.ts.map +1 -0
- package/dist/tools/messaging/pin.js +24 -0
- package/dist/tools/messaging/pin.js.map +1 -0
- package/dist/tools/messaging/search.d.ts +3 -0
- package/dist/tools/messaging/search.d.ts.map +1 -0
- package/dist/tools/messaging/search.js +61 -0
- package/dist/tools/messaging/search.js.map +1 -0
- package/dist/tools/messaging/unpin.d.ts +3 -0
- package/dist/tools/messaging/unpin.d.ts.map +1 -0
- package/dist/tools/messaging/unpin.js +24 -0
- package/dist/tools/messaging/unpin.js.map +1 -0
- package/dist/tools/threads/archive.d.ts +3 -0
- package/dist/tools/threads/archive.d.ts.map +1 -0
- package/dist/tools/threads/archive.js +33 -0
- package/dist/tools/threads/archive.js.map +1 -0
- package/dist/tools/threads/index.d.ts +1 -0
- package/dist/tools/threads/index.d.ts.map +1 -1
- package/dist/tools/threads/index.js +1 -0
- package/dist/tools/threads/index.js.map +1 -1
- package/dist/transport/http.d.ts +6 -0
- package/dist/transport/http.d.ts.map +1 -0
- package/dist/transport/http.js +81 -0
- package/dist/transport/http.js.map +1 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,15 @@
|
|
|
4
4
|
|
|
5
5
|
### Minor Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- 6e421f2: Add 8 new tools (pin/unpin message, search messages, archive thread, set channel permissions, get/create invites), HTTP/SSE transport, dry-run mode for destructive operations, and interactive CLI setup wizard.
|
|
8
|
+
|
|
9
|
+
## 0.2.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- 17 new tools: moderation (kick, ban, unban, timeout), role CRUD + assign, webhook CRUD + execute, audit log query, channel moderation (purge, slowmode, edit, delete)
|
|
14
|
+
- Security hardening: rate limiting, permission pre-flight checks, snowflake validation, self-protection guards, error sanitization
|
|
15
|
+
- Local CI infrastructure (act-ci.sh + act-ci.yml)
|
|
8
16
|
|
|
9
17
|
## 0.1.0
|
|
10
18
|
|
package/README.md
CHANGED
|
@@ -8,10 +8,13 @@ Agency-grade Discord MCP server with multi-guild project routing.
|
|
|
8
8
|
|
|
9
9
|
## Features
|
|
10
10
|
|
|
11
|
-
- **
|
|
11
|
+
- **42 MCP tools** — messaging, channels, moderation, roles, webhooks, audit log, threads, guilds, invites, permissions, search
|
|
12
12
|
- **Multi-guild project routing** — `send_message({ project: "my-app", channel: "builds" })` instead of raw channel IDs
|
|
13
13
|
- **Notification routing** — map notification types (ci_build, deploy, error) to channels per project
|
|
14
14
|
- **Multi-bot support** — manage multiple Discord bots from a single MCP server
|
|
15
|
+
- **HTTP/SSE + stdio transports** — stdio for Claude Code, HTTP/SSE for remote MCP clients
|
|
16
|
+
- **Dry-run mode** — simulate destructive operations without calling Discord API
|
|
17
|
+
- **Interactive setup wizard** — `discord-ops setup` walks through config creation
|
|
15
18
|
- **Security hardening** — rate limiting, permission pre-flight checks, snowflake ID validation, self-protection guards
|
|
16
19
|
- **Lazy login** — tools enumerate before Discord connects; first tool call triggers login
|
|
17
20
|
- **Zod validation** — all inputs validated before execution
|
|
@@ -25,14 +28,18 @@ Agency-grade Discord MCP server with multi-guild project routing.
|
|
|
25
28
|
# Install
|
|
26
29
|
npm install -g discord-ops
|
|
27
30
|
|
|
28
|
-
#
|
|
29
|
-
|
|
31
|
+
# Interactive setup (creates ~/.discord-ops.json)
|
|
32
|
+
discord-ops setup
|
|
30
33
|
|
|
31
|
-
#
|
|
34
|
+
# Or manual setup
|
|
35
|
+
export DISCORD_TOKEN="your-bot-token"
|
|
32
36
|
discord-ops health
|
|
33
37
|
|
|
34
38
|
# Start MCP server (stdio)
|
|
35
39
|
discord-ops
|
|
40
|
+
|
|
41
|
+
# Start MCP server (HTTP/SSE)
|
|
42
|
+
discord-ops serve --port 3000
|
|
36
43
|
```
|
|
37
44
|
|
|
38
45
|
## Claude Code Integration
|
|
@@ -108,83 +115,113 @@ send_message({ channel_id: "123456789", content: "Hello" })
|
|
|
108
115
|
|
|
109
116
|
## Tools
|
|
110
117
|
|
|
111
|
-
### Messaging
|
|
112
|
-
|
|
113
|
-
| Tool
|
|
114
|
-
|
|
|
115
|
-
| `send_message`
|
|
116
|
-
| `get_messages`
|
|
117
|
-
| `edit_message`
|
|
118
|
-
| `delete_message`
|
|
119
|
-
| `add_reaction`
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
|
127
|
-
|
|
|
128
|
-
| `
|
|
129
|
-
| `
|
|
130
|
-
| `
|
|
131
|
-
| `
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
|
140
|
-
|
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
|
149
|
-
|
|
|
118
|
+
### Messaging (8 tools)
|
|
119
|
+
|
|
120
|
+
| Tool | Description |
|
|
121
|
+
| ----------------- | ------------------------------------------------- |
|
|
122
|
+
| `send_message` | Send a message with project routing |
|
|
123
|
+
| `get_messages` | Fetch recent messages |
|
|
124
|
+
| `edit_message` | Edit a bot message |
|
|
125
|
+
| `delete_message` | Delete a message |
|
|
126
|
+
| `add_reaction` | React to a message |
|
|
127
|
+
| `pin_message` | Pin a message in a channel |
|
|
128
|
+
| `unpin_message` | Unpin a message |
|
|
129
|
+
| `search_messages` | Search messages by content, author, or date range |
|
|
130
|
+
|
|
131
|
+
### Channels (8 tools)
|
|
132
|
+
|
|
133
|
+
| Tool | Description |
|
|
134
|
+
| ----------------- | ----------------------------------------------------- |
|
|
135
|
+
| `list_channels` | List guild channels |
|
|
136
|
+
| `get_channel` | Get channel details |
|
|
137
|
+
| `create_channel` | Create a channel |
|
|
138
|
+
| `edit_channel` | Edit channel properties |
|
|
139
|
+
| `delete_channel` | Delete a channel |
|
|
140
|
+
| `purge_messages` | Bulk-delete messages (max 100, < 14 days old) |
|
|
141
|
+
| `set_slowmode` | Set or disable slowmode |
|
|
142
|
+
| `set_permissions` | Set channel permission overrides for a role or member |
|
|
143
|
+
|
|
144
|
+
### Moderation (4 tools)
|
|
145
|
+
|
|
146
|
+
| Tool | Description |
|
|
147
|
+
| ---------------- | -------------------------- |
|
|
148
|
+
| `kick_member` | Kick a member from a guild |
|
|
149
|
+
| `ban_member` | Ban a user from a guild |
|
|
150
|
+
| `unban_member` | Unban a user |
|
|
151
|
+
| `timeout_member` | Timeout (mute) a member |
|
|
152
|
+
|
|
153
|
+
### Roles (5 tools)
|
|
154
|
+
|
|
155
|
+
| Tool | Description |
|
|
156
|
+
| ------------- | ---------------------------------- |
|
|
157
|
+
| `list_roles` | List guild roles |
|
|
158
|
+
| `create_role` | Create a new role |
|
|
159
|
+
| `edit_role` | Edit role properties |
|
|
160
|
+
| `delete_role` | Delete a role |
|
|
150
161
|
| `assign_role` | Add or remove a role from a member |
|
|
151
162
|
|
|
152
|
-
### Webhooks
|
|
163
|
+
### Webhooks (6 tools)
|
|
153
164
|
|
|
154
|
-
| Tool
|
|
155
|
-
|
|
|
156
|
-
| `create_webhook`
|
|
157
|
-
| `get_webhook`
|
|
158
|
-
| `list_webhooks`
|
|
159
|
-
| `edit_webhook`
|
|
160
|
-
| `delete_webhook`
|
|
161
|
-
| `execute_webhook` | Send a message via webhook
|
|
165
|
+
| Tool | Description |
|
|
166
|
+
| ----------------- | ------------------------------------ |
|
|
167
|
+
| `create_webhook` | Create a webhook on a channel |
|
|
168
|
+
| `get_webhook` | Get webhook details |
|
|
169
|
+
| `list_webhooks` | List webhooks for a guild or channel |
|
|
170
|
+
| `edit_webhook` | Edit webhook properties |
|
|
171
|
+
| `delete_webhook` | Delete a webhook |
|
|
172
|
+
| `execute_webhook` | Send a message via webhook |
|
|
162
173
|
|
|
163
|
-
### Audit
|
|
174
|
+
### Audit (1 tool)
|
|
164
175
|
|
|
165
|
-
| Tool
|
|
166
|
-
|
|
|
176
|
+
| Tool | Description |
|
|
177
|
+
| ----------------- | ---------------------------------- |
|
|
167
178
|
| `query_audit_log` | Query guild audit log with filters |
|
|
168
179
|
|
|
169
|
-
###
|
|
180
|
+
### Guilds & Members (6 tools)
|
|
181
|
+
|
|
182
|
+
| Tool | Description |
|
|
183
|
+
| --------------- | ----------------------------------- |
|
|
184
|
+
| `list_guilds` | List bot's guilds |
|
|
185
|
+
| `get_guild` | Get guild details |
|
|
186
|
+
| `get_invites` | Get all active invites for a guild |
|
|
187
|
+
| `create_invite` | Create an invite link for a channel |
|
|
188
|
+
| `list_members` | List guild members |
|
|
189
|
+
| `get_member` | Get member details |
|
|
190
|
+
|
|
191
|
+
### Threads (3 tools)
|
|
192
|
+
|
|
193
|
+
| Tool | Description |
|
|
194
|
+
| ---------------- | -------------------------------------- |
|
|
195
|
+
| `create_thread` | Create a thread |
|
|
196
|
+
| `list_threads` | List active threads |
|
|
197
|
+
| `archive_thread` | Archive (and optionally lock) a thread |
|
|
170
198
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
|
174
|
-
|
|
|
175
|
-
| `list_members` | List guild members |
|
|
176
|
-
| `get_member` | Get member details |
|
|
177
|
-
| `create_thread` | Create a thread |
|
|
178
|
-
| `list_threads` | List active threads |
|
|
199
|
+
### System (1 tool)
|
|
200
|
+
|
|
201
|
+
| Tool | Description |
|
|
202
|
+
| -------------- | ------------------------ |
|
|
179
203
|
| `health_check` | Bot status + permissions |
|
|
180
204
|
|
|
205
|
+
## CLI
|
|
206
|
+
|
|
207
|
+
```
|
|
208
|
+
discord-ops Start MCP server (stdio transport)
|
|
209
|
+
discord-ops serve Start MCP server (HTTP/SSE transport)
|
|
210
|
+
discord-ops setup Interactive setup wizard
|
|
211
|
+
discord-ops health Run health check + permission audit
|
|
212
|
+
discord-ops --dry-run Simulate destructive operations
|
|
213
|
+
discord-ops --help Show help
|
|
214
|
+
discord-ops --version Show version
|
|
215
|
+
```
|
|
216
|
+
|
|
181
217
|
## Environment Variables
|
|
182
218
|
|
|
183
|
-
| Variable
|
|
184
|
-
|
|
|
185
|
-
| `DISCORD_TOKEN`
|
|
186
|
-
| `DISCORD_OPS_CONFIG`
|
|
187
|
-
| `DISCORD_OPS_LOG_LEVEL` | No
|
|
219
|
+
| Variable | Required | Description |
|
|
220
|
+
| ----------------------- | -------- | ------------------------------------------------------ |
|
|
221
|
+
| `DISCORD_TOKEN` | Yes | Discord bot token |
|
|
222
|
+
| `DISCORD_OPS_CONFIG` | No | Path to global config (default: `~/.discord-ops.json`) |
|
|
223
|
+
| `DISCORD_OPS_LOG_LEVEL` | No | `debug`, `info`, `warn`, `error` (default: `info`) |
|
|
224
|
+
| `DISCORD_OPS_DRY_RUN` | No | Enable dry-run mode (any truthy value) |
|
|
188
225
|
|
|
189
226
|
## Development
|
|
190
227
|
|
package/dist/cli/index.js
CHANGED
|
@@ -3,7 +3,9 @@ import { loadConfig } from "../config/index.js";
|
|
|
3
3
|
import { DiscordClient } from "../client.js";
|
|
4
4
|
import { createServer } from "../server.js";
|
|
5
5
|
import { startStdioTransport } from "../transport/stdio.js";
|
|
6
|
+
import { startHttpTransport } from "../transport/http.js";
|
|
6
7
|
import { logger, setLogLevel } from "../utils/logger.js";
|
|
8
|
+
import { runSetup } from "./setup.js";
|
|
7
9
|
async function main() {
|
|
8
10
|
const args = process.argv.slice(2);
|
|
9
11
|
// Handle --help
|
|
@@ -13,7 +15,7 @@ async function main() {
|
|
|
13
15
|
}
|
|
14
16
|
// Handle --version
|
|
15
17
|
if (args.includes("--version") || args.includes("-v")) {
|
|
16
|
-
console.log("discord-ops 0.
|
|
18
|
+
console.log("discord-ops 0.2.0");
|
|
17
19
|
process.exit(0);
|
|
18
20
|
}
|
|
19
21
|
// Handle health subcommand
|
|
@@ -21,6 +23,14 @@ async function main() {
|
|
|
21
23
|
await runHealthCheck();
|
|
22
24
|
return;
|
|
23
25
|
}
|
|
26
|
+
// Handle setup subcommand
|
|
27
|
+
if (args[0] === "setup") {
|
|
28
|
+
await runSetup();
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
// Parse global flags
|
|
32
|
+
const dryRun = args.includes("--dry-run");
|
|
33
|
+
const serverOptions = { dryRun };
|
|
24
34
|
// Configure log level
|
|
25
35
|
const logLevel = process.env.DISCORD_OPS_LOG_LEVEL;
|
|
26
36
|
if (logLevel)
|
|
@@ -30,8 +40,27 @@ async function main() {
|
|
|
30
40
|
// Create lazy Discord client
|
|
31
41
|
const discord = new DiscordClient(config.defaultToken);
|
|
32
42
|
// Create MCP server with tool context
|
|
33
|
-
const server = createServer({ discord, config });
|
|
34
|
-
//
|
|
43
|
+
const server = createServer({ discord, config }, serverOptions);
|
|
44
|
+
// Handle serve subcommand (HTTP/SSE transport)
|
|
45
|
+
if (args[0] === "serve") {
|
|
46
|
+
const portIndex = args.indexOf("--port");
|
|
47
|
+
const port = portIndex !== -1 ? parseInt(args[portIndex + 1], 10) : undefined;
|
|
48
|
+
if (portIndex !== -1 && (!port || isNaN(port))) {
|
|
49
|
+
console.error("Invalid --port value");
|
|
50
|
+
process.exit(1);
|
|
51
|
+
}
|
|
52
|
+
await startHttpTransport(server, { port });
|
|
53
|
+
// Graceful shutdown
|
|
54
|
+
const shutdown = async () => {
|
|
55
|
+
logger.info("Shutting down...");
|
|
56
|
+
await discord.destroy();
|
|
57
|
+
process.exit(0);
|
|
58
|
+
};
|
|
59
|
+
process.on("SIGINT", shutdown);
|
|
60
|
+
process.on("SIGTERM", shutdown);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
// Default: start stdio transport
|
|
35
64
|
await startStdioTransport(server);
|
|
36
65
|
// Graceful shutdown
|
|
37
66
|
const shutdown = async () => {
|
|
@@ -91,15 +120,23 @@ discord-ops - Agency-grade Discord MCP server
|
|
|
91
120
|
|
|
92
121
|
USAGE:
|
|
93
122
|
discord-ops Start MCP server (stdio transport)
|
|
123
|
+
discord-ops serve Start MCP server (HTTP/SSE transport)
|
|
124
|
+
discord-ops setup Interactive setup wizard
|
|
94
125
|
discord-ops health Run health check + permission audit
|
|
95
126
|
discord-ops --help Show this help
|
|
96
127
|
discord-ops --version Show version
|
|
97
128
|
|
|
129
|
+
OPTIONS:
|
|
130
|
+
--dry-run Simulate destructive operations without calling Discord API
|
|
131
|
+
--port <port> HTTP port for serve mode (default: 3000)
|
|
132
|
+
|
|
98
133
|
ENVIRONMENT:
|
|
99
134
|
DISCORD_TOKEN Default Discord bot token (required)
|
|
100
135
|
<PROJECT>_TOKEN Per-project bot tokens (configured via token_env in config)
|
|
101
136
|
DISCORD_OPS_CONFIG Path to global config file (default: ~/.discord-ops.json)
|
|
102
137
|
DISCORD_OPS_LOG_LEVEL Log level: debug, info, warn, error (default: info)
|
|
138
|
+
DISCORD_OPS_DRY_RUN Enable dry-run mode (any truthy value)
|
|
139
|
+
DRY_RUN Enable dry-run mode (any truthy value, alias)
|
|
103
140
|
|
|
104
141
|
CONFIG FILES:
|
|
105
142
|
~/.discord-ops.json Global project routing config
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interactive setup wizard for discord-ops configuration.
|
|
3
|
+
* Walks users through bot token verification, guild selection,
|
|
4
|
+
* channel aliasing, and notification routing.
|
|
5
|
+
*/
|
|
6
|
+
export declare function runSetup(): Promise<void>;
|
|
7
|
+
//# sourceMappingURL=setup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/cli/setup.ts"],"names":[],"mappings":"AA2CA;;;;GAIG;AACH,wBAAsB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,CAqH9C"}
|