jira-mcp
Provides read-only access to Jira, enabling retrieval of issue details, comments, issue context (parent, subtasks, linked issues, epic children), JQL search results, and account verification.
Click on "Install 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., "@jira-mcpget issue PROJ-123 with comments"
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.
Jira MCP Server (read-only)
A local MCP server that lets Claude Code pull Jira ticket context (issue details, comment threads, the reference graph around a ticket, and JQL search results) rendered as compact Markdown. Image attachments (e.g. the screenshot on a UI bug ticket) can be fetched for Claude to analyze visually.
What it deliberately cannot do
This server is strictly read-only. It exposes no tool that creates, updates, transitions, deletes, or comments on anything. Enforcement is layered:
In code: every HTTP request funnels through a single helper that only permits
GET, with one allowlisted exception:POST /rest/api/3/search/jql, a read operation that Atlassian requires be sent as POST. Any other method raisesReadOnlyViolationError, so a future edit that adds a write call fails loudly.At the credential level: create the API token with only read scopes (below), so even a bug could not write.
Related MCP server: JIRA MCP Server
Tools
Tool | Purpose |
| Full ticket detail including all non-empty custom fields (acceptance criteria, story points, ...) with their display names, plus (by default) the comment thread |
| Just the discussion, with author/timestamp/edited/visibility |
| Parent, subtasks, linked issues (with link direction), and epic children, each as key + type + status + summary |
| Compact JQL search results |
| Downloads an image attachment (listed by |
| Which account the token resolves to; the first stop for auth debugging |
Setup
1. Create an Atlassian API token
Go to https://id.atlassian.com/manage-profile/security/api-tokens.
Choose Create API token with scopes (Atlassian is deprecating unscoped tokens).
Select the Jira app and pick only these scopes:
read:jira-workread:jira-user
Copy the token immediately; it is shown only once.
An older unscoped token also works; the server handles both automatically (see below).
2. Configure .env
cp .env.example .env # then editRequired keys (this is the whole configuration surface):
Key | Value |
| The email of your Atlassian account |
| The token from step 1 |
| e.g. |
.env is gitignored; never commit it. Real environment variables take precedence
over the file. The file is located relative to the project directory (not the working
directory), so the server finds it no matter where it is launched from.
3. Install dependencies
With uv (preferred, since this repo has a uv.lock):
uv syncOr with plain pip into a venv:
python -m venv .venv
.venv/bin/pip install -r requirements.txt # Windows: .venv\Scripts\pip4. Verify with --check
.venv/bin/python -m jira_mcp --check # connectivity + auth only
.venv/bin/python -m jira_mcp --check PROJ-123 # also fetch a ticket in fullThis prints whether .env was found, which base URL was selected (and whether the
cloud-ID fallback was needed), the authenticated account, and, when a key is given,
the ticket exactly as Claude would see it.
Scoped vs. unscoped tokens: the base URL problem
An unscoped token works against your site URL,
https://<site>.atlassian.net.A scoped token against that same URL fails silently, returning anonymous-looking responses. It must call
https://api.atlassian.com/ex/jira/{cloudId}instead.
You do not need to know which kind you hold. At startup the server probes the site URL
with GET /rest/api/3/myself; if that does not return a real account, it fetches your
cloud ID from {site}/_edge/tenant_info and retries against api.atlassian.com. The
winner is cached for the process lifetime and logged to stderr.
If detection ever fails: _edge/tenant_info is not part of Atlassian's formally
supported REST API (though Atlassian's own support docs point at it), so it could
change. In that case set ATLASSIAN_CLOUD_ID in .env to skip detection; the error
message will tell you when this applies. You almost never need it.
PyCharm setup
Interpreter: Settings → Project → Python Interpreter → Add Interpreter → Existing → select
.venv/bin/pythonin the project directory. (If you ranuv sync, the venv already exists with everything installed.)Run configuration for debugging: Run → Edit Configurations → + → Python:
Run: module
jira_mcp(choose "module" instead of "script path")Parameters:
--check PROJ-123Working directory: the project root (anything works, but this is tidy)
Now you can set breakpoints anywhere (e.g. in
client.py) and debug real requests. Errors inside a running MCP server are otherwise invisible.
Connect to Claude Code
Use the venv's Python by absolute path; a bare python won't resolve to the venv
when Claude Code spawns the server.
macOS/Linux:
claude mcp add jira -- /path/to/PythonProject/.venv/bin/python -m jira_mcpWindows:
claude mcp add jira -- C:\path\to\PythonProject\.venv\Scripts\python.exe -m jira_mcpNotes:
Everything after
--is the command Claude runs; everything before it is Claude's own options.Default scope is
local(just you, just this project, stored in~/.claude.json). Add--scope projectto share via a checked-in.mcp.json, or--scope userto use it across all your projects.
Verify it's connected
Inside a Claude Code session:
Run
/mcp; thejiraserver should be listed as connected, with six tools.Or just ask: "use whoami to check the jira connection".
Troubleshooting
Symptom | Likely cause and fix |
401 Unauthorized | Wrong email or token, or the token was revoked/expired. Recreate the token and update |
403 Forbidden | Scoped token missing |
404 Not Found | The issue doesn't exist, or your account lacks permission to see it. Jira reports issues you cannot view as 404, and a token never grants more access than the human it belongs to. Verify you can open the ticket in a browser while logged in as that account. |
Empty tool list in Claude | The server crashed at startup. Run the exact command from |
Server won't start | Run |
Detection failed / anonymous responses | Startup logs (stderr) say which base URL was probed and why it was rejected. If |
Notes for developers new to Python
The venv (
.venv/) is a project-local copy of Python plus this project's packages: the equivalent ofnode_modules, except the interpreter itself lives inside it too. That's why Claude Code must be given.venv/bin/pythonby absolute path: there's no global install to fall back on.asyncio.run(...)is needed because async functions in Python don't run just by calling them; calling one returns a coroutine object, and something has to drive it. There's no ambient event loop like in Node;asyncio.run()creates a loop, runs one coroutine to completion, and tears the loop down. The MCP server does this internally viamcp.run(); the--checkmode does it explicitly.The decorators (
@mcp.tool) are functions that receive the function defined below them and register/wrap it, like a middleware factory applied at definition time. FastMCP's decorator reads the function's name, type hints, and docstring to generate the MCP tool schema that Claude sees; the docstring is the tool's API documentation.python -m jira_mcpruns the package's__main__.py, the closest thing Python has to an npmbinentry. It works from any directory becauseuv syncinstalled the project into the venv.
Available Tools
6 toolsget_attachmentA
Download an image attached to a Jira issue, for visual analysis.
Returns the image itself so it can be looked at directly. Use it when a ticket's Attachments section (from get_issue) lists a screenshot or other image relevant to the task, e.g. a UI bug report where the screenshot shows the actual broken state.
Only images are supported (png, jpeg, gif, webp) up to 5 MB; videos and other file types are rejected with an explanatory error.
| Name | Required | Description | Default |
|---|---|---|---|
| attachment_id | Yes | The numeric attachment ID exactly as listed in get_issue output, e.g. get_attachment(attachment_id="107474"). NOT the issue key and NOT the filename. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure, and it does so excellently. It states the return payload ('Returns the image itself'), the supported formats and size limit (png, jpeg, gif, webp up to 5 MB), and the failure behavior for unsupported types ('videos and other file types are rejected with an explanatory error'). This is thorough and sets accurate expectations for the agent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is remarkably concise—three sentences in total—yet packs all essential information: purpose, return type, when to use, and constraints. It is front-loaded with the core action, then the use case, then limitations. Every sentence earns its place with zero redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter download tool with no output schema, the description is complete. It tells the agent what the tool returns (the image), when to invoke it (based on get_issue attachments), and what constraints apply (formats, size, error behavior). There is no missing information an agent would need to call this correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, and the schema itself already provides comprehensive parameter semantics (the attachment_id description explains it is a numeric ID from get_issue, NOT the issue key or filename, with an example). The tool description adds no additional parameter context beyond the schema, so the baseline of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with a precise verb and object: 'Download an image attached to a Jira issue, for visual analysis.' This clearly distinguishes it from all sibling tools (whoami, get_issue, get_comments, get_issue_context, search_issues), none of which download binary content. The purpose is unambiguous and immediately actionable.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explicitly states when to use the tool: 'Use it when a ticket's Attachments section (from get_issue) lists a screenshot or other image relevant to the task,' and gives a concrete example (UI bug report). It also implicitly defines the boundary by noting only images (png, jpeg, gif, webp) up to 5 MB are supported, so an agent knows not to use it for videos or other file types. This is clear, concrete guidance with no ambiguity.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commentsA
Get only the comment thread of a Jira issue, as Markdown.
Each comment includes author, timestamp, whether it was edited, and any visibility restriction. Use this instead of get_issue when the ticket body is already known and only the discussion is needed.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of comments to return (1-100). | |
| issue_key | Yes | Jira issue key like "PROJ-123". | |
| newest_first | No | Set True to get the most recent comments first — useful for long threads where only the latest state matters. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden. It discloses the output format (Markdown), the fields included (author, timestamp, edited, visibility restriction), and the scoping (only comments, not the issue body). Lacks mention of pagination or errors, but that's minor for a read operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences with zero waste. The first sentence front-loads the action and format, the second adds detail and usage guidance. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given that input parameters are fully documented and an output schema exists, the description supplies the missing context: purpose, format, and when to use it. Nothing critical an agent needs to call it correctly is omitted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so all parameters are already documented. The description adds no extra semantic meaning beyond the schema; it even reinforces the 'comment thread' concept but doesn't clarify parameter usage further. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Get'), a precise resource ('comment thread of a Jira issue'), and the output format ('as Markdown'). It explicitly differentiates from the sibling get_issue, making the tool's scope immediately clear.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-to-use guidance: 'Use this instead of get_issue when the ticket body is already known and only the discussion is needed.' This names the alternative and the condition, leaving no ambiguity about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issueA
Get full detail for one Jira issue as Markdown.
Returns summary, status, type, priority, resolution, assignee, reporter, labels, components, fix versions, created/updated timestamps, the full description, all non-empty custom fields (e.g. acceptance criteria, story points) with their display names, the attachment list (fetch images via get_attachment), and (by default) the complete comment thread.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | Jira issue key like "PROJ-123" (case and surrounding whitespace are tolerated). | |
| include_comments | No | Set False to omit the comment thread when only the ticket body is needed — the response is much shorter. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It clearly states the output format (Markdown), enumerates the fields included, notes that only non-empty custom fields are returned, and references get_attachment for image handling. This is transparent about what the tool does and its default behavior (comments included). It does not mention error cases or permissions, but since it is a 'get' operation, it is reasonable to assume read-only. The description adds meaningful behavioral context beyond a bare statement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, well-structured paragraph with the core purpose front-loaded. Every sentence adds value, detailing the fields returned, the attachment list, and the comment behavior. It is slightly long but not wasteful, and the structure flows logically from general to specific. No redundancy or filler.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity, the description covers the essential return details, output format, and the relationship to get_attachment. Since an output schema exists, return values are not the description's responsibility. It addresses the main use case (full issue details) and the optional comment behavior. It stops short of describing error handling or authentication, but for a read-only getter with a rich schema, it is nearly complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so both parameters are already fully documented in the schema. The tool description adds minimal meaning beyond the schema—it reiterates that comments are on by default, which matches the schema default. It does not introduce new parameter semantics or clarify anything not already in the schema. Baseline 3 is appropriate here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a specific verb and resource: 'Get full detail for one Jira issue as Markdown.' It enumerates the exact fields returned, making its scope immediately clear. It distinguishes itself from siblings like get_comments (which returns only comments) and get_issue_context (context-specific) by stating what it covers, so an agent can tell it apart without opening schemas.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context by listing what it returns and mentioning that images must be fetched via get_attachment, but it does not explicitly state when to use this tool instead of get_comments or search_issues. The include_comments parameter hints that for just the ticket body you might set it False, but there is no explicit 'use X when Y' guidance. It provides enough to infer usage but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_issue_contextA
Map the reference graph around a Jira issue: parent, subtasks, links.
Returns the parent (e.g. epic), all subtasks, and all linked issues — each resolved to key + type + status + summary so the next issue to read can be chosen without further calls. Link relationships are given in human terms with correct direction ("blocks" vs "is blocked by"). For epics, also lists the issues inside the epic.
| Name | Required | Description | Default |
|---|---|---|---|
| issue_key | Yes | Jira issue key like "PROJ-123". |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavior disclosure. It reveals that results are resolved to key+type+status+summary, link direction is human-readable ('blocks' vs 'is blocked by'), and epics include their contained issues. This gives a solid understanding of what the tool does without mentioning side effects (likely a read-only operation) or authorization requirements, which are minor gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two concise paragraphs with no filler. It front-loads the core purpose and then details the output structure and value proposition ('so the next issue to read can be chosen'). Every sentence contributes meaningful information, making it appropriately sized.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the presence of an output schema (which presumably details the return type), the description gives an adequate high-level overview of what the tool returns. It covers the main categories (parent, subtasks, links, epic contents) and the format of resolved summaries. It doesn't mention potential errors or pagination, but for a graph-mapping tool this is not critical. The description is sufficient for an agent to decide to call the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The only parameter 'issue_key' is already fully described in the schema (e.g., 'Jira issue key like "PROJ-123"'), and schema description coverage is 100%. The tool description adds no additional semantics beyond what the schema provides, so it meets the baseline without enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a specific verb ('Map') and resource ('the reference graph around a Jira issue') and enumerates exactly what is returned (parent, subtasks, linked issues, and epic contents). It clearly distinguishes itself from siblings like get_issue (single issue), get_comments, search_issues, and get_attachment by focusing on relationships rather than raw issue data. The purpose is immediately unambiguous.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use it: when you need to decide which issue to read next based on the relationship graph ('so the next issue to read can be chosen without further calls'). It doesn't explicitly mention when not to use it or list alternatives for cases like retrieving a single issue, but the context is clear enough for an agent to infer appropriate usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_issuesA
Search Jira with a JQL query; returns a compact Markdown list.
Each result line has key, type, status, summary, assignee and last
update. Example JQL: 'project = PROJ AND status != Done ORDER BY
updated DESC'. Results are capped at limit (1-100); the output notes
when more matches exist.
| Name | Required | Description | Default |
|---|---|---|---|
| jql | Yes | A JQL query string (sent via POST, so any length/complexity works). | |
| limit | No | Maximum number of issues to return. |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It clearly states the output format (Markdown list with specific fields per line), the cap on results via the limit parameter, and that the output notes when more matches exist. This goes beyond a bare 'returns search results' and gives the agent a concrete expectation of what will happen.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is four sentences with no fluff. The purpose is front-loaded, an example is provided, and the cap/note behavior is clearly stated. Every sentence adds operational value, making it compact and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple two-parameter tool with an output schema, the description covers all essential aspects: what it does, how to invoke it (with example), what the result lines contain, and the constraint on limit. The output schema handles field definitions, so the description need not repeat them. Nothing critical for correct invocation is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for both parameters, so the baseline is 3. The description adds value beyond the schema by specifying that results are capped at limit (1-100), which is not in the schema (no min/max defined), and by providing an example JQL query that clarifies usage. It also notes that any length/complexity works, which the schema already hints at but is reinforced here.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description starts with a clear verb+resource: 'Search Jira with a JQL query' and specifies the output format as a compact Markdown list. It distinguishes itself from sibling tools like get_issue or get_comments by focusing on search across issues rather than retrieving a single known entity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides context for when to use the tool (when you need to find issues matching a JQL query) and includes an example JQL. However, it does not explicitly mention when NOT to use it or name alternatives (e.g., 'use get_issue to fetch a single issue by key'). The routing to siblings is implied but not stated, so it falls short of a 4.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
whoamiA
Report which Atlassian account this server is authenticated as.
Returns display name, email, account ID, and which base URL was selected (site URL vs cloud-ID fallback). Call this first when any other tool returns authentication or permission errors — it isolates whether the problem is the credentials or the specific resource.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It explains the tool's read-only nature implicitly ("Report") and details the base URL selection logic (site URL vs cloud-ID fallback). However, it does not explicitly state that no modifications are made, which would be a slight improvement.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, with the primary purpose stated in the first sentence and return details and usage guidance following logically. Each sentence earns its place without redundancy, and the structure front-loads the core function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a parameterless tool with an output schema, the description fully covers its function, return content, and a specific usage scenario. No additional context is needed for an agent to invoke it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has no parameters, so schema coverage is trivially 100%. The description adds significant value by specifying exactly what information is returned (display name, email, account ID, base URL), going beyond the empty schema and enriching the agent's understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reports the authenticated Atlassian account, listing specific return fields (display name, email, account ID, base URL). It distinguishes itself from siblings by focusing on authentication, not issues or comments.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly instructs to call this tool first when other tools return authentication or permission errors, providing a clear when-to-use directive. This guidance helps agents isolate credential vs. resource problems, which is directly actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
6 tool updates
v0.1.0- First observed
get_attachment - First observed
get_comments - First observed
get_issue - First observed
get_issue_context - First observed
search_issues - First observed
whoami
TDQS
Each tool has a clear, distinct purpose: whoami validates identity, get_issue loads full details, get_comments retrieves only the discussion, get_issue_context maps relationships, search_issues runs JQL queries, and get_attachment downloads image content. No two tools overlap in function.
All tools follow a consistent snake_case verb_noun pattern (get_issue, get_comments, search_issues, etc.). The only exception is 'whoami', which is a standard, recognizable command name and does not break the overall pattern.
Six tools cover the essential read-only workflows for a Jira server: authentication, issue retrieval, comment access, relationship mapping, search, and attachment download. The count is well-scoped for the server's purpose without being excessive or sparse.
The surface covers common read-only Jira tasks comprehensively, including authentication, issue detail, comments, links, search, and images. Minor gaps exist—such as lacking project listing or issue creation/update—but these appear intentionally omitted for a read-centric server.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Manage dillie projects, tasks, and sprints; look up members and search platform documentation.
1Task manager your agent can fully operate: boards, tasks, sprints, roles, worklogs, day planner.
Task management for people and AI agents, with scoped OAuth access to issues, projects, and docs.
130
Related MCP Servers
- AlicenseBqualityDmaintenanceEnables fetching and viewing Jira issue details directly through Claude Desktop using secure API token authentication. Provides comprehensive issue information including status, assignee, priority, and descriptions in both human-readable and structured formats.104891MIT
- AlicenseNot gradedqualityDmaintenanceEnables AI assistants to search, view, create, and update JIRA issues using natural language commands and JQL queries.98Apache 2.0
- AlicenseAqualityDmaintenanceProvides read-only access to JIRA REST API, enabling LLMs to query and retrieve information from JIRA instances.1423MIT
- FlicenseNot gradedqualityDmaintenanceProvides read-only issue and project management tools for Jira Server/DC, enabling querying issues, projects, and assignments via natural language.-
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/Satttoshi/jira-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server