This server provides Linear integration capabilities through the Model Context Protocol (MCP). It allows AI models to interact with Linear for issue tracking and project management.
The server provides the following tools through the MCP interface:
Creates a new Linear issue with the following parameters:
title
(required): Issue titleteamId
(required): Team ID to create issue indescription
(optional): Issue description (markdown supported)priority
(optional): Priority level (0-4)status
(optional): Initial status name
Search Linear issues with flexible filtering and pagination support:
query
(optional): Text to search in title/descriptionteamId
(optional): Filter by teamstatus
(optional): Filter by statusassigneeId
(optional): Filter by assigneepriority
(optional): Priority level (0-4)limit
(optional, default: 10): Max results per pagecursor
(optional): Pagination cursor for fetching next pagesortBy
(optional, default: 'updated'): Field to sort by ('created', 'updated', 'priority', 'title')sortDirection
(optional, default: 'desc'): Sort direction ('asc', 'desc')
Get all issues in the current sprint/iteration:
teamId
(required): Team ID to get sprint issues for
Search and retrieve Linear teams:
query
(optional): Text to search in team names
Filter current sprint issues by status and automatically filters to the current user:
teamId
(required): Team ID to get sprint issues forstatus
(required): Status to filter by (e.g. "Pending Prod Release")
Get detailed information about a specific issue, including full description, comments, and metadata:
issueId
(required): Issue ID (e.g., "DATA-1284") to fetch details for
Update the status of multiple Linear issues at once:
issueIds
(required): List of issue IDs to update (e.g. ["ENG-123", "DATA-456"])targetStatus
(required): Target status to set for all issues (e.g. "In Progress")
Create, update, or get information about Linear cycles (sprints):
action
(required): Action to perform: "create", "update", "get", or "list"teamId
(required): Team ID to manage cycles forcycleId
(optional, required for update and get actions): Cycle IDname
(optional, required for create): Cycle namestartDate
(optional, required for create): Start date in ISO format (YYYY-MM-DD)endDate
(optional, required for create): End date in ISO format (YYYY-MM-DD)description
(optional): Cycle description
- Get your Linear API key from Linear's settings > API section
- Create a
.env
file in the project root:
LINEAR_API_KEY=your_api_key_here
- Install dependencies:
npm install
- Start the server:
# Development mode with auto-reload
npm run dev
# Production mode
npm start
# Build TypeScript
npm run build
# Run linter
npm run lint
# Run tests
npm run test
# Inspect MCP server
npm run inspect
- Built with TypeScript and the Model Context Protocol SDK
- Uses Linear SDK for API interactions
- Includes error handling, rate limiting, and connection management
- Supports automatic reconnection with configurable retry attempts
- Implements heartbeat monitoring for connection health
- Provides detailed logging in debug mode
- Features an in-memory caching system for improved performance
- Supports pagination for handling large result sets
- Implements batch processing for bulk operations
The server includes comprehensive features for performance and reliability:
- In-memory caching for frequently accessed data (teams, workflow states)
- Configurable TTL (Time To Live) for cache entries
- Automatic cleanup of expired cache entries
- Cache statistics available in debug mode
- API timeout protection with configurable timeouts
- Automatic reconnection attempts on connection loss
- Detailed error logging with timestamps and context
- Graceful shutdown handling with cleanup
- Heartbeat monitoring for connection health
- Batch processing for bulk operations
- Pagination support for large result sets
- Parallel processing with Promise.all for concurrent operations
- Efficient data fetching with minimal API calls
@linear/sdk
: Linear API client@modelcontextprotocol/sdk
: MCP server implementationzod
: Runtime type checking and validationdotenv
: Environment variable management- TypeScript and related development tools
For the complete list of dependencies, see package.json
.
This server can be deployed on
- A Smithery.ai account
- Your Linear API key
- Add this repository to Smithery or claim an existing server
- Access the Deployments tab (authenticated owners only)
- Configure the deployment with your Linear API key
- Deploy the server
The repository includes two essential files for Smithery deployment:
-
Dockerfile: Defines the server build process
- Uses Node.js 18 Alpine as the base image
- Installs dependencies and builds the TypeScript code
- Sets up the command to run the server
-
smithery.yaml: Defines the server startup configuration
- Specifies the command to run the server
- Defines the required configuration parameters (Linear API key)
- Handles environment variable setup
You can test the Smithery configuration locally using the MCP Inspector:
# Build the Docker image
docker build -t linear-mcp-server .
# Run the container with your Linear API key
docker run -e LINEAR_API_KEY=your_api_key_here linear-mcp-server
# Or use the MCP Inspector
npm run inspect