GAIA Logo
PricingAboutDocs
GAIA Marketplace Wallpaper
  1. Home
  2. Marketplace
  3. Developer
linear Icon

Linear

Manage issues, projects, and track development progress with AI assistance

Category
Developer
Type
Native
Auth
OAuth

Available Tools (43)

LINEAR CREATE COMMENT REACTION

Tool to add a reaction to an existing Linear comment. Use when you want to programmatically react to a comment on an issue.

LINEAR CREATE LINEAR ATTACHMENT

Creates a new attachment and associates it with a specific, existing Linear issue.

LINEAR CREATE LINEAR COMMENT

Creates a new comment on a specified Linear issue.

LINEAR CREATE LINEAR ISSUE

Creates a new issue in a specified Linear project and team, requiring team_id and title, and allowing for optional properties like description, assignee, state, priority, cycle, and due date.

LINEAR CREATE LINEAR ISSUE DETAILS

Fetches a Linear team's default issue estimate and state, useful for pre-filling new issue forms.

LINEAR CREATE LINEAR LABEL

Creates a new label in Linear for a specified team, used to categorize and organize issues. Label names must be unique within each team. If a label with the same name already exists, the existing label will be returned.

LINEAR CREATE LINEAR PROJECT

Creates a new Linear project with specified name and team associations.

LINEAR DELETE LINEAR ISSUE

Archives an existing Linear issue by its ID, which is Linear's standard way of deleting issues; the operation is idempotent.

LINEAR GET ALL LINEAR TEAMS

Retrieves all teams from the Linear workspace without requiring any parameters.

LINEAR GET ATTACHMENTS

Downloads a specific attachment from a Linear issue; the `file_name` must include the correct file extension.

LINEAR GET CURRENT USER

Gets the currently authenticated user's ID, name, email, and other profile information. Use this to identify 'me' in other Linear operations that require user ID filtering.

LINEAR GET CYCLES BY TEAM ID

Retrieves all cycles for a specified Linear team ID; cycles are time-boxed work periods (like sprints) and the team ID must correspond to an existing team.

LINEAR GET LINEAR ISSUE

Retrieves an existing Linear issue's comprehensive details, including id, identifier, title, description, timestamps, state, team, creator, attachments, comments, and due date.

LINEAR GET LINEAR PROJECT

Retrieves a single Linear project by its unique identifier. Use when verifying a newly created or updated project, or when fetching detailed project information by ID.

LINEAR LIST ISSUE DRAFTS

Tool to list issue drafts. Use when you need to fetch draft issues for review or further editing.

LINEAR LIST ISSUES BY TEAM ID

Tool to list all issues for a specific Linear team, scoped by team ID. Use when you need to retrieve issues belonging to a particular team without fetching workspace-wide issues. This is more efficient than workspace-wide listing followed by client-side filtering.

LINEAR LIST LINEAR CYCLES

Retrieves all cycles (time-boxed iterations for work) from the Linear account; no filters are applied.

LINEAR LIST LINEAR ISSUES

Lists non-archived Linear issues; if project_id is not specified, issues from all accessible projects are returned. Can also filter by assignee_id to get issues assigned to a specific user.

LINEAR LIST LINEAR LABELS

Retrieves labels from Linear. If team_id is provided, returns labels for that specific team. If team_id is omitted, returns all labels across the workspace.

LINEAR LIST LINEAR PROJECTS

Retrieves all projects from the Linear account.

LINEAR LIST LINEAR STATES

Retrieves all workflow states for a specified team in Linear, representing the stages an issue progresses through in that team's workflow.

LINEAR LIST LINEAR TEAMS

Retrieves all teams with their members. Optionally filters each team's associated projects by project_id.

LINEAR LIST LINEAR USERS

Lists all users in the Linear workspace with their IDs, names, emails, and active status.

LINEAR MANAGE DRAFT

Tool to create, update, or delete issue drafts in Linear. Use when you need to save or modify draft notes before converting to an issue. Note: Linear's public GraphQL API does not expose explicit Issue Draft mutations. This action leverages standard Issue mutations to emulate draft management: - create -> issueCreate - update -> issueUpdate - delete -> issueDelete The response maps the created/updated Issue fields to the DraftModel for compatibility.

