Linear

Integra com sistemas de gerenciamento de projetos Linear.

Documentação

Linear App Icon

MCP Linear

Um servidor Model Context Protocol (MCP) para a API GraphQL do Linear, construído para fluxos de trabalho reais de gerenciamento de projetos — não apenas operações básicas de CRUD de issues.

MCP Linear npm version

Recursos

O MCP Linear conecta assistentes de IA ao Linear implementando o protocolo MCP. Com ele, você pode:

  • Recuperar issues, projetos, equipes, ciclos, marcos, roadmaps, clientes, necessidades de clientes e documentos de workspace/projeto/iniciativa/equipe/release/ciclo
  • Criar e atualizar issues, alterar status, atribuir e comentar
  • Gerenciar projetos, ciclos de vida completos de atualização de projetos e iniciativas com detecção de diffs, marcos, roadmaps, visualizações salvas e favoritos
  • Criar e gerenciar webhooks do workspace, incluindo atualizações e rotação de segredos de assinatura
  • Preparar manifestos de aplicativos OAuth e URLs de autorização, tokens de credenciais de cliente com escopo de issue, ou gerenciar aplicativos OAuth filhos quando autenticado como um aplicativo OAuth gerenciador
  • Trabalhar com modelos, campos personalizados e anexos
  • Trabalhar com registros de clientes, status/níveis de clientes e necessidades de clientes vinculadas a issues ou projetos
  • Ler notificações, assinaturas, sessões, auditorias e integrações sem sair do MCP
  • Inspecionar limites de taxa e saúde do servidor antes de executar sessões pesadas de planejamento

Consulte TOOLS.md para o inventário completo.

Recursos e prompts nativos do MCP

O servidor expõe recursos e prompts do MCP além das ferramentas, incluindo:

  • Recursos: linear://viewer, linear://organization, linear://teams, linear://projects, linear://project/{id}, linear://project/{id}/issues, linear://project/{id}/documents, linear://issue/{id}, linear://document/{id}, linear://roadmap/{id}, linear://milestone/{id}, linear://rate-limit
  • Prompts: summarize-project-status, draft-project-update, triage-issue, summarize-document

Exemplos de prompts

Depois de conectado, você pode usar prompts como:

  • "Mostre todas as minhas issues do Linear"
  • "Crie uma nova issue intitulada 'Corrigir bug de login' na equipe Frontend"
  • "Altere o status da issue FE-123 para 'Em andamento'"
  • "Atribua a issue BE-456 a John Smith"
  • "Mostre todas as issues abertas neste projeto agrupadas por marco e ciclo"
  • "Elabore uma atualização semanal do projeto com base no estado atual do Linear"
  • "Encontre os documentos mais recentes relacionados a um projeto e resuma as principais decisões"
  • "Mostre os documentos e links fixados na página inicial desta equipe"
  • "Crie um documento para ENG-123 com metadados de ordenação de recursos"
  • "Obtenha o diff mais recente da atualização do projeto e arquive uma atualização desatualizada"
  • "Mostre as necessidades de clientes deste projeto e marque as importantes"
  • "Crie uma atualização de iniciativa e oculte o diff gerado do corpo da atualização"
  • "Prepare um aplicativo OAuth privado para meu pipeline de issues do GitHub com credenciais de cliente habilitadas"
  • "Emita um token de credenciais de cliente com escopo restrito para esse pipeline do GitHub"
  • "Crie um webhook para eventos de Issue e Comment e depois rotacione o segredo de assinatura"

Instalação

Autenticação

Chave de API pessoal (padrão)

  1. Faça login na sua conta Linear em linear.app
  2. Clique no avatar da sua organização (canto superior esquerdo)
  3. Selecione Configurações
  4. Navegue até Segurança e acesso na barra lateral esquerda
  5. Em Chaves de API pessoais, clique em Nova chave de API
  6. Dê um nome à sua chave (por exemplo, MCP Linear Integration)
  7. Copie o token de API gerado e armazene-o com segurança — você não poderá vê-lo novamente

As chaves de API pessoais suportam as ferramentas normais do Linear e de webhooks do workspace. Elas não podem chamar a API alfa de aplicativos OAuth filhos gerenciados do Linear, pois essa API exige que o chamador seja, ele próprio, um aplicativo OAuth. Com uma chave de API pessoal, linear_generateOAuthApplicationSetup ainda prepara um manifesto oficial e uma URL de configuração do Linear pré-preenchida para um administrador confirmar.

Token de acesso OAuth (aplicativos OAuth gerenciados)

Para permitir que o MCP realmente crie e gerencie aplicativos OAuth filhos, autentique-o com um token de acesso pertencente a um aplicativo OAuth do Linear elegível para gerenciar esses aplicativos filhos:

export LINEAR_OAUTH_ACCESS_TOKEN=YOUR_OAUTH_ACCESS_TOKEN
mcp-linear

