
Jira Mcp
io.github.raalarcon9705Published by GitHub account raalarcon9705v1.0.82Updated Oct 27, 2026
Jira & Confluence MCP: 24 tools for issues, sprints, comments, transitions & wiki. Run via npx.
Overview
Local MCP server that lets an AI assistant manage Jira projects, issues, comments, sprints and users, and read Confluence wiki pages.
- What you can do
- List projects and issue types, and search or inspect users
- Create, read, update and delete issues, including assignments and status transitions
- Create, read, update and delete issue comments, with Markdown converted to Atlassian document format
- List agile boards and sprints, create, update, close and delete sprints, and move issues into sprints
- Fetch Confluence pages by URL code and return them as formatted text with page hierarchy
- When to use it
- Useful when you want an assistant to work inside an existing Jira Cloud instance: drafting and filing issues, updating statuses, commenting, grooming backlogs and running sprint operations, or pulling Confluence page content into a conversation.
- Requirements
- Runs locally over stdio, typically started with npx from the npm package raalarcon-jira-mcp-server (Node.js required). Needs three environment variables: JIRA_HOST (the Atlassian domain URL), JIRA_EMAIL (account email) and JIRA_API_TOKEN (an Atlassian API token). Network access to the Jira and Confluence instance is required.
Installation
In SourceWeft
- Open Jira Mcp in the dashboard and add it to a workspace.
- Enable the server for the chats that should use its tools.
Desktop only via STDIO. STDIO servers start a local process, so they need the SourceWeft desktop host.
Other MCP clients
Follow the launch instructions in the repository.
README
Jira MCP Server
[npm version] [License: MIT] [TypeScript] [Node.js] [MCP] [CI/CD]
The most complete open source Model Context Protocol (MCP) server for Jira & Atlassian. Connect any MCP-compatible AI client to your Jira instance in seconds — manage issues, sprints, comments, transitions, users, and Confluence pages without leaving your AI assistant.
Compatible AI Clients
[Open Source Love] [PRs Welcome] [Contributors] [Stars]
Find This Server On
- MCP Market — MCP server marketplace
- MCP Servers — Awesome MCP Servers directory
- Claude Marketplaces — Claude plugins & MCP directory
- npm —
npx raalarcon-jira-mcp-server
Features
- ✅ Project Management: List projects and issue types
- ✅ Issue CRUD: Create, read, update and delete issues
- ✅ Comments: Create, read, update and delete comments with enhanced pagination
- ✅ Transitions: Move issues between states
- ✅ Assignments: Assign issues to users
- ✅ User Management: Search and manage users
- ✅ Sprint Management: Complete agile sprint lifecycle management
- ✅ Wiki Integration: Access Confluence pages by URL identifier with HTML to text conversion
- ✅ Rich Text Support: Markdown to ADF conversion for formatted descriptions and comments
- ✅ Validation: Yup schema validation
- ✅ Authentication: Full Jira Cloud support
- ✅ Optimized Responses: Token-efficient field filtering
- ✅ Type Safety: Full TypeScript support
Installation
Option 1: Using npx (Recommended)
The easiest way to use this MCP server is with npx:
- Configure your MCP client (e.g., Claude Desktop) with this configuration:
- Get your Jira API token (see instructions below)
That's it! The server will be automatically downloaded and run when needed.
Option 2: Local Development
- Clone the repository:
- Install dependencies:
- Build the project:
- Configure your MCP client with the full path to the built server:
Note: Replace /full/path/to/jira-mcp/ with the actual absolute path to your project directory.
Getting API Token
- Go to Atlassian Account Settings
- Click "Create API token"
- Give it a descriptive name
- Copy the generated token
Usage
Using with npx (Recommended)
Once configured in your MCP client, the server will automatically start when needed. No additional setup required!
Rich Text Support with Markdown
The server now supports automatic Markdown to ADF conversion for issue descriptions and comments. Simply use Markdown syntax and it will be automatically converted to Atlassian Document Format (ADF).
Supported Markdown Elements
- Headers:
# H1,## H2,### H3 - Text formatting:
**bold**,*italic* - Code:
`inline code`andcode blocks - Lists:
- bullet listsand1. numbered lists - Links:
[text](url) - Blockquotes:
> quoted text - Checkboxes:
- [x] completed task
Example Usage
Development
Production
Testing with npx
You can also test the server directly with npx:
Available Tools
Projects
get_projects
Retrieves all projects accessible to the authenticated user.
Parameters:
expand(optional): Additional data to includerecent(optional): Number of recent projects (0-20)
Response: Array of projects with essential fields:
get_issue_types
Gets all available issue types for a specific project.
Parameters:
projectKey(required): Project key
Response: Array of issue types with essential fields:
Issues
create_issue
Creates a new issue in Jira.
Parameters:
projectKey(required): Project keysummary(required): Issue summaryissueType(required): Issue type (Bug, Story, Task, etc.)description(optional): Issue descriptionpriority(optional): Priority (Highest, High, Medium, Low, Lowest)assignee(optional): Assignee account IDlabels(optional): Array of labelscomponents(optional): Array of componentsfixVersions(optional): Array of fix versionscustomFields(optional): Custom field values
Response: Issue PROJ-123 created successfully
get_issue
Gets details of a specific issue (custom fields removed for token efficiency).
Parameters:
issueKey(required): Issue key (e.g., PROJ-123)expand(optional): Additional informationfields(optional): Specific fields to return
Response: Complete issue object with custom fields filtered out
update_issue
Updates an existing issue.
Parameters:
issueKey(required): Issue key to updatesummary(optional): New summarydescription(optional): New descriptionpriority(optional): New priorityassignee(optional): New assigneelabels(optional): New labelscomponents(optional): New componentsfixVersions(optional): New fix versionscustomFields(optional): Custom fields
Response: Issue PROJ-123 updated successfully
delete_issue
Deletes an issue.
Parameters:
issueKey(required): Issue key to deletedeleteSubtasks(optional): Delete subtasks too (default: false)
Response: Issue PROJ-123 deleted successfully
Comments
create_comment
Adds a comment to an issue.
Parameters:
issueKey(required): Issue keybody(required): Comment text (supports ADF format)visibility(optional): Visibility settings
Response: Comment 12345 created successfully
get_comments
Gets all comments for an issue.
Parameters:
issueKey(required): Issue keystartAt(optional): Start index (default: 0)maxResults(optional): Max comments (1-100, default: 50)
Response: Optimized comment structure:
update_comment
Updates an existing comment.
Parameters:
issueKey(required): Issue keycommentId(required): Comment IDbody(required): New comment textvisibility(optional): New visibility settings
Response: Comment 12345 updated successfully
delete_comment
Deletes a comment.
Parameters:
issueKey(required): Issue keycommentId(required): Comment ID
Response: Comment 12345 deleted successfully
Transitions
get_transitions
Gets available transitions for an issue.
Parameters:
issueKey(required): Issue key
Response: Array of transitions with essential fields:
transition_issue
Moves an issue to a different state.
Parameters:
issueKey(required): Issue keytransitionId(required): Transition IDcomment(optional): Comment to add during transitionfields(optional): Additional fields to update
Response: Issue PROJ-123 transitioned successfully
Assignments
assign_issue
Assigns an issue to a user.
Parameters:
issueKey(required): Issue keyassignee(required): User account ID
Response: Issue PROJ-123 assigned successfully
get_users
Searches for users in Jira.
Parameters:
query(optional): Search query by name or emailprojectKey(optional): Filter by project accessmaxResults(optional): Max users (1-100, default: 50)
Response: Array of users with essential fields:
get_current_user
Gets information about the current authenticated user.
Response: Current user with essential fields:
Sprint Management
get_agile_boards
Gets all agile boards available in the Jira instance. Required to find board IDs for sprint operations.
Parameters:
projectKey(optional): Filter boards by projectboardType(optional): Filter by type (scrum, kanban)
Response: Array of boards with essential fields:
get_sprints
Gets all sprints for a specific board. Returns sprint information including ID, name, state, and dates.
Parameters:
boardId(required): The ID of the board to get sprints fromstate(optional): Filter sprints by state (active, closed, future)
Response: Array of sprints with essential fields:
create_sprint
Creates a new sprint. Sprint name and origin board ID are required. Start date, end date, and goal are optional.
Parameters:
name(required): Name of the sprint to createoriginBoardId(required): ID of the board where the sprint will be createdstartDate(optional): Start date of the sprint (ISO 8601 format)endDate(optional): End date of the sprint (ISO 8601 format)goal(optional): Goal or objective of the sprint
Response: Created sprint with essential fields:
update_sprint
Updates sprint information (name, dates, goal, state). Only provided fields will be updated. For closed sprints, only name and goal can be updated.
Parameters:
sprintId(required): ID of the sprint to updatename(optional): New name for the sprintstartDate(optional): New start date (ISO 8601 format)endDate(optional): New end date (ISO 8601 format)goal(optional): New goal or objective for the sprintstate(optional): New state (future, active, closed)
Response: Sprint 421 updated successfully
close_sprint
Closes and completes a sprint. This action requires the sprint to be in the "active" state. Once closed, the sprint cannot be reopened.
Parameters:
sprintId(required): ID of the sprint to close
Response: Sprint 421 closed successfully
delete_sprint
Deletes a sprint. Once deleted, all open issues in the sprint will be moved to the backlog. This action is irreversible.
Parameters:
sprintId(required): ID of the sprint to delete
Response: Sprint 421 deleted successfully. All open issues moved to backlog.
move_issue_to_sprint
Moves an issue to a specific sprint. Returns a confirmation message. Issues can only be moved to open or active sprints.
Parameters:
issueKey(required): Key of the issue to move (e.g., "PROJ-123")sprintId(required): ID of the sprint to move the issue to
Response: Issue PROJ-123 moved to sprint 421 successfully
get_sprint_issues
Gets all issues for a given sprint. Returns a list of essential issue details (key, summary, status, assignee, priority).
Parameters:
sprintId(required): ID of the sprintmaxResults(optional): Maximum number of issues to return (1-100, default: 50)
Response: Array of issues with essential fields:
Response Optimization
The server is optimized for token efficiency:
- Essential Fields Only: Returns only necessary fields for each operation
- Custom Fields Filtered: Automatically removes custom fields from issue responses
- Short Field Names: Uses abbreviated field names (e.g.,
descinstead ofdescription) - Success Messages: Clear, concise success confirmations
- Structured Data: Consistent response formats across all tools
Error Handling
The server includes robust error handling with descriptive messages. Common errors include:
- Authentication: Invalid or expired credentials
- Permissions: Insufficient permissions for the operation
- Validation: Invalid input data
- Resources: Issues or projects not found
- API: Rate limits or Jira server errors
Development
Project Structure
Adding New Features
- Create validation schema in
src/schemas/index.ts - Implement method in
src/jira-client.ts - Create MCP tool in appropriate file in
src/tools/ - Register tool in
src/index.ts
Testing
Using MCP Inspector (Recommended)
-
Install MCP Inspector:
-
Build the project:
-
Start MCP Inspector:
-
Configure your server in the inspector interface:
- Transport: STDIO (default)
- Command:
node - Args:
build/index.js - Environment: Add your Jira credentials
Alternative Testing Methods
CLI Mode (for automation and scripting):
Configuration File (for complex setups):
Claude Desktop: Configure MCP servers directly in Claude Desktop for real-world testing
Advanced Configuration
Environment Variables (for advanced users):
Query Parameters (for direct testing):
Manual Testing
Wiki
query_wiki
Accesses Confluence pages by URL identifier and returns formatted content.
Parameters:
query(required): Page code to search for (like F4CjNw)
Response: Markdown-formatted page content with metadata:
Features:
- Automatic redirect following for short URLs
- HTML to plain text conversion preserving structure
- Page hierarchy display
- Comprehensive error handling
Contributing
We welcome contributions to the Jira MCP Server! Please follow these guidelines to ensure a smooth contribution process.
Getting Started
- Fork the repository on GitHub
- Clone your fork locally:
- Install dependencies:
- Create a new branch for your feature:
Development Workflow
Setting Up Your Environment
-
Install MCP Inspector (official testing tool):
-
Build the project:
-
Test with MCP Inspector:
Then configure your server:
- Transport: STDIO
- Command:
node - Args:
build/index.js - Environment: Add your Jira credentials
Code Standards
- TypeScript: All code must be written in TypeScript
- Type Safety: Avoid
anytypes, use proper Jira.js types - Error Handling: Include comprehensive error handling
- Validation: Use Yup schemas for input validation
- Comments: Add clear comments for complex logic
- Formatting: Follow existing code style and formatting
Adding New Features
-
Create validation schema in
src/schemas/index.ts: -
Implement API method in
src/jira-client.ts: -
Create MCP tool in appropriate file in
src/tools/: -
Register tool in
src/index.ts: -
Optimize response for token efficiency:
- Return only essential fields
- Use short field names
- Filter out unnecessary data
Testing Your Changes
-
Build the project:
-
Test with MCP Inspector:
- Configure server: STDIO,
node build/index.js - Test all affected tools
- Verify responses are optimized
- Configure server: STDIO,
-
Test with CLI mode (for automation):
-
Verify response optimization:
- Check that only essential fields are returned
- Ensure field names are shortened
- Confirm custom fields are filtered out
Pull Request Process
Before Submitting
- Code compiles without TypeScript errors
- All tools work as expected
- Response optimization is implemented
- Error handling is comprehensive
- Documentation is updated if needed
- No personal data is included in examples
Creating a Pull Request
-
Commit your changes with clear messages:
-
Push to your fork:
-
Open a Pull Request on GitHub with:
- Clear title describing the change
- Detailed description of what was added/changed
- Testing instructions for reviewers
- Screenshots if UI changes are involved
Pull Request Template
Code Review Process
- Automated checks will run on your PR
- Maintainers will review your code
- Address feedback promptly
- Make requested changes and update the PR
- PR will be merged once approved
Reporting Issues
When reporting bugs or requesting features:
- Check existing issues first
- Use the issue template provided
- Include reproduction steps for bugs
- Provide clear description for feature requests
- Include relevant logs and error messages
Development Guidelines
Response Optimization
- Essential fields only: Return only necessary data
- Short field names: Use abbreviated names (e.g.,
descinstead ofdescription) - Filter custom fields: Remove
customfield_*from issue responses - Consistent format: Maintain uniform response structure
Error Handling
- Descriptive messages: Include context in error messages
- Proper error types: Use appropriate error types
- Logging: Add console.error for debugging
- User-friendly: Make errors understandable for end users
Documentation
- Update README: Add new tools to documentation
- Include examples: Provide usage examples
- Response format: Document response structure
- No personal data: Use generic examples only
Community Guidelines
- Be respectful and constructive in discussions
- Help others learn and contribute
- Follow the code of conduct
- Ask questions if you need help
Getting Help
- GitHub Issues: For bugs and feature requests
- Discussions: For questions and general help
- Documentation: Check existing docs first
- Code examples: Look at existing implementations
Thank you for contributing to the Jira MCP Server! 🚀
🤝 Contributing
We welcome contributions from the community! This project is open source and we value all contributions.
Quick Start for Contributors
- Fork the repository on GitHub
- Clone your fork:
- Install dependencies:
- Create a branch for your feature:
- Make your changes and test them
- Submit a pull request
Ways to Contribute
- 🐛 Report bugs using our bug report template
- ✨ Request features using our feature request template
- 💻 Submit code improvements and new features
- 📚 Improve documentation and examples
- 🧪 Add tests for better coverage
- 🌍 Translate documentation to other languages
Development Guidelines
- Follow our Contributing Guide
- Read our Code of Conduct
- Use TypeScript for all new code
- Add tests for new functionality
- Update documentation as needed
Getting Help
- 💬 Discussions: Use GitHub Discussions for questions
- 🐛 Issues: Use GitHub Issues for bugs and feature requests
- 📖 Documentation: Check the README and CONTRIBUTING.md
Publishing to npm
To publish this MCP server to npm for distribution:
-
Login to npm:
-
Run the publish script:
-
Or publish manually:
The package will be available as raalarcon-jira-mcp-server and users can install it with:
License
MIT
Support
To report bugs or request features, please open an issue in the repository.
Note: This MCP server is designed to work with Jira Cloud. For Jira Server/Data Center, additional modifications are required for authentication and some endpoints.
Source: README.md at commit 1725f75
Tools
0Version history
1- v1.0.82LatestSep 16, 2026
Score
50% of the applicable checks met
How complete this listing is, computed from the registry entry, the endpoint and public sources. Not a rating of the server and not a statement that it is safe or working today: reachability is a dated check, and no installs or reviews go into the score.
- Reached in the last 30 days25 pts
Keep the endpoint answering the MCP handshake; SourceWeft probes it every 30 days.
- Auth declared10 pts
Declare the credential headers in the registry entry, or keep the endpoint answering the probe so its auth can be classified.
- Tools listed15 pts
Answer tools/list without a credential, or ship a package that starts in a sandbox without one.
- DescriptionRequired15 pts
- Logo10 pts
- Documentation15 pts
- License10 pts