dsh-linear-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
| LINEAR_API_KEY | Yes | Linear personal API key (lin_api_...). Required for authentication. Can also be passed via the --api-key CLI flag. | |
| LINEAR_API_URL | No | Optional GraphQL endpoint override. Defaults to https://api.linear.app/graphql | |
| LINEAR_MCP_TIMEOUT_MS | No | Optional per-request timeout in milliseconds. Defaults to 20000. | 20000 |
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| linear_get_viewerA | Return the Linear user that owns the configured API key. |
| linear_list_teamsA | List teams visible to the API key. |
| linear_list_usersA | List users, optionally filtered by name, display name or email. |
| linear_list_projectsA | List projects, optionally scoped to one team. |
| linear_list_cyclesA | List cycles, optionally scoped to one team. |
| linear_list_labelsB | List issue labels, optionally scoped to one team. |
| linear_list_workflow_statesB | List workflow states (backlog, unstarted, started, completed, canceled) for a team. |
| linear_search_issuesA | Search issues by title, description or identifier (e.g. ENG-4651). Supports optional team, assignee, state, project and label filters. |
| linear_list_issuesA | List issues with optional team / project / cycle / assignee / state / label filters. Pass assigneeId='me' for the current user; pass state for an exact state name such as 'In Review', or stateType for backlog|unstarted|started|completed|canceled. |
| linear_list_my_issuesB | List issues assigned to the API key's own Linear user. |
| linear_get_issueA | Return one issue by UUID or identifier (e.g. ENG-4651), including state, assignee, parent, children, labels and relations. |
| linear_create_issueB | Create an issue. Supports parentId to create a sub-issue, plus assignee, state, project, cycle, labels, priority, due date and estimate. |
| linear_update_issueB | Update any mutable issue field, including parentId (move/reparent), state, assignee, labels, priority, project, cycle, due date and estimate. |
| linear_archive_issueA | Archive an issue (reversible in Linear). |
| linear_delete_issueB | Permanently delete an issue. |
| linear_create_issue_relationC | Create a relation such as blocks, related, duplicate or subtask between two issues. |
| linear_list_issue_relationsC | List relations for one issue. |
| linear_delete_issue_relationA | Delete a relation by its relation UUID. |
| linear_add_commentC | Add a comment to an issue, optionally as a threaded reply. |
| linear_list_commentsC | List comments on an issue. |
| linear_update_commentC | Update a comment body by its UUID. |
| linear_delete_commentA | Delete a comment by its UUID. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 22 tools
Each tool targets a distinct resource and action. The three issue listing tools (search, list, list_my) have clear differences: full-text search, filterable list, and self-assigned list. All other tools (comments, relations, entities) are mutually exclusive.
All tools follow the uniform pattern 'linear_<verb>_<noun>' with snake_case. Verbs are consistent (get, list, create, update, delete, add, search, archive) and nouns are clear. No mixed conventions or vague verbs.
At 22 tools, the count is slightly above the typical 3-15 range but not excessive. The size is justified by the breadth of Linear entities (issues, comments, relations, teams, users, projects, cycles, labels, workflow states) and the comprehensive issue lifecycle coverage. It feels a bit heavy but each tool serves a distinct purpose.
Issue management is fully covered with create, read (get/list/search), update, archive, and delete. Comments and relations have complete CRUD-like coverage. However, non-issue entities (teams, users, projects, cycles, labels, workflow states) only have list operations, lacking get/create/update/delete. This is a minor gap given the server's apparent issue-centric focus.