create_attachment
ChatGPTCreate a new attachment on a specific Linear issue by uploading base64-encoded content.
create_attachment_from_upload
ChatGPTLink an already-uploaded Linear assetUrl to an existing issue as an attachment. Use this only after: 1. prepare_attachment_upload returned an assetUrl and uploadRequest. 2. The client successfully PUT raw file bytes to uploadRequest.url. This tool does not upload file content. It only creates the Linear attachment row. If the direct upload failed or the signed URL expired, rerun prepare_attachment_upload and upload again.
create_initiative_label
ChatGPTCreate a new Linear initiative label
create_issue_label
ChatGPTCreate a new Linear issue label
delete_attachment
ChatGPTDelete an attachment by ID
delete_customer
ChatGPTDelete a customer in Linear
delete_customer_need
ChatGPTArchive a customer need in Linear
delete_status_update
ChatGPTDelete (archive) a project or initiative status update.
fetch
ChatGPTFetch a Linear issue, project, initiative, or document by entity-prefixed ID. Use to get full details for results returned by the search tool. Also works with any known identifier.
get_agent_skill
ChatGPTRetrieve a Linear Agent skill by ID, including its full markdown instructions.
get_attachment
ChatGPTRetrieve an attachment's content by ID.
get_diff
ChatGPTExact lookup for a Linear diff. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
get_diff_threads
ChatGPTExact lookup for diff threads. Use with review URLs, GitHub PR URLs, Linear full identifiers, UUIDs, or slugs.
get_document
ChatGPTRetrieve a Linear document by ID or slug
get_initiative
ChatGPTRetrieve detailed information about a specific initiative in Linear
get_issue
ChatGPTRetrieve detailed information about an issue by ID, including attachments and git branch name
get_issue_status
ChatGPTRetrieve detailed information about an issue status in Linear by name or ID
get_milestone
ChatGPTRetrieve details of a specific milestone by ID or name
get_profile
ChatGPTRetrieve the profile of the currently authenticated user
get_project
ChatGPTRetrieve details of a specific project in Linear
get_release
ChatGPTRetrieve details of a release by ID or slug.
get_release_note
ChatGPTRetrieve release notes by ID or slug, including markdown content.
get_status_updates
ChatGPTList or get project/initiative status updates. Pass id to get a specific update, or filter to list.
get_team
ChatGPTRetrieve details of a specific Linear team
get_user
ChatGPTRetrieve details of a specific Linear user
list_agent_skills
ChatGPTList Linear Agent skills available to the authenticated user.
list_customers
ChatGPTList customers in the user's Linear workspace
list_cycles
ChatGPTRetrieve cycles for a specific Linear team
list_diffs
ChatGPTList Linear diff pull requests visible to the authenticated user
list_documents
ChatGPTList documents in the user's Linear workspace
list_initiative_labels
ChatGPTList available initiative labels in the Linear workspace
list_initiatives
ChatGPTList initiatives in the user's Linear workspace
list_issue_labels
ChatGPTList available issue labels in a Linear workspace or team
list_issue_statuses
ChatGPTList available issue statuses in a Linear team
list_issues
ChatGPTList issues in the user's Linear workspace. For my issues, use "me" as the assignee. Use "null" for no assignee.
list_milestones
ChatGPTList all milestones in a Linear project
list_project_labels
ChatGPTList available project labels in the Linear workspace
list_projects
ChatGPTList projects in the user's Linear workspace
list_release_notes
ChatGPTList release notes in the workspace, optionally filtered by pipeline or covered release.
list_release_pipelines
ChatGPTList release pipelines in the workspace.
list_releases
ChatGPTList releases in the workspace, with optional filtering by pipeline, stage, version, and text.
list_teams
ChatGPTList teams in the user's Linear workspace
list_users
ChatGPTRetrieve users in the Linear workspace
prepare_attachment_upload
ChatGPTPrepare a direct Linear file upload for an existing issue. Workflow: 1. Call this tool with issue, filename, contentType, and size. 2. Upload raw bytes with PUT to uploadRequest.url outside MCP. 3. All headers in uploadRequest.headers are part of the signed request, so send them verbatim. 4. After PUT succeeds, call create_attachment_from_upload with assetUrl to link it to the issue. Do not base64-encode or transform the file. Use curl --data-binary @path or fetch(url, { method: 'PUT', body: blob }). Omitting or modifying any signed header, including casing, will return HTTP 403. The signed URL must be used within 60 seconds or it will expire. Upload sequencing: Prepare, PUT, and finalize one file before calling this tool for another file. Do not batch multiple prepare_attachment_upload calls before starting the PUTs because earlier signed URLs can expire while later files are prepared. Example: curl -X PUT --data-binary @file.png \ -H "content-type: image/png" \ -H "x-goog-content-length-range: N,N" \ -H "cache-control: public, max-age=31536000" \ -H 'Content-Disposition: attachment; filename="file.png"' \ "<uploadRequest.url>"
save_customer
ChatGPTCreate or update a Linear customer. If id is provided, updates the existing customer; otherwise creates a new one. When creating, name is required.
save_customer_need
ChatGPTCreate or update a customer need (request) in Linear. If id is provided, updates the existing need; otherwise creates a new one. When creating, body is required.
save_document
ChatGPTCreate or update a Linear document. If id is provided, updates the existing document; otherwise creates a new one. When creating, title is required and exactly one of project or issue must be specified. On update, passing project or issue reparents the document (at most one may be supplied).
save_initiative
ChatGPTCreate or update a Linear initiative. If id is provided, updates the existing initiative; otherwise creates a new one. When creating, name is required.
save_issue
ChatGPTCreate or update a Linear issue. If id is provided, updates the existing issue; otherwise creates a new one. When creating, title and team are required. Note: use assignee (not assigneeId) to set the assignee — it accepts a user ID, name, email, or "me".
save_milestone
ChatGPTCreate or update a milestone in a Linear project. If id is provided, updates the existing milestone; otherwise creates a new one. When creating, name is required.
save_project
ChatGPTCreate or update a Linear project. If id is provided, updates the existing project; otherwise creates a new one. When creating, name and at least one team (via addTeams or setTeams) are required.
save_release
ChatGPTCreate or update a release. If id is provided, updates the existing release; otherwise creates a new one. When creating, name and pipeline are required. Release status is modeled as the release pipeline stage.
save_release_note
ChatGPTCreate or update release notes. If id is provided, updates the existing release notes; otherwise creates a new one. When creating, pipeline and either releases or a release range are required.
save_status_update
ChatGPTCreate or update a project/initiative status update. Omit id to create, provide id to update.
search
ChatGPTFull-text search across Linear issues, projects, initiatives, and documents, ranked by relevance. Use this for keyword or natural-language queries (e.g. "memory leak in sync engine"). Supports "quoted phrases" for exact match, -term to exclude, and +term to require. For structured filtering by assignee, status, team, label, etc., use the list_issues or list_projects tools instead.
search_documentation
ChatGPTSearch Linear's documentation to learn about features and usage
create_issue
Claudecreate_project
Claudeget_document
Claudeget_issue
Claudeget_issue_status
Claudeget_project
Claudeget_team
Claudeget_user
Claudelist_cycles
Claudelist_documents
Claudelist_issue_labels
Claudelist_issue_statuses
Claudelist_issues
Claudelist_my_issues
Claudelist_projects
Claudelist_teams
Claudelist_users
Claudesearch_documentation
Claudeupdate_issue
Claudeupdate_project
Claude