Linear Go MCP Server for LLM Integration
Enable LLM integration with Linear using a lightweight MCP server, deploying a single static Go binary to access Linear's API securely and efficiently.
npx -y @geropl/linear-mcp-goOverview
This project provides a lightweight Model Context Protocol (MCP) server written in Go that makes Linear’s API available to large language models (LLMs) and other automation agents. Deploy a single static Go binary (or container) to sit between your LLM and Linear, securely storing your Linear API key and exposing a small set of tools the model can call to read and modify Linear issues, projects, teams, and comments.
The server is designed for simplicity and security: minimal runtime surface (one static binary), explicit tool definitions following MCP patterns, and simple configuration via environment variables or flags. It’s useful when you want to enable an LLM to create or update Linear issues, search work items, or surface project metadata without embedding your API key into the model or client.
Features
- Single static Go binary — easy to build, ship and run
- Minimal MCP-compatible tool manifest for LLM integrations
- Secure: use an environment variable for the Linear API key
- HTTP endpoints for tool invocation (suitable for local LLMs, agent frameworks, or cloud deployments)
- Common Linear operations: search, read, create, update, add comments
- Optional Docker image for containerized deployment
- Small memory and binary footprint, suitable for edge or server deployments
Installation / Configuration
Clone and build from source, or install via go install. Set your Linear API key and run the binary.
Build from source
# Clone the repo
# Build a static binary (disable cgo for static linking)
CGO_ENABLED=0
# Run
LINEAR_API_KEY=your_linear_api_key
Install via go install
# Install the latest release (requires GOPATH/bin or GOBIN in PATH)
# Run (assumes binary is in your PATH)
LINEAR_API_KEY=your_linear_api_key
Docker
# Build container
# Run container exposing port 8080 (default)
Common environment variables and flags
| Variable / Flag | Default | Required | Description |
|---|---|---|---|
| LINEAR_API_KEY | — | yes | Your Linear personal or API token |
| MCP_PORT / –port | 8080 | no | Port to listen on |
| BIND_ADDR / –bind | 0.0.0.0 | no | Bind address |
| LOG_LEVEL / –log-level | info | no | Logging verbosity |
Example run with custom port
LINEAR_API_KEY=abc123
Available Tools
The server exposes a set of MCP-style tools that an LLM or automation agent can call. Tools are intentionally narrow and focused on typical Linear workflows.
linear.search_issues
- Inputs: query string, projectId?, teamId?, limit
- Output: list of matching issues (id, title, state, assignee)
- Use: surface context for summaries or decisions
linear.get_issue
- Inputs: issueId
- Output: full issue details (description, comments, metadata)
- Use: retrieve details for context or follow-up actions
linear.create_issue
- Inputs: title, description, teamId?, projectId?, assigneeId?
- Output: created issue id and URL
- Use: convert LLM-generated tasks into Linear issues
linear.update_issue
- Inputs: issueId, patch fields (title, state, assignee, labels)
- Output: updated issue summary
- Use: modify status or metadata from the model
linear.add_comment
- Inputs: issueId, body
- Output: created comment id
- Use: append clarifications, meeting notes