Linear
Server Details
MCP server for Linear project management and issue tracking
- Status
- Unhealthy
- OAuth
- Works in Glama
- Last Tested
- Transport
- Streamable HTTP
- URL
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
1 tool update
- Changed
get_diff_threads1 field changed- changed
Input schema / properties / threadId / descriptionPrevious value: -"Optional top-level thread/comment ID to return"New value: +"Optional Linear comment UUID (a thread's `id`, not its `externalThreadId`) to return"
6 tool updates
- Added
delete_diff_comment - Added
merge_diff - Added
resolve_diff_thread - Added
save_diff_comment - Changed
save_issue5 fields changed- added
Input schema / properties / dueDate / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / dueDate / descriptionPrevious value: -"Due date (ISO format)"New value: +"Due date (ISO format). On update, pass null to remove the due date" - removed
Input schema / properties / dueDate / typeRemoved value: -"string" - added
Input schema / properties / slaBreachesAtAdded value: +{ + "anyOf": [ + { + "format": "date-time", + "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z|([+-](?:[01]\\d|2[0-3]):[0-5]\\d)))$", + "type": "string" + }, + { + "type": "null" + } + ], + "description": "ISO-8601 timestamp when the SLA will breach. On update, pass null to remove the SLA" +} - added
Input schema / properties / slaTypeAdded value: +{ + "description": "SLA day counting type: \"all\" or \"onlyBusinessDays\". Only use with slaBreachesAt", + "enum": [ + "all", + "onlyBusinessDays" + ], + "type": "string" +}
- Added
submit_diff_review
2 tool updates
- Changed
list_comments2 fields changed- added
Input schema / properties / statusUpdateIdAdded value: +{ + "description": "Status update UUID (provide exactly one parent). Resolve status updates via `get_status_updates` first.", + "type": "string" +} - added
Input schema / properties / statusUpdateTypeAdded value: +{ + "description": "Type of status update named by `statusUpdateId`, as returned by `get_status_updates`. Only valid together with `statusUpdateId`; omit to check both project and initiative status updates.", + "enum": [ + "project", + "initiative" + ], + "type": "string" +}
- Changed
save_comment2 fields changed- added
Input schema / properties / statusUpdateIdAdded value: +{ + "description": "Status update UUID (provide exactly one parent). Resolve status updates via `get_status_updates` first.", + "type": "string" +} - added
Input schema / properties / statusUpdateTypeAdded value: +{ + "description": "Type of status update named by `statusUpdateId`, as returned by `get_status_updates`. Only valid together with `statusUpdateId`; omit to check both project and initiative status updates.", + "enum": [ + "project", + "initiative" + ], + "type": "string" +}
2 tool updates
- Changed
save_issue1 field changed- changed
Input schema / properties / labels / descriptionPrevious value: -"Label names or IDs"New value: +"Label names or IDs as a JSON array of strings (e.g. [\"Bug\", \"Urgent\"]). Replaces the full label set; existing labels not included are removed. Omit to leave labels unchanged"
- Changed
save_project1 field changed- changed
Input schema / properties / labels / descriptionPrevious value: -"Label names or IDs"New value: +"Label names or IDs as a JSON array of strings (e.g. [\"Bug\", \"Urgent\"]). Replaces the full label set; existing labels not included are removed. Omit to leave labels unchanged"
1 tool update
- Changed
create_attachment3 fields changed- added
Input schema / properties / sha256Added value: +{ + "description": "Expected SHA-256 hex digest of the decoded file bytes.", + "pattern": "^[a-fA-F0-9]{64}$", + "type": "string" +} - added
Input schema / properties / sizeAdded value: +{ + "description": "Optional expected decoded file size in bytes. Rejects the upload if it does not match.", + "exclusiveMinimum": 0, + "maximum": 9007199254740991, + "type": "integer" +} - changed
Input schema / requiredPrevious value: -[ - "issue", - "base64Content", - "filename", - "contentType" -]New value: +[ + "issue", + "base64Content", + "filename", + "contentType", + "sha256" +]
1 tool update
- Changed
save_issue3 fields changed- added
Input schema / properties / project / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / project / descriptionPrevious value: -"Project name, ID, or slug"New value: +"Project name, ID, or slug. Null to remove" - removed
Input schema / properties / project / typeRemoved value: -"string"
1 tool update
- Changed
save_issue2 fields changed- removed
Input schema / properties / releasesRemoved value: -{ - "description": "Release IDs or slugs to set on the issue. Cannot be combined with addReleases/removeReleases", - "items": { - "type": "string" - }, - "type": "array" -} - added
Input schema / properties / setReleasesAdded value: +{ + "description": "Replace all releases on the issue with these. Cannot be combined with addReleases/removeReleases", + "items": { + "type": "string" + }, + "type": "array" +}
2 tool updates
- Added
get_agent_skill - Added
list_agent_skills
9 tool updates
- Added
get_release - Added
get_release_note - Changed
list_issues1 field changed- added
Input schema / properties / releaseAdded value: +{ + "description": "Release ID or slug", + "type": "string" +}
- Added
list_release_notes - Added
list_release_pipelines - Added
list_releases - Changed
save_issue3 fields changed- added
Input schema / properties / addReleasesAdded value: +{ + "description": "Release IDs or slugs to add. Append-only; existing releases are never removed", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / releasesAdded value: +{ + "description": "Release IDs or slugs to set on the issue. Cannot be combined with addReleases/removeReleases", + "items": { + "type": "string" + }, + "type": "array" +} - added
Input schema / properties / removeReleasesAdded value: +{ + "description": "Release IDs or slugs to remove. Only valid when updating an existing issue", + "items": { + "type": "string" + }, + "type": "array" +}
- Added
save_release - Added
save_release_note
1 tool update
- Changed
save_status_update1 field changed- changed
Input schema / properties / isDiffHidden / descriptionPrevious value: -"Deprecated. Hide diff with previous update"New value: +"Deprecated. Hide diff with previous update (create only)"
1 tool update
- Changed
save_issue3 fields changed- added
Input schema / properties / estimate / anyOfAdded value: +[ + { + "type": "number" + }, + { + "type": "null" + } +] - changed
Input schema / properties / estimate / descriptionPrevious value: -"Issue estimate value"New value: +"Issue estimate value. On create, pass null or omit for no estimate. On update, pass null to clear the estimate; omitting leaves it unchanged. 0 is a real estimate only on teams that allow zero estimates." - removed
Input schema / properties / estimate / typeRemoved value: -"number"
3 tool updates
- Added
delete_status_update - Added
get_status_updates - Added
save_status_update
2 tool updates
- Changed
list_documents1 field changed- added
Input schema / properties / teamIdAdded value: +{ + "description": "Filter by team ID", + "type": "string" +}
- Changed
save_document1 field changed- changed
Input schema / properties / team / descriptionPrevious value: -"Team name or ID. Only used to resolve `cycle`."New value: +"Team name or ID. Attaches the document to the team, unless `cycle` is also passed, in which case it disambiguates the cycle."
2 tool updates
- Changed
save_document1 field changed- changed
Input schema / properties / icon / descriptionPrevious value: -"Icon emoji"New value: +"Icon name or emoji code (e.g. \"Rocket\" or \":eagle:\"), not a raw Unicode emoji"
- Changed
save_project1 field changed- changed
Input schema / properties / icon / descriptionPrevious value: -"Icon emoji (e.g., :eagle:)"New value: +"Icon name or emoji code (e.g. \"Rocket\" or \":eagle:\"), not a raw Unicode emoji"
1 tool update
- Changed
save_issue3 fields changed- added
Input schema / properties / cycle / anyOfAdded value: +[ + { + "type": "string" + }, + { + "type": "null" + } +] - changed
Input schema / properties / cycle / descriptionPrevious value: -"Cycle name, number, or ID"New value: +"Cycle name, number, or ID. Null to remove" - removed
Input schema / properties / cycle / typeRemoved value: -"string"
2 tool updates
- Changed
list_comments6 fields changed- added
Input schema / properties / documentIdAdded value: +{ + "description": "Document ID or slug (provide exactly one parent)", + "type": "string" +} - added
Input schema / properties / initiativeIdAdded value: +{ + "description": "Initiative name or ID (provide exactly one parent)", + "type": "string" +} - changed
Input schema / properties / issueId / descriptionPrevious value: -"Issue ID or identifier (e.g., LIN-123)"New value: +"Issue ID or identifier (e.g., LIN-123) (provide exactly one parent)" - added
Input schema / properties / milestoneIdAdded value: +{ + "description": "Milestone UUID (provide exactly one parent). Resolve milestone names via `list_milestones` first.", + "type": "string" +} - added
Input schema / properties / projectIdAdded value: +{ + "description": "Project name, ID, or slug (provide exactly one parent)", + "type": "string" +} - removed
Input schema / requiredRemoved value: -[ - "issueId" -]
- Changed
save_comment5 fields changed- added
Input schema / properties / documentIdAdded value: +{ + "description": "Document ID or slug (provide exactly one parent)", + "type": "string" +} - added
Input schema / properties / initiativeIdAdded value: +{ + "description": "Initiative name or ID (provide exactly one parent)", + "type": "string" +} - changed
Input schema / properties / issueId / descriptionPrevious value: -"Issue ID or identifier (e.g., LIN-123) (required when creating)"New value: +"Issue ID or identifier (e.g., LIN-123) (provide exactly one parent)" - added
Input schema / properties / milestoneIdAdded value: +{ + "description": "Milestone UUID (provide exactly one parent). Resolve milestone names via `list_milestones` first.", + "type": "string" +} - added
Input schema / properties / projectIdAdded value: +{ + "description": "Project name, ID, or slug (provide exactly one parent)", + "type": "string" +}
3 tool updates
- Changed
create_attachment1 field changed- changed
Input schema / properties / base64Content / descriptionPrevious value: -"Base64-encoded file content to upload"New value: +"Deprecated base64-encoded file content to upload"
- Added
create_attachment_from_upload - Added
prepare_attachment_upload
Frequently Asked Questions
Claiming proves that you control a remote MCP connector. It does not move, proxy, or interrupt the server.
Open the connector listing, choose Claim ownership, and sign in to Glama.
Complete one verification method:
GitHub identity — fastest for official registry listings. For a namespace such as
io.github.alice/server, link the matching GitHub user, then choose Claim with GitHub. An organization namespace such asio.github.acme/serveralso needs that organization to have installed the Glama AI GitHub App and approved its permissions, because GitHub discloses organization membership only to apps it has installed. Use HTTP or DNS when it has not.HTTP challenge — works when you can deploy a public file. Generate a token, publish the exact JSON Glama shows at
/.well-known/glama.jsonon the same origin as the connector, then choose Check HTTP challenge.DNS challenge — works when you control DNS but cannot change the server. Generate a token, create the exact TXT record Glama shows, wait for it to propagate, then choose Check DNS challenge.
After verification, Glama sends a confirmation email and gives you access to listing details, thumbnails, health checks, and analytics. Keep the HTTP file or DNS record in place: Glama periodically checks it and ownership remains verified while the token is discoverable.
The HTTP ownership file has this structure:
{
"$schema": "https://glama.ai/mcp/schemas/connector.json",
"claim": "glama_claim_..."
}Claim tokens are opaque, stable, and bound to the signed-in Glama account. They contain no email address or other personal information. If Glama can no longer discover a verified HTTP or DNS token, it starts a seven-day grace period before removing claim-based access. Restore the same token during that period to keep ownership verified. Never publish an email address, Glama session token, GitHub token, or connector credential as ownership proof.
If verification fails, confirm that you copied the current token exactly. The HTTP file must be public, return valid JSON with a successful HTTP response, and stay on the connector's origin. DNS changes may need more time to propagate. A claim cannot transfer to a different origin or hostname: if the connector target changes, Glama starts the grace period and the new target must be claimed separately after the previous claim is released.
For a connector linked to the official MCP Registry, registry updates continue to replace its name, description, and URL by default. After claiming, open Manage connector and enable Use Glama listing details as the source of truth if edits made on Glama should be preserved. Categories and thumbnails are always managed on Glama; registry linkage and technical connection settings continue to sync.
Control your server's listing on Glama, including description and metadata
Access analytics and receive server usage reports
Get monitoring and health status updates for your server
Feature your server to boost visibility and reach more users
To improve your MCP server's ranking:
Claim ownership of the server listing
Complete the server profile with an accurate description and thumbnail
Provide a test profile so Glama can connect to and evaluate the server
Keep tool definitions clear and complete to earn a high Tool Definition Quality Score (TDQS)
Route real usage through the Glama Gateway; more recorded successful server uses also improve the ranking
For users:
Full audit trail – every tool call is logged with inputs and outputs for compliance and debugging
Granular tool control – enable or disable individual tools per connector to limit what your AI agents can do
Centralized credential management – store and rotate API keys and OAuth tokens in one place
Change alerts – get notified when a connector changes its schema, adds or removes tools, or updates tool definitions, so nothing breaks silently
For server owners:
Proven adoption – public usage metrics on your listing show real-world traction and build trust with prospective users
Tool-level analytics – see which tools are being used most, helping you prioritize development and documentation
Direct user feedback – users can report issues and suggest improvements through the listing, giving you a channel you would not have otherwise
The connector status is unhealthy when Glama is unable to successfully connect to the server. This can happen for several reasons:
The server is experiencing an outage
The URL of the server is wrong
Credentials required to access the server are missing or invalid
If you are the owner of this MCP connector and would like to make modifications to the listing, including providing test credentials for accessing the server, please contact support@glama.ai.
Discussions
No comments yet. Be the first to start the discussion!
Related MCP Connectors
Linear MCP — wraps the Linear GraphQL API (OAuth)
An MCP server that provides access to Testiny projects, test cases and test runs
MCP server for Product Management
- SupabaseOAuthcom.supabase
MCP server for interacting with the Supabase platform
Related MCP Servers
- AlicenseBqualityCmaintenanceAn MCP server that integrates with Linear's API, enabling users to manage issues, projects, teams, and comments through natural language. It supports creating, updating, deleting, and searching issues, as well as project and team management.252,486MIT
- AlicenseNot gradedqualityDmaintenanceMCP server for Linear that enables creating, searching, updating, and commenting on issues, as well as accessing issues, teams, and user data. Integrates with Claude Desktop and other MCP clients.MIT
- AlicenseBqualityFmaintenanceMCP server for accessing and managing Linear resources like issues, projects, and comments with full CRUD operations and search.21541MIT
- AlicenseNot gradedqualityDmaintenanceMCP server providing tools to manage Linear projects and issues, including creation, listing, viewing details, and deletion, as well as team and user info retrieval.288MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.
TDQS
Each tool targets a distinct entity or action. Even closely related tools like create_attachment and create_attachment_from_upload are clearly differentiated by their role in the upload workflow, and all descriptions provide unambiguous guidance.
All tools follow a consistent verb_noun pattern in snake_case. Verbs are uniformly used: create, delete, get, list, save, prepare, extract, search. The save prefix elegantly covers both create and update operations.
At 35 tools, the set is comprehensive but appropriate for a full-featured project management API covering issues, projects, milestones, documents, comments, attachments, cycles, diffs, users, and labels. Every tool serves a distinct purpose, though the count is slightly high.
The tool set lacks delete operations for several key entities including issues, projects, milestones, documents, and labels. While creation, reading, and updating are well-covered, the absence of deletion capabilities for these objects creates significant gaps for workflows that require cleanup.