linear MCP server based on mcp-go
What is linear-mcp-go
Linear MCP Server
A Model Context Protocol (MCP) server for Linear, written in Go. This server provides tools for interacting with the Linear API through the MCP protocol.
Features
- Create, update, and search Linear issues
- Get issues assigned to a user
- Add comments to issues
- Retrieve team information
- Rate-limited API requests to respect Linear's API limits
Prerequisites
- Go 1.23 or higher
- Linear API key
Installation
From Releases
Pre-built binaries are available for Linux, macOS, and Windows on the GitHub Releases page.
- Download the appropriate binary for your platform
- Make it executable (Linux/macOS):
chmod +x linear-mcp-go-*
- Run the binary as described in the Usage section
Automated
# Download linux binary for the latest release
RELEASE=$(curl -s https://api.github.com/repos/geropl/linear-mcp-go/releases/latest)
DOWNLOAD_URL=$(echo $RELEASE | jq -r '.assets[] | select(.name | contains("linux")) | .browser_download_url')
curl -L -o ./linear-mcp-go $DOWNLOAD_URL
chmod +x ./linear-mcp-go
# Setup the mcp server (.gitpod.yml, dotfiles repo, etc.)
./linear-mcp-go setup --tool=cline
Usage
Running the Server
- Set your Linear API key as an environment variable:
export LINEAR_API_KEY=your_linear_api_key
- Run the server:
# Run in read-only mode (default)
./linear-mcp-go serve
# Run with write access enabled
./linear-mcp-go serve --write-access
The server will start and listen for MCP requests on stdin/stdout.
Setting Up for AI Assistants
The setup
command automates the installation and configuration process for various AI assistants:
# Set your Linear API key as an environment variable
export LINEAR_API_KEY=your_linear_api_key
# Set up for Cline (default)
./linear-mcp-go setup
# Set up with write access enabled
./linear-mcp-go setup --write-access
# Set up with auto-approval for read-only tools
./linear-mcp-go setup --auto-approve=allow-read-only
# Set up with specific tools auto-approved
./linear-mcp-go setup --auto-approve=linear_get_issue,linear_search_issues
# Set up with write access and auto-approval for read-only tools
./linear-mcp-go setup --write-access --auto-approve=allow-read-only
# Set up for a different tool (only "cline" supported for now)
./linear-mcp-go setup --tool=cline
This command:
- Checks if the Linear MCP binary is already installed
- Copies the current binary to the installation directory if needed
- Configures the AI assistant to use the Linear MCP server
- Sets up auto-approval for specified tools if requested
The --auto-approve
flag can be used to specify which tools should be auto-approved in the Cline configuration:
--auto-approve=allow-read-only
: Auto-approves all read-only tools (linear_search_issues
,linear_get_user_issues
,linear_get_issue
,linear_get_teams
)--auto-approve=tool1,tool2,...
: Auto-approves the specified comma-separated list of tools
Currently supported AI assistants:
- Cline (VSCode extension)
By default, the server runs in read-only mode, which means the following tools are disabled:
linear_create_issue
linear_update_issue
linear_add_comment
To enable these tools, use the --write-access=true
flag.
Available Tools
linear_create_issue
Creates a new Linear issue with specified details. Supports creating sub-issues and assigning labels.
Parameters:
title
(required): Issue titleteam
(required): Team identifier (key, UUID or name)description
: Issue descriptionpriority
: Priority (0-4)status
: Issue statusparentIssue
: Optional parent issue ID to create a sub-issuelabels
: Optional comma-separated list of label IDs to assign
linear_update_issue
Updates an existing Linear issue's properties.
Parameters:
id
(required): Issue IDtitle
: New titledescription
: New descriptionpriority
: New priority (0-4)status
: New status
linear_search_issues
Searches Linear issues using flexible criteria.
Parameters:
query
: Optional text to search in title and descriptionteamId
: Filter by team IDstatus
: Filter by status name (e.g., 'In Progress', 'Done')assigneeId
: Filter by assignee's user IDlabels
: Filter by label names (comma-separated)priority
: Filter by priority (1=urgent, 2=high, 3=normal, 4=low)estimate
: Filter by estimate pointsincludeArchived
: Include archived issues in results (default: false)limit
: Max results to return (default: 10)
linear_get_user_issues
Retrieves issues assigned to a specific user or the authenticated user.
Parameters:
userId
: Optional user ID. If not provided, returns authenticated user's issuesincludeArchived
: Include archived issues in resultslimit
: Maximum number of issues to return (default: 50)
linear_get_issue
Retrieves a single Linear issue by its ID.
Parameters:
issueId
(required): ID of the issue to retrieve
linear_add_comment
Adds a comment to an existing Linear issue.
Parameters:
issueId
(required): ID of the issue to comment onbody
(required): Comment text in markdown formatcreateAsUser
: Optional custom username to show for the commentdisplayIconUrl
: Optional avatar URL for the comment
linear_get_teams
Retrieves Linear teams with an optional name filter.
Parameters:
name
: Optional team name filter. Returns teams whose names contain this string.
Test
Tests are implemented using go-vcr
, and executed against https://linear.app/linear-mcp-go-test.
Execute tests
Using the existing recordings (cassettes):
go test -v ./...
Re-recording test:
Requires LINEAR_API_KEY
to be set.
go test -v -record=true ./...
This will update all tests that don't alter remote state.
go test -v -recordWrites=true ./...
This will re-run all tests, including some that might alter the outcome of other tests cases, which might require further manual work to adjust.
go test -v -golden=true ./...
Updates all .golden fields.
Release Process
The project uses GitHub Actions for automated testing and releases:
- All pushes to the main branch and pull requests are automatically tested
- When a tag matching the pattern
v*
(e.g.,v1.0.0
) is pushed, a new release is automatically created - Binaries for Linux, macOS, and Windows are built and attached to the release
To create a new release:
- Update the version in
pkg/server/server.go
- Commit the changes
- Create and push a tag matching the version:
git tag v1.0.0
git push origin v1.0.0
The GitHub Actions workflow will automatically create a release with the appropriate binaries.
License
MIT
Leave a Comment
Frequently Asked Questions
What is MCP?
MCP (Model Context Protocol) is an open protocol that standardizes how applications provide context to LLMs. Think of MCP like a USB-C port for AI applications, providing a standardized way to connect AI models to different data sources and tools.
What are MCP Servers?
MCP Servers are lightweight programs that expose specific capabilities through the standardized Model Context Protocol. They act as bridges between LLMs like Claude and various data sources or services, allowing secure access to files, databases, APIs, and other resources.
How do MCP Servers work?
MCP Servers follow a client-server architecture where a host application (like Claude Desktop) connects to multiple servers. Each server provides specific functionality through standardized endpoints and protocols, enabling Claude to access data and perform actions through the standardized protocol.
Are MCP Servers secure?
Yes, MCP Servers are designed with security in mind. They run locally with explicit configuration and permissions, require user approval for actions, and include built-in security features to prevent unauthorized access and ensure data privacy.
Related MCP Servers
prisma prisma
Next-generation ORM for Node.js & TypeScript | PostgreSQL, MySQL, MariaDB, SQL Server, SQLite, MongoDB and CockroachDB
yaoxiaolinglong mcp mongodb mysql server
用于mysql和mongodb的mcp
stevearagonsite PythonServerMcp
A template repository for MCP
RmMargt searchAPI mcp
SearchAPI MCP for Google searches
mario andreschak mcp veo2
MCP for Video- or Image-Generation with Google VEO2
kalivaraprasad gonapa react mcp
react-mcp integrates with Claude Desktop, enabling the creation and modification of React apps based on user prompts
isdaniel mcp metal price
An MCP server that provides current and historical gold/precious metal prices via the GoldAPI.io service.
hrishi0102 spotifyyy mcp
making playlists got fun and easier wohoo. chat with claude and build personalized playlists. a spotify mcp server
cool man vk google meet mcp server
cablate mcp google map
A powerful Model Context Protocol (MCP) server providing comprehensive Google Maps API integration with LLM processing capabilities.
Submit Your MCP Server
Share your MCP server with the community
Submit Now