Skip to content

Board & Visualization Tools

This document provides comprehensive documentation for all 3 board visualization tools available in the Gira MCP server. These tools provide enhanced board views, swimlane organization, and bulk operations for efficient project management and visualization.

📊 Tool Overview

Tool Description Category
get_enhanced_board_state Get comprehensive board view with analytics Visualization
get_swimlane_tickets Get tickets organized by epic or assignee Organization
move_tickets_bulk Move multiple tickets between statuses efficiently Bulk Operations

🎯 Visualization Tools

get_enhanced_board_state

Get a comprehensive board view with epic context, sprint information, and progress analytics.

Parameters: - include_tickets (boolean, optional): Include full ticket details in each column, default: false - include_epic_context (boolean, optional): Include epic information for tickets, default: false - include_sprint_context (boolean, optional): Include sprint information for tickets, default: false - status_filter (array[string], optional): Limit to specific statuses - assignee_filter (string, optional): Filter by assignee - epic_filter (string, optional): Filter by epic ID

Returns: Enhanced board state object containing: - board: Object with status columns and ticket counts - summary: Overall board statistics - epics: Epic context information (if requested) - sprints: Sprint context information (if requested) - filters_applied: Summary of applied filters - timestamp: State capture timestamp

Board Object Structure:

{
  "backlog": {
    "count": 15,
    "tickets": [...] // If include_tickets=true
  },
  "todo": {
    "count": 8,
    "tickets": [...]
  },
  "in_progress": {
    "count": 5,
    "tickets": [...]
  },
  "review": {
    "count": 3,
    "tickets": [...]
  },
  "done": {
    "count": 12,
    "tickets": [...]
  }
}

Summary Object Structure:

{
  "total_tickets": 43,
  "completed_tickets": 12,
  "in_progress_tickets": 5,
  "completion_percentage": 27.9,
  "active_epics": 3,
  "active_sprints": 1,
  "unassigned_tickets": 7
}

Examples:

// Basic board state
{}

// Board with full ticket details
{"include_tickets": true}

// Board with epic and sprint context
{
  "include_tickets": true,
  "include_epic_context": true,
  "include_sprint_context": true
}

// Filtered board view
{
  "status_filter": ["todo", "in_progress", "review"],
  "epic_filter": "EPIC-001"
}

// Team-specific board
{
  "assignee_filter": "backend-team@example.com",
  "include_tickets": true
}

Epic Context (when included):

{
  "epics": {
    "EPIC-001": {
      "title": "User Authentication",
      "status": "active",
      "progress_percentage": 65,
      "total_tickets": 8,
      "completed_tickets": 5
    }
  }
}

Sprint Context (when included):

{
  "sprints": {
    "SPRINT-2024-01-15": {
      "name": "Q1 Sprint 3",
      "status": "active",
      "progress_percentage": 72,
      "total_tickets": 12,
      "completed_tickets": 9,
      "days_remaining": 3
    }
  }
}

Security: Read-only operation, rate limited to 60 calls per minute.


🏊‍♂️ Organization Tools

get_swimlane_tickets

Get tickets organized by epic or assignee with grouping and filtering capabilities.

Parameters: - status (string, required): Status/swimlane to get tickets from - group_by_epic (boolean, optional): Group tickets by epic, default: false - group_by_assignee (boolean, optional): Group tickets by assignee, default: false - include_no_epic (boolean, optional): Include tickets without epics, default: true - include_unassigned (boolean, optional): Include unassigned tickets, default: true - limit (integer, optional): Maximum tickets to return per group

Returns: Object containing organized ticket data: - status: The requested status - grouped_by_epic: Boolean indicating epic grouping - grouped_by_assignee: Boolean indicating assignee grouping - total_count: Total number of tickets - epic_groups or assignee_groups: Grouped ticket data - tickets: Flat ticket list (if no grouping)

Epic Grouping Structure:

{
  "epic_groups": [
    {
      "epic_info": {
        "id": "EPIC-001",
        "title": "User Authentication",
        "status": "active"
      },
      "tickets": [
        {
          "id": "GCM-123",
          "title": "Login form validation",
          "priority": "high",
          "assignee": "dev@example.com"
        }
      ]
    },
    {
      "epic_info": {
        "id": null,
        "title": "No Epic",
        "status": null
      },
      "tickets": [...]
    }
  ]
}

