claude-yolo 1.6.4 → 1.9.1

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.
Files changed (35) hide show
  1. package/.claude/settings.local.json +6 -0
  2. package/.cursor/mcp.json +0 -0
  3. package/.cursor/rules/cursor-tools.mdc +161 -0
  4. package/.cursorindexingignore +3 -0
  5. package/.mcp.json +13 -0
  6. package/.specstory/history/2025-02-26_13-24-checking-recent-tweets.md +124 -0
  7. package/.specstory/history/2025-03-10_15-17-sending-a-yo-to-my-server.md +32 -0
  8. package/.specstory/history/2025-03-10_17-20-sending-a-simple-yo-message.md +104 -0
  9. package/.specstory/history/2025-03-12_08-37-documentation-retrieval-for-repomix-repo.md +32 -0
  10. package/.specstory/history/2025-03-12_09-23-interactive-browser-session-setup.md +7864 -0
  11. package/.specstory/history/2025-03-12_17-16-chat-name-generation.md +430 -0
  12. package/.specstory/history/2025-03-13_01-22-python-pi-calculation-and-notification.md +254 -0
  13. package/.specstory/history/2025-03-13_22-46-server-update-for-eric.md +35 -0
  14. package/.specstory/history/2025-03-13_23-02-sending-a-simple-yo-message.md +18 -0
  15. package/.specstory/history/2025-03-13_23-10-casual-greetings.md +80 -0
  16. package/.specstory/history/2025-03-14_13-07-casual-greetings-sending-a-yo.md +44 -0
  17. package/.specstory/history/2025-03-14_13-28-casual-greetings.md +924 -0
  18. package/.specstory/history/2025-03-14_13-37-sending-a-yo-message.md +34 -0
  19. package/.specstory/history/2025-03-14_13-48-casual-greetings.md +76 -0
  20. package/.specstory/history/2025-03-14_13-53-casual-greetings.md +44 -0
  21. package/.specstory/history/2025-03-14_13-57-casual-greetings.md +64 -0
  22. package/.specstory/history/2025-03-14_21-41-simple-greeting-send-a-yo.md +34 -0
  23. package/.specstory/history/2025-03-15_13-44-casual-greeting-request.md +26 -0
  24. package/.specstory/history/2025-03-16_21-17-using-curl-to-fetch-url-content.md +3728 -0
  25. package/.specstory/history/2025-10-25_08-17-create-a-new-repository-with-gh-cli.md +173 -0
  26. package/.specstory/history/casual-greetings-1.md +32 -0
  27. package/AGENTS.md +1 -0
  28. package/README.md +104 -24
  29. package/bin/cl +113 -0
  30. package/bin/claude-yolo.js +194 -11
  31. package/demo.txt +1 -0
  32. package/package.json +14 -10
  33. package/test.txt +1 -0
  34. package/yolo-test.txt +1 -0
  35. package/make-yolo.sh +0 -74
