MCP Jira Stdio vs MCP Server Atlassian Jira
A side-by-side look at the MCP Jira Stdio and MCP Server Atlassian Jira MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose MCP Jira Stdio for workplace & productivity work as a local process; choose MCP Server Atlassian Jira 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 Jira Stdio when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- You have the keys it needs:
JIRA_BASE_URL, JIRA_EMAIL, JIRA_API_TOKEN. - You want tools like
jira_get_visible_projects, jira_get_issue, jira_search_issues.
Choose MCP Server Atlassian Jira 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
jira_get, jira_post, jira_put.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 65/100 · Great | 65/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | Not declared | API key required |
| Pricing | Not declared | Free |
| Required env vars | JIRA_BASE_URLJIRA_EMAILJIRA_API_TOKEN | ATLASSIAN_SITE_NAMEATLASSIAN_USER_EMAILATLASSIAN_API_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 14 | 78 |
| Directory activity | 0 views 0 installs 0 upvotes | 7 views 0 installs 0 upvotes |
| Tools | 23 | 5 |
| Full listing | View MCP Jira Stdio | View MCP Server Atlassian Jira |
Tools & capabilities
MCP Jira Stdio tools 23
jira_get_visible_projectsRetrieves all projects accessible to the authenticated user. Returns project keys, names, descriptions, and basic metadata.jira_get_issueRetrieve details for a specific Jira issue by key or URL. Use this when the user mentions an issue like "PAYWALL-943" or pastes a Jira link (e.g., https://your.atlassian.net/browse/PAYWALL-943). Returns status, assignee, priority, project, type, labels, components, timestamps, and description.jira_search_issuesSearch for Jira issues using JQL. Supports complex queries with pagination and field selection. Examples: "project = PROJECT AND status = Open", "assignee = currentUser()". For pagination, use nextPageToken from previous response.jira_get_my_issuesRetrieves issues assigned to current user, sorted by most recently updated first. Supports pagination and field selection. For pagination, use nextPageToken from previous response.jira_get_issue_typesRetrieves available issue types. Can get global issue types or project-specific issue types including regular issues and subtasks (Bug, Story, Task, Epic, etc.).jira_get_usersSearch for users by name, email, username, or account ID. Returns display name, email, account status, and account type. Supports pagination.jira_get_prioritiesRetrieves available priorities (e.g., Highest, High, Medium, Low, Lowest). Returns IDs, names, and descriptions.jira_get_statusesRetrieves available statuses (global or project-specific, e.g., To Do, In Progress, Done). Returns status categories and workflow information.jira_get_project_infoRetrieves detailed information about a project (components, versions, issue types, roles, insights). More comprehensive than the basic project list.jira_get_create_metaRetrieves create metadata for a project, showing all available fields (including custom fields) for creating issues. Shows required vs optional fields, field types, and allowed values. Use this before creating issues to discover what fields are needed.jira_get_custom_fieldsRetrieves all custom fields available in Jira. Shows custom field names, IDs (e.g., customfield_10071), and types. Useful for discovering what custom fields exist and their identifiers.jira_get_commentsRetrieves all comments for a Jira issue. Returns comment author, content, timestamps, and visibility settings. Supports pagination for issues with many comments.- +11 more on the listing page
MCP Server Atlassian Jira tools 5
jira_getRead 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_postCreate 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_putReplace 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_patchPartially 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_deleteDelete 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/
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 Jira Stdio
{
"mcpServers": {
"mcp-jira-stdio": {
"command": "npx",
"args": [
"-y",
"mcp-jira-stdio@latest"
],
"env": {
"JIRA_BASE_URL": "YOUR_JIRA_BASE_URL_HERE",
"JIRA_EMAIL": "YOUR_JIRA_EMAIL_HERE",
"JIRA_API_TOKEN": "YOUR_JIRA_API_TOKEN_HERE"
}
}
}
}
MCP Server Atlassian Jira
{
"mcpServers": {
"aashari-mcp-server-atlassian-jira": {
"command": "npx",
"args": [
"-y",
"@aashari/mcp-server-atlassian-jira"
],
"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"
}
}
}
}
Frequently asked questions
MCP Jira Stdio is categorized under Workplace & Productivity and uses a local stdio subprocess. MCP Server Atlassian Jira belongs to Workplace & Productivity and uses a local stdio subprocess. Pick MCP Jira Stdio for workplace & productivity work and MCP Server Atlassian Jira 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 Jira Stdio has no declared pricing — check the project's own site. MCP Server Atlassian Jira is listed as free. 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 mcp-jira-stdio and aashari-mcp-server-atlassian-jira as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Jira Stdio has a quality signal of 65/100 (Great) with 0 views, 0 installs and 14 GitHub stars. MCP Server Atlassian Jira has 65/100 (Great) with 7 views, 0 installs and 78 GitHub stars.