Skip to content

Commit 3fef421

Browse files
authored
feat!: replace domain-specific tools with generic HTTP method tools
BREAKING CHANGE: This release replaces 8+ specific tools with 5 generic HTTP method tools. Before (v2.x): - jira_ls_projects, jira_get_project, jira_ls_issues, jira_get_issue - jira_create_issue, jira_ls_comments, jira_add_comment, jira_ls_statuses After (v3.0): - jira_get - GET any Jira API endpoint - jira_post - POST to any endpoint (create resources) - jira_put - PUT to any endpoint (replace resources) - jira_patch - PATCH any endpoint (partial updates) - jira_delete - DELETE any endpoint Benefits: - Full access to any Jira REST API endpoint - JMESPath filtering for response data extraction - Consistent interface across all HTTP operations - Simplified codebase (removed 64 files, ~13k lines) Migration examples in README.md
1 parent ee2376d commit 3fef421

77 files changed

Lines changed: 1071 additions & 13304 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.md

Lines changed: 146 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -6,17 +6,17 @@ Transform how you manage and track your work by connecting Claude, Cursor AI, an
66

77
## What You Can Do
88

9-
**Ask AI about your projects**: *"What are the active issues in the DEV project?"*
10-
**Get issue insights**: *"Show me details about PROJ-123 including comments"*
11-
**Track project progress**: *"List all high priority issues assigned to me"*
12-
**Manage issue comments**: *"Add a comment to PROJ-456 about the test results"*
13-
**Search across projects**: *"Find all bugs in progress across my projects"*
14-
**Check workflow status**: *"What are the available statuses for the DEV project?"*
9+
- **Ask AI about your projects**: "What are the active issues in the DEV project?"
10+
- **Get issue insights**: "Show me details about PROJ-123 including comments"
11+
- **Track project progress**: "List all high priority issues assigned to me"
12+
- **Manage issue comments**: "Add a comment to PROJ-456 about the test results"
13+
- **Search across projects**: "Find all bugs in progress across my projects"
14+
- **Create and update issues**: "Create a new bug in the MOBILE project"
1515

1616
## Perfect For
1717

1818
- **Developers** who need quick access to issue details and development context
19-
- **Project Managers** tracking progress, priorities, and team assignments
19+
- **Project Managers** tracking progress, priorities, and team assignments
2020
- **Scrum Masters** managing sprints and workflow states
2121
- **Team Leads** monitoring project health and issue resolution
2222
- **QA Engineers** tracking bugs and testing status
@@ -43,13 +43,13 @@ export ATLASSIAN_USER_EMAIL="your.email@company.com"
4343
export ATLASSIAN_API_TOKEN="your_api_token"
4444

4545
# List your Jira projects
46-
npx -y @aashari/mcp-server-atlassian-jira ls-projects
46+
npx -y @aashari/mcp-server-atlassian-jira get --path "/rest/api/3/project/search"
4747

4848
# Get details about a specific project
49-
npx -y @aashari/mcp-server-atlassian-jira get-project --project-key-or-id DEV
49+
npx -y @aashari/mcp-server-atlassian-jira get --path "/rest/api/3/project/DEV"
5050

