ClawLink

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.

Get started for free
Hermes Agent
Hermes Agent
ClawLink
ClawLink
Jira
Jira
JiraOAUTH2MCP

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.

94 tools

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.

Prompt for Hermes
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.

  1. 1

    Install and pair

    Install the ClawLink plugin, then pair Hermes with a one-time browser approval:

    hermes plugins install ClawLink-HQ/hermes-plugin --enable
  2. 2

    Connect Jira

    One-click OAuth in the dashboard.

  3. 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 test

Then 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 login

login 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.

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-atlassian server 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_permissions will 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

ToolWhat it does
Add attachment jira_add_attachmentUpload and attach a file to a Jira issue
Add comment jira_add_commentAdd a comment to an existing Jira issue
Add user to group jira_add_user_to_groupAdd a user to a Jira group
Add users to project role jira_add_users_to_project_roleAdd users to a Jira project role
Check permissions jira_check_permissionsCheck user permissions for Jira operations
Create jql autocompletedata jira_create_jql_autocompletedataRetrieve JQL autocomplete reference data
Evaluate jira expression jira_evaluate_jira_expressionEvaluate Jira expressions using the enhanced search API
Fetch bulk issues jira_fetch_bulk_issuesBulk fetch multiple Jira issues by IDs or keys
Find users2 jira_find_users2Find users in Jira by query or account ID
Get all groups jira_get_all_groupsRetrieve all groups from the Jira instance
Analyse expression jira_analyse_expressionAnalyses Jira expressions for syntax validation, type checking, and complexity analysis
Find users for picker jira_find_users_for_pickerFind users for picker components by matching query against user attributes like display name
Get all issue type schemes jira_get_all_issue_type_schemesRetrieves all Jira issue type schemes with optional filtering and pagination
Get all projects jira_get_all_projectsRetrieves all visible projects using the modern paginated Jira API with server-side filtering
Get all statuses jira_get_all_statusesRetrieves all issue statuses associated with workflows from Jira
Get all users jira_get_all_usersRetrieves all users from the Jira instance including active, inactive, app accounts, and system
Get attachment jira_get_attachmentRetrieves the binary content of a Jira attachment by ID
Get attachment meta jira_get_attachment_metaRetrieve Jira attachment settings including upload limits and enabled status
Get comment jira_get_commentRetrieves a specific comment by ID from a Jira issue with optional expansions
Get components jira_get_componentsRetrieve components from Jira projects with search and filtering
Get create metadata issue type fields jira_get_create_metadata_issue_type_fieldsRetrieve field metadata for a specific issue type in a project
Get current user jira_get_current_userRetrieves detailed information about the currently authenticated Jira user
Get dashboards jira_get_dashboardsList and search Jira dashboards visible to the current user
Get favorite filters jira_get_favorite_filtersRetrieve favorite filters for the current user
Get fields jira_get_fieldsRetrieve Jira issue fields metadata
Get fields paginated jira_get_fields_paginatedRetrieve Jira fields in pages
Get filter jira_get_filterRetrieves a specific Jira saved filter by ID, including its JQL and sharing metadata, to reuse
Get group jira_get_groupRetrieves details of a specific Jira group by name or ID
Get info jira_get_infoRetrieves runtime information for the Jira Service Management instance
Get issue jira_get_issueRetrieves 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, and jira_search_issues are 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_issues and jira_search_for_issues_using_jql_get both run JQL; the GET variant is the one to name when you want a plain query string with ordering. jira_search_approximate_count returns 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_issue will not take "Done" as a status. Run jira_get_transitions on 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_permissions is 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, and jira_edit_issue do 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_issue takes several issues in one call, which matters when you are turning a meeting into a backlog and do not want 30 sequential writes.

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.

ManualClawLink
Connection flowRegister 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 maintenanceYou 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 usabilityYou 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.

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.