A side-by-side look at the Site 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 Site for workplace & productivity work; choose MCP Server Atlassian Jira for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
ATLASSIAN_SITE_NAME, ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN.jira_get, jira_post, jira_put.Rows where the two servers differ are marked.
| Spec | S Site | |
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 43/100 · Fair | 65/100 · Great |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | No auth required | API key required |
| Pricing | Free | Free |
| Required env vars | None listed | ATLASSIAN_SITE_NAMEATLASSIAN_USER_EMAILATLASSIAN_API_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | — | 77 |
| Directory activity | 0 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | Not listed | 5 |
| Full listing | View Site | View MCP Server Atlassian Jira |
No tool names declared yet. Check the project README from the listing page.
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/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.
No confirmed install command for Site yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"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"
}
}
}
}