Skip to content
Agentmart
Submit a tool

Linear MCP (multi-workspace, PAT auth)

Multi-workspace Linear MCP — PAT auth, 57 tools + 3 prompts, substrate enforcement, drop-in.

Connector by adelaidasofia · GitHub account verified by the MCP Registry

IndexedMITLocal (stdio)★ 2
Write a review

Install

Works with Claude Code, Codex, VS Code, Claude Desktop, Cursor, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install connector/adelaidasofia-linear-mcp

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Multi-workspace Linear MCP — PAT auth, 57 tools + 3 prompts, substrate enforcement, drop-in.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.

Tools
35 read · 17 write · 4 delete · 1 not yet classified
Secrets
1 (API keys, tokens or passwords)
Install scripts
Not scanned yet
Runs as
Python package

Tools by what they do 57

Read from the source code; the running server may list different tools.

Read 35 · Look things up without changing anything.

  • get_agent_session
  • get_attachment
  • get_document
  • get_initiative
  • get_issue
  • get_issue_status
  • get_milestone
  • get_notification
  • get_project
  • get_team
  • get_user
  • get_webhook
Show 23 more tools
  • healthcheck
  • list_agent_sessions
  • list_attachments
  • list_comments
  • list_cycles
  • list_documents
  • list_initiatives
  • list_issue_labels
  • list_issue_relations
  • list_issue_statuses
  • list_issues
  • list_milestones
  • list_notifications
  • list_projects
  • list_teams
  • list_users
  • list_webhooks
  • list_workspaces
  • notifications_unread_count
  • search_documents
  • search_issues
  • search_projects
  • semantic_search

Write 17 · Create, change, send or run things.

  • bulk_save_issues
  • create_agent_session_on_comment
  • create_agent_session_on_issue
  • create_issue_label
  • create_issue_relation
  • create_webhook
  • link_url_to_issue
  • mark_all_notifications_read
  • mark_notification_read
  • save_comment
  • save_document
  • save_initiative
Show 5 more tools
  • save_issue
  • save_milestone
  • save_project
  • save_status_update
  • update_webhook

Delete 4 · Delete, drop, revoke or wipe things.

  • archive_notification
  • delete_attachment
  • delete_issue_relation
  • delete_webhook

Not yet classified 1 · We could not tell from the name and description.

  • attachments_for_url

Secrets and settings it asks for

Secrets: values you paste in that let it act as you.

  • LINEAR_PAT

Network hosts it talks to 1

  • github.com · found in install command