LINEAR REMOVE ISSUE LABEL

Removes a specified label from an existing Linear issue using their IDs; successful even if the label isn't on the issue.

LINEAR REMOVE REACTION

Tool to remove a reaction on a comment. Use when you have a reaction ID and need to delete it.

LINEAR RUN QUERY OR MUTATION

Execute any GraphQL query or mutation against Linear's API. USE WHEN: No dedicated action exists, need complex filtering, custom fields, or schema discovery. *** INTROSPECTION FIRST - NEVER GUESS FIELD NAMES *** Run introspection before unknown operations: - query { __type(name: "Issue") { fields { name } } } - query { __type(name: "Mutation") { fields { name } } } Linear uses nested objects (project { id }), NOT scalar IDs (projectId). KEY: All IDs are UUIDs. Filter: { field: { eq: value } }. Pagination: nodes[] + pageInfo.

LINEAR UPDATE ISSUE

Updates an existing Linear issue using its `issue_id`; requires at least one other attribute for modification, and all provided entity IDs (for state, assignee, labels, etc.) must be valid.

LINEAR UPDATE LINEAR COMMENT

Tool to update an existing Linear comment's body text. Use when you need to edit or modify the content of a previously created comment.

LINEAR UPDATE LINEAR PROJECT

Tool to update an existing Linear project. Use when you need to modify project properties like name, description, state, dates, or lead. All fields except project_id are optional - only provide the fields you want to update.

LINEAR CUSTOM RESOLVE CONTEXT

LINEAR — RESOLVE CONTEXT Resolves fuzzy/partial names to Linear entity IDs efficiently. Use this tool FIRST when you need to convert user-provided names to IDs. Args: team_name (str): Partial team name (e.g., 'eng' for 'Engineering') user_name (str): Partial user name to match label_names (List[str]): Partial label names to match project_name (str): Partial project name to match state_name (str): Partial state name (requires team_id) team_id (str): Team ID for state resolution Returns: { "current_user": {"id": "...", "name": "...", "email": "..."}, "teams": [{"id": "...", "name": "...", "key": "..."}], "users": [...], "labels": [...], "projects": [...], "states": [...] }

LINEAR CUSTOM GET MY TASKS

LINEAR — GET MY TASKS Gets the current user's assigned issues with smart filtering. USE THIS TOOL when user asks: • "What are my tasks?" • "What should I work on?" • "Show my high priority issues" • "What's overdue?" Args: filter (str): 'all', 'today', 'this_week', 'overdue', 'high_priority' include_completed (bool): Include completed issues (default: False) limit (int): Maximum issues to return (default: 20) Returns: { "filter": "high_priority", "count": 5, "issues": [{"identifier": "ENG-123", "title": "...", ...}] }

LINEAR CUSTOM SEARCH ISSUES

LINEAR — SEARCH ISSUES Searches issues using natural language queries across titles, descriptions, and comments. Args: query (str): Search query (natural language) team_id (str): Optional team filter state_filter (str): Optional - 'backlog', 'unstarted', 'started', 'completed', 'canceled' assignee_id (str): Optional assignee filter priority_filter (str): Optional - 'urgent', 'high', 'medium', 'low', 'none' created_after (str): Optional date filter (ISO format) limit (int): Maximum results (default: 20) Returns: { "query": "authentication", "count": 3, "issues": [{"identifier": "ENG-123", "title": "...", ...}] }

LINEAR CUSTOM GET ISSUE FULL CONTEXT

LINEAR — GET ISSUE FULL CONTEXT Gets complete issue details including comments, relations, and history in one call. Args: issue_id (str): Issue UUID issue_identifier (str): Issue identifier (e.g., 'ENG-123') Returns: { "issue": { "identifier": "ENG-123", "title": "...", "description": "...", "state": "In Progress", "priority": "high", "sub_issues": [...], "relations": [...], "comments": [...], "activity": [...] } }

LINEAR CUSTOM CREATE ISSUE

