Files
Momento/mcp-server/n8n-workflow-mcp-reminder-bot.json
Antigravity 0ebf10344d
All checks were successful
Deploy to Production / Build and Deploy (push) Successful in 55s
feat(mcp): add all 4 note types, translate N8N docs to English, add N8N workflow examples
- tools.js: expose type enum ['text','markdown','richtext','checklist'] in create_note & update_note
  - default changed from 'text' to 'richtext' (matches Prisma schema)
  - isMarkdown marked as deprecated in favour of type='markdown'
- N8N-CONFIG.md: full French → English translation
- N8N-WORKFLOWS.md: full French → English translation
- N8N-EXAMPLES.md: new comprehensive examples for all 22 MCP tools + workflow patterns
- n8n-workflow-mcp-reminder-bot.json: cron → get_due_reminders → Telegram → mark done
- n8n-workflow-mcp-email-to-note.json: IMAP → create_note → urgent Slack alert
- n8n-workflow-mcp-daily-digest.json: 8AM cron → notes + reminders digest → save + Slack
- n8n-workflow-mcp-webhook-to-note.json: universal webhook → create_note → respond
- notebooks-list.tsx: fix truncated notebook names (pe-24→pe-14), replace hover overlay with Tooltip
2026-05-03 20:49:11 +00:00

156 lines
5.1 KiB
JSON
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"name": "Memento MCP — Reminder Bot",
"nodes": [
{
"parameters": {
"rule": {
"interval": [
{
"field": "cronExpression",
"expression": "0 */30 * * * *"
}
]
}
},
"id": "schedule-trigger",
"name": "Every 30 Minutes",
"type": "n8n-nodes-base.scheduleTrigger",
"typeVersion": 1.2,
"position": [240, 300]
},
{
"parameters": {
"method": "POST",
"url": "http://memento-mcp:3001/mcp",
"authentication": "genericCredentialType",
"genericAuthType": "httpHeaderAuth",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "x-api-key",
"value": "={{ $vars.MEMENTO_API_KEY }}"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "{\n \"jsonrpc\": \"2.0\",\n \"id\": 1,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"get_due_reminders\",\n \"arguments\": {}\n }\n}"
},
"id": "mcp-get-reminders",
"name": "MCP — Get Due Reminders",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [480, 300]
},
{
"parameters": {
"jsCode": "// Parse MCP response\nconst response = $input.item.json;\nconst result = JSON.parse(response.result?.content?.[0]?.text || '[]');\n\nif (!Array.isArray(result) || result.length === 0) {\n return [];\n}\n\nreturn result.map(note => ({\n json: {\n noteId: note.id,\n title: note.title || 'Untitled reminder',\n reminder: note.reminder,\n reminderFormatted: new Date(note.reminder).toLocaleString('en-GB'),\n content: (note.content || '').substring(0, 200),\n labels: Array.isArray(note.labels) ? note.labels.join(', ') : ''\n }\n}));"
},
"id": "parse-reminders",
"name": "Parse Reminders",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [720, 300]
},
{
"parameters": {
"conditions": {
"options": { "caseSensitive": true },
"conditions": [
{
"id": "has-items",
"leftValue": "={{ $items().length }}",
"rightValue": 0,
"operator": {
"type": "number",
"operation": "gt"
}
}
],
"combinator": "and"
}
},
"id": "check-has-reminders",
"name": "Has Reminders?",
"type": "n8n-nodes-base.if",
"typeVersion": 2.1,
"position": [960, 300]
},
{
"parameters": {
"chatId": "={{ $vars.TELEGRAM_CHAT_ID }}",
"text": "⏰ *Reminder — Memento*\n\n📌 *{{ $json.title }}*\n🕐 {{ $json.reminderFormatted }}\n\n{{ $json.content }}{{ $json.labels ? '\n🏷 ' + $json.labels : '' }}",
"additionalFields": {
"parse_mode": "Markdown"
}
},
"id": "send-telegram",
"name": "Send Telegram Notification",
"type": "n8n-nodes-base.telegram",
"typeVersion": 1.2,
"position": [1200, 200],
"continueOnFail": true
},
{
"parameters": {
"method": "POST",
"url": "http://memento-mcp:3001/mcp",
"sendHeaders": true,
"headerParameters": {
"parameters": [
{
"name": "Content-Type",
"value": "application/json"
},
{
"name": "x-api-key",
"value": "={{ $vars.MEMENTO_API_KEY }}"
}
]
},
"sendBody": true,
"specifyBody": "json",
"jsonBody": "={\n \"jsonrpc\": \"2.0\",\n \"id\": 2,\n \"method\": \"tools/call\",\n \"params\": {\n \"name\": \"update_note\",\n \"arguments\": {\n \"id\": \"{{ $json.noteId }}\",\n \"isReminderDone\": true\n }\n }\n}"
},
"id": "mcp-mark-done",
"name": "MCP — Mark Reminder Done",
"type": "n8n-nodes-base.httpRequest",
"typeVersion": 4.2,
"position": [1440, 200],
"continueOnFail": true
}
],
"connections": {
"Every 30 Minutes": {
"main": [[{ "node": "MCP — Get Due Reminders", "type": "main", "index": 0 }]]
},
"MCP — Get Due Reminders": {
"main": [[{ "node": "Parse Reminders", "type": "main", "index": 0 }]]
},
"Parse Reminders": {
"main": [[{ "node": "Has Reminders?", "type": "main", "index": 0 }]]
},
"Has Reminders?": {
"main": [
[{ "node": "Send Telegram Notification", "type": "main", "index": 0 }],
[]
]
},
"Send Telegram Notification": {
"main": [[{ "node": "MCP — Mark Reminder Done", "type": "main", "index": 0 }]]
}
},
"pinData": {},
"settings": { "executionOrder": "v1" },
"staticData": null,
"tags": [{ "id": "memento-mcp", "name": "Memento MCP" }],
"triggerCount": 1,
"updatedAt": "2026-05-03T00:00:00.000Z",
"versionId": "1"
}