Assignee Grouping Structure:

{
  "assignee_groups": [
    {
      "assignee_info": {
        "name": "John Developer",
        "email": "john@example.com",
        "ticket_count": 5
      },
      "tickets": [...]
    },
    {
      "assignee_info": {
        "name": "Unassigned",
        "email": null,
        "ticket_count": 3
      },
      "tickets": [...]
    }
  ]
}

Examples:

// Get todo tickets grouped by epic
{
  "status": "todo",
  "group_by_epic": true
}

// Get in-progress tickets grouped by assignee
{
  "status": "in_progress",
  "group_by_assignee": true
}

// Get review tickets with limited results per group
{
  "status": "review",
  "group_by_epic": true,
  "limit": 10
}

// Get done tickets without grouping
{
  "status": "done",
  "limit": 20
}

// Exclude tickets without epics
{
  "status": "todo",
  "group_by_epic": true,
  "include_no_epic": false
}

Security: Read-only operation, rate limited to 40 calls per minute.


🚀 Bulk Operations

move_tickets_bulk

Move multiple tickets between statuses/swimlanes efficiently with automatic comment generation.

Parameters: - ticket_ids (array[string], required): List of ticket IDs to move - target_status (string, required): Target status for all tickets - comment (string, optional): Comment to add to all moved tickets

Returns: Bulk operation results: - success: True if operation completed - target_status: The target status - comment: Comment added (auto-generated if not provided) - total_processed: Total number of tickets processed - successful_updates: Number of successfully moved tickets - already_in_status: Tickets already in target status - not_found: Tickets that couldn't be found - updated_tickets: List of successfully updated ticket summaries

Examples:

// Move multiple tickets to done
{
  "ticket_ids": ["GCM-123", "GCM-456", "GCM-789"],
  "target_status": "done",
  "comment": "Completed during sprint review"
}

// Bulk move to in_progress
{
  "ticket_ids": ["GCM-100", "GCM-101", "GCM-102"],
  "target_status": "in_progress"
}

// Move tickets back to todo (rollback)
{
  "ticket_ids": ["GCM-200", "GCM-201"],
  "target_status": "todo",
  "comment": "Rolling back due to blocking dependencies"
}

// Large batch operation
{
  "ticket_ids": [
    "GCM-301", "GCM-302", "GCM-303", "GCM-304", "GCM-305",
    "GCM-306", "GCM-307", "GCM-308", "GCM-309", "GCM-310"
  ],
  "target_status": "review",
  "comment": "Ready for QA review"
}

Response Example:

{
  "success": true,
  "target_status": "done",
  "comment": "Completed during sprint review",
  "total_processed": 3,
  "successful_updates": 2,
  "already_in_status": ["GCM-456"],
  "not_found": [],
  "updated_tickets": [
    {
      "id": "GCM-123",
      "title": "Fix login bug",
      "old_status": "in_progress",
      "new_status": "done"
    },
    {
      "id": "GCM-789", 
      "title": "Update documentation",
      "old_status": "review",
      "new_status": "done"
    }
  ]
}

Validation: - All ticket IDs are normalized (GCM- prefix added if missing) - Target status must be valid for the project - Maximum of 50 tickets per bulk operation - Validates that target status transitions are allowed

Security: High-impact operation, requires confirmation, heavily audit logged, rate limited to 10 calls per minute.


📊 Board Analytics & Insights

Visual Board Metrics

Column Distribution: - Ticket counts per status - Story points per column - Age distribution (how long tickets have been in each status) - Priority distribution across columns

Flow Metrics: - Lead Time: Time from creation to completion - Cycle Time: Time from start to completion - Throughput: Tickets completed per time period - Work in Progress (WIP): Active tickets count

Bottleneck Analysis: - Columns with highest ticket age - Statuses with lowest throughput - Blockers and impediments - Capacity constraints

Epic Visualization

Epic Progress on Board: - Epic completion percentage - Tickets distribution across statuses per epic - Epic timeline alignment - Cross-epic dependencies