LINEAR — CREATE ISSUE Creates a new issue with full field support, optionally with sub-issues. Use RESOLVE_CONTEXT first to convert names to IDs. Required Args: team_id (str): Team UUID. Get via RESOLVE_CONTEXT(team_name="...") title (str): Issue title Optional Args: description (str): Detailed description (markdown supported) assignee_id (str): Assignee UUID. Get via RESOLVE_CONTEXT(user_name="...") priority (int): 0=none, 1=urgent, 2=high, 3=medium, 4=low state_id (str): Workflow state UUID. Get via RESOLVE_CONTEXT(state_name="...", team_id="...") label_ids (List[str]): Label UUIDs. Get via RESOLVE_CONTEXT(label_names=[...]) project_id (str): Project UUID. Get via RESOLVE_CONTEXT(project_name="...") cycle_id (str): Sprint UUID. Get via GET_ACTIVE_SPRINT due_date (str): Due date (YYYY-MM-DD or ISO8601) estimate (int): Estimate points (1, 2, 3, 5, 8 etc.) parent_id (str): Parent issue UUID to create as sub-issue sub_issues (List): Sub-issues to create under this issue: - title (str): Required - description (str): Optional - assignee_id (str): Optional - priority (int): Optional Returns: { "issue": { "id": "...", "identifier": "ENG-456", "title": "...", "url": "https://linear.app/..." }, "sub_issues": [ {"id": "...", "identifier": "ENG-457", "title": "..."} ] } Workflow: 1. RESOLVE_CONTEXT(team_name="eng", user_name="john", label_names=["bug"]) 2. CREATE_ISSUE(team_id=..., title=..., assignee_id=..., label_ids=[...])

LINEAR CUSTOM CREATE SUB ISSUES

LINEAR — CREATE SUB-ISSUES (Batch) Creates multiple sub-issues under a parent issue in one call. Sub-issues inherit the team from the parent automatically. Args: parent_issue_id (str): Parent issue UUID parent_identifier (str): Parent issue identifier (e.g., 'ENG-123') sub_issues (List): List of sub-issues to create (max 10): - title (str): Required. Sub-issue title. - description (str): Optional description - assignee_id (str): Optional assignee - priority (int): Optional (0=none, 1=urgent, 2=high, 3=medium, 4=low) Returns: { "parent": "ENG-123", "created_count": 3, "sub_issues": [ {"id": "...", "identifier": "ENG-124", "title": "..."}, {"id": "...", "identifier": "ENG-125", "title": "..."}, ... ] }

LINEAR CUSTOM CREATE ISSUE RELATION

LINEAR — CREATE ISSUE RELATION Creates a relationship between two issues. Relation types: - 'blocks': This issue blocks the related issue - 'is_blocked_by': This issue is blocked by the related issue - 'relates_to': Issues are related - 'duplicates': This issue duplicates the related issue Args: issue_id (str): Source issue UUID related_issue_id (str): Target issue UUID relation_type (str): 'blocks', 'is_blocked_by', 'relates_to', 'duplicates' Returns: { "relation": {"id": "...", "type": "blocks", "from_issue": "...", "to_issue": "..."} }

LINEAR CUSTOM GET ISSUE ACTIVITY

LINEAR — GET ISSUE ACTIVITY Gets the change history for an issue including state changes, assignments, labels. Args: issue_id (str): Issue UUID issue_identifier (str): Issue identifier (e.g., 'ENG-123') limit (int): Maximum history entries (default: 10) Returns: { "issue": "ENG-123", "activity_count": 5, "activities": [ {"timestamp": "...", "actor": "John", "change_type": "state", "from": "Todo", "to": "In Progress"} ] }

LINEAR CUSTOM GET ACTIVE SPRINT

LINEAR — GET ACTIVE SPRINT Gets current/active cycle (sprint) context with progress and issues. Returns summary counts and limited issue samples per state. Args: team_id (str): Optional team filter. If None, returns for all teams. issues_per_state_limit (int): Max issues per state category (default: 3, max: 10) Returns: { "sprint_count": 2, "sprints": [ { "name": "Sprint 24", "team": "Engineering", "progress": 65.5, "total_issues": 12, "issues_by_state": {"started": 4, "completed": 6, ...}, "in_progress": [... limited ...], "todo": [... limited ...] } ] }

LINEAR CUSTOM BULK UPDATE ISSUES

