Jirum
Authenticates each user with their own Atlassian account via OAuth 2.0 (3LO), listing the Jira sites the account can access and letting the user select which Atlassian tenant to operate on.
Creates, searches, reads, updates, comments on, links, transitions, assigns and deletes Jira Cloud work items via JQL and the Jira REST API, with server-side resolution of issue types, users, priorities, link-type phrases and custom fields, plus Markdown-to-ADF conversion for descriptions and comments.
Provides Jira Software board and sprint tools: listing boards, fetching sprints (active, next, or by name), listing a sprint's issues, and adding issues to a sprint.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Jirumcreate a bug in project PROJ about login failure"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Jirum
An MCP server that lets Claude (Desktop or Code) create, search and update Jira Cloud work items as you, using Atlassian OAuth 2.0 (3LO). Works with any Atlassian tenant; each user authorizes with their own Atlassian account and tokens stay on their machine.
Claude Desktop / Claude Code
│ MCP (stdio)
▼
Jirum ──── OAuth 2.0 access token ────▶ api.atlassian.com/ex/jira/{cloudId}
│
└── ~/.config/jirum/tokens.json (0600, rotating refresh token)What Claude can do
Area | Tools |
Auth |
|
Discovery |
|
Issues |
|
Hierarchy |
|
Sprints |
|
Opinionated |
|
Descriptions and comments are written in Markdown and converted to Atlassian Document Format (headings, lists, code blocks, tables, links, bold/italic/strike, inline code). Issue descriptions and comments are returned as Markdown.
Your Jira permissions still apply: OAuth scopes never grant more than your Jira user can do.
Related MCP server: Jira MCP
1. Create the Atlassian OAuth app (once per organisation)
Step-by-step with screenshots-level detail and troubleshooting: see GUIDE.md. Short version:
Atlassian's guidance is to ship one OAuth app per integration rather than asking every user to create their own. Whoever owns the integration does this once and shares the client ID/secret with users through your usual secrets channel.
Open the Atlassian Developer Console and choose Create → OAuth 2.0 integration. Name it (e.g.
Jirum).Permissions → Jira API → Add → Configure, then add these scopes:
Classic tab:
read:jira-user,read:jira-work,write:jira-workGranular tab:
read:project:jira
Still on the Granular tab of Jira API (there is no separate Jira Software card), search
jira-softwareand add:read:board-scope:jira-software,read:sprint:jira-software,write:sprint:jira-software,read:issue:jira-software
Authorization → OAuth 2.0 (3LO) → Configure and set the callback URL to exactly:
http://localhost:8787/oauth/callbackSettings → copy the Client ID and Secret.
Optional but recommended: under Distribution, set the app to Sharing so users outside your Atlassian org can authorize it. Fill the required details (privacy policy URL etc.).
Skip step 3 and remove the Jira Software scopes from JIRA_SCOPES if you do not want sprint/board tools.
2. Install
git clone https://github.com/RakshitRabugotra/jirum.git
cd jirum
pnpm install
pnpm buildProvide the credentials either as environment variables (set them in the Claude config below) or in ~/.config/jirum/config.json:
{ "clientId": "…", "clientSecret": "…" }See .env.example for all options (JIRA_OAUTH_REDIRECT_URI, JIRA_SCOPES, JIRA_DEFAULT_SITE, JIRUM_CONFIG_DIR).
3. Authorize
Either from the terminal:
ATLASSIAN_CLIENT_ID=… ATLASSIAN_CLIENT_SECRET=… node dist/index.js loginor later from Claude by asking it to "connect Jira" (it calls jira_connect, which opens the browser and returns the authorization URL). Approve the consent screen; the browser tab says "Jira is connected". If you take longer than the tool's wait, the login keeps waiting in the background for up to 5 minutes and Claude can confirm with jira_auth_status.
If your account can access several Jira sites, pick one:
node dist/index.js sites
node dist/index.js select acmeOther CLI commands: status, logout, config.
4. Connect to Claude Desktop
Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) and add the server (see claude_desktop_config.example.json):
{
"mcpServers": {
"jirum": {
"command": "node",
"args": ["/absolute/path/to/jirum/dist/index.js"],
"env": {
"ATLASSIAN_CLIENT_ID": "…",
"ATLASSIAN_CLIENT_SECRET": "…"
}
}
}
}Restart Claude Desktop. Use the full path to node (which node) if Claude cannot find it, since GUI apps do not load your shell profile.
5. Connect to Claude Code
claude mcp add jirum -s user -e ATLASSIAN_CLIENT_ID=… -e ATLASSIAN_CLIENT_SECRET=… -- node /absolute/path/to/jirum/dist/index.jsBoth clients share the same token file, so you only authorize once per machine.
Example prompts
"Create a Jira ticket in THEOS for the Vite 9 migration, assign it to me, add the acceptance criteria we discussed."
"Is there already a ticket about PostgreSQL schema permissions in THEOS?"
"Create an epic 'Billing v2' with features 'Invoices' and 'Refunds', each with sub-tasks for API and UI."
"Move THEOS-42 to In Progress and comment that the PR is up."
"What's in the active sprint for THEOS that's assigned to me?"
"Link THEOS-51 as blocked by THEOS-49."
How it works
OAuth: authorization-code flow with
offline_access. A throwaway HTTP server listens on the callback port only while a login is in progress. Atlassian rotates refresh tokens; the new one is persisted after every refresh. Concurrent tool calls share a single refresh.Multi-site: after login the server stores every accessible site from
accessible-resources. Every tool accepts an optionalsiteargument; otherwise the selected site (orJIRA_DEFAULT_SITE) is used.Name resolution: issue types, users (name/email/"me"), priorities, link-type phrases ("is blocked by"), custom fields (by name) and sprints ("active", "next", a name) are resolved to ids server-side so Claude does not have to.
Errors come back as readable tool errors (
NOT_CONNECTED: …,Jira 403 … missing a scope) so Claude can recover, for example by callingjira_connect.Nothing is written to stdout except MCP protocol messages; logs go to stderr.
Development
pnpm dev # run from source via tsx
pnpm typecheck
pnpm test:adf # markdown -> ADF conversion checksSecurity notes
Tokens are stored in
~/.config/jirum/tokens.jsonwith mode 0600. Delete it (or runjirum logout) to disconnect this machine; revoke the app at https://id.atlassian.com/manage-profile/apps to revoke entirely.Atlassian 3LO does not support PKCE, so the client secret is required for token exchange. Treat it like any other shared app secret.
jira_delete_issueis the only destructive tool; it is annotated as such so clients can require confirmation.
This server cannot be deployed
Maintenance
Related MCP Connectors
Connect to Atlassian Jira, Confluence, Loom, and more to search, create, and manage your work.
- platform7nOAuthtech.p7n
Connect Claude to your Platform7n workspaces — chat, links, and tasks. One-click OAuth.
JusPronto is case-management software for Brazilian law firms. Its remote MCP server (OAuth 2.1 with PKCE, per-permission scopes, audit log) lets Claude and ChatGPT read the firm's own cases, deadlines, agenda, recent court movements and case files with the page cited. Write actions require the lawyer's approval. Requires a JusPronto account.
One workspace of tools for Claude and ChatGPT: connect 600+ apps, generate media, build tools.
Related MCP Servers
- AlicenseCqualityDmaintenanceConnects Jira with Claude, enabling users to search issues, view issue details, update issues, add comments, and retrieve project information through natural language commands.148 npm1MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI assistants to manage Jira Cloud instances, including creating and updating issues, managing sprints and projects, adding comments, tracking worklogs, and searching with presets.9 npmMIT
- AlicenseNot gradedqualityDmaintenanceEnables Claude AI to interact with JIRA for project management and issue tracking, supporting JQL queries, comprehensive issue details retrieval with subtasks and linked issues, and release planning analysis.MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants like Claude to interact with Jira for project management tasks, including issue creation, updates, workflow transitions, and bulk operations.28 npm4MIT