MCP Server Atlassian Confluence vs Karea MCP
A side-by-side look at the MCP Server Atlassian Confluence and Karea MCP MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Server Atlassian Confluence for workplace & productivity work as a local process; choose Karea MCP for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
Which MCP server should you choose?
Choose MCP Server Atlassian Confluence when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
ATLASSIAN_SITE_NAME, ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN. - You want tools like
conf_get, conf_post, conf_put.
Choose Karea MCP when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: API key required.
- You have the keys it needs:
KAREA_API_KEY, KAREA_URL. - You want tools like
karea_projects, karea_tasks, karea_subtasks.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 64/100 · Good | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | API key required |
| Pricing | BYOK (pay the provider) | BYOK (pay the provider) |
| Required env vars | ATLASSIAN_SITE_NAMEATLASSIAN_USER_EMAILATLASSIAN_API_TOKEN | KAREA_API_KEYKAREA_URL |
| Verified owner | Community listing | Community listing |
| GitHub stars | 62 | 1 |
| Directory activity | 4 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | 5 | 12 |
| Full listing | View MCP Server Atlassian Confluence | View Karea MCP |
Tools & capabilities
MCP Server Atlassian Confluence tools 5
conf_getRead any Confluence data. Returns TOON format by default (30-60% fewer tokens than JSON). **IMPORTANT - Cost Optimization:** - ALWAYS use `jq` param to filter response fields. Unfiltered responses are very expensive! - Use `limit` query param to restrict result count (e.g., `limit: "5"`) - If unsure about available fields, first fetch ONE item with `limit: "1"` and NO jq filter to explore the schema, then use jq in subsequent calls **Schema Discovery Pattern:** 1. First call: `path: "/wiki/api/v2/spaces", queryParams: {"limit": "1"}` (no jq) - explore available fields 2. Then use: `jq: "results[*].{id: id, key: key, name: name}"` - extract only what you need **Output format:** TOON (default, token-efficient) or JSON (`outputFormat: "json"`) **Common paths:** - `/wiki/api/v2/spaces` - list spaces - `/wiki/api/v2/pages` - list pages (use `space-id` query param) - `/wiki/api/v2/pages/{id}` - get page details - `/wiki/api/v2/pages/{id}/body` - get page body (`body-format`: storage, atlas_doc_format, view) - `/wiki/rest/api/search` - search content (`cql` query param) **JQ examples:** `results[*].id`, `results[0]`, `results[*].{id: id, title: title}` API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/conf_postCreate Confluence resources. Returns TOON format by default (token-efficient). **IMPORTANT - Cost Optimization:** - Use `jq` param to extract only needed fields from response (e.g., `jq: "{id: id, title: title}"`) - Unfiltered responses include all metadata and are expensive! **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Create page:** `/wiki/api/v2/pages` body: `{"spaceId": "123456", "status": "current", "title": "Page Title", "parentId": "789", "body": {"representation": "storage", "value": "<p>Content</p>"}}` 2. **Create blog post:** `/wiki/api/v2/blogposts` body: `{"spaceId": "123456", "status": "current", "title": "Blog Title", "body": {"representation": "storage", "value": "<p>Content</p>"}}` 3. **Add label:** `/wiki/api/v2/pages/{id}/labels` - body: `{"name": "label-name"}` 4. **Add comment:** `/wiki/api/v2/pages/{id}/footer-comments` API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/conf_putReplace Confluence resources (full update). Returns TOON format by default. **IMPORTANT - Cost Optimization:** - Use `jq` param to extract only needed fields from response - Example: `jq: "{id: id, version: version.number}"` **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Update page:** `/wiki/api/v2/pages/{id}` body: `{"id": "123", "status": "current", "title": "Updated Title", "spaceId": "456", "body": {"representation": "storage", "value": "<p>Content</p>"}, "version": {"number": 2}}` Note: version.number must be incremented 2. **Update blog post:** `/wiki/api/v2/blogposts/{id}` Note: PUT replaces entire resource. Version number must be incremented. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/conf_patchPartially update Confluence resources. Returns TOON format by default. **IMPORTANT - Cost Optimization:** Use `jq` param to filter response fields. **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** 1. **Update space:** `/wiki/api/v2/spaces/{id}` body: `{"name": "New Name", "description": {"plain": {"value": "Desc", "representation": "plain"}}}` 2. **Update comment:** `/wiki/api/v2/footer-comments/{id}` Note: Confluence v2 API primarily uses PUT for updates. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/conf_deleteDelete Confluence resources. Returns TOON format by default. **Output format:** TOON (default) or JSON (`outputFormat: "json"`) **Common operations:** - `/wiki/api/v2/pages/{id}` - Delete page - `/wiki/api/v2/blogposts/{id}` - Delete blog post - `/wiki/api/v2/pages/{id}/labels/{label-id}` - Remove label - `/wiki/api/v2/footer-comments/{id}` - Delete comment - `/wiki/api/v2/attachments/{id}` - Delete attachment Note: Most DELETE endpoints return 204 No Content on success. API reference: https://developer.atlassian.com/cloud/confluence/rest/v2/
Karea MCP tools 12
karea_projectsProjects and their categories: list, create, delete, share, and manage the categories inside a project. Pass one of these as `action`, with its arguments in `params`: - karea_list_projects - List all Karea projects with their IDs [no parameters] - karea_create_project - Create a new Karea project owned by you and seed it with the default categories (Coding, Testing, Documenting, Reviewing). [required: name] - karea_delete_project - Permanently delete a project and everything inside it (tasks, categories, notes, history). [required: name; optional: confirm] - karea_share_project - Give another user access to a project by email at a chosen role (owner, editor, commenter or viewer). [required: project, email; optional: role] - karea_create_category - Create a new category (a task bucket) inside an existing project and return it. [required: name; optional: projectId] - karea_delete_category - Permanently delete a category AND every task inside it, including history. [required: name; optional: projectId] For the full parameter schema of any action, call karea_help with that action name.karea_tasksTasks: find them, read them, create them, change them, close them. The main entry point - start here. Pass one of these as `action`, with its arguments in `params`: - karea_list_tasks - List tasks in a project. [optional: projectId, status, closedSince, limit, category, priority, assignee, search] - karea_view_task - Return one task with all its details (status, priority, deadline, recurrence, category, description, notes, requisites, links), located by visual ID, name or UUID. [required: task; optional: projectId, includeContext] - karea_view_tasks - Return details for MANY tasks in one response. [required: tasks; optional: projectId, includeContext, includeMarkdown] - karea_create_task - Create a new task in a project and return it with its visual ID (e.g. [required: name; optional: category, priority, sla, description, markdown, source, closingRequisites, tags, parentId, jiraIssueKey, projectId, aiSessionId, toolType, sessionLabel] - karea_edit_task - Update fields of an existing task (title, status, priority, deadline, category, assignee, description, tags, or add a note) located by visual ID, name or UUID. [required: task; optional: name, priority, status, reviewStage, sla, description, markdown, category, note, tags, clearTags, closingRequisites, clearClosingRequisites, jiraIssueKey, linkTasks, linkType, unlinkTasks, projectId, aiSessionId, toolType, sessionLabel] - karea_edit_tasks - Apply the SAME change to many tasks in ONE request - status, priority, category, deadline, assignee, or a note. [required: tasks; optional: projectId, status, priority, category, sla, note] - karea_close_task - Mark a task as done: sets status to done and stamps the close time. [required: task; optional: resolution, projectId, aiSessionId, toolType, sessionLabel] - karea_delete_task - Permanently delete a task and its history. [required: task; optional: confirm, projectId] - karea_quick_task - Log something you already finished as a done task (it shows up in Recap) and return it. [required: description; optional: source, projectId, aiSessionId, toolType, sessionLabel] - karea_doing - Create a task you are working on right now (status: in_progress) [required: description; optional: category, priority, sla, projectId, aiSessionId, toolType, sessionLabel] - karea_done - Mark several tasks as done in one call, each given by visual ID or name; returns a per-task result. [required: tasks; optional: projectId] For the full parameter schema of any action, call karea_help with that action name.karea_subtasksSubtasks and closing requisites - the checklist a task has to satisfy before it can be closed. Pass one of these as `action`, with its arguments in `params`: - karea_create_subtask - Create a subtask under a parent task. [required: parent, title; optional: category, priority, sla, description, markdown, source, closingRequisites, tags, jiraIssueKey, projectId, aiSessionId, toolType, sessionLabel] - karea_list_subtasks - List subtasks of a parent task. [required: parent; optional: projectId] - karea_add_requisite - Add a closing requisite (a checklist item that must be completed before the task may be closed) to a task, and return it. [required: task, description; optional: projectId] - karea_toggle_requisite - Mark a closing requisite complete or incomplete, by ID. [required: task, requisiteId, completed; optional: projectId] - karea_delete_requisite - Permanently delete a closing requisite from a task, by ID. [required: task, requisiteId; optional: projectId] For the full parameter schema of any action, call karea_help with that action name.karea_notesNotes on a task - human-readable updates the user reads - plus the sticky-note scratch board. For private cross-session memory use karea_docs (set_context). Pass one of these as `action`, with its arguments in `params`: - karea_list_notes - List the notes (human-readable updates) on a task, newest first. [required: task; optional: projectId] - karea_add_note - Add a note to a task - or the same note to many tasks at once, via `tasks`. [required: content; optional: task, tasks, projectId, aiSessionId, toolType, sessionLabel] - karea_edit_note - Change the text of an existing note on a task, by note ID, and return the updated note. [required: task, noteId, content; optional: projectId, aiSessionId, toolType, sessionLabel] - karea_delete_note - Permanently delete a note from a task, by note ID. [required: task, noteId; optional: projectId] - karea_list_sticky_notes - List the user's sticky notes - the scratch pad: short reminders, commands, URLs. [optional: projectId] - karea_create_sticky_note - Pin a short note to the user's sticky board - a command, a URL, a couple of lines to remember. [required: content; optional: title, color, projectId, pinned] - karea_edit_sticky_note - Change a sticky note: its text, title, colour, pin state, or which project it belongs to. [required: noteId; optional: content, title, color, projectId, pinned] - karea_delete_sticky_note - Delete a sticky note. [required: noteId] For the full parameter schema of any action, call karea_help with that action name.karea_docsA task's long-form markdown document and its AI Context (private working memory that survives across sessions). Pass one of these as `action`, with its arguments in `params`: - karea_get_markdown - Read the markdown document attached to a task. [required: task; optional: projectId] - karea_set_markdown - Write the markdown document for a task. [required: task, markdown; optional: projectId, aiSessionId, toolType, sessionLabel] - karea_get_context - Read 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. [required: task; optional: projectId] - karea_set_context - Write a titled entry of the task's Context - the AI-facing cross-session working memory. [required: task, context; optional: title, projectId, aiSessionId, toolType, sessionLabel] For the full parameter schema of any action, call karea_help with that action name.karea_questionsOpen questions: things you are waiting on an answer for. Create, answer, edit, delete. Pass one of these as `action`, with its arguments in `params`: - karea_list_questions - List open questions (unresolved decisions or blockers) in a project, newest first. [optional: projectId, status] - karea_create_question - Create 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. [required: question; optional: projectId, markdown, taskIds] - karea_answer_question - Answer an open question, located by short ID or text match: sets its answer and flips its status to answered. [required: questionId, answer] - karea_edit_question - Edit an open question: change its text, status (open, answered or cancelled), answer, or linked tasks. [required: questionId; optional: question, answer, status, markdown, taskIdsAdd, taskIdsRemove] - karea_delete_question - Permanently delete an open question. [required: questionId] For the full parameter schema of any action, call karea_help with that action name.karea_resourcesThe file/document library: list, read, create, update, upload, delete, and attach resources to tasks. Pass one of these as `action`, with its arguments in `params`: - karea_list_resources - List resources (text notes & files). [optional: projectId, query, folder, type, mime, minSize, maxSize] - karea_get_resource - Return a resource with its full content and metadata, by ID. [required: resourceId] - karea_create_resource - Create a text resource (a note or document) in a project or folder and return it with its ID. [required: name, content; optional: projectId, folder] - karea_update_resource - Overwrite a text resource content and/or metadata, by ID, and return the updated resource. [required: resourceId; optional: name, content, folder] - karea_upload_resource - Upload a binary file as a resource (base64-encoded) [required: name, data; optional: mimeType, folder, taskId] - karea_delete_resource - Permanently delete a resource (text or file) by ID. [required: resourceId] - karea_link_resource_to_task - Link an existing resource (text or file) to a task. [required: resourceId, task; optional: projectId] - karea_unlink_resource_from_task - Remove the link between a resource and a task. [required: resourceId, task; optional: projectId] For the full parameter schema of any action, call karea_help with that action name.karea_meetingsMeetings, and the tasks and open questions attached to them. Pass one of these as `action`, with its arguments in `params`: - karea_list_meetings - List meetings. [optional: scope, from, to, projectId] - karea_view_meeting - Return one meeting in full: time, location, project, attendees, prep notes, transcript, linked tasks and linked open questions. [required: meetingId] - karea_create_meeting - Create a meeting. [required: title, startAt, endAt; optional: description, location, projectId, notes, attendees] - karea_edit_meeting - Update a meeting. [required: meetingId; optional: title, startAt, endAt, description, location, projectId, notes, transcript] - karea_delete_meeting - Delete a meeting permanently. [required: meetingId, confirm] - karea_link_task_to_meeting - Link an EXISTING task to a meeting (discussed at / arising from it). [required: meetingId, task; optional: projectId] - karea_unlink_task_from_meeting - Remove the link between a task and a meeting. [required: meetingId, task; optional: projectId] - karea_link_question_to_meeting - Link an EXISTING open question to a meeting, so it is raised there. [required: meetingId, questionId] - karea_unlink_question_from_meeting - Remove the link between an open question and a meeting. [required: meetingId, questionId] For the full parameter schema of any action, call karea_help with that action name.karea_remindersReminders: see what is due, create one, snooze it, dismiss it, mark it done. Pass one of these as `action`, with its arguments in `params`: - karea_check_reminders - Return the caller's upcoming and past-due reminders. [optional: taskId, includeDone] - karea_create_reminder - Schedule a reminder on a task. [required: task, fireAt; optional: title, emailOptIn] - karea_snooze_reminder - Snooze a firing reminder by N minutes. [required: reminderId, minutes] - karea_dismiss_reminder - Dismiss a reminder - cancels it so it will not fire again. [required: reminderId] - karea_mark_reminder_done - Fulfill a reminder: closes both the reminder AND the underlying task (status = done). [required: reminderId] For the full parameter schema of any action, call karea_help with that action name.karea_integrationsJIRA links on a task, and AI CLI sessions linked to a task. Pass one of these as `action`, with its arguments in `params`: - karea_get_jira_link - Return the linked JIRA issue (key and URL) for a task, if one exists. [required: task; optional: projectId] - karea_link_jira - Link a Karea task to a JIRA issue by issue key (e.g. [required: task, issueKey; optional: projectId] - karea_unlink_jira - Remove the JIRA link from a Karea task [required: task; optional: projectId] - karea_link_session - Link 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. [required: task, provider, sessionId; optional: label, projectId] - karea_list_sessions - List AI coding sessions linked to a task (provider, sessionId, label, last active, resume command). [required: task; optional: projectId] - karea_unlink_session - Remove a previously-linked AI session from a task. [required: task, sessionRowId; optional: projectId] For the full parameter schema of any action, call karea_help with that action name.karea_assistantAsk Karea a natural-language question about your work, or generate a recap of a period. Pass one of these as `action`, with its arguments in `params`: - karea_ask - Send a natural-language request to the Karea AI assistant, which may read or modify your tasks to carry it out, and return its reply. [required: message; optional: projectId] - karea_recap - Return a summary of recent activity (tasks created, closed and updated) over a recent time window. [optional: hours, projectId] For the full parameter schema of any action, call karea_help with that action name.karea_helpReturn the full JSON Schema and description of any Karea action, so you can call it correctly through its group tool. Read-only; changes nothing. Omit `action` to list every available action grouped by tool.
Ready-to-paste client configs
Paste either block (or both) into your client config, e.g. claude_desktop_config.json or ~/.cursor/mcp.json. We only show a config when the install command is confirmed.
MCP Server Atlassian Confluence
{
"mcpServers": {
"aashari-mcp-server-atlassian-confluence": {
"command": "npx",
"args": [
"-y",
"@aashari/mcp-server-atlassian-confluence"
],
"env": {
"ATLASSIAN_SITE_NAME": "YOUR_ATLASSIAN_SITE_NAME_HERE",
"ATLASSIAN_USER_EMAIL": "YOUR_ATLASSIAN_USER_EMAIL_HERE",
"ATLASSIAN_API_TOKEN": "YOUR_ATLASSIAN_API_TOKEN_HERE"
}
}
}
}
Karea MCP
{
"mcpServers": {
"starecz-karea-mcp": {
"command": "npx",
"args": [
"-y",
"karea-mcp"
],
"env": {
"KAREA_API_KEY": "YOUR_KAREA_API_KEY_HERE",
"KAREA_URL": "YOUR_KAREA_URL_HERE"
}
}
}
}
Frequently asked questions
MCP Server Atlassian Confluence is categorized under Workplace & Productivity and uses a local stdio subprocess. Karea MCP belongs to Workplace & Productivity and uses a local stdio subprocess. Pick MCP Server Atlassian Confluence for workplace & productivity work and Karea MCP for workplace & productivity.
Copy the mcpServers block from the config section on this page into your client's config (for example claude_desktop_config.json or ~/.cursor/mcp.json), then fully restart the client.
MCP Server Atlassian Confluence is bring-your-own-key: usage is billed by the API provider you supply a key for. Auth: api key required. Karea MCP is bring-your-own-key: usage is billed by the API provider you supply a key for. Auth: api key required. If a server needs environment variables such as API keys, define them under the env key in your client's MCP config.
Yes. MCP clients support multiple servers: add aashari-mcp-server-atlassian-confluence and starecz-karea-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Server Atlassian Confluence has a quality signal of 64/100 (Good) with 4 views, 0 installs and 62 GitHub stars. Karea MCP has 65/100 (Great) with 5 views, 0 installs and 1 GitHub stars.