{
  "name": "Personal AI with Todo Skill Template",
  "nodes": [
    {
      "parameters": {
        "public": true,
        "initialMessages": "Hi! Let's manage our todos :)",
        "options": {
          "allowFileUploads": true,
          "subtitle": "Let's manage our ToDos",
          "title": "My Personal AI",
          "responseMode": "streaming"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.chatTrigger",
      "typeVersion": 1.4,
      "position": [
        -240,
        -64
      ],
      "id": "5d7e68fd-447e-4c81-9e10-9606dda16908",
      "name": "When chat message received",
      "webhookId": "6f97ec07-4fba-4b9a-91cb-8e3c87369a22"
    },
    {
      "parameters": {},
      "type": "@n8n/n8n-nodes-langchain.memoryBufferWindow",
      "typeVersion": 1.3,
      "position": [
        144,
        176
      ],
      "id": "cb3fbc3d-7d26-457f-a4f7-a4cee8006cfd",
      "name": "Simple Memory"
    },
    {
      "parameters": {
        "options": {
          "systemMessage": "=Current date/time: {{ $now.toISO() }}\n\nYou are a personal AI assistant whose ONLY responsibility is managing the user’s todos using Arca MCP. You do not act as a memory system, journal, life logger, or general assistant. Everything you do must relate to tasks.\n\nWhen responding:\n\n* NEVER use emojis\n* Use plain text only\n* Keep replies short, clear, and conversational\n* Focus on action and clarity\n\nCORE ROLE\n\nYou help the user:\n\n* Capture todos quickly\n* Organize todos in a single system\n* Update status, priority, and due dates\n* Review upcoming, overdue, or completed tasks\n* Maintain one accurate source of truth for tasks\n\nIf a request is not related to todos, redirect the user back to task management.\n\nSKILL MODEL\n\nTodos MUST always be stored in a TABULAR skill.\nNever use vector skills.\n\nPreferred skill name:\n\n* todos\n\nRecommended fields:\n\n* title (string)\n* status (pending or completed)\n* priority (low, medium, high or numeric)\n* due_date (optional)\n* notes (optional)\n\nWORKFLOW RULES\n\n1. Always call list_skills before doing anything.\n\n   * Check if a todos skill already exists\n   * Use the exact existing skill name\n   * Never create duplicate skills like tasks or task_list\n\n2. Only create a todos skill if none exists.\n\n   * You MUST ask the user for their first real todo\n   * Never invent sample data\n\n3. When the user adds a task:\n\n   * Parse the instruction\n   * Infer priority or due date if reasonable\n   * Use the current date if no date is mentioned\n   * Call add_tabular_item\n   * Wait for tool confirmation before responding\n\n4. When the user updates or completes a task:\n\n   * Query the todos skill\n   * Identify the correct item\n   * Call the appropriate MCP tool\n   * If multiple tasks match, ask for clarification\n\n5. When the user asks about their tasks:\n\n   * Always query the todos skill\n   * Use filters, sorting, and limits\n   * Never summarize without tool data\n\nTOOL USE REQUIREMENTS\n\n* You MUST use MCP tools for all create, update, fetch, or modify actions\n* You MUST NOT claim a task was added, updated, or completed unless the tool confirms success\n* You MUST NOT invent task state or results\n* When unsure, always call the relevant MCP tool\n\nTOOL FAILURE RULES\n\nIf a tool call fails, times out, or is unavailable:\n\n* Do NOT pretend the action succeeded\n* Do NOT generate summaries or task states\n* Clearly tell the user the action could not be completed due to a technical issue\n* Stop after reporting the issue\n\nRESPONSE STYLE\n\n* Short sentences\n* Clear confirmations\n* No fluff\n* Task-focused only\n\nYour job is to keep the user’s todo list clean, accurate, and up to date.\n"
        }
      },
      "type": "@n8n/n8n-nodes-langchain.agent",
      "typeVersion": 2.1,
      "position": [
        48,
        -64
      ],
      "id": "4eb45523-cd57-47e0-9056-d466b176ddb0",
      "name": "My Personal AI",
      "retryOnFail": true
    },
    {
      "parameters": {
        "endpointUrl": "https://mcp.arca.build",
        "authentication": "bearerAuth",
        "options": {}
      },
      "type": "@n8n/n8n-nodes-langchain.mcpClientTool",
      "typeVersion": 1.2,
      "position": [
        304,
        176
      ],
      "id": "3a8bb25e-7f50-468e-9f12-915030166203",
      "name": "Arca MCP Server",
      "credentials": {
        "httpBearerAuth": {
          "id": "gIRS411cYsfjMzUt",
          "name": "My Arca API Key"
        }
      }
    },
    {
      "parameters": {
        "model": {
          "__rl": true,
          "value": "claude-haiku-4-5-20251001",
          "mode": "list",
          "cachedResultName": "Claude Haiku 4.5"
        },
        "options": {
          "thinking": false
        }
      },
      "type": "@n8n/n8n-nodes-langchain.lmChatAnthropic",
      "typeVersion": 1.3,
      "position": [
        -32,
        176
      ],
      "id": "c47506ba-b646-4cb0-9a0c-9330fbb6fa8a",
      "name": "Claude Haiku 4.5",
      "credentials": {
        "anthropicApi": {
          "id": "IeYT4zfBEZIzPadH",
          "name": "My Anthropic API Key"
        }
      }
    },
    {
      "parameters": {
        "content": "## Personal AI with Todo Skill Template – Setup Guide\n\n#### This workflow lets you manage your personal todos using Arca MCP and Claude. You must connect two API keys before it will work.\n\n## 1. Connect Anthropic (Claude)\n\nThis workflow uses the Claude Haiku chat model.\n\n1. Go to\n   [https://platform.claude.com/](https://platform.claude.com/)\n2. Sign up or log in\n3. Create an API key\n4. In n8n:\n   * Create a new **Anthropic** credential\n   * Paste your API key\n   * Select **Claude Haiku** as the model\n   * Save the credential\n5. Make sure the **Claude Haiku** node in this workflow uses your credential\n\n---\n\n## 2. Connect Arca MCP\n\nTodos are stored in your private Arca vault.\n\n1. Go to [https://arca.build](https://arca.build)\n2. Sign up or log in\n3. Open **Account** settings\n4. Copy your **Arca API Key**\n5. In n8n:\n   * Create a new **Arca MCP Server** credential\n   * Authentication type: **Bearer Token**\n   * Paste your Arca API key as the token\n6. Ensure the MCP Server is using https://mcp.arca.build as the endpoint\n7. Make sure the **Arca MCP Server** node uses this credential\n\n---\n\n## 3. Node Version Requirements (Important)\n\nThis template is tested with specific node versions. Do NOT upgrade these nodes unless you know what you’re doing.\n\n* AI Agent node version: 2.1\n* MCP Client node version: 1.2\n\n\n#### The JSON template already includes the correct versions. If you replace these nodes with newer versions, you may run into bugs or broken tool calls. If something behaves strangely after upgrading nodes, revert to these versions first.\n---\n\n## 4. Verify the Workflow\n\nBefore testing, confirm:\n\n* Claude Haiku is connected to the Agent\n* Arca MCP Server is connected as a tool\n* Node versions match the requirements above\n* The workflow is **activated**\n\n#### If tasks are not being saved, this is almost always a credential or node version issue.\n---\n\n## How to Use\n\nSend natural language messages like:\n\n* Add finish Q3 report tomorrow\n* What’s due today?\n* Mark the email task as done\n\nThe agent will:\n\n* Create a single `todos` table in Arca\n* Add, update, and fetch tasks from Arca only\n* Never invent task state\n\n---\n\n## Important Notes\n\n* This agent **only manages todos**\n* Do not rename the `todos` skill unless you update the system prompt\n* All task state lives in Arca, not in n8n memory\n",
        "height": 2048,
        "width": 624
      },
      "type": "n8n-nodes-base.stickyNote",
      "position": [
        512,
        -288
      ],
      "typeVersion": 1,
      "id": "68632425-dee9-4311-8b2b-55e7e00b0b31",
      "name": "Sticky Note"
    }
  ],
  "pinData": {},
  "connections": {
    "When chat message received": {
      "main": [
        [
          {
            "node": "My Personal AI",
            "type": "main",
            "index": 0
          }
        ]
      ]
    },
    "Simple Memory": {
      "ai_memory": [
        [
          {
            "node": "My Personal AI",
            "type": "ai_memory",
            "index": 0
          }
        ]
      ]
    },
    "Arca MCP Server": {
      "ai_tool": [
        [
          {
            "node": "My Personal AI",
            "type": "ai_tool",
            "index": 0
          }
        ]
      ]
    },
    "Claude Haiku 4.5": {
      "ai_languageModel": [
        [
          {
            "node": "My Personal AI",
            "type": "ai_languageModel",
            "index": 0
          }
        ]
      ]
    }
  },
  "active": true,
  "settings": {
    "executionOrder": "v1"
  },
  "versionId": "e3acccc6-630d-47d8-8136-39338d8d004b",
  "meta": {
    "templateCredsSetupCompleted": true,
    "instanceId": "d9bf03b7208498f43311daf20276c0bbd0d1b536f61561a945f347a83fdbbeb0"
  },
  "id": "hsxbZfDB1PMg7WKD",
  "tags": []
}