get-my-assigned-issues
Retrieve your assigned Jira issues sorted by priority and creation date. Optionally limit results or include completed tasks.
Instructions
Get issues assigned to the current user, ordered by priority (highest first) and creation date (newest first)
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| max_results | No | Maximum number of issues to return (default: 25, max: 100) | |
| include_done | No | Include completed/closed issues (default: false) |
Implementation Reference
- src/mcp_jira_confluence/server.py:657-676 (registration)Tool 'get-my-assigned-issues' is registered in the list_tools handler with its input schema (max_results, include_done).
types.Tool( name="get-my-assigned-issues", description="Get issues assigned to the current user, ordered by priority (highest first) and creation date (newest first)", inputSchema={ "type": "object", "properties": { "max_results": { "type": "integer", "description": "Maximum number of issues to return (default: 25, max: 100)", "default": 25 }, "include_done": { "type": "boolean", "description": "Include completed/closed issues (default: false)", "default": False }, }, "required": [], }, ), - Input schema for get-my-assigned-issues: max_results (integer, default 25, max 100) and include_done (boolean, default false).
inputSchema={ "type": "object", "properties": { "max_results": { "type": "integer", "description": "Maximum number of issues to return (default: 25, max: 100)", "default": 25 }, "include_done": { "type": "boolean", "description": "Include completed/closed issues (default: false)", "default": False }, }, "required": [], }, - Tool execution handler for 'get-my-assigned-issues' - calls jira_client.get_my_assigned_issues() and formats the response with issue details (key, summary, status, priority, type, created, due date).
elif name == "get-my-assigned-issues": max_results = arguments.get("max_results", 25) include_done = arguments.get("include_done", False) # Validate max_results if max_results > 100: max_results = 100 elif max_results < 1: max_results = 25 result = await jira_client.get_my_assigned_issues( max_results=max_results, include_done=include_done ) issues = result.get("issues", []) total = result.get("total", 0) if not issues: return [ types.TextContent( type="text", text="No issues assigned to you were found.", ) ] # Format the response response_text = f"Found {len(issues)} out of {total} issues assigned to you:\n\n" for issue in issues: fields = issue.get("fields", {}) key = issue.get("key", "Unknown") summary = fields.get("summary", "No summary") status = fields.get("status", {}).get("name", "Unknown") priority = fields.get("priority", {}).get("name", "Unknown") created = fields.get("created", "Unknown") due_date = fields.get("duedate", "No due date") issue_type = fields.get("issuetype", {}).get("name", "Unknown") # Format dates nicely if created != "Unknown": try: from datetime import datetime created_dt = datetime.fromisoformat(created.replace('Z', '+00:00')) created = created_dt.strftime("%Y-%m-%d %H:%M") except: pass response_text += f"**{key}**: {summary}\n" response_text += f" - Status: {status}\n" response_text += f" - Priority: {priority}\n" response_text += f" - Type: {issue_type}\n" response_text += f" - Created: {created}\n" response_text += f" - Due Date: {due_date}\n\n" return [ types.TextContent( type="text", text=response_text, ), types.EmbeddedResource( type="resource", resource=types.TextResourceContents( uri=AnyUrl("jira://my-assigned-issues"), text=response_text, mimeType="text/markdown" ) ) ] - JiraClient.get_my_assigned_issues() - builds a JQL query filtering by currentUser() assignee, optionally excluding done/closed/resolved issues, ordered by priority DESC and created DESC.
async def get_my_assigned_issues(self, max_results: int = 50, include_done: bool = False) -> Dict[str, Any]: """Get issues assigned to the current user, ordered by priority and date.""" # Build JQL query for assigned issues jql_parts = ["assignee = currentUser()"] if not include_done: jql_parts.append('status not in ("Done", "Closed", "Resolved")') # Order by priority (highest first), then by created date (newest first) jql = " AND ".join(jql_parts) + " ORDER BY priority DESC, created DESC" fields = "summary,description,status,assignee,reporter,labels,priority,created,updated,issuetype,duedate" return await self.get("search", params={ "jql": jql, "startAt": 0, "maxResults": max_results, "fields": fields })