Authentication
The plugin uses OAuth 2.0 with Linear’sread and write scopes. To connect a user’s Linear account, redirect them to the login endpoint:
YOUR_USER_ID is the identifier your application uses to track users. It is stored alongside the encrypted token so Toolshed can retrieve the right credentials at tool invocation time.Connecting a user
Initiate the OAuth flow
Send the user to the login URL. In a web app this is typically a redirect; in a CLI you can open it in the browser.
User authorizes in Linear
Linear presents the standard OAuth consent screen. The user approves the
read and write scopes for their workspace.Disconnecting
To revoke and remove a user’s Linear connection, send:Available tools
The Linear plugin exposes two tools.linear.issues.list is a read-only query and is safe to auto-approve by MCP clients. linear.issues.create is marked destructive and requires explicit user confirmation via the MCP elicitation flow before the issue is created.
linear.issues.list — List Issues
linear.issues.list — List Issues
Lists Linear issues visible to the authenticated user. You can scope results to a specific team or project, or omit both filters to retrieve issues across the workspace. Results are returned up to the specified limit.Parameters:
Returns:An object with an
Example invocation:
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
teamId | string | No | — | Filter to issues belonging to this team ID |
projectId | string | No | — | Filter to issues belonging to this project ID |
limit | integer | No | 25 | Maximum number of issues to return (must be positive) |
issues array. Each issue contains:| Field | Type | Description |
|---|---|---|
id | string | Linear internal UUID for the issue |
identifier | string | Human-readable identifier (e.g. ENG-123) |
title | string | Issue title |
state | string | Current workflow state name (e.g. "In Progress") |
url | string | URL to view the issue in Linear |
linear.issues.create — Create Issue
linear.issues.create — Create Issue
Creates a new issue in Linear. You must specify the team the issue belongs to and a title. Description, project assignment, and priority are optional.This tool is marked destructive — Toolshed will pause and ask the user to confirm before creating the issue. If the user declines or cancels the elicitation prompt, the operation is aborted and no issue is created.Parameters:
Returns:
Example invocation:
| Parameter | Type | Required | Description |
|---|---|---|---|
teamId | string | Yes | ID of the team the issue should be created in |
title | string | Yes | Issue title |
description | string | No | Issue description (Markdown supported) |
projectId | string | No | ID of the project to assign the issue to |
priority | integer (0–4) | No | Priority level: 0 = No priority, 1 = Urgent, 2 = High, 3 = Medium, 4 = Low |
| Field | Type | Description |
|---|---|---|
id | string | Linear internal UUID of the created issue |
identifier | string | Human-readable identifier (e.g. ENG-124) |
url | string | URL to view the new issue in Linear |