You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(mcp): embed Model Context Protocol server (jira mcp serve)
Adds an embedded MCP server exposed as `jira mcp serve`, letting MCP-aware
hosts (Cursor, Claude Desktop, etc.) read and modify Jira issues during a
coding session while reusing the CLI's existing config, auth, and HTTP
client.
Single-user, IDE-focused v1 with five tools: search_issues, get_issue,
create_issue, add_comment, transition_issue. Stdio transport only.
New packages:
- internal/mcp/ — server constructor + SDK wiring + panic recovery
- internal/mcp/tools/ — five handlers, Deps DI struct, bodyToMarkdown helper
- internal/cmd/mcp/ — Cobra surface (jira mcp parent + serve leaf)
Wiring change: one line added to internal/cmd/root/root.go to register the
new command. The "Using config file" debug print in cobra.OnInitialize is
also routed to stderr so debug output never corrupts the stdio JSON-RPC
stream when running `jira mcp serve --debug`.
New direct dependency: github.com/modelcontextprotocol/go-sdk v1.5.0
(official Tier-1 SDK, Apache-2.0).
Tracks upstream PR ankitpokhrel#985.
Made-with: Cursor
Copy file name to clipboardExpand all lines: README.md
+30Lines changed: 30 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -720,6 +720,36 @@ jira board list
720
720
```
721
721
</details>
722
722
723
+
## MCP server
724
+
725
+
`jira-cli` ships an embedded [Model Context Protocol](https://modelcontextprotocol.io) server so MCP-aware hosts (Cursor, Claude Desktop, etc.) can read and modify Jira issues during a coding session. The server reuses the same config, auth, and Jira API client as the rest of the CLI.
726
+
727
+
Start it from your MCP host configuration:
728
+
729
+
```json
730
+
{
731
+
"mcpServers": {
732
+
"jira": {
733
+
"command": "jira",
734
+
"args": ["mcp", "serve"],
735
+
"env": { "JIRA_API_TOKEN": "..." }
736
+
}
737
+
}
738
+
}
739
+
```
740
+
741
+
The server speaks stdio and exposes the following tools:
742
+
743
+
| Tool | Purpose |
744
+
| --- | --- |
745
+
|`search_issues`| Search by raw JQL or simple `status`/`assignee` filters. |
746
+
|`get_issue`| Full issue details including description and recent comments. |
747
+
|`create_issue`| Create a new issue in a project. |
748
+
|`add_comment`| Add a comment to an issue. |
749
+
|`transition_issue`| Move an issue to a new status by name. |
750
+
751
+
Every tool that returns an issue also returns its browser URL so the LLM can cite or link to it directly.
752
+
723
753
## Scripts
724
754
Often times, you may want to use the output of the command to do something cool. However, the default interactive UI might not allow you to do that.
725
755
The tool comes with the `--plain` flag that displays results in a simple layout that can then be manipulated from the shell script.
0 commit comments