In-depth architectural comparison of the MCP Server Atlassian Jira and Todoist MCP servers. Compare execution transports, security boundaries, tool capabilities, quality scores, and ready-to-paste client installation snippets for Claude, Cursor, Windsurf, and VS Code.
At a Glance & Executive Verdict
MCP Server Atlassian Jira
Workplace & Productivity · Local stdio
Quality: 64/100 (Good) | Auth: API Key required
Todoist
Workplace & Productivity · Local stdio
Quality: 40/100 (Fair) | Auth: No auth required
Verdict Summary: Choose MCP Server Atlassian Jira if you need specialized Workplace & Productivity tools running via a local process. Choose Todoist if your workspace requires Workplace & Productivity integration with local subprocess execution. Both servers can be configured concurrently in your client's mcpServers manifest.
Which MCP Server Should You Choose?
Choose MCP Server Atlassian Jira when:
You need dedicated capabilities in the Workplace & Productivity domain.
You prefer local stdio subprocess transport architecture.
Your security boundary fits: API Key required (Free / Open Source).
You have access to required keys: ATLASSIAN_SITE_NAME, ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN.
Atlassian Jira Cloud integration. Enables AI systems to interact with Jira projects, issues, comments, and related development information in real time.
Read any Jira 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 `maxResults` query param to restrict result count (e.g., `maxResults: "5"`)
- If unsure about available fields, first fetch ONE item with `maxResults: "1"` and NO jq filter to explore the schema, then use jq in subsequent calls
**Schema Discovery Pattern:**
1. First call: `path: "/rest/api/3/search/jql", queryParams: {"maxResults": "1", "jql": "project=PROJ"}` (no jq) - explore available fields
2. Then use: `jq: "issues[*].{key: key, summary: fields.summary, status: fields.status.name}"` - extract only what you need
**Output format:** TOON (default, token-efficient) or JSON (`outputFormat: "json"`)
**Common paths:**
- `/rest/api/3/project` - list all projects
- `/rest/api/3/project/{projectKeyOrId}` - get project details
- `/rest/api/3/search/jql` - search issues with JQL (use `jql` query param). NOTE: `/rest/api/3/search` is deprecated!
- `/rest/api/3/issue/{issueIdOrKey}` - get issue details
- `/rest/api/3/issue/{issueIdOrKey}/comment` - list issue comments
- `/rest/api/3/issue/{issueIdOrKey}/worklog` - list issue worklogs
- `/rest/api/3/issue/{issueIdOrKey}/transitions` - get available transitions
- `/rest/api/3/user/search` - search users (use `query` param)
- `/rest/api/3/status` - list all statuses
- `/rest/api/3/issuetype` - list issue types
- `/rest/api/3/priority` - list priorities
**JQ examples:** `issues[*].key`, `issues[0]`, `issues[*].{key: key, summary: fields.summary}`
**Example JQL queries:** `project=PROJ`, `assignee=currentUser()`, `status="In Progress"`, `created >= -7d`
API reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
jira_post
Ready-to-Paste Client Configurations
Paste either (or both) of these JSON server blocks into your client config file (e.g. claude_desktop_config.json or ~/.cursor/mcp.json).
MCP Server Atlassian Jira is categorized under Workplace & Productivity and uses a local stdio subprocess. In contrast, Todoist belongs to Workplace & Productivity using local stdio subprocess. Select MCP Server Atlassian Jira when you need capabilities focused on workplace & productivity and Todoist when you require tools for workplace & productivity.
Create Jira resources. Returns TOON format by default (token-efficient).
**IMPORTANT - Cost Optimization:**
- Use `jq` param to extract only needed fields from response (e.g., `jq: "{key: key, id: id}"`)
- Unfiltered responses include all metadata and are expensive!
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Create issue:** `/rest/api/3/issue`
body: `{"fields": {"project": {"key": "PROJ"}, "summary": "Issue title", "issuetype": {"name": "Task"}, "description": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Description"}]}]}}}`
2. **Add comment:** `/rest/api/3/issue/{issueIdOrKey}/comment`
body: `{"body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Comment text"}]}]}}`
3. **Add worklog:** `/rest/api/3/issue/{issueIdOrKey}/worklog`
body: `{"timeSpentSeconds": 3600, "comment": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Work done"}]}]}}`
4. **Transition issue:** `/rest/api/3/issue/{issueIdOrKey}/transitions`
body: `{"transition": {"id": "31"}}`
5. **Add attachment:** `/rest/api/3/issue/{issueIdOrKey}/attachments`
Note: Requires multipart form data (complex - use Jira UI for attachments)
API reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
jira_put
Replace Jira resources (full update). Returns TOON format by default.
**IMPORTANT - Cost Optimization:** Use `jq` param to extract only needed fields from response
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Update issue (full):** `/rest/api/3/issue/{issueIdOrKey}`
body: `{"fields": {"summary": "New title", "description": {...}, "assignee": {"accountId": "..."}}}`
2. **Update project:** `/rest/api/3/project/{projectIdOrKey}`
body: `{"name": "New Project Name", "description": "Updated description"}`
3. **Set issue property:** `/rest/api/3/issue/{issueIdOrKey}/properties/{propertyKey}`
body: `{"value": "property value"}`
Note: PUT replaces the entire resource. For partial updates, prefer PATCH.
API reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
jira_patch
Partially update Jira 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 issue fields:** `/rest/api/3/issue/{issueIdOrKey}`
body: `{"fields": {"summary": "Updated title"}}` (only updates specified fields)
2. **Update comment:** `/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}`
body: `{"body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "Updated comment"}]}]}}`
3. **Update worklog:** `/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}`
body: `{"timeSpentSeconds": 7200}`
Note: PATCH only updates the fields you specify, leaving others unchanged.
API reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
jira_delete
Delete Jira resources. Returns TOON format by default.
**Output format:** TOON (default) or JSON (`outputFormat: "json"`)
**Common operations:**
1. **Delete issue:** `/rest/api/3/issue/{issueIdOrKey}`
Query param: `deleteSubtasks=true` to delete subtasks
2. **Delete comment:** `/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}`
3. **Delete worklog:** `/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}`
4. **Delete attachment:** `/rest/api/3/attachment/{attachmentId}`
5. **Remove watcher:** `/rest/api/3/issue/{issueIdOrKey}/watchers`
Query param: `accountId={accountId}`
Note: Most DELETE endpoints return 204 No Content on success.
API reference: https://developer.atlassian.com/cloud/jira/platform/rest/v3/
Todoist Tools (5)
todoist_list_projects
List all projects in the user's Todoist account. Returns each project's id, name, color, favorite status, web URL, and parent project id. Use to discover projects and their ids before listing tasks or sections.
todoist_list_tasks
List active (incomplete) tasks / to-do items from Todoist. Optionally filter by a project id, or by a Todoist filter query (a powerful query language, e.g. "today \
todoist_get_task
Get the full details of a single Todoist task / to-do item by its id, including content, description, project id, section id, priority, due date/datetime, labels, web URL, and creation time. Use after todoist_list_tasks to inspect one task.
todoist_list_sections
List the sections within a Todoist project. Sections group tasks inside a project. Returns each section's id, project id, name, and order. Use to understand how tasks in a project are organized.
todoist_list_labels
List all personal labels in the user's Todoist account. Labels are tags applied to tasks. Returns each label's id, name, color, and favorite status. Use to discover labels for filtering or interpreting task labels.