Tools (57)

Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].

  • archive_notification

    Archive a notification (removes from inbox; reversible).

  • attachments_for_url

    Reverse lookup: every attachment record across the workspace pointing at this URL. Useful to find which issue references a given Slack thread / PR / external doc.

  • bulk_save_issues

    Apply the same update to multiple issues in one round-trip. `ids` is a list of issue UUIDs. Every other arg is an optional field to set on all of them (skip args you don't want to change). Linear's `issueBatchUpdate` mutation does the work server-side — way faster than N separate `save_issue` calls for bulk ops like "mark these 50 as Done" or "reassign these to me." `auth_phrase` (REQUIRED, v0.3) must be one of: "go", "yes do it", "confirmed", "execute", "go cancel", "go update". Without this explicit confirmation a single hallucinated arg could mass-modify pre-existing shared workspace data…

  • create_agent_session_on_comment

    Open an agent session attached to a comment (typically a @mention of the agent app user).

  • create_agent_session_on_issue

    Open an agent session attached to an issue. `session_type` is one of `comment` (the agent posts a comment as its output) or `commentThread` (the agent threads under existing comments). `external_url` lets the agent surface a link back to its own dashboard / run log.

  • create_issue_label

    Create a new issue label. `team_id` makes a team-scoped label. Omit for workspace-scoped. `color` is a 7-char hex (`#RRGGBB`). `parent_id` nests this label under another (Linear supports two-level label hierarchies).

  • create_issue_relation

    Create a relation between two issues. `type` must be one of: `blocks` (issue blocks related_issue), `duplicate` (issue duplicates related_issue), or `related` (no directionality). Linear automatically creates the inverse relation visible on the other issue.

  • create_webhook

    Create a webhook subscription. `url` is your HTTPS receiver. `resource_types` defaults to `["Issue", "Comment", "IssueLabel"]` if omitted — adjust as needed (full list at linear.app/developers/webhooks). `team_id` scopes to one team; `all_public_teams=True` subscribes to every public team in the org. `secret` is your HMAC signing secret — Linear adds it to the `Linear-Signature` header on every event.

  • delete_attachment

    Delete an attachment. Destructive — uses draft+confirm. Two-call flow identical to `delete_webhook`. The first call returns a draft_id + preview of the attachment that will be removed; the second call (with `confirm_draft_id`) commits.

  • delete_issue_relation

    Delete an issue relation by ID. Non-destructive (no cascade).

  • delete_webhook

    Delete a webhook. Destructive — uses draft+confirm. Two-call flow: 1. `delete_webhook(id=...)` returns a `draft_id` plus a preview of which webhook is about to go away. 2. `delete_webhook(id=..., confirm_draft_id=<draft_id>)` actually issues `webhookDelete` against Linear. Drafts expire after 1 hour (override with `LINEAR_MCP_DRAFT_TTL_SECONDS`).

  • get_agent_session

    Get an agent session by UUID.

  • get_attachment

    Get one attachment by UUID.

  • get_document

    Get a document by UUID.

  • get_initiative

    Get an initiative by UUID.

Show 42 more tools
  • get_issue

    Get a single issue. `id` accepts either the UUID or the human identifier (e.g. `ONDE-123`). When given an identifier, the tool resolves it through a one-shot search.

  • get_issue_status

    Return the current workflow state for one issue (id or identifier). Convenience tool: the existing get_issue already returns state, but this is the minimal-fields variant for status-driven automations.

  • get_milestone

    Get a project milestone by UUID.

  • get_notification

    Get one notification by UUID.

  • get_project

    Get a Linear project by UUID.

  • get_team

    Get a Linear team by its UUID. Includes workflow states inline.

  • get_user

    Get a Linear user by ID. Pass `me` to look up the PAT owner. For `me`, the server resolves it via the viewer query and substitutes the resolved id.

  • get_webhook

    Get a webhook by UUID.

  • healthcheck

    Verify PAT validity for each workspace + report draft store + audit log path. For each workspace, calls the `viewer` query. Returns user info + the organization the PAT is scoped to. A failure means the PAT has been revoked or rotated and needs re-generation at linear.app/settings/account/security.

  • link_url_to_issue

    Attach an arbitrary URL to an issue. Linear renders the link in the issue sidebar. Pass `title` and `icon_url` to customize the display; otherwise Linear fetches OpenGraph metadata from the URL.

  • list_agent_sessions

    List agent sessions. `issue_id` scopes to one issue.

  • list_attachments

    List attachments on one issue.

  • list_comments

    List comments. Scope by `issue_id` or `project_id`.

  • list_cycles

    List cycles, optionally scoped to one team. `team_id` is the team UUID. Omit to list cycles across every team.

  • list_documents

    List documents in the workspace.

  • list_initiatives

    List initiatives in the workspace. Initiatives are Linear's top-level org-wide goals that contain multiple projects.

  • list_issue_labels

    List issue labels. `team_id` scopes to one team; omit for org-wide.

  • list_issue_relations

    List issue relations. `issue_id` filters to relations involving one issue.

  • list_issue_statuses

    List workflow states (issue statuses) per team. `team_id` scopes results to one team. Omit to list every workflow state across the workspace.

  • list_issues

    List issues with common filters. `assignee_id` accepts a user UUID or the literal `me`. `state_type` accepts one of: backlog, unstarted, started, completed, canceled, triage. `query` does a full-text search across title + description. `filter` lets you pass a raw Linear IssueFilter for cases the convenience args don't cover. `order_by` is `updatedAt` (default) or `createdAt`.

  • list_milestones

    List project milestones. `project_id` scopes to one project.

  • list_notifications

    List notifications in the viewer's inbox. `unread_only=True` restricts to notifications with no `readAt`. Nodes carry `__typename` (IssueNotification, ProjectNotification, etc.) so an agent can branch on category.

  • list_projects

    List projects. `team_id` scopes to projects involving one team. `state` filters by project state (one of: backlog, planned, started, paused, completed, canceled). Omit for all.

  • list_teams

    List teams in a Linear workspace. `workspace` selects which configured PAT to use (defaults to primary). `first` is the page size (max 250); `after` is the cursor from a previous response's pageInfo.endCursor.

  • list_users

    List users in a Linear workspace. `include_disabled` flips the Linear `includeDisabled` filter so you can see members who have been removed from the org.

  • list_webhooks

    List webhooks configured for the workspace.

  • list_workspaces

    List configured Linear workspaces with PAT prefix + primary status. Returns a dict with `workspaces` (list of redacted profiles), `primary` (alias of the default workspace), and `errors` (config errors found at load time). Tokens never appear in the response.

  • mark_all_notifications_read

    Mark every notification in the inbox as read. `category` optionally scopes to one notification category (e.g. `triageResponsibility`, `assigned`).

  • mark_notification_read

    Mark a notification read (or unread by passing `read=False`).

  • notifications_unread_count

    Return the count of unread notifications in the inbox.

  • save_comment

    Create or update a comment. Pass `id` to edit an existing comment (only `body` is updateable). Creating requires `body` and either `issue_id` or `project_id`. `parent_id` threads the comment as a reply.

  • save_document

    Create or update a document. Pass `id` to update. Creating requires `title` and one of `project_id` or `initiative_id` (documents attach to a project or initiative in Linear's model).

  • save_initiative

    Create or update an initiative. Pass `id` to update; omit to create. Status is one of `Planned`, `Active`, `Completed` (string, not enum) per Linear's API.

  • save_issue

    Create or update an issue. Pass `id` to update. Creating requires `title` and `team_id`. `assignee_id` accepts a UUID or `me`. `priority` is 0-4 (0=none, 1=urgent, 2=high, 3=medium, 4=low).

  • save_milestone

    Create or update a project milestone. Pass `id` to update. Creating requires `name` and `project_id`.

  • save_project

    Create or update a Linear project. Pass `id` to update an existing project; omit `id` (and pass `team_ids`) to create a new one. Linear requires at least one team when creating. Dates are ISO-8601 strings (`YYYY-MM-DD`). `priority` is 0-4 (0=none, 1=urgent, 2=high, 3=medium, 4=low).

  • save_status_update

    Post a status update against a project. `health` is one of `onTrack`, `atRisk`, `offTrack` (Linear enums). `body` is markdown.

  • search_documents

    Full-text search across workspace documents (NOT Linear's dev docs).

  • search_issues

    Full-text search across issues in the workspace. Backed by Linear's `searchIssues` GraphQL field (verified via introspection). Returns nodes with the standard issue shape plus a `totalCount` so the agent knows how many more hits exist beyond the current page.

  • search_projects

    Full-text search across projects in the workspace.

  • semantic_search

    Semantic search across the entire workspace. Returns heterogeneous nodes (issues, projects, documents, comments, initiatives). Each node carries `__typename` so the agent can branch on entity kind. Use this when the search target is conceptual ("payment retry logic") rather than exact-string ("PAY-123").

  • update_webhook

    Update an existing webhook by UUID.

Signals

Stars
2
Forks
0
Open issues
0
Weekly downloads
33
Last commit
Sep 19, 2026 (1 month ago)
Last release
May 25, 2026 (5 months ago)
Last package publish
May 24, 2026 (5 months ago)

From GitHub (fetched Oct 24, 2026) and the package registry.

Details

Registry name
io.github.adelaidasofia/linear-mcp
Version
0.3.2
Auth
API key
License
MIT
First seen
Oct 24, 2026
Last checked
Oct 25, 2026

More from adelaidasofia

Cite this page

Linear MCP (multi-workspace, PAT auth). Agent Mart. https://agentmart.dev/connectors/adelaidasofia-linear-mcp (last updated 2026-10-25)