jira-issue-context-mcp
Read-only MCP server that fetches a single Jira issue by key and returns its title, description, comments, attachment summary, and image attachments.
README
jira-issue-context-mcp
Read-only MCP server that gives Codex, Claude, Cursor, or any MCP client the context for a specific Jira issue.
It intentionally does one thing: fetch a single issue by key and return the issue title, description, comments, attachment summary, and image attachments.
Features
- Single read-only tool:
jira_issue_context - No board listing, sprint browsing, JQL search, transitions, comments, or writes
- Converts Jira ADF descriptions/comments into plain Markdown-ish text
- Paginates all issue comments
- Returns image attachments as MCP
imagecontent - Supports Atlassian Cloud API token auth, bearer auth, or browser/session cookie auth
- Optional Playwright login helper for cookie-based SSO setups
Install
npm install
npm run build
Authentication
Set JIRA_BASE_URL plus one auth method.
You can put these variables in the shell environment or in a .env file in the directory where the MCP command is started. The package also checks its own local .env as a fallback.
Recommended for Atlassian Cloud:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_EMAIL=you@example.com
JIRA_API_TOKEN=your-atlassian-api-token
Bearer token:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_BEARER_TOKEN=your-token
Cookie/session token:
JIRA_BASE_URL=https://your-domain.atlassian.net
JIRA_SESSION_TOKEN=your-cookie-value
JIRA_COOKIE_NAME=tenant.session.token
For SSO environments where API tokens are not available, the login helper can capture a browser cookie:
npx -y --package github:formonkey/jira-issue-context-mcp#main jira-issue-login \
--base-url=https://your-domain.atlassian.net \
--cookie-name=tenant.session.token \
--browser-channel=msedge
Run it from your project root. The login helper writes JIRA_SESSION_TOKEN to .env in the current directory and uses a persistent Playwright profile at .auth/browser-profile by default. --browser-channel=msedge uses your installed Edge instead of downloading Playwright's Chromium. You may need to complete SSO/MFA manually the first time; later runs reuse the browser session while it remains valid.
If Microsoft SSO blocks the automated browser, start Edge yourself with remote debugging and let the helper connect to that real Edge session:
npx -y --package github:formonkey/jira-issue-context-mcp#main jira-issue-login \
--base-url=https://your-domain.atlassian.net \
--cookie-name=tenant.session.token \
--launch-browser=msedge \
--cdp-port=9222 \
--default-profile=true \
--close-existing-browser=true
This closes existing Edge processes, launches a real Edge process with the installed browser's default profile, connects to it over CDP, waits for you to finish Microsoft SSO, captures the Jira session cookie, and writes it to .env.
Advanced manual mode:
start msedge --remote-debugging-port=9222
Then run:
npx -y --package github:formonkey/jira-issue-context-mcp#main jira-issue-login \
--base-url=https://your-domain.atlassian.net \
--cookie-name=tenant.session.token \
--cdp-url=http://127.0.0.1:9222
Both CDP modes are useful for corporate SSO because the browser is launched as a normal installed browser instead of a Playwright-managed browser.
Codex Project Config
Example .codex/config.toml:
[mcp_servers.jira_issue]
command = "node"
args = ["/absolute/path/to/jira-issue-context-mcp/dist/index.js"]
cwd = "/absolute/path/to/jira-issue-context-mcp"
env_vars = [
"JIRA_BASE_URL",
"JIRA_EMAIL",
"JIRA_API_TOKEN",
"JIRA_BEARER_TOKEN",
"JIRA_SESSION_TOKEN",
"JIRA_COOKIE_NAME",
"JIRA_MAX_IMAGE_MB"
]
enabled = true
startup_timeout_sec = 20
tool_timeout_sec = 90
default_tools_approval_mode = "auto"
Then ask your agent:
JIRA CORE-7584: read the issue context and prepare an implementation plan.
The agent should call:
{ "issueKey": "CORE-7584" }
Tool
jira_issue_context
Parameters:
issueKeyrequired in normal chat-driven usage, e.g.CORE-7584includeCommentsoptional, defaults totrueincludeImagesoptional, defaults totruemaxImageSizeMBoptional, defaults toJIRA_MAX_IMAGE_MBor8
The server also supports --issue=KEY or JIRA_ISSUE_KEY as fallback defaults, but passing the issue key from chat is usually cleaner.
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.