Linear MCP Server for Cloudflare Workers
56 tools available in the Linear MCP server. Each tool can be called by AI assistants to perform specific actions.
linear_get_viewerGet the currently authenticated user.
Returns information about the user associated with the API key.
Args:
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_usersList all users in the organization.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_attachmentsList attachments on an issue.
Args:
{
"type": "object",
"required": [
"issueId"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"issueId": {
"type": "string",
"description": "Issue ID"
}
}
}linear_create_attachmentCreate an attachment on an issue.
Attachments are external links that can be associated with issues.
Args:
{
"type": "object",
"required": [
"issueId",
"title",
"url"
],
"properties": {
"url": {
"type": "string",
"description": "Attachment URL"
},
"title": {
"type": "string",
"description": "Attachment title"
},
"iconUrl": {
"type": "string"
},
"issueId": {
"type": "string",
"description": "Issue ID"
},
"subtitle": {
"type": "string"
},
"commentBody": {
"type": "string",
"description": "Comment to add with attachment"
}
}
}linear_update_attachmentUpdate an existing attachment.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Attachment ID"
},
"url": {
"type": "string"
},
"title": {
"type": "string"
},
"iconUrl": {
"type": "string"
},
"subtitle": {
"type": "string"
}
}
}linear_delete_attachmentDelete an attachment.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Attachment ID"
}
}
}linear_list_commentsList comments on an issue.
Args:
{
"type": "object",
"required": [
"issueId"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"issueId": {
"type": "string",
"description": "Issue ID"
}
}
}linear_get_userGet a single user by ID.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "User ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_create_commentCreate a comment on an issue.
Args:
{
"type": "object",
"required": [
"issueId",
"body"
],
"properties": {
"body": {
"type": "string",
"description": "Comment body (markdown)"
},
"issueId": {
"type": "string",
"description": "Issue ID"
},
"parentId": {
"type": "string",
"description": "Parent comment ID for replies"
}
}
}linear_update_commentUpdate an existing comment.
Args:
{
"type": "object",
"required": [
"id",
"body"
],
"properties": {
"id": {
"type": "string",
"description": "Comment ID"
},
"body": {
"type": "string",
"description": "New comment body (markdown)"
}
}
}linear_delete_commentDelete a comment.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Comment ID"
}
}
}linear_list_cyclesList cycles (sprints) for a team.
Args:
{
"type": "object",
"required": [
"teamId"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"teamId": {
"type": "string",
"description": "Team ID"
}
}
}linear_get_cycleGet a single cycle by ID.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Cycle ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_create_cycleCreate a new cycle (sprint) for a team.
Args:
{
"type": "object",
"required": [
"teamId",
"startsAt",
"endsAt"
],
"properties": {
"name": {
"type": "string",
"description": "Cycle name"
},
"endsAt": {
"type": "string",
"description": "End date/time (ISO 8601)"
},
"teamId": {
"type": "string",
"description": "Team ID"
},
"startsAt": {
"type": "string",
"description": "Start date/time (ISO 8601)"
},
"description": {
"type": "string",
"description": "Cycle description"
}
}
}linear_update_cycleUpdate an existing cycle.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Cycle ID"
},
"name": {
"type": "string"
},
"endsAt": {
"type": "string"
},
"startsAt": {
"type": "string"
},
"completedAt": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_archive_cycleArchive a cycle.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Cycle ID"
}
}
}linear_list_documentsList documents in Linear.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "string",
"description": "Filter by project ID"
}
}
}linear_get_documentGet a single document by ID.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Document ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_create_documentCreate a new document.
Args:
{
"type": "object",
"required": [
"title"
],
"properties": {
"icon": {
"type": "string"
},
"color": {
"type": "string"
},
"title": {
"type": "string",
"description": "Document title"
},
"content": {
"type": "string",
"description": "Document content (markdown)"
},
"projectId": {
"type": "string"
}
}
}linear_update_documentUpdate an existing document.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Document ID"
},
"icon": {
"type": "string"
},
"color": {
"type": "string"
},
"title": {
"type": "string"
},
"content": {
"type": "string"
},
"projectId": {
"type": "string"
}
}
}linear_update_project_milestoneUpdate a project milestone.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Milestone ID"
},
"name": {
"type": "string"
},
"targetDate": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_list_issuesList issues from Linear with optional filters.
Returns a paginated list of issues. Use filters to narrow results by team, project, cycle, assignee, etc.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string",
"description": "Pagination cursor"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1,
"description": "Number of issues to return"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string",
"default": "json",
"description": "Response format"
},
"teamId": {
"type": "string",
"description": "Filter by team ID"
},
"cycleId": {
"type": "string",
"description": "Filter by cycle ID"
},
"stateId": {
"type": "string",
"description": "Filter by workflow state ID"
},
"priority": {
"type": "integer",
"maximum": 4,
"minimum": 0,
"description": "Filter by priority (0=none, 1=urgent, 2=high, 3=medium, 4=low)"
},
"creatorId": {
"type": "string",
"description": "Filter by creator ID"
},
"projectId": {
"type": "string",
"description": "Filter by project ID"
},
"assigneeId": {
"type": "string",
"description": "Filter by assignee ID"
},
"includeArchived": {
"type": "boolean",
"default": false,
"description": "Include archived issues"
}
}
}linear_get_issueGet a single issue by ID or identifier.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Issue ID or identifier"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_get_organizationGet organization information.
Returns details about the organization including subscription, settings, and statistics.
Args:
{
"type": "object",
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_search_issuesSearch for issues using Linear's search functionality.
Supports natural language queries and Linear's search syntax.
Args:
{
"type": "object",
"required": [
"query"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"query": {
"type": "string",
"description": "Search query"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_create_issueCreate a new issue in Linear.
Args:
{
"type": "object",
"required": [
"teamId",
"title"
],
"properties": {
"title": {
"type": "string",
"description": "Issue title"
},
"teamId": {
"type": "string",
"description": "Team ID (required)"
},
"cycleId": {
"type": "string",
"description": "Cycle ID"
},
"dueDate": {
"type": "string",
"description": "Due date (YYYY-MM-DD)"
},
"stateId": {
"type": "string",
"description": "Workflow state ID"
},
"estimate": {
"type": "number",
"description": "Story points estimate"
},
"labelIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Label IDs"
},
"parentId": {
"type": "string",
"description": "Parent issue ID"
},
"priority": {
"type": "integer",
"maximum": 4,
"minimum": 0,
"description": "Priority level"
},
"projectId": {
"type": "string",
"description": "Project ID"
},
"assigneeId": {
"type": "string",
"description": "Assignee user ID"
},
"description": {
"type": "string",
"description": "Issue description (markdown)"
},
"projectMilestoneId": {
"type": "string",
"description": "Project milestone ID"
}
}
}linear_update_issueUpdate an existing issue.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Issue ID"
},
"title": {
"type": "string"
},
"cycleId": {
"type": "string"
},
"dueDate": {
"type": "string"
},
"stateId": {
"type": "string"
},
"trashed": {
"type": "boolean"
},
"estimate": {
"type": "number"
},
"labelIds": {
"type": "array",
"items": {
"type": "string"
}
},
"parentId": {
"type": "string"
},
"priority": {
"type": "integer",
"maximum": 4,
"minimum": 0
},
"projectId": {
"type": "string"
},
"assigneeId": {
"type": "string"
},
"description": {
"type": "string"
},
"projectMilestoneId": {
"type": "string"
}
}
}linear_archive_issueArchive an issue.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Issue ID"
}
}
}linear_unarchive_issueUnarchive an issue.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Issue ID"
}
}
}linear_list_labelsList issue labels.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"teamId": {
"type": "string",
"description": "Filter by team ID"
}
}
}linear_delete_project_milestoneDelete a project milestone.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Milestone ID"
}
}
}linear_create_labelCreate a new issue label.
Args:
{
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Label name"
},
"color": {
"type": "string",
"description": "Label color (hex)"
},
"teamId": {
"type": "string",
"description": "Team ID"
},
"parentId": {
"type": "string",
"description": "Parent label ID"
},
"description": {
"type": "string"
}
}
}linear_update_labelUpdate an existing label.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Label ID"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_archive_labelArchive a label.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Label ID"
}
}
}linear_list_notificationsList notifications for the authenticated user.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_mark_notification_readMark a notification as read.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Notification ID"
}
}
}linear_archive_notificationArchive a notification.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Notification ID"
}
}
}linear_list_projectsList projects from Linear.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"teamId": {
"type": "string",
"description": "Filter by team ID"
}
}
}linear_get_projectGet a single project by ID.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Project ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_webhooksList webhooks in the organization.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_create_projectCreate a new project in Linear.
Args:
{
"type": "object",
"required": [
"name",
"teamIds"
],
"properties": {
"icon": {
"type": "string"
},
"name": {
"type": "string",
"description": "Project name"
},
"color": {
"type": "string"
},
"state": {
"type": "string",
"description": "Project state"
},
"leadId": {
"type": "string"
},
"teamIds": {
"type": "array",
"items": {
"type": "string"
},
"description": "Team IDs"
},
"memberIds": {
"type": "array",
"items": {
"type": "string"
}
},
"startDate": {
"type": "string"
},
"targetDate": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_update_projectUpdate an existing project.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Project ID"
},
"icon": {
"type": "string"
},
"name": {
"type": "string"
},
"color": {
"type": "string"
},
"state": {
"type": "string"
},
"leadId": {
"type": "string"
},
"memberIds": {
"type": "array",
"items": {
"type": "string"
}
},
"startDate": {
"type": "string"
},
"targetDate": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_archive_projectArchive a project.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Project ID"
}
}
}linear_list_project_milestonesList milestones for a project.
Args:
{
"type": "object",
"required": [
"projectId"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"projectId": {
"type": "string",
"description": "Project ID"
}
}
}linear_create_project_milestoneCreate a milestone for a project.
Args:
{
"type": "object",
"required": [
"projectId",
"name"
],
"properties": {
"name": {
"type": "string",
"description": "Milestone name"
},
"projectId": {
"type": "string",
"description": "Project ID"
},
"targetDate": {
"type": "string"
},
"description": {
"type": "string"
}
}
}linear_list_issue_relationsList relations for an issue.
Issue relations can be: blocks, duplicate, or related.
Args:
{
"type": "object",
"required": [
"issueId"
],
"properties": {
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"issueId": {
"type": "string",
"description": "Issue ID"
}
}
}linear_create_issue_relationCreate a relation between two issues.
Relation types:
Args:
{
"type": "object",
"required": [
"issueId",
"relatedIssueId",
"type"
],
"properties": {
"type": {
"enum": [
"blocks",
"duplicate",
"related"
],
"type": "string",
"description": "Relation type"
},
"issueId": {
"type": "string",
"description": "Source issue ID"
},
"relatedIssueId": {
"type": "string",
"description": "Related issue ID"
}
}
}linear_delete_issue_relationDelete an issue relation.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Relation ID"
}
}
}linear_list_initiativesList initiatives in the organization.
Initiatives are high-level strategic goals that can contain multiple projects.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_roadmapsList roadmaps in the organization.
Roadmaps provide a visual timeline view of projects and initiatives.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_teamsList all teams in the organization.
Args:
{
"type": "object",
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_get_teamGet a single team by ID.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Team ID"
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
}
}
}linear_list_workflow_statesList workflow states for a team.
Workflow states define the status options for issues (e.g., Todo, In Progress, Done).
Args:
{
"type": "object",
"required": [
"teamId"
],
"properties": {
"after": {
"type": "string"
},
"first": {
"type": "integer",
"default": 50,
"maximum": 100,
"minimum": 1
},
"format": {
"enum": [
"json",
"markdown"
],
"type": "string"
},
"teamId": {
"type": "string",
"description": "Team ID"
}
}
}linear_create_webhookCreate a new webhook.
Args:
{
"type": "object",
"required": [
"url",
"resourceTypes"
],
"properties": {
"url": {
"type": "string",
"description": "Webhook URL"
},
"label": {
"type": "string"
},
"teamId": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"resourceTypes": {
"type": "array",
"items": {
"type": "string"
},
"description": "Resource types to subscribe to"
},
"allPublicTeams": {
"type": "boolean"
}
}
}linear_update_webhookUpdate an existing webhook.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Webhook ID"
},
"url": {
"type": "string"
},
"label": {
"type": "string"
},
"enabled": {
"type": "boolean"
},
"resourceTypes": {
"type": "array",
"items": {
"type": "string"
}
}
}
}linear_delete_webhookDelete a webhook.
Args:
{
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Webhook ID"
}
}
}