Skip to main content
Glama

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 offset

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
project_idNo
status_idNo
assigned_to_idNo
limitNo
offsetNo

Implementation Reference

  • 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
  • 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

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/daiji-sshr/redmine-mcp-stateless'

If you have feedback or need assistance with the MCP directory API, please join our Discord server