51-
# Search for issues
52-
npx -y @aashari/mcp-server-atlassian-jira ls-issues --project-key-or-id DEV
51+
# Get an issue with JMESPath filtering
52+
npx -y @aashari/mcp-server-atlassian-jira get --path "/rest/api/3/issue/PROJ-123" --jq "{key: key, summary: fields.summary, status: fields.status.name}"
5353
```
5454

5555
## Connect to AI Assistants
@@ -74,7 +74,7 @@ Add this to your Claude configuration file (`~/.claude/claude_desktop_config.jso
7474
}
7575
```
7676

77-
Restart Claude Desktop, and you'll see "🔗 jira" in the status bar.
77+
Restart Claude Desktop, and you'll see the jira server in the status bar.
7878

7979
### For Other AI Assistants
8080

@@ -104,46 +104,123 @@ Create `~/.mcp/configs.json` for system-wide configuration:
104104

105105
**Alternative config keys:** The system also accepts `"atlassian-jira"`, `"@aashari/mcp-server-atlassian-jira"`, or `"mcp-server-atlassian-jira"` instead of `"jira"`.
106106

107+
## Available Tools
108+
109+
This MCP server provides 5 generic tools that can access any Jira API endpoint:
110+
111+
| Tool | Description |
112+
|------|-------------|
113+
| `jira_get` | GET any Jira API endpoint (read data) |
114+
| `jira_post` | POST to any endpoint (create resources) |
115+
| `jira_put` | PUT to any endpoint (replace resources) |
116+
| `jira_patch` | PATCH any endpoint (partial updates) |
117+
| `jira_delete` | DELETE any endpoint (remove resources) |
118+
119+
### Common API Paths
120+
121+
**Projects:**
122+
- `/rest/api/3/project/search` - List all projects
123+
- `/rest/api/3/project/{projectKeyOrId}` - Get project details
124+
125+
**Issues:**
126+
- `/rest/api/3/search/jql` - Search issues with JQL (use `jql` query param)
127+
- `/rest/api/3/issue/{issueIdOrKey}` - Get issue details
128+
- `/rest/api/3/issue` - Create issue (POST)
129+
- `/rest/api/3/issue/{issueIdOrKey}/transitions` - Get/perform transitions
130+
131+
**Comments:**
132+
- `/rest/api/3/issue/{issueIdOrKey}/comment` - List/add comments
133+
- `/rest/api/3/issue/{issueIdOrKey}/comment/{commentId}` - Get/update/delete comment
134+
135+
**Worklogs:**
136+
- `/rest/api/3/issue/{issueIdOrKey}/worklog` - List/add worklogs
137+
- `/rest/api/3/issue/{issueIdOrKey}/worklog/{worklogId}` - Get/update/delete worklog
138+
139+
**Users & Statuses:**
140+
- `/rest/api/3/myself` - Get current user
141+
- `/rest/api/3/user/search` - Search users (use `query` param)
142+
- `/rest/api/3/status` - List all statuses
143+
- `/rest/api/3/issuetype` - List issue types
144+
- `/rest/api/3/priority` - List priorities
145+
146+
### JMESPath Filtering
147+
148+
All tools support optional JMESPath (`jq`) filtering to extract specific data:
149+
150+
```bash
151+
# Get just project names and keys
152+
npx -y @aashari/mcp-server-atlassian-jira get \
153+
--path "/rest/api/3/project/search" \
154+
--jq "values[].{key: key, name: name}"
155+
156+
# Get issue key and summary
157+
npx -y @aashari/mcp-server-atlassian-jira get \
158+
--path "/rest/api/3/issue/PROJ-123" \
159+
--jq "{key: key, summary: fields.summary, status: fields.status.name}"
160+
```
161+
107162
## Real-World Examples
108163

109-
### 📋 Explore Your Projects
164+
### Explore Your Projects
110165

111166
Ask your AI assistant:
112167
- *"List all projects I have access to"*
113-
- *"Show me details about the DEV project"*
168+
- *"Show me details about the DEV project"*
114169
- *"What projects contain the word 'Platform'?"*
115-
- *"Get project information for PROJ-123"*
116170

117-
### 🔍 Search and Track Issues
171+
### Search and Track Issues
118172

119173
Ask your AI assistant:
120174
- *"Find all high priority issues in the DEV project"*
121175
- *"Show me issues assigned to me that are in progress"*
122176
- *"Search for bugs reported in the last week"*
123177
- *"List all open issues for the mobile team"*
124178

125-
### 📝 Manage Issue Details
179+
### Manage Issue Details
126180

127181
Ask your AI assistant:
128182
- *"Get full details about issue PROJ-456 including comments"*
129-
- *"Show me the development information for PROJ-789"*
130183
- *"What's the current status and assignee of PROJ-123?"*
131184
- *"Display all comments on the authentication bug"*
132185

133-
### 💬 Issue Communication
186+
### Issue Communication
134187

135188
Ask your AI assistant:
136189
- *"Add a comment to PROJ-456: 'Code review completed, ready for testing'"*
137190
- *"Comment on the login issue that it's been deployed to staging"*
138-
- *"Add testing results to issue PROJ-789"*
139191

140-
### 🔄 Workflow Management
192+
## CLI Commands
141193

142-
Ask your AI assistant:
143-
- *"What are the available statuses in the DEV project?"*
144-
- *"Show me all possible workflow states"*
145-
- *"What status options are available for project MOBILE?"*
146-
- *"List the workflow states for issue transitions"*
194+
The CLI mirrors the MCP tools for direct terminal access:
195+
196+
```bash
197+
# GET request
198+
npx -y @aashari/mcp-server-atlassian-jira get --path "/rest/api/3/project/search"
199+
200+
# GET with query parameters
201+
npx -y @aashari/mcp-server-atlassian-jira get \
202+
--path "/rest/api/3/search/jql" \
203+
--query-params '{"jql": "project=DEV AND status=\"In Progress\"", "maxResults": "10"}'
204+
205+
# POST request (create an issue)
206+
npx -y @aashari/mcp-server-atlassian-jira post \
207+
--path "/rest/api/3/issue" \
208+
--body '{"fields": {"project": {"key": "DEV"}, "summary": "New issue title", "issuetype": {"name": "Task"}}}'
209+
210+
# POST request (add a comment)
211+
npx -y @aashari/mcp-server-atlassian-jira post \
212+
--path "/rest/api/3/issue/PROJ-123/comment" \
213+
--body '{"body": {"type": "doc", "version": 1, "content": [{"type": "paragraph", "content": [{"type": "text", "text": "My comment"}]}]}}'
214+
215+
# PUT request (update issue - full replacement)
216+
npx -y @aashari/mcp-server-atlassian-jira put \
217+
--path "/rest/api/3/issue/PROJ-123" \
218+
--body '{"fields": {"summary": "Updated title"}}'
219+
220+
# DELETE request
221+
npx -y @aashari/mcp-server-atlassian-jira delete \
222+
--path "/rest/api/3/issue/PROJ-123/comment/12345"
223+
```
147224

148225
## Troubleshooting
149226

@@ -159,17 +236,15 @@ Ask your AI assistant:
159236

160237
3. **Test your credentials**:
161238
```bash
162-
# Test your credentials work
163-
npx -y @aashari/mcp-server-atlassian-jira ls-projects
239+
npx -y @aashari/mcp-server-atlassian-jira get --path "/rest/api/3/myself"
164240
```
165241

166-
### "Project not found" or "Issue not found"
242+
### "Resource not found" or "404"
167243

168-
1. **Check project key spelling**:
169-
```bash
170-
# List your projects to see the correct keys
171-
npx -y @aashari/mcp-server-atlassian-jira ls-projects
172-
```
244+
1. **Check the API path**:
245+
- Paths are case-sensitive
246+
- Use project keys (e.g., `DEV`) not project names
247+
- Issue keys include the project prefix (e.g., `DEV-123`)
173248

174249
2. **Verify access permissions**:
175250
- Make sure you have access to the project in your browser
@@ -181,17 +256,15 @@ Ask your AI assistant:
181256
- Use project keys instead of project names
182257
- Try broader search criteria
183258

184-
2. **Check issue permissions**:
185-
- You can only access issues you have permission to view
186-
- Ask your admin if you should have access to specific projects
259+
2. **Check JQL syntax**:
260+
- Validate your JQL in Jira's advanced search first
187261

188262
### Claude Desktop Integration Issues
189263

190264
1. **Restart Claude Desktop** after updating the config file
191-
2. **Check the status bar** for the "🔗 jira" indicator
192-
3. **Verify config file location**:
265+
2. **Verify config file location**:
193266
- macOS: `~/.claude/claude_desktop_config.json`
194-
- Windows: `%APPDATA%\\Claude\\claude_desktop_config.json`
267+
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`
195268

