@thammarongg/jira-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +205 -0
- package/dist/client.js +102 -0
- package/dist/config.js +38 -0
- package/dist/index.js +38 -0
- package/dist/install.js +302 -0
- package/dist/tools/boards.js +22 -0
- package/dist/tools/epics.js +61 -0
- package/dist/tools/generic.js +18 -0
- package/dist/tools/issues.js +188 -0
- package/dist/tools/meta.js +13 -0
- package/dist/tools/projects.js +59 -0
- package/dist/tools/sprints.js +106 -0
- package/dist/tools/users.js +36 -0
- package/dist/util.js +24 -0
- package/package.json +51 -0
- package/skill/SKILL.md +102 -0
package/skill/SKILL.md
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: jira
|
|
3
|
+
description: Use when the user asks about Jira work — boards, sprints, backlog, epics, issues, JQL search, creating/updating/transitions, comments, worklogs — or when the jira MCP server is not yet configured and needs setup. Covers the jira-mcp MCP server (43 tools) for Jira Cloud and Data Center.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Jira (via jira-mcp MCP server)
|
|
7
|
+
|
|
8
|
+
The `jira` MCP server exposes the full Jira REST API: boards, sprints,
|
|
9
|
+
epics, issues (JQL, transitions, comments, worklogs), projects, users, and a
|
|
10
|
+
raw `jira_api` passthrough for any `/rest/...` endpoint. Works with Jira
|
|
11
|
+
Cloud (API v3) and Data Center (API v2); field-shape differences are handled
|
|
12
|
+
server-side.
|
|
13
|
+
|
|
14
|
+
## If the jira MCP tools are not available
|
|
15
|
+
|
|
16
|
+
Tell the user the server isn't configured and offer to set it up. Required
|
|
17
|
+
env vars:
|
|
18
|
+
|
|
19
|
+
- `JIRA_BASE_URL` — `https://your-org.atlassian.net` (Cloud) or
|
|
20
|
+
`https://jira.yourcompany.com` (DC)
|
|
21
|
+
- Cloud: `JIRA_EMAIL` + `JIRA_API_TOKEN` (token from id.atlassian.com →
|
|
22
|
+
Security → API tokens)
|
|
23
|
+
- DC: `JIRA_USERNAME` + `JIRA_API_TOKEN` (PAT) or `JIRA_PASSWORD` (app password)
|
|
24
|
+
|
|
25
|
+
Claude Code one-liner:
|
|
26
|
+
|
|
27
|
+
```bash
|
|
28
|
+
claude mcp add jira --env JIRA_BASE_URL=https://your-org.atlassian.net \
|
|
29
|
+
--env JIRA_EMAIL=you@example.com --env JIRA_API_TOKEN=xxx \
|
|
30
|
+
-- npx -y @thammarongg/jira-mcp
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
opencode (`opencode.json`):
|
|
34
|
+
|
|
35
|
+
```json
|
|
36
|
+
{
|
|
37
|
+
"mcp": {
|
|
38
|
+
"jira": {
|
|
39
|
+
"type": "local",
|
|
40
|
+
"command": ["npx", "-y", "@thammarongg/jira-mcp"],
|
|
41
|
+
"environment": {
|
|
42
|
+
"JIRA_BASE_URL": "https://your-org.atlassian.net",
|
|
43
|
+
"JIRA_EMAIL": "you@example.com",
|
|
44
|
+
"JIRA_API_TOKEN": "xxx"
|
|
45
|
+
},
|
|
46
|
+
"enabled": true
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
Never print or store the API token in files, commits, or chat output.
|
|
53
|
+
After setup, verify with the `get_current_user` tool.
|
|
54
|
+
|
|
55
|
+
## Tool map
|
|
56
|
+
|
|
57
|
+
- **Boards/sprints**: `list_boards`, `get_board`, `list_sprints`, `get_sprint`,
|
|
58
|
+
`create_sprint`, `update_sprint`, `close_sprint`, `get_sprint_issues`,
|
|
59
|
+
`get_sprint_view` (UI-like full view), `get_backlog`
|
|
60
|
+
- **Epics**: `list_epics`, `get_epic`, `get_epic_issues`, `create_epic`,
|
|
61
|
+
`move_issue_to_epic`, `get_epic_meta`
|
|
62
|
+
- **Issues**: `get_issue`, `create_issue`, `update_issue`, `delete_issue`,
|
|
63
|
+
`search_issues` (JQL), `get_issue_create_meta`, `get_issue_transitions`,
|
|
64
|
+
`transition_issue`, `assign_issue`, `add_comment`, `list_comments`,
|
|
65
|
+
`delete_comment`, `get_issue_worklogs`, `add_worklog`
|
|
66
|
+
- **Projects/users/meta**: `list_projects`, `get_project`,
|
|
67
|
+
`get_project_components`, `create_project_component`,
|
|
68
|
+
`get_project_issue_types`, `get_project_roles`, `get_project_versions`,
|
|
69
|
+
`get_current_user`, `find_users`, `get_user`, `get_fields`, `get_issue_types`
|
|
70
|
+
- **Escape hatch**: `jira_api` — raw call to any `/rest/...` endpoint
|
|
71
|
+
|
|
72
|
+
## Workflows
|
|
73
|
+
|
|
74
|
+
**Sprint status**: `list_boards` → pick board → `list_sprints` (state
|
|
75
|
+
`active`) → `get_sprint_issues` or `get_sprint_view` for the full picture.
|
|
76
|
+
|
|
77
|
+
**Backlog review**: `get_backlog(boardId)` — issues in the board's projects
|
|
78
|
+
with no sprint, ordered by rank.
|
|
79
|
+
|
|
80
|
+
**Create an issue**: call `get_issue_create_meta(projectKeys=...)` first to
|
|
81
|
+
discover valid issue types and required fields, then `create_issue`
|
|
82
|
+
(custom fields go in `customFields`, e.g. `{ "customfield_10010": "..." }`).
|
|
83
|
+
|
|
84
|
+
**Move work through the workflow**: `get_issue_transitions(issueKey)` to see
|
|
85
|
+
available transitions and required fields, then `transition_issue`.
|
|
86
|
+
|
|
87
|
+
**Search**: `search_issues` with JQL. Common queries:
|
|
88
|
+
- Current sprint: `project = PROJ AND sprint = <sprintId> ORDER BY rank`
|
|
89
|
+
- Unassigned in project: `project = PROJ AND assignee IS EMPTY`
|
|
90
|
+
- Due this week: `project = PROJ AND duedate <= endOfWeek() ORDER BY duedate`
|
|
91
|
+
- By label: `project = PROJ AND labels in (release, critical)`
|
|
92
|
+
|
|
93
|
+
## Tips
|
|
94
|
+
|
|
95
|
+
- List tools paginate with `startAt`/`maxResults`; responses include `total` —
|
|
96
|
+
page with `startAt` when `total` exceeds the page size.
|
|
97
|
+
- Assignees: pass an account ID on Cloud, a username on DC — the server maps
|
|
98
|
+
it to the right field shape automatically.
|
|
99
|
+
- To remove an issue from an epic: `update_issue` with
|
|
100
|
+
`fields: { "epic": null }`.
|
|
101
|
+
- Anything not covered by a dedicated tool → `jira_api` with method, path
|
|
102
|
+
(must stay under `/rest/`), query, body.
|