How to connect Jira to Hermes Agent
Connect Jira to Hermes Agent with ClawLink: one browser sign-in, no Atlassian API token, no Forge app, no OAuth app of your own. 94 Jira tools your agent calls from chat.


Create and manage issues and sprints. Once connected, Hermes Agent can read and act on Jira from chat — pairing, token refresh, and tool wiring handled for you.
Most guides for giving Hermes Agent Jira access start with registering your own OAuth app or pasting API keys into env files, then leave the token refresh and tool wiring to you. ClawLink gives Hermes a more practical Jira setup: pair once in the browser and your always-on Hermes agent can act on Jira for you, reading and doing real work on your behalf with no auth, token refresh, or tool wiring to build yourself.
Copy this prompt into Hermes to install the plugin and pair your account.
Set up ClawLink for Hermes and tell me when it's ready.
1. Install the plugin:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
2. Start pairing. It prints an approval link, so show me the link and stop, don't wait:
hermes clawlink begin
3. I'll approve it in my browser, then reply "approved".
4. When I say approved, finish setup:
hermes clawlink finish
5. Then run `hermes clawlink test` and tell me whether ClawLink is ready.Setup
It takes three steps to connect Hermes to Jira.
1Install and pair
Install the ClawLink plugin, then pair Hermes with a one-time browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable- 2
Connect Jira
One-click OAuth in the dashboard.
- 3
Use it from chat
Ask Hermes Agent: "What can you do with Jira?"
Install by command
The prompt above walks Hermes through this. By hand, it is four commands and a browser approval:
hermes plugins install ClawLink-HQ/hermes-plugin --enable
hermes clawlink begin # prints an approval link — open it and approve
hermes clawlink finish # after approving in the browser
hermes clawlink testThen connect Jira in the ClawLink dashboard — a one-click OAuth approval, no API keys.
Verify the connection by asking Hermes:
Run jira_get_all_projects and show me the keys. Then create a Bug in the project I name with jira_create_issue: summary "Checkout 500s on Safari 17", description with the repro steps I paste next, priority High. Tell me the issue key when it exists.
Using a different agent?
The Hermes plugin is one client of ClawLink's MCP server. Claude Code, Cursor, Codex, or any agent that can run a shell command pairs with the same ClawLink account through the CLI:
npx -y @useclawlink/cli loginlogin opens the same browser approval and stores a credential locally. Once Jira is connected in the dashboard, that agent calls the same 94 Jira tools over MCP. Full setup for MCP clients and shell agents: connect apps to any AI agent.
Jira MCP for Hermes
Looking for a Jira MCP server for Hermes Agent? ClawLink connects Jira to Hermes Agent and exposes 94 Jira tools your agent can call over MCP, with hosted auth and nothing to run or maintain yourself. Using OpenClaw instead? The OpenClaw Jira integration works the same way.
Every other route to Jira starts by minting a credential. Atlassian's own docs send you to id.atlassian.com to create an API token, the Forge route has you build an app to get an appUserToken, and the community MCP servers ask for that token in a config file on your machine. ClawLink's route skips the credential entirely: you sign in to Atlassian once in a browser, approve the access, and Hermes calls the 94 Jira tools below through ClawLink. Someone still authorizes the access, because Atlassian requires that and should. What changes is that the thing you approve is a consent screen you can revoke from your Atlassian account settings, not a token string you have to store, rotate, and keep out of your shell history.
What ClawLink does not do with Jira
Three limits worth knowing before you start.
- No Jira Server or Data Center. The connection targets Atlassian Cloud. If your Jira runs on your own infrastructure, the community
sooperset/mcp-atlassianserver is the route people use, and it takes a token you manage. - No Confluence or Bitbucket from this connection. Atlassian's own Rovo MCP server covers Jira, Confluence, and Bitbucket behind one endpoint, and that breadth is a real reason to choose it. This page is Jira only.
- Your Jira permissions still apply. OAuth consent does not widen what your account can reach. If you cannot create issues in a project through the web UI, the agent cannot either, and
jira_get_my_permissionswill say so.
None of these are plan gates on ClawLink's side. They are the boundaries of what this connection covers, stated so the page is useful when the answer is "use something else".
What the Hermes Agent Jira integration can do
94 Jira tools are ready for Hermes Agent once the account is connected. The 30 below are the ones people reach for most; your agent can call all 94.
30 of 94 Jira tools for Hermes
| Tool | What it does |
|---|---|
Add attachment jira_add_attachment | Upload and attach a file to a Jira issue |
Add comment jira_add_comment | Add a comment to an existing Jira issue |
Add user to group jira_add_user_to_group | Add a user to a Jira group |
Add users to project role jira_add_users_to_project_role | Add users to a Jira project role |
Check permissions jira_check_permissions | Check user permissions for Jira operations |
Create jql autocompletedata jira_create_jql_autocompletedata | Retrieve JQL autocomplete reference data |
Evaluate jira expression jira_evaluate_jira_expression | Evaluate Jira expressions using the enhanced search API |
Fetch bulk issues jira_fetch_bulk_issues | Bulk fetch multiple Jira issues by IDs or keys |
Find users2 jira_find_users2 | Find users in Jira by query or account ID |
Get all groups jira_get_all_groups | Retrieve all groups from the Jira instance |
Analyse expression jira_analyse_expression | Analyses Jira expressions for syntax validation, type checking, and complexity analysis |
Find users for picker jira_find_users_for_picker | Find users for picker components by matching query against user attributes like display name |
Get all issue type schemes jira_get_all_issue_type_schemes | Retrieves all Jira issue type schemes with optional filtering and pagination |
Get all projects jira_get_all_projects | Retrieves all visible projects using the modern paginated Jira API with server-side filtering |
Get all statuses jira_get_all_statuses | Retrieves all issue statuses associated with workflows from Jira |
Get all users jira_get_all_users | Retrieves all users from the Jira instance including active, inactive, app accounts, and system |
Get attachment jira_get_attachment | Retrieves the binary content of a Jira attachment by ID |
Get attachment meta jira_get_attachment_meta | Retrieve Jira attachment settings including upload limits and enabled status |
Get comment jira_get_comment | Retrieves a specific comment by ID from a Jira issue with optional expansions |
Get components jira_get_components | Retrieve components from Jira projects with search and filtering |
Get create metadata issue type fields jira_get_create_metadata_issue_type_fields | Retrieve field metadata for a specific issue type in a project |
Get current user jira_get_current_user | Retrieves detailed information about the currently authenticated Jira user |
Get dashboards jira_get_dashboards | List and search Jira dashboards visible to the current user |
Get favorite filters jira_get_favorite_filters | Retrieve favorite filters for the current user |
Get fields jira_get_fields | Retrieve Jira issue fields metadata |
Get fields paginated jira_get_fields_paginated | Retrieve Jira fields in pages |
Get filter jira_get_filter | Retrieves a specific Jira saved filter by ID, including its JQL and sharing metadata, to reuse |
Get group jira_get_group | Retrieves details of a specific Jira group by name or ID |
Get info jira_get_info | Retrieves runtime information for the Jira Service Management instance |
Get issue jira_get_issue | Retrieves a Jira issue by ID or key with customizable fields and expansions |
Try it: find the Jira tool you need
Browse the 30 Jira tools
Click any tool to see exactly what Hermes can do and copy a ready-to-use prompt.
Example prompts
Run jira_get_all_projects and show me the keys. Then create a Bug in the project I name with jira_create_issue: summary "Checkout 500s on Safari 17", description with the repro steps I paste next, priority High. Tell me the issue key when it exists.
Use jira_search_for_issues_using_jql_get with the JQL 'assignee = currentUser() AND statusCategory != Done ORDER BY updated DESC' and show me the top 15 as a list of key, summary, status, and last updated.
For issue PROJ-482, run jira_get_transitions first and show me the available transitions by name. Then move it to the one I pick with jira_transition_issue, and add a comment with jira_add_comment explaining that the fix shipped in release 2.14.
Run jira_list_boards, then jira_list_sprints for the board I name, and pull the issues in the active sprint. Group them by status and tell me which ones have not moved in five days.
How the Jira tools behave
Facts that change how a prompt should be written. The first one is the cause of most failed first attempts.
- List before you act. Nothing in the toolset resolves a human project name to a key.
jira_get_all_projects,jira_list_boards, andjira_search_issuesare the discovery calls; an agent that skips them and guesses an id gets a permissions-shaped error rather than a not-found error, which is why the 403 card above starts there. - Two JQL search tools exist and they are not interchangeable.
jira_search_issuesandjira_search_for_issues_using_jql_getboth run JQL; the GET variant is the one to name when you want a plain query string with ordering.jira_search_approximate_countreturns a count without the issue bodies, which is the cheap way to ask how big a result set is before pulling it. - Transitions are ids, not status names.
jira_transition_issuewill not take "Done" as a status. Runjira_get_transitionson the issue first: the transitions available depend on the issue's workflow and its current status, so the same ticket offers different options at different points. jira_get_my_permissionsis the diagnostic tool. It reports what the connected identity is allowed to do in the site, which is the difference between "the agent used a bad id" and "your account genuinely cannot create issues in that project". Reach for it before reconnecting anything.- Comments and worklogs are separate tools from edits.
jira_add_comment,jira_add_worklog, andjira_edit_issuedo not overlap; asking the agent to "update the ticket" without saying which one you mean is the usual reason it edits a field when you wanted a comment. - Bulk creation exists.
jira_bulk_create_issuetakes several issues in one call, which matters when you are turning a meeting into a backlog and do not want 30 sequential writes.
ClawLink vs. building it yourself
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Jira working from chat.
| Manual | ClawLink | |
|---|---|---|
| Connection flow | Register a Jira app, configure redirect URLs, manage consent details, and reconnect users when auth settings drift. | Users connect Jira through the hosted browser flow and ClawLink keeps the token lifecycle out of your app code. |
| Ongoing maintenance | You own refresh logic, permission debugging, environment config, and every provider-specific edge case for Jira. | ClawLink handles the repetitive integration plumbing so your team can focus on the workflow instead of the infrastructure. |
| Agent usability | You still need to expose the right Jira actions to the runtime in a format your agent can reliably use. | 94 tools for Jira are already exposed through ClawLink, so the agent can read and act from chat immediately. |
ClawLink vs. Composio
Composio also exposes Jira to AI agents. It is developer infrastructure: Python and TypeScript SDKs, an MCP server, and a catalog past 1,000 apps, aimed at teams shipping agent products. ClawLink is built for Hermes Agent users instead. You install the plugin once, connect Jira in the browser, and the 94 tools above work from chat. There is no SDK, no config file, and no API key handling. Choosing between them? Read the full Composio alternatives comparison.
Troubleshooting
Hermes paired but still can't use Jira
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Connection succeeds but no tools appear
Reconnect Jira from the dashboard, then start a fresh chat if the runtime still has the old tool catalog loaded.
"Tool schema not loaded yet" error when calling Jira tools
Jira tool schemas load on demand the first time a tool runs and are cached after that, so this error usually clears on its own: wait a few seconds and retry the same request. If every Jira call keeps failing with it in a fresh chat, reconnect from the dashboard, and contact support if it still persists — that pattern points to a configuration problem on our side, not something you can fix by reconnecting again.
Jira returns 403 or "permission denied" on one action while others work
Two usual causes. The connected account may not have access to the specific workspace, inbox, store, or project in the request — check that first. If access looks right, the agent may have sent a placeholder value (like "YOUR_ID" or an example id from documentation) instead of a real one: ask it to run a list or search tool first, then retry the action with a real id from those results. Most failures at this stage are one of these two, not ClawLink bugs.
Jira returns 403 or "You do not have permission to view this issue" while other Jira calls work
Two causes account for nearly all of these, and they look identical from chat. The first is a placeholder argument: an agent that has not listed anything yet will guess a project key or issue id, and strings like YOUR_PROJECT_ID or PROJ-123 are structurally valid, so the call reaches Atlassian and comes back as a permissions failure rather than a bad-argument failure. The fix is to list first and act second. Ask the agent to run jira_get_all_projects or jira_search_issues, then retry using an id from the response. The second cause is account and site scope: your Atlassian login may reach several sites, but the OAuth grant covers the one you approved, and your Jira permissions inside that site are still yours. jira_get_my_permissions reports what the connected identity can actually do, which separates a wrong-id problem from a genuine permissions problem in one call.
Ask the agent to diagnose it:
Run jira_get_all_projects and show me the project keys you can see. Then run jira_get_my_permissions and report whether BROWSE_PROJECTS and CREATE_ISSUES are granted. Do not retry the failing call until both have returned.Jira returns "email address is not verified" or the connect flow stops at an Atlassian verification screen
This is a connect-flow error, not an API permissions error, and searching for the phrase is misleading because Google answers it with Atlassian's GDPR change that hides emailAddress in API responses. That change is real and unrelated. What this message means during connect is that the Atlassian identity you are signing in with has not confirmed its email address, so Atlassian will not complete the consent step. Verify the address from the confirmation mail Atlassian sent to that account, then start the connection again from the dashboard.
Ask the agent to diagnose it:
Run clawlink_list_integrations and tell me the exact status of the Jira connection, without retrying the connection.A Jira tool returns "tool not found" or the agent invents a tool name like jira_jira_create_issue
Tool schemas load on demand, so the first Jira call in a fresh session can arrive before the catalog is in the agent's context. Retry once. If the same name fails twice, the name is wrong rather than missing: the error message lists the nearest real tools, and retrying with one of those works. The doubled-prefix shape (jira_jira_) is the most common invented name, and it usually means the agent concatenated the integration name onto a tool name that already carries it.
Ask the agent to diagnose it:
List the Jira tools you actually have available and tell me which of them creates an issue. Then use that exact name.OAuth finished in the browser but the account is still missing
Try reconnecting Jira and complete the consent flow in the same browser session. Partial OAuth approvals or switching accounts mid-flow can leave the connection incomplete.
FAQ
Is there a Hermes Agent Jira integration?
Yes. ClawLink is the fastest way to connect Hermes to Jira: link your Jira account once in the browser and Hermes Agent can call the Jira API through 94 ready-made tools — no custom code or token handling.
How do I connect Jira to Hermes with ClawLink?
Install the plugin with hermes plugins install ClawLink-HQ/hermes-plugin --enable, then pair once: run hermes clawlink begin, approve the link in your browser, and run hermes clawlink finish. Connect Jira in the dashboard and Hermes can use it from the next message — no config files or API keys to manage.
How long does it take to connect Jira to Hermes Agent?
About two minutes. Sign in, click Connect next to Jira in the dashboard, authenticate, and Hermes Agent can use it from the next chat message.
Why use ClawLink instead of wiring Jira up myself?
The alternative to ClawLink is usually manual OAuth app setup plus your own token handling, permission troubleshooting, and tool plumbing for Hermes Agent. That is fine if you want to build and maintain the integration yourself. Most teams just want Jira working from chat.
Can I connect Jira to an AI agent without an Atlassian API token?
Yes. The three routes people are usually told about all produce a credential you hold: an API token from id.atlassian.com, a Forge app that issues an appUserToken or appSystemToken, or a community MCP server that reads a token from a config file. ClawLink uses Atlassian's OAuth consent flow instead, so no token is created and nothing is written to your machine. You still authorize the connection, and you should: it is what lets Atlassian show the grant in your account settings and lets you revoke it there in one click. The practical difference is what happens six months later. A token you minted keeps working until you remember to rotate it, and it works from anywhere it leaks to. A consent grant is listed, attributable, and revocable from a screen you already have access to.
Does Hermes need its own Atlassian OAuth app or Forge app for Jira?
No. You do not register anything in developer.atlassian.com, and you do not deploy a Forge app. The Jira connection runs through an OAuth app that is already registered, which is why setup is a sign-in rather than a build. If you have been reading Forge documentation to solve this, that path exists to let an app act with its own identity across a site; it is the right answer for a product you are shipping to other Atlassian customers, and a heavy answer for letting your own agent file tickets.
Which Jira site does the agent act on if I have more than one?
The one you were signed into when you approved the connection. Atlassian scopes OAuth grants to the site you pick during consent, so an agent connected to your sandbox will keep returning empty project lists against production and vice versa. The fastest way to check is to ask the agent to run jira_get_all_projects and read the names back. If they belong to the wrong site, reconnect Jira from the dashboard while signed into the correct one, in the same browser session.
Hermes paired but still can't use Jira
Pairing is a two-step handshake: run hermes clawlink begin, approve the link in your browser, then run hermes clawlink finish. If you ran finish before approving, or the approval link expired, run hermes clawlink begin again to get a fresh link. Confirm the plugin was installed with --enable, then verify with hermes clawlink test.
Related
Hermes GitHub integration
Manage repositories, issues, pull requests, and workflows
Hermes PagerDuty integration
Manage incidents, on-call schedules, and services
SafetyCulture
SafetyCulture (formerly iAuditor) is a workplace operations platform that enables teams to conduct digital inspections, manage audits, track issues, schedule tasks, and maintain compliance through mobile and web applications.