Search, read and create Linear issues, projects, teams and cycles.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
⚠️ WRITE / MUTATING: posts a comment on an issue. Requires the issueId (UUID) and a markdown body. GraphQL: mutation commentCreate.
Comment text in markdown.
UUID of the issue to comment on (the `id` field, not the ENG-123 identifier).
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
⚠️ WRITE / MUTATING: posts a comment on an issue. Requires the issueId (UUID) and a markdown body. GraphQL: mutation commentCreate.
| Argument | Type | Description |
|---|---|---|
| body* | string | Comment text in markdown. |
| issueId* | string | UUID of the issue to comment on (the `id` field, not the ENG-123 identifier). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"issueId",
"body"
],
"properties": {
"body": {
"type": "string",
"minLength": 1,
"description": "Comment text in markdown."
},
"issueId": {
"type": "string",
"description": "UUID of the issue to comment on (the `id` field, not the ENG-123 identifier)."
}
}
}⚠️ WRITE / MUTATING: creates a new issue in Linear. Requires a teamId (from linear_list_teams) and a title. Optional description (markdown), priority (0=none,1=urgent,2=high,3=medium,4=low), and assigneeId. GraphQL: mutation issueCreate.
| Argument | Type | Description |
|---|---|---|
| title* | string | Issue title. |
| teamId* | string | UUID of the team to create the issue in (from linear_list_teams). |
| priority | integer | 0 none, 1 urgent, 2 high, 3 medium, 4 low. |
| assigneeId | string | UUID of the user to assign the issue to. |
| description | string | Issue body in markdown. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"teamId",
"title"
],
"properties": {
"title": {
"type": "string",
"minLength": 1,
"description": "Issue title."
},
"teamId": {
"type": "string",
"description": "UUID of the team to create the issue in (from linear_list_teams)."
},
"priority": {
"type": "integer",
"maximum": 4,
"minimum": 0,
"description": "0 none, 1 urgent, 2 high, 3 medium, 4 low."
},
"assigneeId": {
"type": "string",
"description": "UUID of the user to assign the issue to."
},
"description": {
"type": "string",
"description": "Issue body in markdown."
}
}
}Fetch a single issue by its UUID or human identifier (e.g. "ENG-123"), including description, state, assignee and recent comments. Read-only. GraphQL: query issue(id).
| Argument | Type | Description |
|---|---|---|
| id* | string | Issue UUID or identifier like "ENG-123". |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"id"
],
"properties": {
"id": {
"type": "string",
"description": "Issue UUID or identifier like \"ENG-123\"."
}
}
}List cycles (sprints), optionally scoped to a team by key, with number, name and start/end dates. Read-only. GraphQL: query cycles(filter).
| Argument | Type | Description |
|---|---|---|
| first | integer | Max cycles to return. Default 25. |
| teamKey | string | Team key, e.g. "ENG", to scope cycles to one team. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first": {
"type": "integer",
"maximum": 100,
"description": "Max cycles to return. Default 25.",
"exclusiveMinimum": 0
},
"teamKey": {
"type": "string",
"description": "Team key, e.g. \"ENG\", to scope cycles to one team."
}
}
}List projects in the workspace (id, name, state, progress, target date). Read-only. GraphQL: query projects.
| Argument | Type | Description |
|---|---|---|
| first | integer | Max projects to return. Default 50. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first": {
"type": "integer",
"maximum": 250,
"description": "Max projects to return. Default 50.",
"exclusiveMinimum": 0
}
}
}List the teams in the workspace (id, key, name). Use a team's id for linear_create_issue or its key for linear_search_issues. Read-only. GraphQL: query teams.
| Argument | Type | Description |
|---|---|---|
| first | integer | Max teams to return. Default 50. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first": {
"type": "integer",
"maximum": 250,
"description": "Max teams to return. Default 50.",
"exclusiveMinimum": 0
}
}
}List issues assigned to the current user (the API key's owner / OAuth actor) via viewer.assignedIssues. Read-only. GraphQL: query viewer { assignedIssues }.
| Argument | Type | Description |
|---|---|---|
| first | integer | Max issues to return. Default 25. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first": {
"type": "integer",
"maximum": 100,
"description": "Max issues to return. Default 25.",
"exclusiveMinimum": 0
}
}
}Find issues, optionally filtered by a text query (matches title), team key, workflow-state name, or assignee email. Read-only. GraphQL: query issues(filter, first).
| Argument | Type | Description |
|---|---|---|
| first | integer | Max issues to return. Default 25. |
| query | string | Free text to match against issue titles (containsIgnoreCase). |
| state | string | Workflow-state name, e.g. "In Progress", "Todo", "Done". |
| teamKey | string | Team key, e.g. "ENG". Filters to that team. |
| assigneeEmail | string | Filter to issues assigned to this user email. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"first": {
"type": "integer",
"maximum": 100,
"description": "Max issues to return. Default 25.",
"exclusiveMinimum": 0
},
"query": {
"type": "string",
"description": "Free text to match against issue titles (containsIgnoreCase)."
},
"state": {
"type": "string",
"description": "Workflow-state name, e.g. \"In Progress\", \"Todo\", \"Done\"."
},
"teamKey": {
"type": "string",
"description": "Team key, e.g. \"ENG\". Filters to that team."
},
"assigneeEmail": {
"type": "string",
"description": "Filter to issues assigned to this user email."
}
}
}