{ "id": "xRclXA5QzrT3c6U8", "meta": { "instanceId": "workflow-d8757c06", "versionId": "1.0.0", "createdAt": "2025-09-29T07:07:55.195652", "updatedAt": "2025-09-29T07:07:55.195664", "owner": "n8n-user", "license": "MIT", "category": "automation", "status": "active", "priority": "high", "environment": "production" }, "name": "Discord MCP Chat Agent", "tags": [ "automation", "n8n", "production-ready", "excellent", "optimized" ], "nodes": [ { "id": "trigger-0ed678d9", "name": "Manual Trigger", "type": "n8n-nodes-base.manualTrigger", "typeVersion": 1, "position": [ 100, 100 ], "parameters": {} }, { "id": "3c008773-802c-461c-9350-f42dc5f3969c", "name": "AI Agent", "type": "n8n-nodes-base.noOp", "position": [ 100, -440 ], "parameters": { "options": {} }, "typeVersion": 1.9, "notes": "This agent node performs automated tasks as part of the workflow." }, { "id": "9b5bd212-19bc-4303-a934-b783f7cb5ea7", "name": "When chat message received", "type": "n8n-nodes-base.noOp", "position": [ -160, -440 ], "webhookId": "79281a20-6afe-4188-ae87-cc80be737ad7", "parameters": { "options": {} }, "typeVersion": 1.1, "notes": "This chatTrigger node performs automated tasks as part of the workflow." }, { "id": "32a7152e-47ea-4859-aa35-f220a69ddb0d", "name": "OpenAI Chat Model", "type": "n8n-nodes-base.noOp", "position": [ 20, -240 ], "parameters": { "model": { "__rl": true, "mode": "list", "value": "gpt-4o", "cachedResultName": "gpt-4o" }, "options": {} }, "credentials": { "openAiApi": { "id": "AWozvbIHWTdrKYZt", "name": "OpenAi account" } }, "typeVersion": 1.2, "notes": "This lmChatOpenAi node performs automated tasks as part of the workflow." }, { "id": "bc9204f7-0116-43cc-947d-8d2b883fc2c3", "name": "Discord MCP Client", "type": "n8n-nodes-base.noOp", "position": [ 340, -240 ], "parameters": { "sseEndpoint": "{{ $env.WEBHOOK_URL }}" }, "typeVersion": 1, "notes": "This mcpClientTool node performs automated tasks as part of the workflow." }, { "id": "e42dc3a5-5463-4198-b691-ff8e9d6fc892", "name": "Sticky Note", "type": "n8n-nodes-base.stickyNote", "position": [ -340, -700 ], "parameters": { "width": 280, "height": 360, "content": "## Natural Language Input\nYou can call from another workflow, hit the chat endpoint, or even hit from another Discord bot if you wanted to! Any natural language command should work fine - let me know if you manage to break something and I will look at updating the template!" }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "c44b730e-fe1b-4290-a26e-aed04852ccdc", "name": "Sticky Note1", "type": "n8n-nodes-base.stickyNote", "position": [ 20, -700 ], "parameters": { "width": 220, "height": 540, "content": "## Tool enabled agent\nIf you are going to swap the model out, just make sure that it's one that can handle tools. No special system prompt should be needed for the large cloud models, if you go with a quantized model via Ollama then you might need to coax it a bit." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "8761f368-e20a-48ab-bfff-1d4e6401d269", "name": "Sticky Note2", "type": "n8n-nodes-base.stickyNote", "position": [ 340, -700 ], "parameters": { "height": 540, "content": "## Discord MCP Client/Server\nThis is totally customizable (you can connect it to any MCP server by changing the URL), but if you need a starting point, you can check out my \"Manage your discord server with natural language from anywhere\" template as a starting point." }, "typeVersion": 1, "notes": "This stickyNote node performs automated tasks as part of the workflow." }, { "id": "error-ce194ea8", "name": "Error Handler", "type": "n8n-nodes-base.stopAndError", "typeVersion": 1, "position": [ 1000, 400 ], "parameters": { "message": "Workflow execution error", "options": {} } } ], "active": true, "pinData": {}, "settings": { "executionOrder": "v1", "saveManualExecutions": true, "callerPolicy": "workflowsFromSameOwner", "errorWorkflow": null, "timezone": "UTC", "executionTimeout": 3600, "maxExecutions": 1000, "retryOnFail": true, "retryCount": 3, "retryDelay": 1000 }, "versionId": "cdc83b62-051a-4a98-8d25-3637b3da0523", "connections": { "32a7152e-47ea-4859-aa35-f220a69ddb0d": { "main": [ [ { "node": "error-handler-32a7152e-47ea-4859-aa35-f220a69ddb0d-682b3271", "type": "main", "index": 0 } ] ] } }, "description": "Automated workflow: Discord MCP Chat Agent. This workflow integrates 6 different services: stickyNote, agent, mcpClientTool, stopAndError, lmChatOpenAi. It contains 8 nodes and follows best practices for error handling and security.", "notes": "Excellent quality workflow: Discord MCP Chat Agent. This workflow has been optimized for production use with comprehensive error handling, security, and documentation." }