Ou passe --oauth-token YOUR_OAUTH_ACCESS_TOKEN. Credenciais explícitas de linha de comando têm precedência sobre variáveis de ambiente; quando ambos os tipos de credenciais de ambiente estão presentes, a autenticação OAuth é selecionada. Consulte a documentação OAuth e os manifestos de aplicativos OAuth do Linear.

Cada processo do servidor MCP usa uma credencial do Linear. Se o token do aplicativo gerenciador usar actor=app (que não pode receber admin) e você também precisar de ferramentas de webhook do workspace com escopo de administrador, configure duas entradas de servidor MCP: uma com o token OAuth gerenciador para operações de aplicativos filhos e outra com a chave de API pessoal de um administrador do workspace para webhooks do workspace. Um token OAuth de ator de usuário com admin pode cobrir o lado do webhook.

Os escopos OAuth são selecionados quando uma URL de autorização ou token de credenciais de cliente é solicitado; eles não são campos mutáveis em um aplicativo OAuth. O MCP valida os escopos atuais do Linear, prepara URLs de autorização e pode emitir tokens de ator de aplicativo com linear_createOAuthClientCredentialsToken. Para pipelines hospedados no GitHub, habilite a concessão client_credentials e solicite o escopo útil mais restrito, como issues:create.

Tokens de credenciais de cliente normalmente expiram após 30 dias e não possuem token de atualização. O Linear permite múltiplos tokens ativos apenas enquanto usam o mesmo conjunto de escopos; solicitar um conjunto de escopos diferente revoga os tokens de ator de aplicativo existentes. A ferramenta de token, portanto, exige tanto confirmSecretExposure: true quanto confirmScopeChangeRisk: true.

Criar um aplicativo OAuth e rotacionar segredos OAuth ou de webhook retorna material secreto de uso único por meio do MCP. Essas ferramentas exigem confirmSecretExposure: true; mova os valores retornados diretamente para um gerenciador de segredos, como os segredos do GitHub Actions, e não os cole no controle de versão ou em logs.

As URLs de webhook devem ser endpoints HTTPS publicamente acessíveis. A validação rejeita credenciais em URLs e destinos óbvios de loopback, rede privada, link-local e nomes de host locais.

Instalação via add-mcp (Recomendado)

add-mcp instala o servidor no Claude Code, Cursor, Codex, VS Code, Claude Desktop e muitos outros agentes compatíveis com MCP com um único comando:

npx add-mcp @tacticlaunch/mcp-linear --env LINEAR_API_TOKEN=YOUR_LINEAR_API_TOKEN

Adicione -g para instalar globalmente em vez de no projeto atual. Consulte a documentação do add-mcp para a lista completa de agentes e flags.

Configuração manual

Adicione o seguinte ao seu arquivo de configurações do MCP:

{
  "mcpServers": {
    "linear": {
      "command": "npx",
      "args": ["-y", "@tacticlaunch/mcp-linear"],
      "env": {
        "LINEAR_API_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Locais de configuração específicos do cliente

  • Cursor: ~/.cursor/mcp.json
  • Claude Desktop: ~/Library/Application Support/Claude/claude_desktop_config.json
  • Extensão Claude VSCode: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json
  • GoMCP: ~/.config/gomcp/config.yaml

Execução manual

Pré-requisitos:

  • Node.js (v20+)
  • NPM ou Yarn
  • Chave de API pessoal do Linear ou token de acesso OAuth
# Install globally
npm install -g @tacticlaunch/mcp-linear

# Or clone and install locally
git clone https://github.com/tacticlaunch/mcp-linear.git
cd mcp-linear
npm install
npm link  # Makes the package available globally

Executando o servidor

Execute o servidor com seu token de API do Linear:

mcp-linear --token YOUR_LINEAR_API_TOKEN

Ou com o token de acesso de um aplicativo OAuth gerenciador:

mcp-linear --oauth-token YOUR_OAUTH_ACCESS_TOKEN

Ou defina o token no seu ambiente e execute sem argumentos:

export LINEAR_API_TOKEN=YOUR_LINEAR_API_TOKEN
mcp-linear

Validação

O caminho de validação padrão é:

npm test
npm run build

npm test executa testes unitários Jest e um teste de fumaça do SDK oficial do MCP contra o servidor stdio compilado, cobrindo o registro de ferramentas, recursos e prompts, além da emissão de esquemas compatíveis com o host.

Desenvolvimento

Consulte DEVELOPMENT.md para detalhes de desenvolvimento local.

Links

tacticlaunch/cursor-memory-bank — Se você é um desenvolvedor que deseja aprimorar seu fluxo de trabalho com o Cursor, considere experimentá-lo.

Licença

Este projeto é licenciado sob a Licença MIT — consulte o arquivo LICENSE para obter detalhes.