Linear

by tacticlaunch
Verified
# MCP Linear Tools This document provides an overview of all tools implemented in the MCP Linear, as well as recommendations for future development. ## Implemented Tools The following tools are currently implemented and available in the MCP Linear: ### User & Organization Tools | Tool Name | Description | Status | | ------------------------ | ------------------------------------------------------ | -------------- | | `linear_getViewer` | Get information about the currently authenticated user | ✅ Implemented | | `linear_getOrganization` | Get information about the current Linear organization | ✅ Implemented | | `linear_getUsers` | Get a list of users in the Linear organization | ✅ Implemented | | `linear_getLabels` | Get a list of issue labels from Linear | ✅ Implemented | ### Team Tools | Tool Name | Description | Status | | ----------------- | ------------------------------- | -------------- | | `linear_getTeams` | Get a list of teams from Linear | ✅ Implemented | ### Project Tools | Tool Name | Description | Status | | ---------------------- | ---------------------------------- | -------------- | | `linear_getProjects` | Get a list of projects from Linear | ✅ Implemented | | `linear_createProject` | Create a new project in Linear | ✅ Implemented | ### Issue Tools | Tool Name | Description | Status | | ------------------------- | -------------------------------------------------------- | -------------- | | `linear_getIssues` | Get a list of recent issues from Linear | ✅ Implemented | | `linear_getIssueById` | Get a specific issue by ID or identifier (e.g., ABC-123) | ✅ Implemented | | `linear_searchIssues` | Search for issues with various filters | ✅ Implemented | | `linear_createIssue` | Create a new issue in Linear | ✅ Implemented | | `linear_updateIssue` | Update an existing issue in Linear | ✅ Implemented | | `linear_createComment` | Add a comment to an issue in Linear | ✅ Implemented | | `linear_addIssueLabel` | Add a label to an issue | ✅ Implemented | | `linear_removeIssueLabel` | Remove a label from an issue | ✅ Implemented | ### Issue Management Tools | Tool Name | Description | Status | | ------------------------------ | ------------------------------------------------------------- | -------------- | | `linear_assignIssue` | Assign an issue to a user | ✅ Implemented | | `linear_subscribeToIssue` | Subscribe to issue updates | 🔄 In Progress | | `linear_convertIssueToSubtask` | Convert an issue to a subtask | ✅ Implemented | | `linear_createIssueRelation` | Create relations between issues (blocks, is blocked by, etc.) | 🔄 In Progress | | `linear_archiveIssue` | Archive an issue | ✅ Implemented | | `linear_setIssuePriority` | Set the priority of an issue | ✅ Implemented | | `linear_transferIssue` | Transfer an issue to another team | ✅ Implemented | | `linear_duplicateIssue` | Duplicate an issue | ✅ Implemented | | `linear_getIssueHistory` | Get the history of changes made to an issue | ✅ Implemented | ### Comment Management Tools | Tool Name | Description | Status | | -------------------- | ----------------------------- | -------------- | | `linear_getComments` | Get all comments for an issue | ✅ Implemented | ### Project Management Tools | Tool Name | Description | Status | | -------------------------- | ---------------------------------------- | -------------- | | `linear_updateProject` | Update an existing project | ✅ Implemented | | `linear_addIssueToProject` | Add an existing issue to a project | ✅ Implemented | | `linear_getProjectIssues` | Get all issues associated with a project | ✅ Implemented | ### Cycle Management Tools | Tool Name | Description | Status | | ------------------------ | ----------------------------------------- | -------------- | | `linear_getCycles` | Get a list of all cycles | ✅ Implemented | | `linear_getActiveCycle` | Get the currently active cycle for a team | ✅ Implemented | | `linear_addIssueToCycle` | Add an issue to a cycle | ✅ Implemented | ## Recommended Future Tools The following tools are recommended for future implementation to enhance the capabilities of the MCP Linear: ### Comment Management | Tool Name | Description | Priority | Status | | ---------------------- | -------------------------- | -------- | ---------- | | `linear_updateComment` | Update an existing comment | Medium | 📝 Planned | | `linear_deleteComment` | Delete a comment | Low | 📝 Planned | ### Project Management | Tool Name | Description | Priority | Status | | ------------------------------- | --------------------------------- | -------- | ---------- | | `linear_archiveProject` | Archive a project | Medium | 📝 Planned | | `linear_getProjectUpdates` | Get updates for a project | Medium | 📝 Planned | | `linear_removeIssueFromProject` | Remove an issue from a project | Medium | 📝 Planned | | `linear_getProjectMembers` | Get members assigned to a project | Medium | 📝 Planned | | `linear_addProjectMember` | Add a member to a project | Medium | 📝 Planned | | `linear_removeProjectMember` | Remove a member from a project | Medium | 📝 Planned | ### Initiative Management | Tool Name | Description | Priority | Status | | ------------------------------------ | ------------------------------------- | -------- | ---------- | | `linear_getInitiatives` | Get a list of initiatives from Linear | High | 📝 Planned | | `linear_getInitiativeById` | Get details of a specific initiative | High | 📝 Planned | | `linear_createInitiative` | Create a new initiative | High | 📝 Planned | | `linear_updateInitiative` | Update an existing initiative | Medium | 📝 Planned | | `linear_archiveInitiative` | Archive an initiative | Medium | 📝 Planned | | `linear_addProjectToInitiative` | Add a project to an initiative | High | 📝 Planned | | `linear_removeProjectFromInitiative` | Remove a project from an initiative | Medium | 📝 Planned | | `linear_getInitiativeProjects` | Get all projects in an initiative | High | 📝 Planned | ### Cycle Management | Tool Name | Description | Priority | Status | | ----------------------------- | ------------------------------- | -------- | ---------- | | `linear_getCycleById` | Get details of a specific cycle | Medium | 📝 Planned | | `linear_createCycle` | Create a new cycle | Medium | 📝 Planned | | `linear_updateCycle` | Update an existing cycle | Medium | 📝 Planned | | `linear_removeIssueFromCycle` | Remove an issue from a cycle | Medium | 📝 Planned | | `linear_completeCycle` | Mark a cycle as complete | Medium | 📝 Planned | | `linear_getCycleStats` | Get statistics for a cycle | Medium | 📝 Planned | ### Milestone Management | Tool Name | Description | Priority | Status | | ----------------------------------- | ---------------------------------------- | -------- | ---------- | | `linear_getMilestones` | Get a list of milestones | Medium | 📝 Planned | | `linear_getMilestoneById` | Get details of a specific milestone | Medium | 📝 Planned | | `linear_createMilestone` | Create a new milestone | Medium | 📝 Planned | | `linear_updateMilestone` | Update an existing milestone | Low | 📝 Planned | | `linear_archiveMilestone` | Archive a milestone | Low | 📝 Planned | | `linear_getMilestoneProjects` | Get projects associated with a milestone | Medium | 📝 Planned | | `linear_addProjectToMilestone` | Add a project to a milestone | Medium | 📝 Planned | | `linear_removeProjectFromMilestone` | Remove a project from a milestone | Low | 📝 Planned | ### Roadmap Tools | Tool Name | Description | Priority | Status | | ------------------------------ | --------------------------------- | -------- | ---------- | | `linear_getRoadmaps` | Get a list of roadmaps | Medium | 📝 Planned | | `linear_getRoadmapById` | Get details of a specific roadmap | Medium | 📝 Planned | | `linear_createRoadmap` | Create a new roadmap | Medium | 📝 Planned | | `linear_updateRoadmap` | Update an existing roadmap | Low | 📝 Planned | | `linear_archiveRoadmap` | Archive a roadmap | Low | 📝 Planned | | `linear_getRoadmapItems` | Get items in a roadmap | Medium | 📝 Planned | | `linear_addItemToRoadmap` | Add an item to a roadmap | Medium | 📝 Planned | | `linear_removeItemFromRoadmap` | Remove an item from a roadmap | Low | 📝 Planned | ### Workflow Management | Tool Name | Description | Priority | Status | | ------------------------------ | --------------------------------------- | -------- | -------------- | | `linear_getWorkflowStates` | Get all workflow states | Medium | ✅ Implemented | | `linear_createWorkflowState` | Create a new workflow state | Low | 📝 Planned | | `linear_updateWorkflowState` | Update a workflow state | Low | 📝 Planned | | `linear_getTeamStates` | Get workflow states for a specific team | Medium | 📝 Planned | | `linear_reorderWorkflowStates` | Change the order of workflow states | Low | 📝 Planned | ### Team Management | Tool Name | Description | Priority | Status | | ----------------------------- | ------------------------------ | -------- | ---------- | | `linear_updateTeam` | Update team settings | Medium | 📝 Planned | | `linear_getTeamMemberships` | Get team memberships | Medium | 📝 Planned | | `linear_createTeam` | Create a new team | Medium | 📝 Planned | | `linear_archiveTeam` | Archive a team | Low | 📝 Planned | | `linear_addUserToTeam` | Add a user to a team | Medium | 📝 Planned | | `linear_removeUserFromTeam` | Remove a user from a team | Medium | 📝 Planned | | `linear_updateTeamMembership` | Update a user's role in a team | Medium | 📝 Planned | | `linear_getTeamLabels` | Get labels for a specific team | Medium | 📝 Planned | | `linear_createTeamLabel` | Create a new label for a team | Medium | 📝 Planned | ### Custom Fields | Tool Name | Description | Priority | Status | | ------------------------------- | ---------------------------------------- | -------- | ---------- | | `linear_getCustomFields` | Get a list of custom fields | Medium | 📝 Planned | | `linear_createCustomField` | Create a new custom field | Low | 📝 Planned | | `linear_updateCustomField` | Update a custom field | Low | 📝 Planned | | `linear_getIssueCustomFields` | Get custom field values for an issue | Medium | 📝 Planned | | `linear_updateIssueCustomField` | Update a custom field value for an issue | Medium | 📝 Planned | | `linear_getTeamCustomFields` | Get custom fields for a specific team | Medium | 📝 Planned | | `linear_deleteCustomField` | Delete a custom field | Low | 📝 Planned | ### Issue Templates | Tool Name | Description | Priority | Status | | -------------------------------- | ---------------------------------------- | -------- | ---------- | | `linear_getIssueTemplates` | Get a list of issue templates | Medium | 📝 Planned | | `linear_getIssueTemplateById` | Get details of a specific issue template | Medium | 📝 Planned | | `linear_createIssueTemplate` | Create a new issue template | Medium | 📝 Planned | | `linear_updateIssueTemplate` | Update an existing issue template | Low | 📝 Planned | | `linear_createIssueFromTemplate` | Create a new issue from a template | High | 📝 Planned | | `linear_getTeamTemplates` | Get templates for a specific team | Medium | 📝 Planned | | `linear_archiveTemplate` | Archive an issue template | Low | 📝 Planned | ### Import and Export | Tool Name | Description | Priority | Status | | ------------------------- | -------------------------------------- | -------- | ---------- | | `linear_bulkCreateIssues` | Create multiple issues at once | Medium | 📝 Planned | | `linear_exportIssues` | Export issues to a structured format | Low | 📝 Planned | | `linear_importIssues` | Import issues from a structured format | Low | 📝 Planned | | `linear_importCsvData` | Import data from CSV | Low | 📝 Planned | ### Integration Tools | Tool Name | Description | Priority | Status | | -------------------------- | --------------------------------------- | -------- | ---------- | | `linear_createWebhook` | Create a webhook for integration events | Low | 📝 Planned | | `linear_getAttachments` | Get attachments for an issue | Medium | 📝 Planned | | `linear_addAttachment` | Add an attachment to an issue | Medium | 📝 Planned | | `linear_getIntegrations` | Get a list of active integrations | Low | 📝 Planned | | `linear_createIntegration` | Create a new integration | Low | 📝 Planned | | `linear_removeIntegration` | Remove an integration | Low | 📝 Planned | | `linear_getWebhooks` | Get a list of webhooks | Low | 📝 Planned | | `linear_deleteWebhook` | Delete a webhook | Low | 📝 Planned | ### Notifications and Subscriptions | Tool Name | Description | Priority | Status | | ----------------------------------- | --------------------------------------- | -------- | ---------- | | `linear_getNotifications` | Get notifications for the current user | Medium | 📝 Planned | | `linear_markNotificationAsRead` | Mark a notification as read | Medium | 📝 Planned | | `linear_getSubscriptions` | Get subscriptions for the current user | Low | 📝 Planned | | `linear_manageSubscription` | Subscribe or unsubscribe from an entity | Low | 📝 Planned | | `linear_markAllNotificationsAsRead` | Mark all notifications as read | Medium | 📝 Planned | | `linear_getUnreadNotificationCount` | Get count of unread notifications | Medium | 📝 Planned | ### Favorites and Pinning | Tool Name | Description | Priority | Status | | ---------------------------- | ----------------------------------- | -------- | ---------- | | `linear_getFavorites` | Get a list of user's favorite items | Medium | 📝 Planned | | `linear_addToFavorites` | Add an item to favorites | Medium | 📝 Planned | | `linear_removeFromFavorites` | Remove an item from favorites | Medium | 📝 Planned | | `linear_pinIssue` | Pin an issue to the top of a list | Medium | 📝 Planned | | `linear_unpinIssue` | Unpin an issue | Medium | 📝 Planned | ### User Preferences | Tool Name | Description | Priority | Status | | ------------------------------ | -------------------------------- | -------- | ---------- | | `linear_getUserPreferences` | Get user preferences | Low | 📝 Planned | | `linear_updateUserPreferences` | Update user preferences | Low | 📝 Planned | | `linear_getUserSettings` | Get user application settings | Low | 📝 Planned | | `linear_updateUserSettings` | Update user application settings | Low | 📝 Planned | ### Views and Filters | Tool Name | Description | Priority | Status | | ------------------------- | ------------------------- | -------- | ---------- | | `linear_getSavedViews` | Get user's saved views | Medium | 📝 Planned | | `linear_createSavedView` | Create a new saved view | Medium | 📝 Planned | | `linear_updateSavedView` | Update a saved view | Low | 📝 Planned | | `linear_deleteSavedView` | Delete a saved view | Low | 📝 Planned | | `linear_getFavoriteViews` | Get user's favorite views | Medium | 📝 Planned | ### Metrics and Reporting | Tool Name | Description | Priority | Status | | ----------------------------------- | ------------------------------------------- | -------- | ---------- | | `linear_getTeamCycles` | Get information about team cycles | Medium | 📝 Planned | | `linear_getCycleIssues` | Get issues for a specific cycle | Medium | 📝 Planned | | `linear_getTeamMetrics` | Get performance metrics for a team | Low | 📝 Planned | | `linear_getIssueAnalytics` | Get analytics for issues (cycle time, etc.) | Medium | 📝 Planned | | `linear_generateReport` | Generate a custom report | Low | 📝 Planned | | `linear_getVelocityMetrics` | Get team velocity metrics | Medium | 📝 Planned | | `linear_getCompletionRateMetrics` | Get completion rate metrics | Medium | 📝 Planned | | `linear_getTimeToResolutionMetrics` | Get time-to-resolution metrics | Medium | 📝 Planned | ### Audit and History | Tool Name | Description | Priority | Status | | ----------------------------------- | ---------------------------------------- | -------- | ---------- | | `linear_getOrganizationAuditEvents` | Get audit events for the organization | Medium | 📝 Planned | | `linear_getUserAuditEvents` | Get audit events for a specific user | Medium | 📝 Planned | | `linear_getTeamAuditEvents` | Get audit events for a specific team | Medium | 📝 Planned | | `linear_getEntityHistory` | Get the history of changes for an entity | Medium | 📝 Planned | ### API and Authentication | Tool Name | Description | Priority | Status | | --------------------------- | ----------------------------- | -------- | ---------- | | `linear_createApiKey` | Create a new API key | Low | 📝 Planned | | `linear_revokeApiKey` | Revoke an API key | Low | 📝 Planned | | `linear_getApiKeys` | Get all API keys for the user | Low | 📝 Planned | | `linear_revokeUserSessions` | Revoke all user sessions | Low | 📝 Planned | ## Implementation Guide When implementing new tools, follow these steps: 1. Add a new tool definition in the appropriate file under `src/tools/definitions/` 2. Implement the handler function in `src/tools/handlers/` 3. Add any necessary type guards in `src/tools/type-guards.ts` 4. Add any required methods to the `LinearService` class in `src/services/linear-service.ts` 5. Register the tool in `src/tools/definitions/index.ts` 6. Register the handler in `src/tools/handlers/index.ts` 7. Update this document to mark the tool as implemented ## Status Legend - ✅ Implemented: Tool is fully implemented and tested - 🔄 In Progress: Tool is currently being implemented - 📝 Planned: Tool is planned for future implementation - ❓ Under Consideration: Tool is being considered, but not yet planned