LINEAR — BULK UPDATE ISSUES Batch updates multiple issues at once. Efficient for moving issues between cycles or projects. Args: issue_ids (List[str]): List of issue UUIDs to update state_id (str): New state ID priority (int): New priority (0-4) assignee_id (str): New assignee cycle_id (str): Cycle to add to (empty string to remove) project_id (str): Project to move to (empty string to remove) labels_to_add (List[str]): Label IDs to add labels_to_remove (List[str]): Label IDs to remove Returns: { "updated_count": 5, "updated_issues": [{"id": "...", "identifier": "ENG-123"}] }

LINEAR CUSTOM GET NOTIFICATIONS

LINEAR — GET NOTIFICATIONS Gets the current user's notifications/inbox. Args: include_read (bool): Include read notifications (default: False) limit (int): Maximum notifications (default: 20) Returns: { "count": 3, "notifications": [ {"type": "issueAssigned", "issue": {"identifier": "ENG-123", "title": "..."}, "actor": "John"} ] }

LINEAR CUSTOM GET WORKSPACE CONTEXT

LINEAR — GET WORKSPACE CONTEXT Gets full workspace context for session initialization. Use at the start of a conversation to understand the workspace. Returns: { "user": {"id": "...", "name": "...", "assigned_issue_count": 12}, "teams": [{"name": "Engineering", "key": "ENG", "active_cycle": "Sprint 24", "cycle_progress": 65.5}], "urgent_items": { "overdue": [...], "high_priority": [...], "sla_at_risk": [...] } }

LINEAR CUSTOM GATHER CONTEXT

Get Linear workspace context snapshot: current user, teams, and urgent items. Zero required parameters. Returns full workspace state for session initialization.

What you can do with GAIA + Linear

GAIA connects to Linear via MCP (Model Context Protocol) and exposes every action as a natural-language command. Tell GAIA what you want — it handles the rest, automatically.

  • Use GAIA to linear create comment reaction in Linear with a plain-English instruction
  • Use GAIA to linear create linear attachment in Linear with a plain-English instruction
  • Use GAIA to linear create linear comment in Linear with a plain-English instruction
  • Use GAIA to linear create linear issue in Linear with a plain-English instruction
  • Use GAIA to linear create linear issue details in Linear with a plain-English instruction

How it works

Set up your Linear automation in three simple steps — no code required.

  1. 1

    Connect Linear to GAIA

    Open the GAIA Marketplace, find the Linear integration, and click "Add to your GAIA". Authorise access in under two minutes — no code, no configuration files.

  2. 2

    Tell GAIA what to automate in plain English

    Describe the task in your own words: "summarise my Linear activity every morning" or "notify me on Slack when a new developer event happens". GAIA understands context and intent.

  3. 3

    GAIA handles it automatically, 24/7

    GAIA runs your Linear automations in the background around the clock. No manual triggers, no scripts to maintain — just results delivered to you.

Frequently asked questions

Everything you need to know about the GAIA Linear integration.

Yes. When you name the team or describe the project, GAIA creates the issue in the correct team and assigns it to the right cycle if one is active.



GAIA connects Linear with your entire stack

Linear is just one piece of the puzzle. GAIA integrates with 50+ tools across developer, communication, productivity, and more — letting you build cross-tool automations in plain English without writing a single line of code.

Browse all integrations

Evaluating your options? Compare GAIA vs Linear→

The Experience Company Logo
Life. Simplified.
Product
BotsCompareDownloadFeaturesIntegration MarketplaceRoadmapSelf-Host CLIUse Cases
Resources
AlternativesAutomation CombosBlogDocumentationGlossaryRelease NotesRequest a FeatureRSS FeedStatus
Built For
Startup FoundersSoftware DevelopersSales ProfessionalsProduct ManagersEngineering ManagersAgency Owners
View All Roles
Company
AboutBrandingContactManifestoTools We Love
Socials
DiscordGitHubLinkedInTwitterWhatsAppYouTube
Discord IconTwitter IconGithub IconWhatsapp IconYoutube IconLinkedin Icon
Copyright © 2025 The Experience Company. All rights reserved.
Terms of Use
Privacy Policy