MCP Server Atlassian Jira vs Sheets MCP
A side-by-side look at the MCP Server Atlassian Jira and Sheets 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 Jira for workplace & productivity work as a local process; choose Sheets 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 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.
Choose Sheets MCP when
- You need dedicated capabilities in the Workplace & Productivity domain.
- You prefer a local stdio subprocess transport.
- Its auth model fits you: OAuth 2.0.
- You want tools like
google_accounts, find_spreadsheet, create_spreadsheet.
Feature & specification comparison
Rows where the two servers differ are marked.
| Spec | ||
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 65/100 · Great | 68/100 · Great |
| Install command | Confirmed | Confirmed |
| Transport | Local subprocess (stdio) | Local subprocess (stdio) |
| Auth | API key required | OAuth 2.0 |
| Pricing | Free | Free |
| Required env vars | ATLASSIAN_SITE_NAMEATLASSIAN_USER_EMAILATLASSIAN_API_TOKEN | None listed |
| Verified owner | Community listing | Community listing |
| GitHub stars | 77 | 35 |
| Directory activity | 6 views 0 installs 0 upvotes | 5 views 0 installs 0 upvotes |
| Tools | 5 | 29 |
| Full listing | View MCP Server Atlassian Jira | View Sheets MCP |
Tools & capabilities
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/
Sheets MCP tools 29
google_accountsManage the Google accounts Sheets MCP can use. list: show signed-in accounts and the default. add: sign in to a Google account (opens a browser sign-in; also use this when a sign-in has expired). remove: sign an account out and revoke access. set_default: choose the account used for new spreadsheets.find_spreadsheetFind a spreadsheet by name among the ones the user has opened or created with Sheets MCP before (the list is kept on their computer). Use it when the user names a sheet instead of pasting a link, e.g. "my budget sheet". It can't search the rest of their Google Drive: if nothing matches, ask for the link. Leave query empty to list the most recent.create_spreadsheetCreate a new Google Sheets spreadsheet.get_spreadsheet_infoGet a spreadsheet's title, tabs (sizes, frozen rows/cols), charts (ids, types, data ranges), named ranges, and the first few rows of each tab. Call this first to understand a sheet's layout.read_rangeRead cell contents from a range, or its formatting with mode "formats". Large ranges are truncated; use next_range to continue.read_rangesRead several ranges in one call, across any tabs. Faster than calling read_range repeatedly. Each range is truncated to its share of max_cells; use its next_range with read_range to continue.write_rangeWrite values and/or formulas starting at the top-left cell of the range. Input is parsed like typing into the UI (formulas, dates, percentages work). Previous contents are saved for undo_last. Returns any formula errors found after writing.fill_rangeFill cells from a source block, like dragging the fill handle or pasting onto a bigger selection: the source's formulas (relative references shift), values and formatting repeat across the destination. Use it after writing one row or column of formulas to extend them across a table, instead of sending every column. With continue_series, patterns continue instead (1, 2, 3 → 4, 5, 6; Jan → Feb; dates). The destination's previous contents are saved for undo_last. Returns any formula errors found after filling.append_rowsAppend rows after the last row of data in a table (detected from the given range or tab).clear_rangeClear values and formulas in a range (formatting is kept). Previous contents are saved for undo_last.find_replaceFind and replace text across a tab or the whole spreadsheet. Not undoable - consider read_range first.undo_lastUndo the most recent write_range, append_rows, or clear_range made through this server (restores values/formulas only, not formatting or structure). History is kept in memory until the server restarts.- +17 more on the listing page
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 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"
}
}
}
}
Sheets MCP
{
"mcpServers": {
"sheets-mcp": {
"command": "npx",
"args": [
"-y",
"@sheetsmcp/server"
]
}
}
}
Frequently asked questions
MCP Server Atlassian Jira is categorized under Workplace & Productivity and uses a local stdio subprocess. Sheets MCP belongs to Workplace & Productivity and uses a local stdio subprocess. Pick MCP Server Atlassian Jira for workplace & productivity work and Sheets 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 Jira is listed as free. Auth: api key required. Sheets MCP is listed as free. Auth: oauth 2.0. 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-jira and sheets-mcp as separate keys in the same mcpServers object, and your assistant will call tools from either one.
On AllMCPs, MCP Server Atlassian Jira has a quality signal of 65/100 (Great) with 6 views, 0 installs and 77 GitHub stars. Sheets MCP has 68/100 (Great) with 5 views, 0 installs and 35 GitHub stars.