jira-mcp-server
# jira-mcp-server
Stdio-based MCP server exposing Jira tools (search, get/create issue, comment, assign, transition, list projects).
Image: `thisisrasel/jira-mcp-server` (tags: `latest`, `1.0.0`)
## Environment variables
| Var | Required | Notes |
| --- | --- | --- |
| `JIRA_BASE_URL` | yes | e.g. `https://your-jira-instance.com` |
| `JIRA_TOKEN` | no | Bearer auth; if set, takes priority over username/password |
| `JIRA_USERNAME` | only if no `JIRA_TOKEN` | basic auth |
| `JIRA_PASSWORD` | only if no `JIRA_TOKEN` | basic auth |
See `.env.example`.
## Run via MCP client
Add to your MCP client config (e.g. Claude Desktop `claude_desktop_config.json`), passing credentials as env vars on the `docker run` command rather than baking them into the image:
```json
{
"mcpServers": {
"jira": {
"command": "docker",
"args": [
"run", "-i", "--rm",
"-e", "JIRA_BASE_URL",
"-e", "JIRA_TOKEN",
"thisisrasel/jira-mcp-server:latest"
],
"env": {
"JIRA_BASE_URL": "https://your-jira-instance.com",
"JIRA_TOKEN": "your-token"
}
}
}
}
```
For basic auth instead of a token, swap the `-e`/`env` entries for `JIRA_USERNAME` and `JIRA_PASSWORD`.
## Build & push
```
docker build -t thisisrasel/jira-mcp-server:1.0.0 -t thisisrasel/jira-mcp-server:latest .
docker push thisisrasel/jira-mcp-server:1.0.0
docker push thisisrasel/jira-mcp-server:latest
```
TDQS
Scored across 7 tools
Each tool targets a distinct Jira operation: search, retrieve, create, comment, assign, transition, and list projects. There is no overlap or ambiguity between them.
All tools share the 'jira_' prefix and use snake_case, with most following a verb_noun pattern (e.g., jira_get_issue). The exception is jira_projects, which is a simple noun rather than 'list_projects', but this is a minor deviation.
With 7 tools, the server is well-scoped for common Jira operations. Each tool covers a core feature without unnecessary bloat or missing essentials.
The set covers create, read, search, comment, assign, and transition, but lacks an update operation (e.g., jira_update_issue), which is a core part of issue lifecycle management. This is a notable gap that agents may need to work around.