We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/sooperset/mcp-atlassian'
If you have feedback or need assistance with the MCP directory API, please join our Discord server
"""Module for Jira boards operations."""
import logging
from typing import Any
import requests
from ..models.jira import JiraBoard
from .client import JiraClient
logger = logging.getLogger("mcp-jira")
class BoardsMixin(JiraClient):
"""Mixin for Jira boards operations."""
def get_all_agile_boards(
self,
board_name: str | None = None,
project_key: str | None = None,
board_type: str | None = None,
start: int = 0,
limit: int = 50,
) -> list[dict[str, Any]]:
"""
Get boards from Jira by name, project key, or type.
Args:
board_name: The name of board, support fuzzy search
project_key: Project key (e.g., PROJECT-123)
board_type: Board type (e.g., scrum, kanban)
start: Start index
limit: Maximum number of boards to return
Returns:
List of board information
Raises:
Exception: If there is an error retrieving the boards
"""
try:
boards = self.jira.get_all_agile_boards(
board_name=board_name,
project_key=project_key,
board_type=board_type,
start=start,
limit=limit,
)
return boards.get("values", []) if isinstance(boards, dict) else []
except requests.HTTPError as e:
logger.error(f"Error getting all agile boards: {str(e.response.content)}")
return []
except Exception as e:
logger.error(f"Error getting all agile boards: {str(e)}")
return []
def get_all_agile_boards_model(
self,
board_name: str | None = None,
project_key: str | None = None,
board_type: str | None = None,
start: int = 0,
limit: int = 50,
) -> list[JiraBoard]:
"""
Get boards as JiraBoards model from Jira by name, project key, or type.
Args:
board_name: The name of board, support fuzzy search
project_key: Project key (e.g., PROJECT-123)
board_type: Board type (e.g., scrum, kanban)
start: Start index
limit: Maximum number of boards to return
Returns:
List of JiraBoards model with board information
Raises:
Exception: If there is an error retrieving the boards
"""
boards = self.get_all_agile_boards(
board_name=board_name,
project_key=project_key,
board_type=board_type,
start=start,
limit=limit,
)
return [JiraBoard.from_api_response(board) for board in boards]