karea_add_note
Add a note to a task. Notes are human-readable updates/observations (the user reads them). For private AI working memory that persists across sessions, use karea_set_context instead.
A task tracker your coding agent writes to as it works — tasks, closing requisites, markdown notes and a recap.
LABSCO SUMMARY
karea_set_markdown is the document a person reads; karea_set_context is working memory for whichever agent picks the task up next. Keeping them apart is what stops a task page turning into a transcript — and closing requisites let karea_close_task refuse to pretend the work is finished.
The MCP server for Karea. It creates and closes tasks with short visual IDs, keeps both a long-form markdown document and a separate AI-facing context per task, tracks open questions, links coding sessions to the task they belong to, and produces a recap of what actually happened.
The npm package karea-mcp over stdio, with KAREA_API_KEY in the environment; keys come from karea.app under dashboard settings. KAREA_URL defaults to https://karea.app for the hosted service. The destructive calls — karea_delete_task, karea_delete_project, karea_delete_category — require confirm=true and cannot be undone.
One command plus a key — npx karea-mcp, then supply credentials
USE CASES
Mark the task in progress, leave notes as work lands, and read back a recap of the window.
Attach checklist items that must be complete first; closing reports the ones still unmet.
Write findings to the task's markdown for people, and the full history to its context for the next agent.
Record it as an open question against the task, and answer it when the blocker clears.
Sessions are linked to their task with a resume command, so the next window starts where the last one stopped.
Link a task to its Jira issue by key and read the issue and URL back.
Counted once with only startup setup. Other versions, modes or optional credentials may expose a different list.
karea_add_noteAdd a note to a task. Notes are human-readable updates/observations (the user reads them). For private AI working memory that persists across sessions, use karea_set_context instead.
karea_add_requisiteAdd a closing requisite (a checklist item that must be completed before the task may be closed) to a task, and return it.
karea_answer_questionAnswer an open question, located by short ID or text match: sets its answer and flips its status to answered. Returns the updated question.
karea_askSend a natural-language request to the Karea AI assistant, which may read or modify your tasks to carry it out, and return its reply. Consumes your monthly AI usage allowance.
karea_close_taskMark a task as done: sets status to done and stamps the close time. Reports any unmet closing requisites first unless confirm is set. To close several tasks at once use karea_done.
karea_create_categoryCreate a new category (a task bucket) inside an existing project and return it. To create a whole project, use karea_create_project.
karea_create_projectCreate a new Karea project owned by you and seed it with the default categories (Coding, Testing, Documenting, Reviewing). Returns the new project id. To add a category to an existing project, use karea_create_category instead.
karea_create_questionCreate an open question (a decision or blocker to resolve) in a project, optionally linked to tasks, and return it with its short ID (e.g. KAQ3).
karea_create_resourceCreate a text resource (a note or document) in a project or folder and return it with its ID. To attach an existing resource to a task, use karea_link_resource_to_task.
karea_create_subtaskCreate a subtask under a parent task. Accepts the parent by visual ID (e.g. KPL77), name, or UUID. Supports the same params as karea_create_task.
karea_create_taskCreate a new task in a project and return it with its visual ID (e.g. KA42), status, priority and category. Defaults when omitted: status open, priority 3, the first category of the project. Use karea_quick_task to log something already finished, or karea_doing for work in progress.
karea_delete_categoryPermanently delete a category AND every task inside it, including history. Irreversible; requires confirm=true. To delete a single task instead, use karea_delete_task.
karea_delete_notePermanently delete a note from a task, by note ID. Irreversible.
karea_delete_projectPermanently delete a project and everything inside it (tasks, categories, notes, history). Irreversible; requires confirm=true.
karea_delete_questionPermanently delete an open question. Irreversible. To keep it but mark it resolved, set its status to cancelled via karea_edit_question instead.
karea_delete_requisitePermanently delete a closing requisite from a task, by ID. Irreversible.
karea_delete_resourcePermanently delete a resource (text or file) by ID. Irreversible. To only detach it from a task, use karea_unlink_resource_from_task.
karea_delete_taskPermanently delete a task and its history. Irreversible; requires confirm=true. To merely close a task instead, use karea_close_task.
karea_doingCreate a task you are working on right now (status: in_progress)
karea_doneMark several tasks as done in one call, each given by visual ID or name; returns a per-task result. For a single task with closing-requisite checks, use karea_close_task.
karea_edit_noteChange the text of an existing note on a task, by note ID, and return the updated note.
karea_edit_questionEdit an open question: change its text, status (open, answered or cancelled), answer, or linked tasks. Only the fields you pass change. Returns the updated question.
karea_edit_taskUpdate fields of an existing task (title, status, priority, deadline, category, assignee, description, tags, or add a note) located by visual ID, name or UUID. Only the fields you pass change; the rest are left untouched. Returns the updated task.
karea_get_contextRead the task's Context — titled entries of AI working memory that hold the FULL HISTORY of a task (not just its current state): what was tried, decided, discovered, and abandoned along the way. ALWAYS read this first when picking a task up so you inherit the journey instead of re-deriving it. Each entry shows who/when/how (user or mcp) it was created and last edited. When you learn something new, ADD to the relevant entry with karea_set_context — do not overwrite the history. Distinct from notes (human-readable updates) and the markdown doc (long-form documentation).
karea_get_jira_linkReturn the linked JIRA issue (key and URL) for a task, if one exists. Read-only.
karea_get_markdownRead the markdown document attached to a task. This is the task's knowledge base — it contains investigation findings, technical and functional documentation, root cause analysis, solution design, implementation notes, and any other long-form content the task has accumulated. Always read this before working on a task to avoid duplicating past research.
karea_get_resourceReturn a text resource with its full content and metadata, by ID. Read-only.
karea_link_jiraLink a Karea task to a JIRA issue by issue key (e.g. PROJ-123)
karea_link_resource_to_taskLink an existing resource (text or file) to a task. The resource and task must belong to the same user/project scope. Use this to attach release notes, design docs, references, etc. to one or more tasks. To link a resource to multiple tasks, call this once per task.
karea_link_sessionLink your current AI coding session (Claude Code, OpenCode, Codex, Cursor, Aider) to a Karea task so the user can see the session history for that task and copy a command to resume the session later. Call this once per task you're working on. For Claude Code, pass sessionId as the CLI session id; for OpenCode use its session id; etc.
karea_list_notesList the notes (human-readable updates) on a task, newest first. Read-only.
karea_list_projectsList all Karea projects with their IDs
karea_list_questionsList open questions (unresolved decisions or blockers) in a project, newest first. Defaults to status open; pass status to include answered, cancelled or all. Read-only.
karea_list_resourcesList resources (text notes & files). With a projectId it returns every resource belonging to that project - whether assigned to it directly, linked to one of its tasks, or filed under a folder named after the project (e.g. knowledge-base docs). Omit projectId to list all your resources, including unfiled ones. All filters combine freely (name query, folder, type, mime, size range).
karea_list_sessionsList AI coding sessions linked to a task (provider, sessionId, label, last active, resume command). Read-only.
karea_list_subtasksList subtasks of a parent task. Accepts the parent by visual ID, name, or UUID.
karea_list_tasksList tasks in a project. Defaults to open tasks (open, in_progress, blocked, review, backlog) capped at 200 to keep responses small. To see closed tasks pass status="done" and optionally closedSince (e.g. "14d", "7d", "24h"). To list everything, pass status="all". Optional filters (category, priority, assignee, search) narrow the result server-side — prefer them over post-filtering.
karea_quick_taskLog something you already finished as a done task (it shows up in Recap) and return it. Status is always done; relative-time params set when it happened. For in-progress work use karea_doing instead.
karea_recapReturn a summary of recent activity (tasks created, closed and updated) over a recent time window. Read-only; handy for standups and reviews.
karea_set_contextWrite a titled entry of the task's Context — the AI-facing cross-session working memory. Context tracks the FULL HISTORY of a task, not just its current state: what was tried, what worked, what failed, what was decided and why. Update incrementally so the journey is preserved (never overwrite the whole entry with "current status" — read first with karea_get_context, append/refine, then write back). Context is your DEFAULT save target: after every plan, finding, decision, or gotcha, persist it here proactively under titles like "Plan", "Findings", "Decisions", "Gotchas", "Attempted". Upserts by title: same title overwrites THAT entry only; other entries are untouched. Pass empty context to delete the entry. Use karea_add_note only for human-facing updates and karea_set_markdown for long-form docs — but keep Context up to date either way.
karea_set_markdownWrite the markdown document for a task. Overwrites any existing content. Use this to persist: investigation findings and research, technical documentation (architecture, APIs, schemas), functional documentation (requirements, acceptance criteria, user flows), root cause analysis and debugging logs, solution design — planned or implemented, risks, trade-offs, and open questions. This is the single source of truth for everything learned about this task. Always append to existing content (read first with karea_get_markdown) rather than replacing it, unless restructuring.
karea_share_projectGive another user access to a project by email at a chosen role (owner, editor, commenter or viewer). Records the share so that user can see and, per role, edit the project.
karea_toggle_requisiteMark a closing requisite complete or incomplete, by ID. This affects whether karea_close_task warns about unmet requisites.
karea_unlink_jiraRemove the JIRA link from a Karea task
karea_unlink_resource_from_taskRemove the link between a resource and a task. Does not delete either side.
karea_unlink_sessionRemove a previously-linked AI session from a task. Use the row ID from karea_list_sessions or karea_link_session.
karea_update_resourceOverwrite a text resource content and/or metadata, by ID, and return the updated resource. Replaces the existing content rather than appending.
karea_upload_resourceUpload a binary file as a resource (base64-encoded)
karea_view_taskReturn one task with all its details (status, priority, deadline, category, description, notes, requisites, links), located by visual ID, name or UUID. Pass includeContext=true to also inline the task's AI Context in the response — avoids a follow-up karea_get_context round-trip. Read-only.
karea_view_tasksReturn details for MANY tasks in one response. Pass an array of task identifiers (visualIds, names, or UUIDs) and get one consolidated response with a block per task, separated by dividers. Use this instead of calling karea_view_task N times when you want to inspect a batch. Max 50 per call. Read-only.
BEFORE YOU INSTALL
50 tools when we connected. karea_view_tasks is available but missing from the documented catalogue. The tools can create, edit, close and delete tasks, notes, categories and whole projects.
Both documented clients run the server on your machine.
CONTEXT COST
Rated by the size of the 50 tool definitions that ride along on every turn, not by how many there are
INSTALLATION
npx karea-mcp{
"mcpServers": {
"karea": {
"command": "npx",
"args": [
"-y",
"karea-mcp"
],
"env": {
"KAREA_API_KEY": "<YOUR_KAREA_API_KEY>",
"KAREA_URL": "https://karea.app"
}
}
}
}{
"mcpServers": {
"karea": {
"command": "npx",
"args": [
"-y",
"karea-mcp"
],
"env": {
"KAREA_API_KEY": "<YOUR_KAREA_API_KEY>"
}
}
}
}