{
  "service": "linear",
  "displayName": "Linear",
  "categories": [
    "Productivity",
    "Developer Tools"
  ],
  "authTypes": [
    "oauth2",
    "api_key"
  ],
  "auth": [
    {
      "type": "oauth2",
      "authorizationUrl": "https://linear.app/oauth/authorize",
      "tokenUrl": "https://api.linear.app/oauth/token",
      "scopes": [
        "read",
        "write",
        "issues:create",
        "comments:create"
      ],
      "scopeSeparator": ",",
      "tokenEndpointAuthMethod": "client_secret_post",
      "authorizationParams": {}
    },
    {
      "type": "api_key",
      "label": "Personal API Key",
      "description": "Linear personal API key sent as the raw Authorization header value. Create or revoke it from Settings > Account > Security & Access.",
      "placeholder": "lin_api_...",
      "extraFields": []
    }
  ],
  "homepageUrl": "https://linear.app",
  "actions": [
    {
      "id": "linear.create_attachment",
      "service": "linear",
      "name": "create_attachment",
      "description": "Create or update an attachment for the specified Linear issue.",
      "requiredScopes": [
        "issues:create"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Attachment title."
          },
          "url": {
            "type": "string",
            "minLength": 1,
            "description": "Attachment URL."
          },
          "subtitle": {
            "type": "string",
            "description": "Attachment subtitle."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id",
          "title",
          "url"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "title": {
            "type": "string",
            "description": "Attachment title."
          },
          "url": {
            "type": "string",
            "description": "Attachment URL."
          },
          "subtitle": {
            "anyOf": [
              {
                "type": "string",
                "description": "Attachment subtitle."
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_comment_reaction",
      "service": "linear",
      "name": "create_comment_reaction",
      "description": "Creates an emoji reaction for the specified Linear comment.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "comment_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "emoji": {
            "type": "string",
            "minLength": 1,
            "description": "Emoji to add."
          }
        },
        "additionalProperties": false,
        "required": [
          "comment_id",
          "emoji"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "reaction_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "comment_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "emoji": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_linear_comment",
      "service": "linear",
      "name": "create_linear_comment",
      "description": "Creates a comment for the specified Linear issue.",
      "requiredScopes": [
        "comments:create"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issueId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "body": {
            "type": "string",
            "minLength": 1,
            "description": "Comment text in Markdown."
          }
        },
        "additionalProperties": false,
        "required": [
          "issueId",
          "body"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "comment_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "body": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_linear_issue",
      "service": "linear",
      "name": "create_linear_issue",
      "description": "Create a new Linear issue in the specified team and support fields such as project, person in charge, status, label, etc.",
      "requiredScopes": [
        "issues:create"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "description": "Issue title."
          },
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "cycle_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "due_date": {
            "type": "string",
            "description": "Issue due date."
          },
          "estimate": {
            "type": "number",
            "description": "Issue estimate."
          },
          "priority": {
            "type": "number",
            "description": "Issue priority."
          },
          "state_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "label_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Linear resource ID."
            },
            "description": "Label IDs."
          },
          "parent_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "assignee_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "description": {
            "type": "string",
            "description": "Issue description in Markdown."
          }
        },
        "additionalProperties": false,
        "required": [
          "title",
          "team_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "identifier": {
            "type": "string",
            "description": "Issue identifier."
          },
          "issue_title": {
            "type": "string",
            "description": "Issue title."
          },
          "issue_description": {
            "anyOf": [
              {
                "type": "string",
                "description": "Issue description."
              },
              {
                "type": "null"
              }
            ]
          },
          "ticket_url": {
            "type": "string",
            "description": "Issue URL."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_linear_issue_relation",
      "service": "linear",
      "name": "create_linear_issue_relation",
      "description": "Create a relationship between two Linear issues, such as blocks, related, or duplicate.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "related_issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "relation_type": {
            "type": "string",
            "enum": [
              "blocks",
              "duplicate",
              "related",
              "similar"
            ],
            "description": "Relationship type."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id",
          "related_issue_id",
          "relation_type"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "related_issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "relation_type": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_linear_label",
      "service": "linear",
      "name": "create_linear_label",
      "description": "Creates a new Linear issue label in the specified team.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Label name."
          },
          "color": {
            "type": "string",
            "minLength": 1,
            "description": "Label color."
          },
          "description": {
            "type": "string",
            "description": "Label description."
          }
        },
        "additionalProperties": false,
        "required": [
          "team_id",
          "name",
          "color"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "name": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "description": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_linear_project",
      "service": "linear",
      "name": "create_linear_project",
      "description": "Create a new Linear project and associate one or more teams.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "icon": {
            "type": "string",
            "description": "Project icon."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Project name."
          },
          "color": {
            "type": "string",
            "description": "Project color."
          },
          "lead_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "priority": {
            "type": "number",
            "description": "Project priority."
          },
          "status_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "state": {
            "type": "string",
            "description": "Project state type."
          },
          "start_date": {
            "type": "string",
            "description": "Project start date."
          },
          "description": {
            "type": "string",
            "description": "Project description."
          },
          "target_date": {
            "type": "string",
            "description": "Project target date."
          },
          "team_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Linear resource ID."
            },
            "description": "Team IDs associated with the project.",
            "minItems": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "team_ids"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "name": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "state": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_project_milestone",
      "service": "linear",
      "name": "create_project_milestone",
      "description": "Creates a project milestone for the specified Linear project.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Milestone name."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "sort_order": {
            "type": "number",
            "description": "Milestone sort order."
          },
          "description": {
            "type": "string",
            "description": "Milestone description."
          },
          "target_date": {
            "type": "string",
            "description": "Target date."
          }
        },
        "additionalProperties": false,
        "required": [
          "name",
          "project_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "name": {
            "type": "string"
          },
          "target_date": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.create_project_update",
      "service": "linear",
      "name": "create_project_update",
      "description": "Creates a project progress update for the specified Linear project.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "body": {
            "type": "string",
            "minLength": 1,
            "description": "Project update body."
          },
          "health": {
            "type": "string",
            "enum": [
              "onTrack",
              "atRisk",
              "offTrack"
            ],
            "description": "Project health."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "is_diff_hidden": {
            "type": "boolean",
            "description": "Whether to hide diff."
          }
        },
        "additionalProperties": false,
        "required": [
          "body",
          "project_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "body": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "health": {
            "anyOf": [
              {
                "type": "string"
              },
              {
                "type": "null"
              }
            ]
          },
          "is_diff_hidden": {
            "type": "boolean"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.delete_linear_issue",
      "service": "linear",
      "name": "delete_linear_issue",
      "description": "Delete the specified Linear issue.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "deleted": {
            "type": "boolean"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_all_linear_teams",
      "service": "linear",
      "name": "get_all_linear_teams",
      "description": "Lists all Linear team basic information accessible with the current credentials.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "teams returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_attachment",
      "service": "linear",
      "name": "get_attachment",
      "description": "Retrieve a Linear attachment based on the issue and attachment ID or file name.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "attachment_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "file_name": {
            "type": "string",
            "minLength": 1,
            "description": "Attachment file name or title."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "attachment": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_current_user",
      "service": "linear",
      "name": "get_current_user",
      "description": "Get the currently authenticated Linear user profile.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "viewer": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_cycles_by_team_id",
      "service": "linear",
      "name": "get_cycles_by_team_id",
      "description": "Get all cycle information under the specified team.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "team_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "cycles": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "cycles returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_issue_defaults",
      "service": "linear",
      "name": "get_issue_defaults",
      "description": "Gets the default status and default estimate used when the specified team creates an issue.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "team_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "team": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_linear_issue",
      "service": "linear",
      "name": "get_linear_issue",
      "description": "Get details of a Linear issue, including comments, attachments, subscribers, and underlying relationship fields.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "issue": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.get_linear_project",
      "service": "linear",
      "name": "get_linear_project",
      "description": "Get the details of a Linear project, complete with team, members, and initiatives on demand.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "include_teams": {
            "type": "boolean",
            "description": "Include project teams."
          },
          "include_members": {
            "type": "boolean",
            "description": "Include project members."
          },
          "include_initiatives": {
            "type": "boolean",
            "description": "Include project initiatives."
          }
        },
        "additionalProperties": false,
        "required": [
          "project_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_issue_drafts",
      "service": "linear",
      "name": "list_issue_drafts",
      "description": "Lists issue drafts visible to the current user in Linear.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "first": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "drafts": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            }
          },
          "page_info": {
            "type": "object",
            "properties": {
              "startCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous-page start cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hasPreviousPage": {
                "type": "boolean",
                "description": "Whether a previous page exists."
              },
              "hasNextPage": {
                "type": "boolean",
                "description": "Whether a next page exists."
              },
              "end_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_next_page": {
                "type": "boolean",
                "description": "Whether a next page exists."
              }
            },
            "additionalProperties": true,
            "description": "Pagination information."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_issues_by_team_id",
      "service": "linear",
      "name": "list_issues_by_team_id",
      "description": "List Linear issues by team, and support cursor paging and whether to include archived issues.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "first": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return."
          },
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "include_archived": {
            "type": "boolean",
            "description": "Include archived issues."
          }
        },
        "additionalProperties": false,
        "required": [
          "team_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "team": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          },
          "issues": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            }
          },
          "page_info": {
            "type": "object",
            "properties": {
              "startCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous-page start cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hasPreviousPage": {
                "type": "boolean",
                "description": "Whether a previous page exists."
              },
              "hasNextPage": {
                "type": "boolean",
                "description": "Whether a next page exists."
              },
              "end_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_next_page": {
                "type": "boolean",
                "description": "Whether a next page exists."
              }
            },
            "additionalProperties": true,
            "description": "Pagination information."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_cycles",
      "service": "linear",
      "name": "list_linear_cycles",
      "description": "Lists the Linear periods accessible by the current credential.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "cycles": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "cycles returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_issues",
      "service": "linear",
      "name": "list_linear_issues",
      "description": "Lists Linear issues accessible with current credentials, and supports filtering by project and person in charge.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "first": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return."
          },
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "assignee_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "original_cursor": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "cursor_was_corrupted": {
            "type": "boolean",
            "description": "Whether the cursor was corrupted."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "issues": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            }
          },
          "page_info": {
            "type": "object",
            "properties": {
              "startCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous-page start cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hasPreviousPage": {
                "type": "boolean",
                "description": "Whether a previous page exists."
              },
              "hasNextPage": {
                "type": "boolean",
                "description": "Whether a next page exists."
              },
              "end_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_next_page": {
                "type": "boolean",
                "description": "Whether a next page exists."
              }
            },
            "additionalProperties": true,
            "description": "Pagination information."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_labels",
      "service": "linear",
      "name": "list_linear_labels",
      "description": "Lists Linear labels for a specified team or entire workspace.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "labels": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "labels returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_projects",
      "service": "linear",
      "name": "list_linear_projects",
      "description": "Lists Linear projects accessible with the current credentials.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {},
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "projects returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_states",
      "service": "linear",
      "name": "list_linear_states",
      "description": "Lists all workflow statuses for the specified team.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "team_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "team_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "states": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "states returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_teams",
      "service": "linear",
      "name": "list_linear_teams",
      "description": "Lists Linear teams accessible with current credentials, along with a list of members and projects.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "teams": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "teams returned by Linear."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.list_linear_users",
      "service": "linear",
      "name": "list_linear_users",
      "description": "List Linear users in the current workspace and support cursor paging.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "after": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "first": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return."
          }
        },
        "additionalProperties": false,
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "users": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            }
          },
          "page_info": {
            "type": "object",
            "properties": {
              "startCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous-page start cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hasPreviousPage": {
                "type": "boolean",
                "description": "Whether a previous page exists."
              },
              "hasNextPage": {
                "type": "boolean",
                "description": "Whether a next page exists."
              },
              "end_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_next_page": {
                "type": "boolean",
                "description": "Whether a next page exists."
              }
            },
            "additionalProperties": true,
            "description": "Pagination information."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.remove_issue_label",
      "service": "linear",
      "name": "remove_issue_label",
      "description": "Removes a label from the specified Linear issue.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "label_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "issue_id",
          "label_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "issue_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "label_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "removed": {
            "type": "boolean"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.remove_reaction",
      "service": "linear",
      "name": "remove_reaction",
      "description": "Delete an existing Linear reaction.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "reaction_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          }
        },
        "additionalProperties": false,
        "required": [
          "reaction_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "reaction_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "removed": {
            "type": "boolean"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.run_mutation",
      "service": "linear",
      "name": "run_mutation",
      "description": "Perform a mutation directly on the Linear GraphQL API.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "mutation": {
            "type": "string",
            "minLength": 1
          },
          "variables": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": false,
        "required": [
          "mutation"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true,
                "description": "Linear API object."
              },
              {
                "type": "null"
              }
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "GraphQL errors."
          },
          "extensions": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          },
          "message": {
            "type": "string",
            "description": "Summarized execution status."
          }
        },
        "additionalProperties": true,
        "description": "Raw GraphQL response."
      }
    },
    {
      "id": "linear.run_query",
      "service": "linear",
      "name": "run_query",
      "description": "Execute a read-only query directly against the Linear GraphQL API.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1
          },
          "variables": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "data": {
            "anyOf": [
              {
                "type": "object",
                "additionalProperties": true,
                "description": "Linear API object."
              },
              {
                "type": "null"
              }
            ]
          },
          "errors": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            },
            "description": "GraphQL errors."
          },
          "extensions": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          },
          "message": {
            "type": "string",
            "description": "Summarized execution status."
          }
        },
        "additionalProperties": true,
        "description": "Raw GraphQL response."
      }
    },
    {
      "id": "linear.search_issues",
      "service": "linear",
      "name": "search_issues",
      "description": "Retrieve issues through Linear's full-text search capabilities.",
      "requiredScopes": [
        "read"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "query": {
            "type": "string",
            "minLength": 1,
            "description": "Search query."
          },
          "after": {
            "type": "string",
            "description": "Pagination cursor."
          },
          "first": {
            "type": "integer",
            "minimum": 1,
            "description": "Number of records to return."
          },
          "include_archived": {
            "type": "boolean",
            "description": "Include archived issues."
          }
        },
        "additionalProperties": false,
        "required": [
          "query"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "issues": {
            "type": "array",
            "items": {
              "type": "object",
              "additionalProperties": true,
              "description": "Linear API object."
            }
          },
          "page_info": {
            "type": "object",
            "properties": {
              "startCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Previous-page start cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "endCursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "hasPreviousPage": {
                "type": "boolean",
                "description": "Whether a previous page exists."
              },
              "hasNextPage": {
                "type": "boolean",
                "description": "Whether a next page exists."
              },
              "end_cursor": {
                "anyOf": [
                  {
                    "type": "string",
                    "description": "Next-page end cursor."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "has_next_page": {
                "type": "boolean",
                "description": "Whether a next page exists."
              }
            },
            "additionalProperties": true,
            "description": "Pagination information."
          },
          "total_count": {
            "type": "integer"
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.update_issue",
      "service": "linear",
      "name": "update_issue",
      "description": "Update an existing Linear issue and support fields such as title, description, status, project, label, etc.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "issueId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "title": {
            "type": "string",
            "description": "Issue title."
          },
          "teamId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "cycleId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "dueDate": {
            "type": "string",
            "description": "Issue due date."
          },
          "stateId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "estimate": {
            "type": "number",
            "description": "Issue estimate."
          },
          "labelIds": {
            "type": "array",
            "items": {
              "type": "string",
              "minLength": 1,
              "description": "Linear resource ID."
            },
            "description": "Label IDs."
          },
          "parentId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "priority": {
            "type": "number",
            "description": "Issue priority."
          },
          "projectId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "assigneeId": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "description": {
            "type": "string",
            "description": "Issue description in Markdown."
          }
        },
        "additionalProperties": false,
        "required": [
          "issueId"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "issue": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.update_linear_comment",
      "service": "linear",
      "name": "update_linear_comment",
      "description": "Update the text of an existing Linear comment.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "comment_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "body": {
            "type": "string",
            "minLength": 1
          }
        },
        "additionalProperties": false,
        "required": [
          "comment_id",
          "body"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "comment": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    },
    {
      "id": "linear.update_linear_project",
      "service": "linear",
      "name": "update_linear_project",
      "description": "Update an existing Linear project.",
      "requiredScopes": [
        "write"
      ],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "project_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "icon": {
            "type": "string",
            "description": "Project icon."
          },
          "name": {
            "type": "string",
            "minLength": 1,
            "description": "Project name."
          },
          "color": {
            "type": "string",
            "description": "Project color."
          },
          "lead_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "priority": {
            "type": "number",
            "description": "Project priority."
          },
          "status_id": {
            "type": "string",
            "minLength": 1,
            "description": "Linear resource ID."
          },
          "state": {
            "type": "string",
            "description": "Project state type."
          },
          "start_date": {
            "type": "string",
            "description": "Project start date."
          },
          "description": {
            "type": "string",
            "description": "Project description."
          },
          "target_date": {
            "type": "string",
            "description": "Project target date."
          }
        },
        "additionalProperties": false,
        "required": [
          "project_id"
        ],
        "description": "The input payload for this action."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "project": {
            "type": "object",
            "additionalProperties": true,
            "description": "Linear API object."
          }
        },
        "additionalProperties": true,
        "description": "Linear action output."
      }
    }
  ]
}