196269
### Getting Help
197270

@@ -215,13 +288,13 @@ Currently, this tool only supports **Jira Cloud**. Jira Server/Data Center suppo
215288
### How do I find my site name?
216289

217290
Your site name is the first part of your Jira URL:
218-
- URL: `https://mycompany.atlassian.net` Site name: `mycompany`
219-
- URL: `https://acme-corp.atlassian.net` Site name: `acme-corp`
291+
- URL: `https://mycompany.atlassian.net` -> Site name: `mycompany`
292+
- URL: `https://acme-corp.atlassian.net` -> Site name: `acme-corp`
220293

221294
### What AI assistants does this work with?
222295

223296
Any AI assistant that supports the Model Context Protocol (MCP):
224-
- Claude Desktop (most popular)
297+
- Claude Desktop
225298
- Cursor AI
226299
- Continue.dev
227300
- Many others
@@ -236,7 +309,35 @@ Yes! This tool:
236309

237310
### Can I search across multiple projects?
238311

239-
Yes! When you don't specify a project, searches will look across all projects you have access to. You can also use JQL queries for advanced cross-project searches.
312+
Yes! Use JQL queries for cross-project searches. For example:
313+
```bash
314+
npx -y @aashari/mcp-server-atlassian-jira get \
315+
--path "/rest/api/3/search/jql" \
316+
--query-params '{"jql": "assignee=currentUser() AND status=\"In Progress\""}'
317+
```
318+
319+
## Migration from v2.x
320+
321+
Version 3.0 replaces 8+ specific tools with 5 generic HTTP method tools. If you're upgrading from v2.x:
322+
323+
**Before (v2.x):**
324+
```
325+
jira_ls_projects, jira_get_project, jira_ls_issues, jira_get_issue,
326+
jira_create_issue, jira_ls_comments, jira_add_comment, jira_ls_statuses, ...
327+
```
328+
329+
**After (v3.0):**
330+
```
331+
jira_get, jira_post, jira_put, jira_patch, jira_delete
332+
```
333+
334+
**Migration examples:**
335+
- `jira_ls_projects` -> `jira_get` with path `/rest/api/3/project/search`
336+
- `jira_get_project` -> `jira_get` with path `/rest/api/3/project/{key}`
337+
- `jira_get_issue` -> `jira_get` with path `/rest/api/3/issue/{key}`
338+
- `jira_create_issue` -> `jira_post` with path `/rest/api/3/issue`
339+
- `jira_add_comment` -> `jira_post` with path `/rest/api/3/issue/{key}/comment`
340+
- `jira_ls_statuses` -> `jira_get` with path `/rest/api/3/status`
240341

241342
## Support
242343

@@ -249,4 +350,4 @@ Need help? Here's how to get assistance:
249350

250351
---
251352

252-
*Made with ❤️ for teams who want to bring AI into their project management workflow.*
353+
*Made with care for teams who want to bring AI into their project management workflow.*

package-lock.json

Lines changed: 20 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@
7070
"@types/cors": "^2.8.19",
7171
"@types/express": "^5.0.3",
7272
"@types/jest": "^30.0.0",
73+
"@types/jmespath": "^0.15.2",
7374
"@types/node": "^24.3.1",
7475
"@types/turndown": "^5.0.5",
7576
"@typescript-eslint/eslint-plugin": "^8.43.0",
@@ -99,6 +100,7 @@
99100
"cors": "^2.8.5",
100101
"dotenv": "^17.2.2",
101102
"express": "^5.1.0",
103+
"jmespath": "^0.16.0",
102104
"turndown": "^7.2.1",
103105
"zod": "^3.25.76"
104106
},

0 commit comments

Comments
 (0)