Two design choices carry this: write tools stay unregistered until you set the flag, and the HTTP transport refuses to lend out the operator's own credential. The authors are explicit that this began as a learning exercise and point at more mature Jira servers — take that at face value, and take the token handling as the part worth copying.
A containerised Python MCP server for Jira, built for Cursor and usable by any MCP client. It runs from a published image with your Jira personal access token supplied through an env file, and can also serve HTTP so callers bring their own token instead of the server's.
- Issues — `get_jira` by key, `search_issues` with JQL, `create_issue`, `update_issue`, `delete_issue`
- Comments and assignment — `get_issue_comments`, `add_comment`, `delete_comment`, `assign_issue`, `unassign_issue`
- Workflow — `transition_issue` to a new status, `get_issue_transitions` for what is available, `add_issue_labels`, `remove_issue_labels`
- Projects — `list_projects`, `get_project`, `get_project_components`, `get_project_versions`, `get_project_roles`, `get_project_permission_scheme`, `get_project_issue_types`
- Boards and sprints — `list_boards`, `list_sprints`, `get_sprint`, `get_sprints_by_name`
- Users — `search_users`, `get_user`, `get_current_user`, `get_assignable_users_for_project`, `get_assignable_users_for_issue`
- Writes are gated: with the default `JIRA_ENABLE_WRITE=false` Cursor shows 20 tools; set it to true and you get 30
Podman (or another container runtime) and a Jira personal access token. Create a `.env` with the token and register `podman run -i --rm --env-file <path> quay.io/sbaird/jira-mcp:latest` in your client. Developers can build locally with `make setup`, which builds the image, configures Cursor and creates `~/.rh-jira-mcp.env`. For HTTP use, run `python server.py --transport http --port 3075`; in that mode the server ignores its own `JIRA_API_KEY` and requires each caller to send their own Jira token as a Bearer header, so one person's account is not shared with everyone who can reach the service. MIT.
Build from source — clone the repository and build it, then point your client at the binary
