177 lines
4.8 KiB
Markdown
177 lines
4.8 KiB
Markdown
# Linear MCP Server
|
|
|
|
Complete Model Context Protocol server for Linear - the issue tracking and project management platform.
|
|
|
|
## Features
|
|
|
|
- **Issues**: Full CRUD operations, search, archive, labels
|
|
- **Projects**: Project management and tracking
|
|
- **Teams**: Team organization and members
|
|
- **Cycles**: Sprint/cycle planning and management
|
|
- **Labels**: Label creation and assignment
|
|
- **Milestones**: Milestone tracking
|
|
- **Users**: User directory and profiles
|
|
- **Comments**: Issue comments and discussions
|
|
- **Workflows**: Custom workflow states
|
|
- **Webhooks**: Webhook management
|
|
|
|
## Installation
|
|
|
|
```bash
|
|
npm install
|
|
npm run build
|
|
```
|
|
|
|
## Configuration
|
|
|
|
1. Get your Linear API key from: https://linear.app/settings/api
|
|
2. Set the environment variable:
|
|
|
|
```bash
|
|
export LINEAR_API_KEY="your_api_key_here"
|
|
```
|
|
|
|
Or create a `.env` file:
|
|
|
|
```bash
|
|
cp .env.example .env
|
|
# Edit .env and add your API key
|
|
```
|
|
|
|
## Usage
|
|
|
|
### Run the server
|
|
|
|
```bash
|
|
npm start
|
|
```
|
|
|
|
### Development
|
|
|
|
```bash
|
|
npm run dev # Watch mode
|
|
npm run typecheck # Type checking
|
|
```
|
|
|
|
## MCP Integration
|
|
|
|
Add to your MCP settings (e.g., Claude Desktop config):
|
|
|
|
```json
|
|
{
|
|
"mcpServers": {
|
|
"linear": {
|
|
"command": "node",
|
|
"args": ["/path/to/linear/dist/main.js"],
|
|
"env": {
|
|
"LINEAR_API_KEY": "your_api_key_here"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
## Available Tools
|
|
|
|
### Issues (10 tools)
|
|
- `linear_list_issues` - List issues with filters
|
|
- `linear_get_issue` - Get issue by ID
|
|
- `linear_create_issue` - Create new issue
|
|
- `linear_update_issue` - Update issue
|
|
- `linear_delete_issue` - Delete issue
|
|
- `linear_search_issues` - Search issues
|
|
- `linear_archive_issue` - Archive issue
|
|
- `linear_unarchive_issue` - Unarchive issue
|
|
- `linear_add_issue_label` - Add label to issue
|
|
- `linear_remove_issue_label` - Remove label from issue
|
|
|
|
### Projects (6 tools)
|
|
- `linear_list_projects` - List projects
|
|
- `linear_get_project` - Get project by ID
|
|
- `linear_create_project` - Create new project
|
|
- `linear_update_project` - Update project
|
|
- `linear_delete_project` - Delete project
|
|
- `linear_archive_project` - Archive project
|
|
|
|
### Teams (3 tools)
|
|
- `linear_list_teams` - List teams
|
|
- `linear_get_team` - Get team by ID
|
|
- `linear_get_team_members` - Get team members
|
|
|
|
### Cycles (6 tools)
|
|
- `linear_list_cycles` - List cycles
|
|
- `linear_get_cycle` - Get cycle by ID
|
|
- `linear_create_cycle` - Create new cycle
|
|
- `linear_update_cycle` - Update cycle
|
|
- `linear_add_cycle_issue` - Add issue to cycle
|
|
- `linear_remove_cycle_issue` - Remove issue from cycle
|
|
|
|
### Labels (5 tools)
|
|
- `linear_list_labels` - List labels
|
|
- `linear_get_label` - Get label by ID
|
|
- `linear_create_label` - Create new label
|
|
- `linear_update_label` - Update label
|
|
- `linear_delete_label` - Delete label
|
|
|
|
### Milestones (4 tools)
|
|
- `linear_list_milestones` - List milestones
|
|
- `linear_get_milestone` - Get milestone by ID
|
|
- `linear_create_milestone` - Create new milestone
|
|
- `linear_update_milestone` - Update milestone
|
|
|
|
### Users (3 tools)
|
|
- `linear_list_users` - List users
|
|
- `linear_get_user` - Get user by ID
|
|
- `linear_get_me` - Get current user
|
|
|
|
### Comments (5 tools)
|
|
- `linear_list_comments` - List comments on issue
|
|
- `linear_get_comment` - Get comment by ID
|
|
- `linear_create_comment` - Create new comment
|
|
- `linear_update_comment` - Update comment
|
|
- `linear_delete_comment` - Delete comment
|
|
|
|
### Workflows (3 tools)
|
|
- `linear_list_workflow_states` - List workflow states
|
|
- `linear_get_workflow_state` - Get workflow state by ID
|
|
- `linear_create_workflow_state` - Create new workflow state
|
|
|
|
### Webhooks (5 tools)
|
|
- `linear_list_webhooks` - List webhooks
|
|
- `linear_get_webhook` - Get webhook by ID
|
|
- `linear_create_webhook` - Create new webhook
|
|
- `linear_update_webhook` - Update webhook
|
|
- `linear_delete_webhook` - Delete webhook
|
|
|
|
## UI Apps
|
|
|
|
15 interactive React apps included in `src/apps/`:
|
|
|
|
1. **issue-tracker** - Browse and manage issues
|
|
2. **project-dashboard** - Project overview and progress
|
|
3. **team-overview** - Team metrics and members
|
|
4. **cycle-planner** - Sprint/cycle planning
|
|
5. **label-manager** - Label organization
|
|
6. **milestone-tracker** - Milestone progress tracking
|
|
7. **user-directory** - Team directory
|
|
8. **comment-feed** - Issue discussions
|
|
9. **workflow-designer** - Custom workflow builder
|
|
10. **webhook-manager** - Webhook configuration
|
|
11. **roadmap-view** - Product roadmap
|
|
12. **triage-inbox** - Issue triage queue
|
|
13. **analytics-dashboard** - Metrics and insights
|
|
14. **initiative-tracker** - Strategic initiatives
|
|
15. **backlog-grooming** - Backlog prioritization
|
|
|
|
## Rate Limits
|
|
|
|
Linear API has a complexity-based rate limit of 1500 points per hour. The client automatically tracks complexity from response extensions.
|
|
|
|
## GraphQL API
|
|
|
|
Linear uses GraphQL exclusively. All operations are POST requests to `https://api.linear.app/graphql` with cursor-based pagination.
|
|
|
|
## License
|
|
|
|
MIT
|