Secure Linear access for AI agents

Issues, projects, documents, cycles, and releases via Linear's official MCP server.

Through Linear, agents can search and read issues, projects, documents, and cycles, and create or update them when you allow it – every call runs through your policies and is logged for audit.

Server URL: https://mcp.linear.app/mcp

Credential modes

Linear supports per-org dynamic registration only, so there is no app to create on Linear's side and no client ID or secret to enter. See Credential modes for how it compares with Use SecureAuth's app and Bring your own app.

Before you begin

  • A Linear account that can reach the teams and issues your agents need.
  • Administrator access to your Agent Authority workspace, to add the resource.

Setup

  1. In the Agent Authority console, go to Resources and click Add Resource.
  2. Select Linear from the catalog.
  3. On Choose how to install Linear, click Per-org dynamic registration. Selecting it adds the resource right away with its tools pre-configured.

Dynamic client registration

When you add the resource, the gateway registers its own OAuth client with Linear – the credential that lets it sign users in. Linear's own workspace and team permissions still apply, so an agent can only reach what the person who signed in could already reach.

Verify the connection

The gateway syncs the Linear tools automatically. To check the connection end to end, ask your agent to run a request:

List my Linear teams

If your teams come back, the connection is working.

How users connect

Access is per user. Each additional user connects their own Linear account the first time their agent calls a Linear tool: the gateway returns a sign-in link, the user authorizes once, and the tools work from then on. Go to Connections to manage linked accounts.

Each user grants the requested scopes when they authorize.

Available tools

ToolAccessDescription
list_teamsreadList teams in the workspace
list_issuesreadList issues
list_projectsreadList projects
list_usersreadList workspace users
list_commentsreadList comments on an issue/project/etc.
list_cyclesreadList cycles for a team
list_documentsreadList documents
list_issue_labelsreadList issue labels
list_issue_statusesreadList issue statuses
list_milestonesreadList project milestones
list_project_labelsreadList project labels
list_diffsreadList diff pull requests
get_issuereadGet an issue by ID
get_issue_statusreadGet an issue status
get_teamreadGet a team
get_userreadGet a user
get_projectreadGet a project
get_milestonereadGet a milestone
get_documentreadGet a document
get_status_updatesreadList/get status updates
get_diffreadLook up a diff
get_diff_threadsreadLook up diff threads
get_attachmentreadGet an attachment
search_documentationreadSearch Linear docs
extract_imagesreadExtract images from markdown
save_issuewriteCreate/update an issue
save_commentwriteCreate/update a comment
save_documentwriteCreate/update a document
save_projectwriteCreate/update a project
save_milestonewriteCreate/update a milestone
save_status_updatewriteCreate/update a status update
create_issue_labelwriteCreate an issue label
prepare_attachment_uploadwritePrepare a direct file upload
create_attachment_from_uploadwriteLink an uploaded asset as an attachment
create_attachmentwriteDeprecated small-file attachment upload
delete_attachmentdeleteDelete an attachment
delete_commentdeleteDelete a comment
delete_status_updatedeleteDelete a status update
list_releasesreadList releases (filter by pipeline/stage/version/text)
get_releasereadGet a release by ID/slug
list_release_notesreadList release notes
get_release_notereadGet release notes (markdown) by ID/slug
list_release_pipelinesreadList release pipelines
save_releasewriteCreate/update a release
save_release_notewriteCreate/update release notes

Required scopes

The gateway requests these scopes automatically when it registers the client, so there is nothing for you to configure. Linear decides what to grant, and any scopes it returns during registration replace the list below.

ScopeWhy
readList/get teams, issues, projects, documents, cycles, comments, releases
writeCreate/update/delete issues, comments, docs, projects, milestones, labels, attachments, releases
offline_accessRefresh tokens so connections do not require frequent re-auth

Policy examples

Every org is created with a seeded Allow all rule at the bottom of the list, so any call your own rules don't match stays allowed. Express restrictions as deny rules above it – new rules are added at the top, so a fresh deny outranks it automatically. See Rule order.

  • Read-only access: deny save_*, create_*, delete_*, and prepare_attachment_upload on the Linear MCP. Those patterns cover every write and delete in the table above, leaving the list_*, get_*, and search_documentation reads.
  • Block deletes while allowing read and write: deny delete_*
  • No file uploads: deny prepare_attachment_upload, create_attachment_from_upload, and create_attachment

Next steps

  • Create a policy – start from the read-only pattern in Policy examples above.
  • Policies – how first-match-wins rule order and the seeded Allow all rule interact.

On this page