Epic Swimlanes: - Organize board by epic - Show epic progress within each status - Identify epic-specific bottlenecks - Track epic delivery timelines

Team Performance

Assignee Distribution: - Workload balance across team members - Individual completion rates - Collaboration patterns - Capacity utilization

Team Flow: - Collective throughput - Handoff efficiency between team members - Pair programming indicators - Knowledge sharing patterns

🔍 Advanced Board Queries

Custom Board Views

// Executive dashboard view
{
  "include_epic_context": true,
  "include_sprint_context": true,
  "status_filter": ["in_progress", "review", "done"]
}

// Development team view
{
  "include_tickets": true,
  "assignee_filter": "dev-team@example.com",
  "include_epic_context": true
}

// Quality assurance view
{
  "status_filter": ["review"],
  "include_tickets": true,
  "group_by_epic": true
}

Swimlane Organization

// Epic-based planning view
{
  "status": "todo",
  "group_by_epic": true,
  "include_no_epic": true
}

// Team capacity view
{
  "status": "in_progress", 
  "group_by_assignee": true
}

// Release planning view
{
  "status": "done",
  "group_by_epic": true,
  "limit": 50
}

Bulk Board Operations

// Sprint completion ceremony
{
  "ticket_ids": ["GCM-sprint-tickets..."],
  "target_status": "done",
  "comment": "Sprint 15 completion"
}

// Emergency rollback
{
  "ticket_ids": ["GCM-problematic-tickets..."],
  "target_status": "todo",
  "comment": "Rolling back due to deployment issues"
}

🔒 Security & Best Practices

Rate Limiting

  • get_enhanced_board_state: 60 calls/minute
  • get_swimlane_tickets: 40 calls/minute
  • move_tickets_bulk: 10 calls/minute (high-impact operation)

Confirmation Requirements

These operations require confirmation when require_confirmation=true: - move_tickets_bulk (always, due to bulk nature)

Audit Logging

All board operations are logged with: - Timestamp - Operation name - Parameters and filters applied - Number of tickets affected - Success/failure status - Performance metrics

Input Validation

  • Ticket IDs are normalized and validated
  • Status values are validated against project configuration
  • Bulk operation limits are enforced (max 50 tickets)
  • Filter parameters are sanitized

Error Handling

Common error scenarios: - ValidationError: Invalid status or parameters - NotFoundError: Tickets don't exist - BulkOperationError: Partial failure in bulk operations - RateLimitError: Too many requests - CapacityError: Bulk operation too large

🎨 Board Customization

Status Configuration

Board tools work with any project status configuration: - Default Statuses: backlog, todo, in_progress, review, done - Custom Statuses: Any project-defined status values - Status Transitions: Respects project workflow rules - Status Metadata: Includes status descriptions and colors

Filtering and Views

  • Multi-dimensional Filtering: Status, assignee, epic, priority
  • Temporal Filtering: Date ranges, age-based filters
  • Custom Views: Save frequently used filter combinations
  • Real-time Updates: Fresh data on each request

Integration Patterns

  • Dashboard Integration: Embed board state in dashboards
  • Notification Systems: Alert on board state changes
  • Automation Triggers: React to board state patterns
  • Reporting Systems: Historical board state analysis

📈 Board Performance Optimization

Efficient Data Loading

  • Lazy Loading: Include detailed data only when needed
  • Filtered Queries: Request only relevant tickets
  • Pagination: Use limits for large datasets
  • Caching Strategy: Cache board state for brief periods

Bulk Operation Best Practices

  • Batch Size: Keep bulk operations under 50 tickets
  • Progress Tracking: Monitor bulk operation results
  • Error Recovery: Handle partial failures gracefully
  • Audit Trail: Maintain detailed logs for bulk changes

Visualization Performance

  • Progressive Enhancement: Start with basic views, add details
  • Context Loading: Load epic/sprint context only when needed
  • Responsive Design: Adapt to different screen sizes
  • Accessibility: Support screen readers and keyboard navigation

For individual ticket operations, see Ticket Tools. For epic-based organization, see Epic Tools. For sprint-based planning, see Sprint Tools.