@@ -0,0 +1,924 @@
1
+ <!-- Generated by SpecStory -->
2
+
3
+ # Casual Greetings (2025-03-14 14:28:53)
4
+
5
+ _**User**_
6
+
7
+ Send me a yo
8
+
9
+ ---
10
+
11
+ _**Assistant**_
12
+
13
+ Let me send a "yo" message using the MCP protocol.
14
+
15
+ ---
16
+
17
+
18
+
19
+ ---
20
+
21
+ I apologize, but it seems there was an error with the MCP yo protocol. Let me try using cursor-tools instead, which is available in this environment.
22
+
23
+ ---
24
+
25
+ ```bash
26
+ cursor-tools mcp run "send a yo message"
27
+ ```
28
+
29
+ ```
30
+ Checking for local .env file at: /Users/andy/repos/claude-yolo/.cursor-tools.env
31
+ Checking for home .env file at: /Users/andy/.cursor-tools/.env
32
+ Home .env file found, loading...
33
+ Fetching MCP servers from marketplace...
34
+ Using Google Generative Language provider
35
+ https://raw.githubusercontent.com/ykhli/mcp-send-email/main/README.md
36
+ Attempting to fetch README from: https://raw.githubusercontent.com/ykhli/mcp-sen
37
+ d-email/main/README.md
38
+ https://raw.githubusercontent.com/pashpashpash/mcp-discord/main/README.md
39
+ Attempting to fetch README from: https://raw.githubusercontent.com/pashpashpash/
40
+ mcp-discord/main/README.md
41
+ https://raw.githubusercontent.com/modelcontextprotocol/servers/main/src/slack/RE
42
+ ADME.md
43
+ Attempting to fetch README from: https://raw.githubusercontent.com/modelcontextp
44
+ rotocol/servers/main/src/sla
45
+ ck/README.md
46
+ Found 3 matching MCP server(s):
47
+ - Email Sender
48
+ - Discord
49
+ - Slack
50
+ Using Google Generative Language provider
51
+ Using Google Generative Language provider
52
+ Using Google Generative Language provider
53
+ uvxPath /opt/homebrew/bin/uvx
54
+ Error generating MCP config: MCPConfigError: Required environment variable "DISC
55
+ ORD_TOKEN" is not set
56
+ at populateEnv (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/inde
57
+ x.mjs:3236:225)
58
+ at B3.generateMCPConfig (file:///opt/homebrew/lib/node_modules/cursor-tools/
59
+ dist/index.mjs:3285:2067)
60
+ at async file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index.mjs:3
61
+ 291:58
62
+ at async Promise.all (index 1)
63
+ at async B3.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
64
+ /index.mjs:3289:13)
65
+ at async D2.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
66
+ /index.mjs:3323:565)
67
+ at async main (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index
68
+ .mjs:3655:1024)
69
+ npxPath /opt/homebrew/bin/npx
70
+ Error generating MCP config: MCPConfigError: Required environment variable "RESE
71
+ ND_API_KEY" is not set
72
+ at populateEnv (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/inde
73
+ x.mjs:3236:225)
74
+ at B3.generateMCPConfig (file:///opt/homebrew/lib/node_modules/cursor-tools/
75
+ dist/index.mjs:3285:2067)
76
+ at process.processTicksAndRejections (node:internal/process/task_queues:105:
77
+ 5)
78
+ at async file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index.mjs:3
79
+ 291:58
80
+ at async Promise.all (index 0)
81
+ at async B3.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
82
+ /index.mjs:3289:13)
83
+ at async D2.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
84
+ /index.mjs:3323:565)
85
+ at async main (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index
86
+ .mjs:3655:1024)
87
+ Error generating MCP config: MCPConfigError: Required environment variable "SLAC
88
+ K_BOT_TOKEN" is not set
89
+ at populateEnv (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/inde
90
+ x.mjs:3236:225)
91
+ at B3.generateMCPConfig (file:///opt/homebrew/lib/node_modules/cursor-tools/
92
+ dist/index.mjs:3285:2067)
93
+ at process.processTicksAndRejections (node:internal/process/task_queues:105:
94
+ 5)
95
+ at async file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index.mjs:3
96
+ 291:58
97
+ at async Promise.all (index 2)
98
+ at async B3.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
99
+ /index.mjs:3289:13)
100
+ at async D2.execute (file:///opt/homebrew/lib/node_modules/cursor-tools/dist
101
+ /index.mjs:3323:565)
102
+ at async main (file:///opt/homebrew/lib/node_modules/cursor-tools/dist/index
103
+ .mjs:3655:1024)
104
+ Email Sender:
105
+ Attempting to initialize Email Sender...
106
+
107
+ Email Sender: Error generating arguments for Email Sender: MCPConfigError: Requi
108
+ red environment variable "RE
109
+ SEND_API_KEY" is not set
110
+
111
+ Discord:
112
+ Attempting to initialize Discord...
113
+
114
+ Discord: Error generating arguments for Discord: MCPConfigError: Required enviro
115
+ nment variable "DISCORD_TOKE
116
+ N" is not set
117
+
118
+ Slack:
119
+ Attempting to initialize Slack...
120
+
121
+ Slack: Error generating arguments for Slack: MCPConfigError: Required environmen
122
+ t variable "SLACK_BOT_TOKEN"
123
+ is not set
124
+
125
+ Error: Failed to initialize any MCP servers after 5 attempts each.
126
+
127
+ Server READMEs:
128
+
129
+ === Email Sender README ===
130
+ # Email sending MCP 💌
131
+
132
+ [![smithery badge](https://smithery.ai/badge/@ykhli/mcp-send-email)](https://smi
133
+ thery.ai/server/@ykhli/mcp-s
134
+ end-email)
135
+
136
+ This is a simple MCP server that sends emails using Resend's API. Why? Now you c
137
+ an let Cursor or Claude Desk
138
+ top compose emails for you and send it right away without having to copy and pas
139
+ te the email content.
140
+ Built with:
141
+
142
+ - [Resend](https://resend.com/)
143
+ - [Anthropic MCP](https://docs.anthropic.com/en/docs/agents-and-tools/mcp)
144
+ - [Cursor](https://cursor.so/)
145
+
146
+ **DEMO**
147
+
148
+ https://github.com/user-attachments/assets/8c05cbf0-1664-4b3b-afb1-663b46af3464
149
+
150
+ **Cursor**
151
+
152
+ 1. First, you need to authorize Resend to send emails from your domain or email.
153
+ Follow the steps [here](htt
154
+ ps://resend.com/docs/send-with-nodejs) to set that up and get a Resend API key.
155
+ 2. Clone this project locally. Edit index.ts and rep
156
+ lace me@yoko.dev to your own email to send emails from
157
+ 3. Run `npm install`, `npm run build` under the project dir. You should now see
158
+ a /build/index.js generated
159
+ - this is the MCP server script!
160
+
161
+ Then go to Cursor Settings -> MCP -> Add new MCP server
162
+
163
+ - Name = [choose your own name]
164
+ - Type = command
165
+ - Command: `node ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js --key=YOUR_RESEND_AP
166
+ I_KEY --sender=OPTIONAL_SEND
167
+ ER_EMAIL_ADDRESS --reply-to=OPTIONAL_REPLY_TO_EMAIL_ADDRESS_ONE --reply-to=OPTIO
168
+ NAL_REPLY_TO_EMAIL_ADDRESS_TWO`
169
+
170
+ You can get Resend API key here: https://resend.com/
171
+
172
+ Now you can test out sending emails by going to email.md, replace the to: email
173
+ address, select all in email
174
+ md, and hit cmd+l. You can now tell cursor to "send this as an email" in the ch
175
+ at. Make sure Cursor chat is in Agent mode by selecting "Agent" on lower left si
176
+ de dropdown
177
+ <img width="441" alt="Screenshot 2025-02-25 at 9 13 05 AM" src="https://github.c
178
+ om/user-attachments/assets/b
179
+ 07e9cbf-42d8-4910-8e90-3761d8d3bc06" />
180
+
181
+ **Claude desktop**
182
+
183
+ Same set up as above, and then add the following MCP config
184
+
185
+ ```
186
+ {
187
+ "mcpServers": {
188
+ "resend": {
189
+ "command": "node",
190
+ "args": ["ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js"],
191
+ "env": {
192
+ "RESEND_API_KEY": [YOUR_API_KEY],
193
+ "SENDER_EMAIL_ADDRESS": [OPTIONAL_SENDER_EMAIL_ADDRESS],
194
+ "REPLY_TO_EMAIL_ADDRESSES": [OPTIONAL_REPLY_TO_EMAIL_ADDRESSES_COMMA_DEL
195
+ IMITED]
196
+ }
197
+ }
198
+ }
199
+ }
200
+ ```
201
+
202
+ **Develop**
203
+
204
+ `npm install`
205
+ `npm run build`
206
+ === End of Email Sender README ===
207
+
208
+
209
+ === Discord README ===
210
+ # Discord MCP Server
211
+
212
+ A Model Context Protocol (MCP) server that provides Discord integration capabili
213
+ ties to MCP clients like Cla
214
+ ude Desktop.
215
+
216
+ <a href="https://glama.ai/mcp/servers/wvwjgcnppa"><img width="380" height="200"
217
+ src="https://glama.ai/mcp/se
218
+ rvers/wvwjgcnppa/badge" alt="mcp-discord MCP server" /></a>
219
+
220
+ ## Features
221
+
222
+ ### Server Information
223
+ - `get_server_info`: Get detailed server information
224
+ - `list_members`: List server members and their roles
225
+
226
+ ### Message Management
227
+ - `send_message`: Send a message to a channel
228
+ - `read_messages`: Read recent message history
229
+ - `add_reaction`: Add a reaction to a message
230
+ - `add_multiple_reactions`: Add multiple reactions to a message
231
+ - `remove_reaction`: Remove a reaction from a message
232
+ - `moderate_message`: Delete messages and timeout users
233
+
234
+ ### Channel Management
235
+ - `create_text_channel`: Create a new text channel
236
+ - `delete_channel`: Delete an existing channel
237
+
238
+ ### Role Management
239
+ - `add_role`: Add a role to a user
240
+ - `remove_role`: Remove a role from a user
241
+
242
+ ### Webhook Management
243
+ - `create_webhook`: Create a new webhook
244
+ - `list_webhooks`: List webhooks in a channel
245
+ - `send_webhook_message`: Send messages via webhook
246
+ - `modify_webhook`: Update webhook settings
247
+ - `delete_webhook`: Delete a webhook
248
+
249
+ ## Prerequisites
250
+
251
+ 1. **Set up your Discord bot**:
252
+ - Create a new application at [Discord Developer Portal](https://discord.com/
253
+ developers/applications)
254
+ - Create a bot and copy the token
255
+ - Enable required privileged intents:
256
+ - MESSAGE CONTENT INTENT
257
+ - PRESENCE INTENT
258
+ - SERVER MEMBERS INTENT
259
+ - Invite the bot to your server using OAuth2 URL Generator
260
+
261
+ 2. **Python Requirements**:
262
+ - Python 3.8 or higher
263
+ - pip (Python package installer)
264
+
265
+ ## Installation
266
+
267
+ 1. **Clone the Repository**:
268
+ ```bash
269
+ git clone https://github.com/pashpashpash/mcp-discord.git
270
+ cd mcp-discord
271
+ ```
272
+
273
+ 2. **Create and Activate Virtual Environment**:
274
+ ```bash
275
+ # On Windows
276
+ python -m venv venv
277
+ venv\Scripts\activate
278
+
279
+ # On macOS/Linux
280
+ python -m venv venv
281
+ source venv/bin/activate
282
+ ```
283
+
284
+ 3. **Install Dependencies**:
285
+ ```bash
286
+ pip install -e .
287
+ ```
288
+ Note: If using Python 3.13+, also install audioop: `pip install audioop-lts`
289
+
290
+ 4. **Configure Claude Desktop**:
291
+
292
+ Add this to your claude_desktop_config.json:
293
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
294
+ - Windows: `%APPDATA%/Claude/claude_desktop_config.json`
295
+
296
+ ```json
297
+ {
298
+ "mcpServers": {
299
+ "discord": {
300
+ "command": "python",
301
+ "args": ["-m", "mcp_discord"],
302
+ "cwd": "path/to/mcp-discord",
303
+ "env": {
304
+ "DISCORD_TOKEN": "your_bot_token"
305
+ }
306
+ }
307
+ }
308
+ }
309
+ ```
310
+ Note:
311
+ - Replace "path/to/mcp-discord" with the actual path to your cloned repository
312
+ - Replace "your_bot_token" with your Discord bot token
313
+
314
+ ## Debugging
315
+
316
+ If you run into issues, check Claude Desktop's MCP logs:
317
+ ```bash
318
+ tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
319
+ ```
320
+
321
+ Common issues:
322
+ 1. **Token Errors**:
323
+ - Verify your Discord bot token is correct
324
+ - Check that all required intents are enabled
325
+
326
+ 2. **Permission Issues**:
327
+ - Ensure the bot has proper permissions in your Discord server
328
+ - Verify the bot's role hierarchy for role management commands
329
+
330
+ 3. **Installation Issues**:
331
+ - Make sure you're using the correct Python version
332
+ - Try recreating the virtual environment
333
+ - Check that all dependencies are installed correctly
334
+
335
+ ## License
336
+
337
+ MIT License - see LICENSE file for details.
338
+
339
+ ---
340
+ Note: This is a fork of the [original mcp-discord repository](https://github.com
341
+ /hanweg/mcp-discord).
342
+ === End of Discord README ===
343
+
344
+
345
+ === Slack README ===
346
+ # Slack MCP Server
347
+
348
+ MCP Server for the Slack API, enabling Claude to interact with Slack workspaces.
349
+
350
+ ## Tools
351
+
352
+ 1. `slack_list_channels`
353
+ - List public channels in the workspace
354
+ - Optional inputs:
355
+ - `limit` (number, default: 100, max: 200): Maximum number of channels to r
356
+ eturn
357
+ - `cursor` (string): Pagination cursor for next page
358
+ - Returns: List of channels with their IDs and information
359
+
360
+ 2. `slack_post_message`
361
+ - Post a new message to a Slack channel
362
+ - Required inputs:
363
+ - `channel_id` (string): The ID of the channel to post to
364
+ - `text` (string): The message text to post
365
+ - Returns: Message posting confirmation and timestamp
366
+
367
+ 3. `slack_reply_to_thread`
368
+ - Reply to a specific message thread
369
+ - Required inputs:
370
+ - `channel_id` (string): The channel containing the thread
371
+ - `thread_ts` (string): Timestamp of the parent message
372
+ - `text` (string): The reply text
373
+ - Returns: Reply confirmation and timestamp
374
+
375
+ 4. `slack_add_reaction`
376
+ - Add an emoji reaction to a message
377
+ - Required inputs:
378
+ - `channel_id` (string): The channel containing the message
379
+ - `timestamp` (string): Message timestamp to react to
380
+ - `reaction` (string): Emoji name without colons
381
+ - Returns: Reaction confirmation
382
+
383
+ 5. `slack_get_channel_history`
384
+ - Get recent messages from a channel
385
+ - Required inputs:
386
+ - `channel_id` (string): The channel ID
387
+ - Optional inputs:
388
+ - `limit` (number, default: 10): Number of messages to retrieve
389
+ - Returns: List of messages with their content and metadata
390
+
391
+ 6. `slack_get_thread_replies`
392
+ - Get all replies in a message thread
393
+ - Required inputs:
394
+ - `channel_id` (string): The channel containing the thread
395
+ - `thread_ts` (string): Timestamp of the parent message
396
+ - Returns: List of replies with their content and metadata
397
+
398
+
399
+ 7. `slack_get_users`
400
+ - Get list of workspace users with basic profile information
401
+ - Optional inputs:
402
+ - `cursor` (string): Pagination cursor for next page
403
+ - `limit` (number, default: 100, max: 200): Maximum users to return
404
+ - Returns: List of users with their basic profiles
405
+
406
+ 8. `slack_get_user_profile`
407
+ - Get detailed profile information for a specific user
408
+ - Required inputs:
409
+ - `user_id` (string): The user's ID
410
+ - Returns: Detailed user profile information
411
+
412
+ ## Setup
413
+
414
+ 1. Create a Slack App:
415
+ - Visit the [Slack Apps page](https://api.slack.com/apps)
416
+ - Click "Create New App"
417
+ - Choose "From scratch"
418
+ - Name your app and select your workspace
419
+
420
+ 2. Configure Bot Token Scopes:
421
+ Navigate to "OAuth & Permissions" and add these scopes:
422
+ - `channels:history` - View messages and other content in public channels
423
+ - `channels:read` - View basic channel information
424
+ - `chat:write` - Send messages as the app
425
+ - `reactions:write` - Add emoji reactions to messages
426
+ - `users:read` - View users and their basic information
427
+
428
+ 4. Install App to Workspace:
429
+ - Click "Install to Workspace" and authorize the app
430
+ - Save the "Bot User OAuth Token" that starts with `xoxb-`
431
+
432
+ 5. Get your Team ID (starts with a `T`) by following [this guidance](https://sla
433
+ ck.com/help/articles/2217693
434
+ 28-Locate-your-Slack-URL-or-ID#find-your-workspace-or-org-id)
435
+
436
+ ### Usage with Claude Desktop
437
+
438
+ Add the following to your `claude_desktop_config.json`:
439
+
440
+ #### npx
441
+
442
+ ```json
443
+ {
444
+ "mcpServers": {
445
+ "slack": {
446
+ "command": "npx",
447
+ "args": [
448
+ "-y",
449
+ "@modelcontextprotocol/server-slack"
450
+ ],
451
+ "env": {
452
+ "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
453
+ "SLACK_TEAM_ID": "T01234567"
454
+ }
455
+ }
456
+ }
457
+ }
458
+ ```
459
+
460
+ #### docker
461
+
462
+ ```json
463
+ {
464
+ "mcpServers": {
465
+ "slack": {
466
+ "command": "docker",
467
+ "args": [
468
+ "run",
469
+ "-i",
470
+ "--rm",
471
+ "-e",
472
+ "SLACK_BOT_TOKEN",
473
+ "-e",
474
+ "SLACK_TEAM_ID",
475
+ "mcp/slack"
476
+ ],
477
+ "env": {
478
+ "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
479
+ "SLACK_TEAM_ID": "T01234567"
480
+ }
481
+ }
482
+ }
483
+ }
484
+ ```
485
+
486
+ ### Troubleshooting
487
+
488
+ If you encounter permission errors, verify that:
489
+ 1. All required scopes are added to your Slack app
490
+ 2. The app is properly installed to your workspace
491
+ 3. The tokens and workspace ID are correctly copied to your configuration
492
+ 4. The app has been added to the channels it needs to access
493
+
494
+ ## Build
495
+
496
+ Docker build:
497
+
498
+ ```bash
499
+ docker build -t mcp/slack -f src/slack/Dockerfile .
500
+ ```
501
+
502
+ ## License
503
+
504
+ This MCP server is licensed under the MIT License. This means you are free to us
505
+ e, modify, and distribute th
506
+ e software, subject to the terms and conditions of the MIT License. For more det
507
+ ails, please see the LICENSE file in the project repository.
508
+ === End of Slack README
509
+ ===
510
+
511
+
512
+ Failed servers and their errors:
513
+ - Email Sender: MCPConfigError: Required environment variable "RESEND_API_KEY" i
514
+ s not set
515
+ - Discord: MCPConfigError: Required environment variable "DISCORD_TOKEN" is not
516
+ set
517
+ - Slack: MCPConfigError: Required environment variable "SLACK_BOT_TOKEN" is not
518
+ set
519
+ undefined
520
+ Error: Failed to initialize any MCP servers after 5 attempts each.
521
+
522
+ Server READMEs:
523
+
524
+ === Email Sender README ===
525
+ # Email sending MCP 💌
526
+
527
+ [![smithery badge](https://smithery.ai/badge/@ykhli/mcp-send-email)](https://smi
528
+ thery.ai/server/@ykhli/mcp-s
529
+ end-email)
530
+
531
+ This is a simple MCP server that sends emails using Resend's API. Why? Now you c
532
+ an let Cursor or Claude Desk
533
+ top compose emails for you and send it right away without having to copy and pas
534
+ te the email content.
535
+ Built with:
536
+
537
+ - [Resend](https://resend.com/)
538
+ - [Anthropic MCP](https://docs.anthropic.com/en/docs/agents-and-tools/mcp)
539
+ - [Cursor](https://cursor.so/)
540
+
541
+ **DEMO**
542
+
543
+ https://github.com/user-attachments/assets/8c05cbf0-1664-4b3b-afb1-663b46af3464
544
+
545
+ **Cursor**
546
+
547
+ 1. First, you need to authorize Resend to send emails from your domain or email.
548
+ Follow the steps [here](htt
549
+ ps://resend.com/docs/send-with-nodejs) to set that up and get a Resend API key.
550
+ 2. Clone this project locally. Edit index.ts and rep
551
+ lace me@yoko.dev to your own email to send emails from
552
+ 3. Run `npm install`, `npm run build` under the project dir. You should now see
553
+ a /build/index.js generated
554
+ - this is the MCP server script!
555
+
556
+ Then go to Cursor Settings -> MCP -> Add new MCP server
557
+
558
+ - Name = [choose your own name]
559
+ - Type = command
560
+ - Command: `node ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js --key=YOUR_RESEND_AP
561
+ I_KEY --sender=OPTIONAL_SEND
562
+ ER_EMAIL_ADDRESS --reply-to=OPTIONAL_REPLY_TO_EMAIL_ADDRESS_ONE --reply-to=OPTIO
563
+ NAL_REPLY_TO_EMAIL_ADDRESS_TWO`
564
+
565
+ You can get Resend API key here: https://resend.com/
566
+
567
+ Now you can test out sending emails by going to email.md, replace the to: email
568
+ address, select all in email
569
+ md, and hit cmd+l. You can now tell cursor to "send this as an email" in the ch
570
+ at. Make sure Cursor chat is in Agent mode by selecting "Agent" on lower left si
571
+ de dropdown
572
+ <img width="441" alt="Screenshot 2025-02-25 at 9 13 05 AM" src="https://github.c
573
+ om/user-attachments/assets/b
574
+ 07e9cbf-42d8-4910-8e90-3761d8d3bc06" />
575
+
576
+ **Claude desktop**
577
+
578
+ Same set up as above, and then add the following MCP config
579
+
580
+ ```
581
+ {
582
+ "mcpServers": {
583
+ "resend": {
584
+ "command": "node",
585
+ "args": ["ABSOLUTE_PATH_TO_MCP_SERVER/build/index.js"],
586
+ "env": {
587
+ "RESEND_API_KEY": [YOUR_API_KEY],
588
+ "SENDER_EMAIL_ADDRESS": [OPTIONAL_SENDER_EMAIL_ADDRESS],
589
+ "REPLY_TO_EMAIL_ADDRESSES": [OPTIONAL_REPLY_TO_EMAIL_ADDRESSES_COMMA_DEL
590
+ IMITED]
591
+ }
592
+ }
593
+ }
594
+ }
595
+ ```
596
+
597
+ **Develop**
598
+
599
+ `npm install`
600
+ `npm run build`
601
+ === End of Email Sender README ===
602
+
603
+
604
+ === Discord README ===
605
+ # Discord MCP Server
606
+
607
+ A Model Context Protocol (MCP) server that provides Discord integration capabili
608
+ ties to MCP clients like Cla
609
+ ude Desktop.
610
+
611
+ <a href="https://glama.ai/mcp/servers/wvwjgcnppa"><img width="380" height="200"
612
+ src="https://glama.ai/mcp/se
613
+ rvers/wvwjgcnppa/badge" alt="mcp-discord MCP server" /></a>
614
+
615
+ ## Features
616
+
617
+ ### Server Information
618
+ - `get_server_info`: Get detailed server information
619
+ - `list_members`: List server members and their roles
620
+
621
+ ### Message Management
622
+ - `send_message`: Send a message to a channel
623
+ - `read_messages`: Read recent message history
624
+ - `add_reaction`: Add a reaction to a message
625
+ - `add_multiple_reactions`: Add multiple reactions to a message
626
+ - `remove_reaction`: Remove a reaction from a message
627
+ - `moderate_message`: Delete messages and timeout users
628
+
629
+ ### Channel Management
630
+ - `create_text_channel`: Create a new text channel
631
+ - `delete_channel`: Delete an existing channel
632
+
633
+ ### Role Management
634
+ - `add_role`: Add a role to a user
635
+ - `remove_role`: Remove a role from a user
636
+
637
+ ### Webhook Management
638
+ - `create_webhook`: Create a new webhook
639
+ - `list_webhooks`: List webhooks in a channel
640
+ - `send_webhook_message`: Send messages via webhook
641
+ - `modify_webhook`: Update webhook settings
642
+ - `delete_webhook`: Delete a webhook
643
+
644
+ ## Prerequisites
645
+
646
+ 1. **Set up your Discord bot**:
647
+ - Create a new application at [Discord Developer Portal](https://discord.com/
648
+ developers/applications)
649
+ - Create a bot and copy the token
650
+ - Enable required privileged intents:
651
+ - MESSAGE CONTENT INTENT
652
+ - PRESENCE INTENT
653
+ - SERVER MEMBERS INTENT
654
+ - Invite the bot to your server using OAuth2 URL Generator
655
+
656
+ 2. **Python Requirements**:
657
+ - Python 3.8 or higher
658
+ - pip (Python package installer)
659
+
660
+ ## Installation
661
+
662
+ 1. **Clone the Repository**:
663
+ ```bash
664
+ git clone https://github.com/pashpashpash/mcp-discord.git
665
+ cd mcp-discord
666
+ ```
667
+
668
+ 2. **Create and Activate Virtual Environment**:
669
+ ```bash
670
+ # On Windows
671
+ python -m venv venv
672
+ venv\Scripts\activate
673
+
674
+ # On macOS/Linux
675
+ python -m venv venv
676
+ source venv/bin/activate
677
+ ```
678
+
679
+ 3. **Install Dependencies**:
680
+ ```bash
681
+ pip install -e .
682
+ ```
683
+ Note: If using Python 3.13+, also install audioop: `pip install audioop-lts`
684
+
685
+ 4. **Configure Claude Desktop**:
686
+
687
+ Add this to your claude_desktop_config.json:
688
+ - macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
689
+ - Windows: `%APPDATA%/Claude/claude_desktop_config.json`
690
+
691
+ ```json
692
+ {
693
+ "mcpServers": {
694
+ "discord": {
695
+ "command": "python",
696
+ "args": ["-m", "mcp_discord"],
697
+ "cwd": "path/to/mcp-discord",
698
+ "env": {
699
+ "DISCORD_TOKEN": "your_bot_token"
700
+ }
701
+ }
702
+ }
703
+ }
704
+ ```
705
+ Note:
706
+ - Replace "path/to/mcp-discord" with the actual path to your cloned repository
707
+ - Replace "your_bot_token" with your Discord bot token
708
+
709
+ ## Debugging
710
+
711
+ If you run into issues, check Claude Desktop's MCP logs:
712
+ ```bash
713
+ tail -n 20 -f ~/Library/Logs/Claude/mcp*.log
714
+ ```
715
+
716
+ Common issues:
717
+ 1. **Token Errors**:
718
+ - Verify your Discord bot token is correct
719
+ - Check that all required intents are enabled
720
+
721
+ 2. **Permission Issues**:
722
+ - Ensure the bot has proper permissions in your Discord server
723
+ - Verify the bot's role hierarchy for role management commands
724
+
725
+ 3. **Installation Issues**:
726
+ - Make sure you're using the correct Python version
727
+ - Try recreating the virtual environment
728
+ - Check that all dependencies are installed correctly
729
+
730
+ ## License
731
+
732
+ MIT License - see LICENSE file for details.
733
+
734
+ ---
735
+ Note: This is a fork of the [original mcp-discord repository](https://github.com
736
+ /hanweg/mcp-discord).
737
+ === End of Discord README ===
738
+
739
+
740
+ === Slack README ===
741
+ # Slack MCP Server
742
+
743
+ MCP Server for the Slack API, enabling Claude to interact with Slack workspaces.
744
+
745
+ ## Tools
746
+
747
+ 1. `slack_list_channels`
748
+ - List public channels in the workspace
749
+ - Optional inputs:
750
+ - `limit` (number, default: 100, max: 200): Maximum number of channels to r
751
+ eturn
752
+ - `cursor` (string): Pagination cursor for next page
753
+ - Returns: List of channels with their IDs and information
754
+
755
+ 2. `slack_post_message`
756
+ - Post a new message to a Slack channel
757
+ - Required inputs:
758
+ - `channel_id` (string): The ID of the channel to post to
759
+ - `text` (string): The message text to post
760
+ - Returns: Message posting confirmation and timestamp
761
+
762
+ 3. `slack_reply_to_thread`
763
+ - Reply to a specific message thread
764
+ - Required inputs:
765
+ - `channel_id` (string): The channel containing the thread
766
+ - `thread_ts` (string): Timestamp of the parent message
767
+ - `text` (string): The reply text
768
+ - Returns: Reply confirmation and timestamp
769
+
770
+ 4. `slack_add_reaction`
771
+ - Add an emoji reaction to a message
772
+ - Required inputs:
773
+ - `channel_id` (string): The channel containing the message
774
+ - `timestamp` (string): Message timestamp to react to
775
+ - `reaction` (string): Emoji name without colons
776
+ - Returns: Reaction confirmation
777
+
778
+ 5. `slack_get_channel_history`
779
+ - Get recent messages from a channel
780
+ - Required inputs:
781
+ - `channel_id` (string): The channel ID
782
+ - Optional inputs:
783
+ - `limit` (number, default: 10): Number of messages to retrieve
784
+ - Returns: List of messages with their content and metadata
785
+
786
+ 6. `slack_get_thread_replies`
787
+ - Get all replies in a message thread
788
+ - Required inputs:
789
+ - `channel_id` (string): The channel containing the thread
790
+ - `thread_ts` (string): Timestamp of the parent message
791
+ - Returns: List of replies with their content and metadata
792
+
793
+
794
+ 7. `slack_get_users`
795
+ - Get list of workspace users with basic profile information
796
+ - Optional inputs:
797
+ - `cursor` (string): Pagination cursor for next page
798
+ - `limit` (number, default: 100, max: 200): Maximum users to return
799
+ - Returns: List of users with their basic profiles
800
+
801
+ 8. `slack_get_user_profile`
802
+ - Get detailed profile information for a specific user
803
+ - Required inputs:
804
+ - `user_id` (string): The user's ID
805
+ - Returns: Detailed user profile information
806
+
807
+ ## Setup
808
+
809
+ 1. Create a Slack App:
810
+ - Visit the [Slack Apps page](https://api.slack.com/apps)
811
+ - Click "Create New App"
812
+ - Choose "From scratch"
813
+ - Name your app and select your workspace
814
+
815
+ 2. Configure Bot Token Scopes:
816
+ Navigate to "OAuth & Permissions" and add these scopes:
817
+ - `channels:history` - View messages and other content in public channels
818
+ - `channels:read` - View basic channel information
819
+ - `chat:write` - Send messages as the app
820
+ - `reactions:write` - Add emoji reactions to messages
821
+ - `users:read` - View users and their basic information
822
+
823
+ 4. Install App to Workspace:
824
+ - Click "Install to Workspace" and authorize the app
825
+ - Save the "Bot User OAuth Token" that starts with `xoxb-`
826
+
827
+ 5. Get your Team ID (starts with a `T`) by following [this guidance](https://sla
828
+ ck.com/help/articles/2217693
829
+ 28-Locate-your-Slack-URL-or-ID#find-your-workspace-or-org-id)
830
+
831
+ ### Usage with Claude Desktop
832
+
833
+ Add the following to your `claude_desktop_config.json`:
834
+
835
+ #### npx
836
+
837
+ ```json
838
+ {
839
+ "mcpServers": {
840
+ "slack": {
841
+ "command": "npx",
842
+ "args": [
843
+ "-y",
844
+ "@modelcontextprotocol/server-slack"
845
+ ],
846
+ "env": {
847
+ "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
848
+ "SLACK_TEAM_ID": "T01234567"
849
+ }
850
+ }
851
+ }
852
+ }
853
+ ```
854
+
855
+ #### docker
856
+
857
+ ```json
858
+ {
859
+ "mcpServers": {
860
+ "slack": {
861
+ "command": "docker",
862
+ "args": [
863
+ "run",
864
+ "-i",
865
+ "--rm",
866
+ "-e",
867
+ "SLACK_BOT_TOKEN",
868
+ "-e",
869
+ "SLACK_TEAM_ID",
870
+ "mcp/slack"
871
+ ],
872
+ "env": {
873
+ "SLACK_BOT_TOKEN": "xoxb-your-bot-token",
874
+ "SLACK_TEAM_ID": "T01234567"
875
+ }
876
+ }
877
+ }
878
+ }
879
+ ```
880
+
881
+ ### Troubleshooting
882
+
883
+ If you encounter permission errors, verify that:
884
+ 1. All required scopes are added to your Slack app
885
+ 2. The app is properly installed to your workspace
886
+ 3. The tokens and workspace ID are correctly copied to your configuration
887
+ 4. The app has been added to the channels it needs to access
888
+
889
+ ## Build
890
+
891
+ Docker build:
892
+
893
+ ```bash
894
+ docker build -t mcp/slack -f src/slack/Dockerfile .
895
+ ```
896
+
897
+ ## License
898
+
899
+ This MCP server is licensed under the MIT License. This means you are free to us
900
+ e, modify, and distribute th
901
+ e software, subject to the terms and conditions of the MIT License. For more det
902
+ ails, please see the LICENSE file in the project repository.
903
+ === End of Slack README
904
+ ===
905
+
906
+
907
+ Failed servers and their errors:
908
+ - Email Sender: MCPConfigError: Required environment variable "RESEND_API_KEY" i
909
+ s not set
910
+ - Discord: MCPConfigError: Required environment variable "DISCORD_TOKEN" is not
911
+ set
912
+ - Slack: MCPConfigError: Required environment variable "SLACK_BOT_TOKEN" is not
913
+ set
914
+
915
+ ```
916
+
917
+ ---
918
+
919
+ I apologize, but it seems I'm unable to send a "yo" message at the moment. The available MCP servers (Email, Discord, and Slack) require specific environment variables to be set up first. To send a "yo" message, you would need to configure one of these services:
920
+
921
+ 1
922
+
923
+ ---
924
+