
Company News
Socket Named Top Sales Organization by RepVue
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.
@jl-0/jira-mcp-server
Advanced tools
A Model Context Protocol (MCP) server that provides read-only access to JIRA REST API, enabling LLMs to query and retrieve information from JIRA instances.
This MCP server follows a modular architecture designed for maintainability and extensibility:
JIRA-API-MCP/
├── src/
│ ├── index.ts # MCP server entry point
│ ├── server.ts # Server initialization and tool registration
│ ├── client/
│ │ ├── JiraClient.ts # JIRA API client wrapper with axios
│ │ └── types.ts # TypeScript interfaces for JIRA data models
│ ├── tools/
│ │ ├── issues.ts # Issue-related MCP tool implementations
│ │ ├── projects.ts # Project-related MCP tool implementations
│ │ ├── users.ts # User-related MCP tool implementations
│ │ └── fields.ts # Field discovery MCP tool implementations
│ └── __tests__/
│ ├── tools-direct.test.ts # Integration tests for tool handlers
│ ├── jira.test.ts # Direct JIRA API tests
│ └── generate-mcp-docs.ts # Documentation generation utility
├── dist/ # Compiled JavaScript output
├── __tool_response_logs__/ # Test response captures
└── docs/
├── CLAUDE.md # Instructions for AI assistants
├── INSPECTOR_GUIDE.md # MCP Inspector usage guide
├── MCP_TOOL_DOCUMENTATION.md # Detailed tool specifications
└── TEST_SUMMARY.md # Testing documentation
MCP Server Layer (server.ts)
JIRA Client (client/JiraClient.ts)
Tool Modules (tools/*.ts)
{success, data/error} structureType System (client/types.ts)
Request Flow:
MCP Client → MCP Server → Tool Handler → JIRA Client → JIRA API
Response Flow:
JIRA API → JIRA Client → Tool Handler → MCP Server → MCP Client
npm install @mcp/jira-server
git clone https://github.com/jl-0/JIRA-API-MCP.git
cd JIRA-API-MCP
npm install
npm run build
The server requires JIRA authentication credentials. You can provide these via environment variables or a .env file:
# Required
# For Server/Data Center: https://your-server.com/jira
# For Cloud: https://your-domain.atlassian.net (not currently supported)
JIRA_BASE_URL=https://your-server.com/jira
# For Server/Data Center: Personal Access Token (PAT)
JIRA_API_TOKEN=your-personal-access-token
# Optional
JIRA_MAX_RESULTS=50 # Default max results per request
JIRA_TIMEOUT=30000 # Request timeout in milliseconds
This MCP server is designed for JIRA Server and Data Center installations using:
JIRA_API_TOKEN in your configurationThe server uses Bearer token authentication: Authorization: Bearer <token>
Note: JIRA Cloud uses a different authentication mechanism (API tokens with Basic auth) which is not currently supported by this server.
Add the server to your Claude Desktop configuration:
{
"mcpServers": {
"jira": {
"command": "npx",
"args": ["@jl-0/jira-server"],
"env": {
"JIRA_BASE_URL": "https://your-domain.atlassian.net",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
# Using environment variables
export JIRA_BASE_URL=https://your-domain.atlassian.net
export JIRA_API_TOKEN=your-api-token
npm start
# Or using a .env file
npm start
The MCP Inspector provides an interactive web interface for testing all server capabilities:
# Launch inspector with TypeScript source (development)
npm run inspect
# Build and inspect with compiled JavaScript
npm run inspect:built
The inspector will open at http://localhost:6274 and allow you to:
See INSPECTOR_GUIDE.md for detailed usage instructions.
Run the comprehensive test suite:
# Run all tests
npm test
# Run direct tool integration tests
npm run test:direct
# Generate documentation from test responses
npm run test:generate-docs
Test outputs are saved to __tool_response_logs__/ for analysis.
See TEST_SUMMARY.md for test documentation.
Search for issues using JQL (JIRA Query Language).
Parameters:
jql (required): JQL query stringmaxResults: Maximum results to return (default: 50)fields: Array of fields to includeexpand: Array of data to expandstartAt: Starting index for paginationExample:
{
"jql": "project = PROJ AND status = 'In Progress'",
"maxResults": 10
}
Get detailed information about a specific issue.
Parameters:
issueIdOrKey (required): Issue ID or key (e.g., PROJ-123)fields: Array of fields to includeexpand: Array of data to expandGet comments for a specific issue.
Parameters:
issueIdOrKey (required): Issue ID or keymaxResults: Maximum results (default: 50)startAt: Starting index for paginationGet available transitions for an issue.
Parameters:
issueIdOrKey (required): Issue ID or keyincludeUnavailable: Include unavailable transitions (default: false)List all accessible projects.
Parameters:
expand: Array of additional data to expandrecent: Return only most recent projectsGet detailed project information.
Parameters:
projectIdOrKey (required): Project ID or keyexpand: Array of additional data to expandSearch for projects.
Parameters:
query: Search query stringmaxResults: Maximum results (default: 50)startAt: Starting indexorderBy: Sort order fieldtypeKey: Project type keycategoryId: Project category IDaction: Filter by permission (view/browse/edit)Get information about the authenticated user.
Parameters:
expand: Additional data to expandSearch for users.
Parameters:
query: Search query matching display name and emailaccountId: Find user by account IDmaxResults: Maximum results (default: 50)startAt: Starting indexGet all issue types available for a specific project.
Parameters:
projectIdOrKey (required): Project ID or keymaxResults: Maximum results (default: 50)startAt: Starting indexGet all fields available for a specific issue type in a project.
Parameters:
projectIdOrKey (required): Project ID or keyissueTypeId (required): Issue type IDmaxResults: Maximum results (default: 50)startAt: Starting indexGet all field IDs and names for a specific JIRA issue.
Parameters:
issueIdOrKey (required): Issue ID or keyExample:
{
"issueIdOrKey": "IDS-10314"
}
Search for specific fields by name in a JIRA issue.
Parameters:
issueIdOrKey (required): Issue ID or keysearchTerms (required): Array of search terms to match against field namesExample:
{
"issueIdOrKey": "IDS-10314",
"searchTerms": ["test", "procedure", "story points"]
}
Common JQL queries you can use with jira_search_issues:
-- Find all open issues assigned to me
assignee = currentUser() AND resolution = Unresolved
-- Find high priority bugs
priority = High AND issuetype = Bug
-- Issues updated in the last week
updated >= -1w
-- Issues in specific projects
project in (PROJ1, PROJ2) AND status = "To Do"
-- Issues with specific labels
labels in ("backend", "api")
-- Issues created this month
created >= startOfMonth()
-- Find issues by reporter
reporter = "john.doe@example.com"
-- Complex query
project = PROJ AND (
(priority = High AND status = "In Progress") OR
(priority = Critical AND status != Done)
) ORDER BY created DESC
# Install dependencies
npm install
# Build TypeScript
npm run build
# Run in development mode
npm run dev
# Run tests
npm test
# Lint code
npm run lint
# Format code
npm run format
npm login
Update the version in package.json following semantic versioning:
npm version patch # for bug fixes (0.1.0 -> 0.1.1)
npm version minor # for new features (0.1.0 -> 0.2.0)
npm version major # for breaking changes (0.1.0 -> 1.0.0)
Build the project:
npm run clean
npm run build
Test locally (optional but recommended):
npm link
# In another project:
npm link @mcp/jira-server
Publish to npm:
npm publish --access public
Create a git tag and push:
git push origin main
git push origin --tags
The server provides detailed error messages for common issues:
Planned features for future releases:
This project maintains comprehensive documentation:
When making changes to the codebase:
npm run test:directnpm run test:generate-docsContributions are welcome! Please:
npm testnpm run lintMIT
For issues and questions, please use the GitHub Issues page.
FAQs
MCP server for JIRA REST API integration
We found that @jl-0/jira-mcp-server demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Socket won two 2026 Reppy Awards from RepVue, ranking in the top 5% of all sales orgs. AE Alexandra Lister shares what it's like to grow a sales career here.

Security News
NIST will stop enriching most CVEs under a new risk-based model, narrowing the NVD's scope as vulnerability submissions continue to surge.

Company News
/Security News
Socket is an initial recipient of OpenAI's Cybersecurity Grant Program, which commits $10M in API credits to defenders securing open source software.