list_issues
Retrieve Redmine issues by project, status, or assignee to track and manage development tasks with customizable filters and pagination.
Instructions
Returns a list of issues.
Args:
project_id: Project ID (all projects if omitted)
status_id: Status ID or "open" / "closed" / "*"
assigned_to_id: Assignee ID
limit: Number of results (max 100)
offset: Starting offsetInput Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| project_id | No | ||
| status_id | No | ||
| assigned_to_id | No | ||
| limit | No | ||
| offset | No |
Implementation Reference
- redmine_mcp_server.py:41-61 (handler)The core logic implementation of the list_issues method within the RedmineClient class.
def list_issues( self, project_id: Optional[str] = None, status_id: Optional[str] = None, assigned_to_id: Optional[int] = None, limit: int = 25, offset: int = 0, ) -> List[Dict[str, Any]]: try: kwargs: Dict[str, Any] = {"limit": limit, "offset": offset} if project_id is not None: kwargs["project_id"] = project_id if status_id is not None: kwargs["status_id"] = status_id if assigned_to_id is not None: kwargs["assigned_to_id"] = assigned_to_id return [_issue_dict(i) for i in self._redmine.issue.filter(**kwargs)] except (AuthError, ForbiddenError) as e: raise RedmineError(f"Authentication failed: {e}") from e except Exception as e: raise RedmineError(f"list_issues failed: {e}") from e - redmine_mcp_interface.py:121-151 (registration)The MCP tool registration and wrapper function for list_issues.
@mcp.tool() def list_issues( project_id: Optional[str] = None, status_id: Optional[str] = None, assigned_to_id: Optional[int] = None, limit: int = 25, offset: int = 0, ) -> List[Dict[str, Any]]: """Returns a list of issues. Args: project_id: Project ID (all projects if omitted) status_id: Status ID or "open" / "closed" / "*" assigned_to_id: Assignee ID limit: Number of results (max 100) offset: Starting offset """ logger.info( f"tool=list_issues project_id={project_id} status_id={status_id} limit={limit}" ) try: return _client().list_issues( project_id=project_id, status_id=status_id, assigned_to_id=assigned_to_id, limit=limit, offset=offset, ) except RedmineError as e: logger.error(f"list_issues error: {e}") raise