Jira MCP Server
A clean and focused Model Context Protocol (MCP) server that provides seamless integration between AI assistants and Jira, enabling natural language interaction with your Jira projects, issues, and workflows.
README
Jira MCP Server
A clean and focused Model Context Protocol (MCP) server that provides seamless integration between AI assistants and Jira, enabling natural language interaction with your Jira projects, issues, and workflows.
🎯 Features
- 11 Comprehensive Tools for full Jira interaction
- Natural Language Interface - Ask AI to manage your Jira work
- Real-time Updates - Get current project status and issue information
- Secure Authentication - API token-based authentication
- Cross-platform - Works with any MCP-compatible client
- Easy Setup - Simple configuration and testing
🛠️ Available Tools
| Tool | Description | Example Usage |
|---|---|---|
get_issue |
Get detailed issue info | get_issue(issue_key="PROJ-12345") |
search_issues |
Search with JQL | search_issues(jql="project = PROJ") |
create_issue |
Create new issue | create_issue(project_key="PROJ", issue_type="Bug", summary="...") |
update_issue |
Update existing issue | update_issue(issue_key="PROJ-12345", summary="New title") |
add_comment |
Add comment to issue | add_comment(issue_key="PROJ-12345", comment="...") |
get_comments |
Get all comments | get_comments(issue_key="PROJ-12345") |
transition_issue |
Move through workflow | transition_issue(issue_key="PROJ-12345", transition_name="In Progress") |
get_project |
Get project info | get_project(project_key="PROJ") |
get_issue_types |
Get available types | get_issue_types(project_key="PROJ") |
get_my_issues |
Get assigned issues | get_my_issues(max_results=20) |
get_project_issues |
Get project issues | get_project_issues(project_key="PROJ") |
🚀 Quick Start (5 minutes)
Prerequisites
- Python 3.8 or higher
- Jira account with API access
- MCP-compatible client (Cursor, VS Code, etc.)
1. Clone and Setup
cd jira-mcp-server
pip install -r requirements.txt
2. Configure Credentials
Create a .env file with your Jira details:
JIRA_SERVER=https://your-company.atlassian.net
JIRA_EMAIL=your-email@company.com
JIRA_API_TOKEN=your-api-token
Getting Your API Token:
- Go to https://id.atlassian.com/manage-profile/security/api-tokens
- Click "Create API token"
- Copy the token to your
.envfile
3. Test Connection
python3 test_connection.py
4. Configure MCP Client
For Cursor:
Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"jira": {
"type": "stdio",
"command": "python3",
"args": ["/full/path/to/jira-mcp-server/server.py"],
"env": {
"JIRA_SERVER": "https://your-company.atlassian.net",
"JIRA_EMAIL": "your-email@company.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
For VS Code:
Add to your VS Code MCP configuration:
{
"mcpServers": {
"jira": {
"type": "stdio",
"command": "python3",
"args": ["/full/path/to/jira-mcp-server/server.py"],
"env": {
"JIRA_SERVER": "https://your-company.atlassian.net",
"JIRA_EMAIL": "your-email@company.com",
"JIRA_API_TOKEN": "your-api-token"
}
}
}
}
Important:
- Use the full absolute path to
server.py! - The
"type": "stdio"field is required for proper MCP communication - If using a virtual environment, use the full path to the Python interpreter:
"/path/to/venv/bin/python3"
5. Start the Server
python3 server.py
6. Restart and Test
Restart your MCP client and try these commands:
- "Show me all open issues in project XYZ"
- "Create a new task for fixing the login bug"
- "Search for high priority bugs assigned to me"
📁 Project Structure
jira-mcp-server/
├── server.py # Main MCP server implementation
├── test_connection.py # Connection test script
├── requirements.txt # Python dependencies
├── .env # Environment variables (create this)
└── README.md # This file
🔗 Related Projects
- Jira Weekly Reports - Generate automated weekly team summaries from Jira tickets
🎯 Usage Examples
Get Your Issues
# Get issues assigned to you
get_my_issues(max_results=10)
Search for Specific Issues
# Find high priority bugs
search_issues(jql="project = PROJ AND priority = High AND type = Bug")
# Find recent updates
search_issues(jql="project = PROJ AND updated >= -7d")
Create New Issue
create_issue(
project_key="PROJ",
issue_type="Task",
summary="Implement new feature",
description="Add support for advanced filtering",
priority="Medium"
)
Update Issue Status
transition_issue(
issue_key="PROJ-12345",
transition_name="In Progress"
)
Get Issue Details
# Get details for issue PROJ-12345
get_issue(issue_key="PROJ-12345")
Search Issues
# Search for open issues in PROJ project
search_issues(jql="project = PROJ AND status = Open", max_results=10)
🔍 JQL Query Examples
Common Patterns
# Your assigned issues
assignee = currentUser()
# Issues in specific project
project = PROJ
# Open issues
status = Open
# Issues updated in last 7 days
updated >= -7d
# High priority issues
priority = High
# Issues with specific component
component = "Backend"
# Status filters
status IN ("In Progress", "Code Review")
# Date filters
created >= "2025-01-01"
# Priority filters
priority IN ("High", "Critical")
# Combined queries
project = PROJ AND status = Open AND priority = High
assignee = currentUser() AND updated >= -3d
🧪 Testing Your Setup
1. Connection Test
python3 test_connection.py
✅ Should show: "Successfully connected to Jira"
2. Start Server (Optional Test)
python3 server.py
✅ Should start the MCP server and wait for connections.
3. Individual Tool Test
# Test search functionality
python3 -c "
import asyncio
from server import JiraMCPServer
async def test():
server = JiraMCPServer()
await server._init_jira_client()
result = await server._search_issues('project = PROJ', max_results=3)
print(f'Found {len(result)} results')
asyncio.run(test())
"
🚀 Starting the Server
Simply run the server directly:
python3 server.py
Note: Make sure you've completed the setup steps above (installing dependencies, creating .env file, and testing connection) before starting the server.
🔒 Security Best Practices
- Never commit
.envfile - Add to.gitignore - Use API tokens instead of passwords
- Rotate tokens regularly
- Limit token permissions to minimum required
- Use environment variables for sensitive data
🐛 Troubleshooting
Common Issues
-
Authentication Error
- Check your API token is correct
- Ensure your email matches your Jira account
- Verify token hasn't expired
-
Connection Error
- Check your internet connection
- Verify JIRA_SERVER URL is correct
- Ensure firewall allows HTTPS connections
-
Permission Error
- Check your Jira permissions
- Verify you have access to the project/issue
- Contact your Jira administrator
-
"Permission denied" errors
- Run:
chmod +x server.py test_connection.py
- Run:
-
"Module not found" errors
- Run:
pip install -r requirements.txt
- Run:
-
Cursor doesn't see the server
- Double-check the absolute path in your MCP config
- Restart Cursor completely
- Check that the
.envfile has the correct credentials - "No tools or prompts" error: Ensure
"type": "stdio"is included in your MCP configuration - Virtual environment: Use the full path to your Python interpreter (e.g.,
/path/to/venv/bin/python3)
Debug Mode
Enable debug logging by modifying the logging level in server.py:
logging.basicConfig(level=logging.DEBUG)
🛠️ Development
Adding New Tools
- Add tool definition to
list_tools()method - Add handler in
call_tool()method - Implement the actual tool method
- Update this README
Error Handling
The server includes comprehensive error handling:
- Connection errors
- Authentication failures
- Invalid issue keys
- JQL syntax errors
- Permission errors
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🤝 Contributing
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
🎉 Success!
Your Jira MCP server is now properly configured and ready to use! You can:
- ✅ Search and view Jira issues
- ✅ Create and update issues
- ✅ Manage comments and transitions
- ✅ Get project information
- ✅ Handle your assigned work
The server provides a powerful interface between AI assistants and your Jira workflow, making it easier to manage projects and track progress.
📈 What's Next?
Once it's working, you can:
- Ask about specific issues: "What's the status of PROJ-123?"
- Create issues: "Create a bug report for the navbar not working"
- Search with JQL: "Find all issues in project ABC that are in review"
- Add comments: "Add a comment to PROJ-456 saying testing is complete"
- Transition issues: "Move PROJ-789 to Done"
Enjoy your new Jira integration! 🎉
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。