{"passport":{"unfragile":{"@version":"1.0","version":"2026-05","artifact":{"id":"linear-mcp-server","slug":"linear-mcp-server","name":"Linear MCP Server","type":"mcp","url":"https://github.com/jerhadf/linear-mcp-server","page_url":"https://unfragile.ai/linear-mcp-server","categories":["mcp-servers"],"tags":["linear","project-management","community"],"pricing":{"model":"free","free":true,"starting_price":null},"status":"active","verified":false},"capabilities":[{"id":"linear-mcp-server__cap_0","uri":"capability://tool.use.integration.mcp.protocol.compliant.issue.creation.with.team.scoped.context","name":"mcp protocol-compliant issue creation with team-scoped context","description":"Creates new Linear issues through MCP tool invocation by translating LLM natural language requests into Linear API mutations. The server validates required parameters (title, teamId) and optional fields (description, priority, status), then queues the request through a rate-limited client that enforces Linear's 1400 requests/hour limit. Returns structured issue metadata including ID, URL, and status for LLM context.","intents":["I want Claude to create a Linear issue directly from conversation without leaving the chat","I need to programmatically create issues in a specific team from an AI agent","I want to batch-create issues through an LLM with natural language descriptions"],"best_for":["AI assistant users (Claude Desktop) wanting hands-free issue creation","Teams building LLM agents that manage Linear workflows","Developers integrating Linear into MCP-compatible AI applications"],"limitations":["Requires explicit teamId parameter — no team auto-detection from context","Single issue creation per tool call — no batch creation in one invocation","Rate limiter queues requests, adding latency during high-volume creation (1400 req/hr cap)","No validation of custom field values — relies on Linear API to reject invalid data"],"requires":["Linear API key with write permissions","Valid teamId from Linear workspace","MCP client compatible with stdio transport (Claude Desktop, custom MCP hosts)","Node.js 16+ runtime"],"input_types":["string (title, description)","string (teamId, priority enum, status enum)"],"output_types":["JSON object with issue ID, URL, status, createdAt timestamp"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_1","uri":"capability://search.retrieval.multi.filter.issue.search.with.query.expansion.and.team.scoping","name":"multi-filter issue search with query expansion and team scoping","description":"Searches Linear issues using a query string combined with optional filters (teamId, status, assigneeId, labels, priority) by translating them into Linear GraphQL queries. The server constructs parameterized queries that filter across multiple dimensions simultaneously, returning paginated results with issue metadata. Supports both full-text search on title/description and structured filtering on issue properties.","intents":["I want to ask Claude to find all open bugs assigned to me in the backend team","I need to search for issues matching specific criteria from an AI agent without manual filtering","I want to retrieve issues by label, priority, or status for reporting or triage"],"best_for":["Teams using Claude to query Linear without opening the app","LLM agents building issue triage or reporting workflows","Developers building AI-powered Linear dashboards or summaries"],"limitations":["Query string is basic substring matching — no advanced syntax (regex, boolean operators)","Filters are AND-ed together — no OR logic between filter dimensions","Pagination requires explicit limit parameter; no automatic result streaming","Search scope limited to issues visible to authenticated user — no cross-workspace search"],"requires":["Linear API key with read permissions","Valid teamId if filtering by team (optional but recommended)","Valid assigneeId or userId for user-scoped searches","Valid label names and status values from Linear workspace"],"input_types":["string (query text)","string (teamId, status, assigneeId, labels, priority)"],"output_types":["JSON array of issue objects with ID, title, status, assignee, labels, priority, URL"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_10","uri":"capability://tool.use.integration.mcp.protocol.translation.with.stdio.transport.and.tool.schema.exposure","name":"mcp protocol translation with stdio transport and tool schema exposure","description":"Implements the Model Context Protocol (MCP) server specification by handling MCP requests (list resources, read resource, list tools, call tool) from LLM clients via stdio transport. The server translates MCP tool invocations into LinearMCPClient method calls and formats responses back to the protocol format. Exposes tool schemas that describe available operations and their parameters to the LLM client.","intents":["I want to connect Claude Desktop to Linear through the MCP protocol","I need to expose Linear operations as MCP tools that LLMs can discover and invoke","I want to build a custom MCP host that integrates Linear with other MCP servers"],"best_for":["Claude Desktop users wanting native Linear integration","Developers building MCP-compatible LLM applications","Teams deploying MCP servers in multi-server environments"],"limitations":["Stdio transport only — no HTTP or WebSocket support, requires local process communication","Single server instance per MCP host — no load balancing or horizontal scaling","Tool schemas are static — no dynamic schema generation based on workspace configuration","Error handling is protocol-level — API errors are serialized as MCP error responses, may lose detail"],"requires":["MCP client compatible with stdio transport (Claude Desktop, custom MCP hosts)","Node.js 16+ runtime","@modelcontextprotocol/sdk library"],"input_types":["MCP protocol messages (JSON-RPC format)"],"output_types":["MCP protocol responses (JSON-RPC format with tool results or errors)"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_11","uri":"capability://tool.use.integration.structured.error.handling.and.response.formatting.for.llm.consumption","name":"structured error handling and response formatting for llm consumption","description":"Handles errors from Linear API calls and formats them as MCP-compliant error responses that LLMs can interpret. The server catches API errors (authentication failures, invalid parameters, rate limit errors) and serializes them with descriptive messages and error codes. Ensures that LLM clients receive actionable error information rather than raw API responses.","intents":["I want Claude to understand when a Linear operation fails and why","I need clear error messages from the MCP server to debug integration issues","I want the LLM to handle errors gracefully and suggest corrective actions"],"best_for":["Teams deploying MCP server and needing clear error diagnostics","LLM agents that need to handle errors and retry operations","Developers debugging MCP integration issues"],"limitations":["Error messages are generic — may not include Linear-specific error details","No error recovery — errors are reported but not automatically retried","Limited error context — stack traces not included in MCP responses","No error logging — errors are serialized to client but not persisted"],"requires":["Understanding of MCP error response format","Linear API key with appropriate permissions to understand permission-related errors"],"input_types":["API error from Linear (authentication, validation, rate limit, etc.)"],"output_types":["MCP error response with error code and descriptive message"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_12","uri":"capability://memory.knowledge.resource.template.definition.for.issue.context","name":"resource template definition for issue context","description":"Defines MCP resource templates that allow clients to request issue data using URI patterns (e.g., 'linear://issue/{issueId}'), enabling LLMs to reference issues as persistent resources rather than one-off API calls. The server implements resource reading that fetches issue details when a client requests a resource URI, integrating issue context into the LLM's knowledge base.","intents":["I want to reference a Linear issue as a persistent resource in the conversation","I need the LLM to automatically fetch issue details when I mention an issue ID","I want to enable copy-paste of issue URIs into the chat for context"],"best_for":["Workflows where users paste issue links or IDs and expect automatic context loading","Agents that need to maintain issue references across conversation turns"],"limitations":["Resource templates are limited to issues — no support for other Linear objects (cycles, projects, etc.)","URI pattern matching is simple string-based — no complex query parameters","Resources are read-only — cannot modify issues through resource interface","No caching — each resource read triggers an API call"],"requires":["MCP client that supports resource reading (e.g., Claude Desktop)","Valid issue ID in the resource URI"],"input_types":["Resource URI (e.g., 'linear://issue/LIN-123')"],"output_types":["Issue object with full metadata"],"categories":["memory-knowledge","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_2","uri":"capability://tool.use.integration.issue.update.with.selective.field.mutation.and.conflict.avoidance","name":"issue update with selective field mutation and conflict avoidance","description":"Updates existing Linear issues by accepting an issue ID and a set of fields to modify (title, description, priority, status, assignee). The server constructs targeted GraphQL mutations that update only specified fields, avoiding unnecessary API calls or conflicts from partial updates. Returns the updated issue state to confirm changes to the LLM client.","intents":["I want to ask Claude to change an issue's status from 'In Progress' to 'Done'","I need to update multiple issue fields (priority, assignee, status) in one operation","I want to bulk-update issues through an LLM agent without manual Linear UI interaction"],"best_for":["Teams automating issue lifecycle management through AI agents","Users wanting to update Linear issues from Claude without context switching","Developers building LLM-driven workflow automation (e.g., auto-close resolved issues)"],"limitations":["No conflict detection — concurrent updates from multiple sources may overwrite each other","Custom fields not supported — only standard Linear fields (title, description, priority, status, assignee)","No transaction semantics — partial failures leave issue in inconsistent state","Requires exact issue ID — no fuzzy matching or search-then-update pattern"],"requires":["Linear API key with write permissions","Valid issue ID (e.g., 'LIN-123')","Valid values for fields being updated (status enum, priority enum, assigneeId)"],"input_types":["string (issueId)","string (title, description, priority, status, assigneeId)"],"output_types":["JSON object with updated issue state including all modified fields"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_3","uri":"capability://search.retrieval.user.scoped.issue.retrieval.with.archive.filtering.and.pagination","name":"user-scoped issue retrieval with archive filtering and pagination","description":"Retrieves all issues assigned to a specific user by querying the Linear API with userId and optional filters (includeArchived, limit). The server constructs a GraphQL query that fetches the user's issue list with metadata, supporting pagination through limit parameters. Returns issues in a format suitable for LLM processing (title, status, priority, team, URL).","intents":["I want to ask Claude to show me all my open issues in Linear","I need to get a summary of my assigned work from an AI agent for daily standup","I want to retrieve archived issues for a user to audit historical assignments"],"best_for":["Individual users getting AI-powered issue summaries","Teams building LLM-driven standup or status report generators","Developers creating AI agents that track user workload"],"limitations":["Returns only issues assigned to the user — no issues they created or commented on","Pagination is manual — requires explicit limit parameter, no automatic result streaming","No sorting options — results returned in Linear's default order","Archive filtering is binary (include/exclude) — no date-range filtering for archived issues"],"requires":["Linear API key with read permissions","Valid userId from Linear workspace","Authenticated user must have permission to view target user's issues"],"input_types":["string (userId)","boolean (includeArchived)","integer (limit, default 50)"],"output_types":["JSON array of issue objects with ID, title, status, priority, team, assignee, URL"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_4","uri":"capability://tool.use.integration.issue.comment.addition.with.optional.user.attribution.and.icon.customization","name":"issue comment addition with optional user attribution and icon customization","description":"Adds comments to Linear issues by accepting an issueId, comment body, and optional parameters for user attribution (createAsUser) and display customization (displayIconUrl). The server constructs a GraphQL mutation that appends the comment to the issue's activity stream. Supports both direct comments and comments attributed to specific users or bots with custom icons.","intents":["I want Claude to add a comment to a Linear issue with analysis or suggestions","I need to post bot-generated comments (e.g., from CI/CD) with custom branding","I want to attribute comments to specific team members for audit trails"],"best_for":["Teams using LLM agents to provide automated issue analysis or suggestions","CI/CD pipelines that need to post structured comments to Linear issues","Developers building AI-powered issue triage or code review bots"],"limitations":["No comment editing or deletion — comments are immutable after creation","No mention/tagging support — @mentions in comment body are plain text, not resolved","createAsUser requires special permissions — not all API keys can post as other users","displayIconUrl must be publicly accessible — no inline image upload support"],"requires":["Linear API key with write permissions","Valid issueId (e.g., 'LIN-123')","Valid userId if using createAsUser parameter (requires elevated permissions)","Public URL for displayIconUrl if customizing bot icon"],"input_types":["string (issueId, body)","string (createAsUser, displayIconUrl)"],"output_types":["JSON object with comment ID, body, createdAt, author information"],"categories":["tool-use-integration","automation-workflow"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_5","uri":"capability://search.retrieval.single.issue.detail.retrieval.with.full.metadata.expansion","name":"single issue detail retrieval with full metadata expansion","description":"Retrieves complete metadata for a specific Linear issue by issueId, including title, description, status, priority, assignee, labels, team, created/updated timestamps, and issue URL. The server constructs a GraphQL query that fetches all available issue fields in a single request. Returns structured data suitable for LLM context or display.","intents":["I want to ask Claude to get the full details of a specific Linear issue","I need to fetch issue context before making updates or adding comments","I want to retrieve issue metadata for reporting or analysis"],"best_for":["LLM agents that need full issue context before taking actions","Users querying specific issues from Claude without opening Linear","Developers building issue detail views or summaries"],"limitations":["Returns only the issue itself — no related issues, dependencies, or linked PRs","Comment history not included — use separate tool to fetch comments","Custom fields not supported — only standard Linear fields returned","No caching — each call makes a fresh API request"],"requires":["Linear API key with read permissions","Valid issueId (e.g., 'LIN-123')","Authenticated user must have permission to view the issue"],"input_types":["string (issueId)"],"output_types":["JSON object with complete issue metadata (title, description, status, priority, assignee, labels, team, timestamps, URL)"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_6","uri":"capability://search.retrieval.team.scoped.issue.listing.with.pagination.and.filtering","name":"team-scoped issue listing with pagination and filtering","description":"Retrieves all issues belonging to a specific Linear team by teamId, with optional pagination (limit) and filtering. The server constructs a GraphQL query that fetches the team's issue list with metadata. Returns issues in paginated batches suitable for LLM processing or display.","intents":["I want to ask Claude to show me all issues in the backend team","I need to get a summary of team workload for planning or reporting","I want to retrieve team issues for bulk operations or analysis"],"best_for":["Teams getting AI-powered team workload summaries","Developers building LLM agents that manage team workflows","Managers using AI to analyze team capacity or issue distribution"],"limitations":["Pagination is manual — requires explicit limit parameter, no automatic streaming","No sorting options — results returned in Linear's default order","Returns all issues regardless of status — no built-in filtering for open/closed","No aggregation — returns individual issues, not summary statistics"],"requires":["Linear API key with read permissions","Valid teamId from Linear workspace","Authenticated user must have permission to view team issues"],"input_types":["string (teamId)","integer (limit, default 50)"],"output_types":["JSON array of issue objects with ID, title, status, priority, assignee, team, URL"],"categories":["search-retrieval","tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_7","uri":"capability://tool.use.integration.authenticated.user.context.retrieval.for.permission.and.identity.validation","name":"authenticated user context retrieval for permission and identity validation","description":"Retrieves the current authenticated user's information (ID, name, email, team memberships) by querying the Linear API's viewer endpoint. The server uses the provided API key to determine who is making requests and returns user metadata for LLM context. Enables permission checks and user-scoped operations.","intents":["I want to verify which Linear user the API key belongs to","I need to get the current user's ID for scoped queries (e.g., 'my issues')","I want to validate that the API key has proper permissions before executing operations"],"best_for":["Developers setting up MCP server and validating API key configuration","LLM agents that need to know the authenticated user for context-aware operations","Teams auditing which user credentials are being used for API access"],"limitations":["Returns only the authenticated user — no ability to query other users' details","No permission details — returns user info but not specific API capabilities","No team role information — returns team memberships but not role/permissions per team","Single call per session — no caching, each invocation queries the API"],"requires":["Linear API key with read permissions","Valid API key (will fail if key is invalid or revoked)"],"input_types":[],"output_types":["JSON object with user ID, name, email, team memberships, display name"],"categories":["tool-use-integration","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_8","uri":"capability://tool.use.integration.organization.level.metadata.retrieval.for.workspace.context","name":"organization-level metadata retrieval for workspace context","description":"Retrieves organization-level information (name, teams, members, settings) from the Linear workspace by querying the organization endpoint. The server returns workspace metadata that provides context for team and user operations. Enables LLM agents to understand the workspace structure.","intents":["I want to get a list of all teams in the Linear workspace","I need to understand the organization structure for context-aware operations","I want to retrieve workspace metadata for reporting or analysis"],"best_for":["LLM agents that need workspace context to interpret team references","Developers setting up MCP server and validating workspace access","Teams building AI-powered workspace analysis or reporting tools"],"limitations":["Returns only organization metadata — no detailed team or member information","No permission details per team — returns structure but not role-based access","Single call per session — no caching, each invocation queries the API","No historical data — returns current state only, no audit trail"],"requires":["Linear API key with read permissions","Valid API key with access to organization endpoint"],"input_types":[],"output_types":["JSON object with organization name, teams list, members count, workspace settings"],"categories":["tool-use-integration","memory-knowledge"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__cap_9","uri":"capability://automation.workflow.request.rate.limiting.with.queue.based.throttling.and.quota.tracking","name":"request rate limiting with queue-based throttling and quota tracking","description":"Enforces Linear API rate limits (1400 requests per hour) by implementing a queue-based rate limiter that delays requests to stay within quota. The RateLimiter component tracks request statistics, enforces minimum delays between requests, and batches requests when possible. All API calls flow through this limiter to prevent quota exhaustion and API errors.","intents":["I want to ensure my MCP server doesn't exceed Linear's API rate limits","I need to handle high-volume LLM requests without hitting API throttling","I want to track API usage and understand quota consumption"],"best_for":["Teams deploying MCP server in production with multiple concurrent LLM clients","Developers building high-volume LLM agents that make many Linear API calls","Organizations that need to monitor API quota usage and prevent overages"],"limitations":["Queue-based throttling adds latency — requests may wait seconds to minutes during high load","No priority queue — all requests treated equally, no way to prioritize urgent operations","Quota tracking is in-memory — resets on server restart, no persistent quota accounting","No per-user rate limiting — shared quota across all MCP clients, no isolation"],"requires":["Linear API key (rate limits apply to the key, not the server)","Understanding of Linear's 1400 requests/hour quota"],"input_types":["API request (any Linear API call)"],"output_types":["Delayed API response (after rate limiter queues and throttles request)"],"categories":["automation-workflow","safety-moderation"],"confidence":0.5,"matches":0,"success_rate":0},{"id":"linear-mcp-server__headline","uri":"capability://tool.use.integration.mcp.server.for.linear.project.management","name":"mcp server for linear project management","description":"A community-driven MCP server that enables seamless integration between Large Language Models and Linear's project management tools, allowing users to create, update, and search issues directly through AI assistants.","intents":["best MCP server for Linear","MCP server for project management","how to integrate AI with Linear","best tools for managing Linear issues","MCP solutions for AI-driven project workflows"],"best_for":["developers using Linear","AI teams integrating with project management"],"limitations":[],"requires":[],"input_types":[],"output_types":[],"categories":["tool-use-integration"],"confidence":0.5,"matches":0,"success_rate":0}],"trust":{"score":74,"verified":false,"data_access_risk":"high","permissions":["Linear API key with write permissions","Valid teamId from Linear workspace","MCP client compatible with stdio transport (Claude Desktop, custom MCP hosts)","Node.js 16+ runtime","Linear API key with read permissions","Valid teamId if filtering by team (optional but recommended)","Valid assigneeId or userId for user-scoped searches","Valid label names and status values from Linear workspace","@modelcontextprotocol/sdk library","Understanding of MCP error response format"],"failure_modes":["Requires explicit teamId parameter — no team auto-detection from context","Single issue creation per tool call — no batch creation in one invocation","Rate limiter queues requests, adding latency during high-volume creation (1400 req/hr cap)","No validation of custom field values — relies on Linear API to reject invalid data","Query string is basic substring matching — no advanced syntax (regex, boolean operators)","Filters are AND-ed together — no OR logic between filter dimensions","Pagination requires explicit limit parameter; no automatic result streaming","Search scope limited to issues visible to authenticated user — no cross-workspace search","Stdio transport only — no HTTP or WebSocket support, requires local process communication","Single server instance per MCP host — no load balancing or horizontal scaling","builder identity is not verified yet","no observed match outcomes yet"],"rank_breakdown":{"adoption":0.7,"quality":0.9,"ecosystem":0.48999999999999994,"match_graph":0.25,"freshness":0.52,"weights":{"adoption":0.25,"quality":0.25,"ecosystem":0.15,"match_graph":0.23,"freshness":0.12}},"observed_outcomes":{"matches":0,"success_rate":0,"avg_confidence":0,"top_intents":[],"last_matched_at":null},"maintenance":{"status":"active","updated_at":"2026-06-17T09:51:04.692Z","last_scraped_at":null,"last_commit":null},"community":{"stars":null,"forks":null,"weekly_downloads":null,"model_downloads":null,"model_likes":null}},"distribution":{"claim_url":"https://unfragile.ai/submit?claim=linear-mcp-server","compare_url":"https://unfragile.ai/compare?artifact=linear-mcp-server"}},"signature":"Q13vjFiV5+R7gqi3PNaWhbr86EAjj2sK+GXBEcHmpUKqyOKULc2R0eHiNVWFndqknYWs1ZavTJCZ/kqy3HZbBw==","signedAt":"2026-06-20T17:25:36.855Z","signedBy":"unfragile.ai","version":1},"_links":{"self":"https://unfragile.ai/api/v1/passport/linear-mcp-server","artifact":"https://unfragile.ai/linear-mcp-server","verify":"https://unfragile.ai/api/v1/verify?slug=linear-mcp-server","publicKey":"https://unfragile.ai/api/v1/trust-passport-public-key","spec":"https://unfragile.ai/trust","schema":"https://unfragile.ai/schema.json","docs":"https://unfragile.ai/docs"}}