Linear MCP connector
OAuth 2.1/DCR Project ManagementDeveloper ToolsConnect to Linear's hosted MCP server to manage issues, projects, cycles, and comments directly from your AI workflows.
Linear MCP connector
-
Install the SDK
Section titled “Install the SDK”Terminal window npm install @scalekit-sdk/nodeTerminal window pip install scalekit -
Set your credentials
Section titled “Set your credentials”Add your Scalekit credentials to your
.envfile. Find values in app.scalekit.com > Developers > API Credentials..env SCALEKIT_ENVIRONMENT_URL=<your-environment-url>SCALEKIT_CLIENT_ID=<your-client-id>SCALEKIT_CLIENT_SECRET=<your-client-secret> -
Authorize and make your first call
Section titled “Authorize and make your first call”quickstart.ts import { ScalekitClient } from '@scalekit-sdk/node'import 'dotenv/config'const scalekit = new ScalekitClient(process.env.SCALEKIT_ENV_URL,process.env.SCALEKIT_CLIENT_ID,process.env.SCALEKIT_CLIENT_SECRET,)const actions = scalekit.actionsconst connector = 'linearmcp'const identifier = 'user_123'// Generate an authorization link for the userconst { link } = await actions.getAuthorizationLink({ connectionName: connector, identifier })console.log('Authorize Linear MCP:', link)process.stdout.write('Press Enter after authorizing...')await new Promise(r => process.stdin.once('data', r))// Make your first callconst result = await actions.executeTool({connector,identifier,toolName: 'linearmcp_list_comments',toolInput: {},})console.log(result)quickstart.py import osfrom scalekit.client import ScalekitClientfrom dotenv import load_dotenvload_dotenv()scalekit_client = ScalekitClient(env_url=os.getenv("SCALEKIT_ENV_URL"),client_id=os.getenv("SCALEKIT_CLIENT_ID"),client_secret=os.getenv("SCALEKIT_CLIENT_SECRET"),)actions = scalekit_client.actionsconnection_name = "linearmcp"identifier = "user_123"# Generate an authorization link for the userlink_response = actions.get_authorization_link(connection_name=connection_name,identifier=identifier,)print("Authorize Linear MCP:", link_response.link)input("Press Enter after authorizing...")# Make your first callresult = actions.execute_tool(tool_input={},tool_name="linearmcp_list_comments",connection_name=connection_name,identifier=identifier,)print(result)
What you can do
Section titled “What you can do”Connect this agent connector to let your agent:
- Search documentation — Search Linear’s documentation to learn about features and usage
- Update save status — Create or update a project/initiative status update
- Project save — Create or update a Linear project
- Milestone save — Create or update a milestone in a Linear project
- Issue save — Create or update a Linear issue
- Document save — Create or update a Linear document
Tool list
Section titled “Tool list”Use the exact tool names from the Tool list below when you call execute_tool. If you’re not sure which name to use, list the tools available for the current user first.
linearmcp_create_attachment
#
Deprecated fallback for tiny files only. Accepts base64 file content and uploads it through the MCP worker. Prefer prepare_attachment_upload plus direct PUT plus create_attachment_from_upload. 6 params
Deprecated fallback for tiny files only. Accepts base64 file content and uploads it through the MCP worker. Prefer prepare_attachment_upload plus direct PUT plus create_attachment_from_upload.
base64Content string required Deprecated base64-encoded file content to upload contentType string required MIME type for the upload (e.g., 'image/png', 'application/pdf') filename string required Filename for the upload (e.g., 'screenshot.png') issue string required Issue ID or identifier (e.g., LIN-123) subtitle string optional Optional subtitle for the attachment title string optional Optional title for the attachment linearmcp_create_attachment_from_upload
#
Link an already-uploaded Linear assetUrl to an existing issue as an attachment. 4 params
Link an already-uploaded Linear assetUrl to an existing issue as an attachment.
assetUrl string required Linear upload assetUrl returned by prepare_attachment_upload issue string required Issue ID or identifier (e.g., LIN-123) subtitle string optional Optional attachment subtitle title string optional Attachment title. Defaults to filename or asset URL linearmcp_create_issue_label
#
Create a new Linear issue label 6 params
Create a new Linear issue label
name string required Label name color string optional Hex color code for the label description string optional Label description isGroup boolean optional Whether this label is a group (container for other labels) parent string optional Parent label group name teamId string optional Team UUID to scope the label. Omit for workspace-level label. linearmcp_delete_attachment
#
Delete an attachment by ID 1 param
Delete an attachment by ID
id string required Attachment ID linearmcp_delete_comment
#
Delete a Linear comment. 1 param
Delete a Linear comment.
id string required Comment ID linearmcp_delete_status_update
#
Delete (archive) a project or initiative status update. 2 params
Delete (archive) a project or initiative status update.
id string required Status update ID to delete type string required Type of status update — project or initiative linearmcp_extract_images
#
Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents. 1 param
Extract and fetch images from markdown content. Use this to view screenshots, diagrams, or other images embedded in Linear issues, comments, or documents.
markdown string required Markdown content containing image references linearmcp_get_attachment
#
Retrieve an attachment's content by ID. 1 param
Retrieve an attachment's content by ID.
id string required Attachment ID linearmcp_get_diff
#
Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs. 1 param
Exact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
urlOrId string required Linear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL linearmcp_get_diff_threads
#
Exact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs. 4 params
Exact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
urlOrId string required Linear review URL, diff slug, pull request ID, Linear full identifier, or GitHub PR URL orderBy string optional Sort: createdAt | updatedAt resolved boolean optional Filter returned threads by resolved state threadId string optional Optional top-level thread/comment ID to return linearmcp_get_document
#
Retrieve a Linear document by ID or slug 1 param
Retrieve a Linear document by ID or slug
id string required Document ID or slug linearmcp_get_issue
#
Retrieve detailed information about an issue by ID, including attachments and git branch name 4 params
Retrieve detailed information about an issue by ID, including attachments and git branch name
id string required Issue ID or identifier (e.g., LIN-123) includeCustomerNeeds boolean optional Include associated customer needs includeRelations boolean optional Include blocking/related/duplicate relations includeReleases boolean optional Include associated releases linearmcp_get_issue_status
#
Retrieve detailed information about an issue status in Linear by name or ID 3 params
Retrieve detailed information about an issue status in Linear by name or ID
id string required Status ID name string required Status name team string required Team name or ID linearmcp_get_milestone
#
Retrieve details of a specific milestone by ID or name 2 params
Retrieve details of a specific milestone by ID or name
project string required Project name, ID, or slug query string required Milestone name or ID linearmcp_get_project
#
Retrieve details of a specific project in Linear 4 params
Retrieve details of a specific project in Linear
query string required Project name, ID, or slug includeMembers boolean optional Include members in the response includeMilestones boolean optional Include milestones in the response includeResources boolean optional Include resources (documents, links, attachments) linearmcp_get_status_updates
#
List or get project/initiative status updates. Pass id to get a specific update, or filter to list. 11 params
List or get project/initiative status updates. Pass id to get a specific update, or filter to list.
type string required Type of status update — project or initiative createdAt string optional Return updates created after this ISO-8601 duration (e.g. P7D for last 7 days) cursor string optional Pagination cursor from the previous response id string optional Status update ID — returns the specific update if provided includeArchived boolean optional Include archived status updates initiative string optional Initiative name or ID to filter by limit number optional Maximum number of status updates to return orderBy string optional Field to order results by project string optional Project name, ID, or slug to filter by updatedAt string optional Return updates modified after this ISO-8601 duration (e.g. P7D for last 7 days) user string optional User ID, name, email, or 'me' to filter by author linearmcp_get_team
#
Retrieve details of a specific Linear team 1 param
Retrieve details of a specific Linear team
query string required Team UUID, key, or name linearmcp_get_user
#
Retrieve details of a specific Linear user 1 param
Retrieve details of a specific Linear user
query string required User ID, name, email, or 'me' for the authenticated user linearmcp_list_comments
#
List comments on a Linear issue, project, initiative, document, or project milestone. Provide exactly one of issueId, projectId, initiativeId, documentId, or milestoneId. 8 params
List comments on a Linear issue, project, initiative, document, or project milestone. Provide exactly one of issueId, projectId, initiativeId, documentId, or milestoneId.
cursor string optional Next page cursor documentId string optional Document ID or slug (provide exactly one parent) initiativeId string optional Initiative name or ID (provide exactly one parent) issueId string optional Issue ID or identifier (e.g., LIN-123) (provide exactly one parent) limit number optional Max results (default 50, max 250) milestoneId string optional Milestone UUID (provide exactly one parent) orderBy string optional Sort: createdAt | updatedAt projectId string optional Project name, ID, or slug (provide exactly one parent) linearmcp_list_cycles
#
Retrieve cycles for a specific Linear team 2 params
Retrieve cycles for a specific Linear team
teamId string required Team ID type string optional Filter: current, previous, next, or all linearmcp_list_diffs
#
List Linear diff pull requests visible to the authenticated user 7 params
List Linear diff pull requests visible to the authenticated user
cursor string optional Next page cursor limit number optional Max results (default 50, max 250) orderBy string optional Sort: createdAt | updatedAt owner string optional Filter by repository owner query string optional Broad search by title, branch, PR number, or bare slug repo string optional Filter by repository name status string optional Filter by pull request status linearmcp_list_documents
#
List documents in the user's Linear workspace 11 params
List documents in the user's Linear workspace
createdAt string optional Created after: ISO-8601 date/duration (e.g., -P1D) creatorId string optional Filter by creator user ID cursor string optional Next page cursor includeArchived boolean optional Include archived documents initiativeId string optional Filter by initiative ID limit number optional Max results (default 50, max 250) orderBy string optional Sort: createdAt | updatedAt projectId string optional Filter by project ID query string optional Search document title or content teamId string optional Filter by team ID updatedAt string optional Updated after: ISO-8601 date/duration (e.g., -P1D) linearmcp_list_issue_labels
#
List available issue labels in a Linear workspace or team 5 params
List available issue labels in a Linear workspace or team
cursor string optional Next page cursor limit number optional Max results (default 50, max 250) name string optional Filter labels by name orderBy string optional Sort: createdAt | updatedAt team string optional Team name or ID linearmcp_list_issue_statuses
#
List available issue statuses in a Linear team 1 param
List available issue statuses in a Linear team
team string required Team name or ID linearmcp_list_issues
#
List issues in the user's Linear workspace. For my issues, use "me" as the assignee. Use "null" for no assignee. 16 params
List issues in the user's Linear workspace. For my issues, use "me" as the assignee. Use "null" for no assignee.
assignee string optional User ID, name, email, or "me" createdAt string optional Created after: ISO-8601 date/duration (e.g., -P1D) cursor string optional Next page cursor cycle string optional Cycle name, number, or ID delegate string optional Agent name or ID includeArchived boolean optional Include archived items label string optional Label name or ID limit number optional Max results (default 50, max 250) orderBy string optional Sort: createdAt | updatedAt parentId string optional Parent issue ID or identifier (e.g., LIN-123) priority number optional 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low project string optional Project name, ID, or slug query string optional Search issue title or description state string optional State type, name, or ID team string optional Team name or ID updatedAt string optional Updated after: ISO-8601 date/duration (e.g., -P1D) linearmcp_list_milestones
#
List all milestones in a Linear project 1 param
List all milestones in a Linear project
project string required Project name, ID, or slug linearmcp_list_project_labels
#
List available project labels in the Linear workspace 4 params
List available project labels in the Linear workspace
cursor string optional Next page cursor limit number optional Max results (default 50, max 250) name string optional Filter by name orderBy string optional Sort: createdAt | updatedAt linearmcp_list_projects
#
List projects in the user's Linear workspace 14 params
List projects in the user's Linear workspace
createdAt string optional Created after: ISO-8601 date/duration (e.g., -P1D) cursor string optional Next page cursor includeArchived boolean optional Include archived projects includeMembers boolean optional Include project members in results includeMilestones boolean optional Include project milestones in results initiative string optional Filter by initiative name or ID label string optional Filter by label name or ID limit number optional Max results (default 50, max 50) member string optional Filter by member: user ID, name, email, or 'me' orderBy string optional Sort: createdAt | updatedAt query string optional Search project name state string optional Filter by project state team string optional Filter by team name or ID updatedAt string optional Updated after: ISO-8601 date/duration (e.g., -P1D) linearmcp_list_teams
#
List teams in the user's Linear workspace 7 params
List teams in the user's Linear workspace
createdAt string optional Created after ISO-8601 cursor string optional Next page cursor includeArchived boolean optional Include archived teams limit number optional Max results (default 50, max 250) orderBy string optional Sort: createdAt | updatedAt query string optional Search query updatedAt string optional Updated after ISO-8601 linearmcp_list_users
#
Retrieve users in the Linear workspace 5 params
Retrieve users in the Linear workspace
cursor string optional Pagination cursor from the previous response limit number optional Maximum number of users to return orderBy string optional Field to order results by query string optional Filter by name or email team string optional Team name or ID to filter users linearmcp_prepare_attachment_upload
#
Prepare a direct Linear file upload for an existing issue. Workflow: 1. Call this with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url. 3. After PUT succeeds, call create_attachment_from_upload with assetUrl. 6 params
Prepare a direct Linear file upload for an existing issue. Workflow: 1. Call this with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url. 3. After PUT succeeds, call create_attachment_from_upload with assetUrl.
contentType string required MIME type, e.g. image/png or application/pdf filename string required Filename for the upload, e.g. screenshot.png issue string required Issue ID or identifier (e.g., LIN-123) size integer required Exact file size in bytes. Must be smaller than 2 GB. subtitle string optional Suggested attachment subtitle for the finalize step title string optional Suggested attachment title for the finalize step linearmcp_save_comment
#
Create or update a comment on a Linear issue, project, initiative, document, or project milestone. If id is provided, updates the existing comment; otherwise creates a new one. 8 params
Create or update a comment on a Linear issue, project, initiative, document, or project milestone. If id is provided, updates the existing comment; otherwise creates a new one.
body string required Content as Markdown. Use literal newlines and special characters. documentId string optional Document ID or slug (provide exactly one parent) id string optional Comment ID. If provided, updates the existing comment initiativeId string optional Initiative name or ID (provide exactly one parent) issueId string optional Issue ID or identifier (e.g., LIN-123) (provide exactly one parent) milestoneId string optional Milestone UUID (provide exactly one parent) parentId string optional Parent comment ID (for replies) projectId string optional Project name, ID, or slug (provide exactly one parent) linearmcp_save_document
#
Create or update a Linear document. If id is provided, updates the existing document; otherwise creates a new one. When creating, title is required and exactly one parent (project, issue, initiative, cycle, or team) must be specified. 10 params
Create or update a Linear document. If id is provided, updates the existing document; otherwise creates a new one. When creating, title is required and exactly one parent (project, issue, initiative, cycle, or team) must be specified.
color string optional Hex color for the document content string optional Document content as Markdown cycle string optional Cycle name, number, or ID to attach the document to icon string optional Icon name or emoji code for the document id string optional Document ID or slug to update. Omit to create. initiative string optional Initiative name or ID to attach the document to issue string optional Issue ID or identifier to attach the document to (e.g. LIN-123) project string optional Project name or ID to attach the document to team string optional Team name or ID to attach the document to title string optional Document title (required when creating) linearmcp_save_issue
#
Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required. 23 params
Create or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required.
assignee string optional User ID, name, email, or 'me'. Pass null to remove assignee. blockedBy array optional Issue IDs that are blocking this issue blocks array optional Issue IDs this issue blocks cycle string optional Cycle name, number, or ID. Pass null to remove from cycle. delegate string optional Agent name or ID. Pass null to remove delegate. description string optional Issue description as Markdown dueDate string optional Due date in ISO format duplicateOf string optional Issue ID this is a duplicate of. Pass null to remove. estimate number optional Issue estimate value id string optional Only for updating. Issue ID or identifier (e.g., LIN-123). Do NOT pass when creating. labels array optional Label names or IDs to apply to the issue links array optional Link attachments to add to the issue [{url, title}] milestone string optional Milestone name or ID parentId string optional Parent issue ID or identifier. Pass null to remove parent. priority number optional 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low project string optional Project name, ID, or slug relatedTo array optional Related issue IDs removeBlockedBy array optional Blocker issue IDs to remove removeBlocks array optional Issue IDs to stop blocking removeRelatedTo array optional Related issue IDs to remove state string optional State type, name, or ID team string optional Team name or ID (required when creating) title string optional Issue title (required when creating) linearmcp_save_milestone
#
Create or update a milestone in a Linear project. If id is provided, updates the existing milestone; otherwise creates a new one. When creating, name is required. 5 params
Create or update a milestone in a Linear project. If id is provided, updates the existing milestone; otherwise creates a new one. When creating, name is required.
project string required Project name, ID, or slug description string optional Milestone description id string optional Milestone name or ID. If provided, updates existing name string optional Milestone name (required when creating) targetDate string optional Target completion date (ISO format, null to remove) linearmcp_save_project
#
Create or update a Linear project. If id is provided, updates the existing project; otherwise creates a new one. When creating, name and at least one team are required. 20 params
Create or update a Linear project. If id is provided, updates the existing project; otherwise creates a new one. When creating, name and at least one team are required.
addInitiatives array optional Initiative names/IDs to add addTeams array optional Team name or ID to add color string optional Hex color description string optional Content as Markdown icon string optional Icon name or emoji code id string optional Project ID. If provided, updates existing labels array optional Label names or IDs lead string optional User ID, name, email, or 'me'. Null to remove name string optional Project name (required when creating) priority integer optional 0=None, 1=Urgent, 2=High, 3=Medium, 4=Low removeInitiatives array optional Initiative names/IDs to remove removeTeams array optional Team name or ID to remove setInitiatives array optional Replace all initiatives with these setTeams array optional Replace all teams with these startDate string optional Start date (ISO format) startDateResolution string optional Start date resolution state string optional Project state summary string optional Short summary (max 255 chars) targetDate string optional Target date (ISO format) targetDateResolution string optional Target date resolution linearmcp_save_status_update
#
Create or update a project/initiative status update. Omit id to create, provide id to update. 7 params
Create or update a project/initiative status update. Omit id to create, provide id to update.
type string required Type of status update — project or initiative body string optional Content of the status update as Markdown health string optional Health status of the project or initiative id string optional Status update ID — if provided, updates this existing update instead of creating a new one initiative string optional Initiative name or ID isDiffHidden boolean optional Deprecated. Hide the diff with the previous update project string optional Project name, ID, or slug linearmcp_search_documentation
#
Search Linear's documentation to learn about features and usage 2 params
Search Linear's documentation to learn about features and usage
query string required Search query to find relevant documentation page number optional Page number for paginated results