A side-by-side look at the Hirly and MCP Server Atlassian Confluence MCP servers: transport, auth, tools, quality signals, and the config to install either one in Claude, Cursor, Windsurf or VS Code.
Verdict: choose Hirly for workplace & productivity work; choose MCP Server Atlassian Confluence for workplace & productivity as a local process. You can also run both side by side in one mcpServers block.
get_matches, get_job, save_resume.ATLASSIAN_SITE_NAME, ATLASSIAN_USER_EMAIL, ATLASSIAN_API_TOKEN.conf_get, conf_post, conf_put.Rows where the two servers differ are marked.
| Spec | H Hirly | |
|---|---|---|
| Category | Workplace & Productivity | Workplace & Productivity |
| Quality signal | 48/100 · Fair | 63/100 · Good |
| Install command | Not confirmed yet | Confirmed |
| Transport | — | Local subprocess (stdio) |
| Auth | OAuth 2.0 | API key required |
| Pricing | Freemium | BYOK (pay the provider) |
| Required env vars | None listed | ATLASSIAN_SITE_NAMEATLASSIAN_USER_EMAILATLASSIAN_API_TOKEN |
| Verified owner | Community listing | Community listing |
| GitHub stars | 0 | 62 |
| Directory activity | 0 views 0 installs 0 upvotes | 3 views 0 installs 0 upvotes |
| Tools | 9 | 5 |
| Full listing | View Hirly | View MCP Server Atlassian Confluence |
get_matchesLists the next jobs hirly matched to your resume that you have not acted on yet, best first.get_jobGives your assistant one job's full posting, how your resume meets its requirements, and the hiring contact when hirly can find one.save_resumeSaves a resume your assistant tailored as a new version in your hirly account. Your main resume changes only if you ask.record_applicationMarks a job as applied in hirly — after you confirm you sent it — with the resume version you used.get_profileShows your plan, whether your profile is set up, and a short summary of your main resume.get_pending_questionsLists the applications that are paused because the employer's form asked something only you can answer, with the questions.answer_questionsSends the answers you give in the chat, so hirly can finish the application. Only if you allowed applying.submit_applicationStarts hirly applying to one job for you, after you confirm that job in the chat. Only if you allowed applying.get_application_statusSays where an application stands: queued, applying, waiting for your answers, applied, or stopped and why.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/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 Hirly yet — follow the setup steps linked from its listing page rather than a guessed package name.
{
"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"
}
}
}
}