src.integrations.providers.linear_kanban module#

Linear implementation of KanbanInterface.

Uses Linear MCP Server to manage tasks and projects

class src.integrations.providers.linear_kanban.LinearKanban[source]#

Bases: KanbanInterface

Linear kanban board implementation using MCP Server.

__init__(config)[source]#

Initialize Linear MCP connection.

Parameters:

config (Dict[str, Any]) –

Dictionary containing:
  • mcp_function_caller: Function to call MCP tools

  • team_id: Linear team ID

  • project_id: Optional Linear project ID

async connect()[source]#

Connect to Linear MCP Server.

Return type:

bool

async disconnect()[source]#

Disconnect from Linear MCP.

Return type:

None

async get_available_tasks()[source]#

Get unassigned tasks from backlog.

Return type:

List[Task]

async get_all_tasks()[source]#

Get all tasks from the board regardless of status or assignment.

Return type:

List[Task]

async get_task_by_id(task_id)[source]#

Get specific task by ID.

Return type:

Optional[Task]

Parameters:

task_id (str)

async create_task(task_data)[source]#

Create new task in Linear.

Return type:

Task

Parameters:

task_data (Dict[str, Any])

async update_task(task_id, updates)[source]#

Update existing task.

Return type:

Optional[Task]

Parameters:
async assign_task(task_id, assignee_id)[source]#

Assign task to user.

Return type:

bool

Parameters:
  • task_id (str)

  • assignee_id (str)

async move_task_to_column(task_id, column_name)[source]#

Move task to specific state.

Return type:

bool

Parameters:
  • task_id (str)

  • column_name (str)

async add_comment(task_id, comment)[source]#

Add comment to task.

Return type:

bool

Parameters:
async get_project_metrics()[source]#

Get project metrics.

Return type:

Dict[str, Any]

async report_blocker(task_id, blocker_description, severity='medium')[source]#

Report blocker on task.

Return type:

bool

Parameters:
  • task_id (str)

  • blocker_description (str)

  • severity (str)

async update_task_progress(task_id, progress_data)[source]#

Update task progress.

Return type:

bool

Parameters:
async upload_attachment(task_id, filename, content, content_type=None)[source]#

Upload an attachment to a task.

Linear MCP doesn’t currently support direct file uploads, so we’ll add the attachment content as a comment with metadata.

Return type:

Dict[str, Any]

Parameters:
async get_attachments(task_id)[source]#

Get all attachments for a task.

Since Linear MCP doesn’t have direct attachment support, this returns an empty list but maintains the interface.

Return type:

Dict[str, Any]

Parameters:

task_id (str)

async download_attachment(attachment_id, filename, task_id=None)[source]#

Download an attachment.

Linear MCP doesn’t support direct file attachments, so this returns an error message.

Return type:

Dict[str, Any]

Parameters:
  • attachment_id (str)

  • filename (str)

  • task_id (str | None)