Skip to main content
Glama
cosmix

Linear MCP Server

by cosmix

Линейный MCP-сервер

Реализация сервера Model Context Protocol (MCP), обеспечивающая доступ к системе отслеживания проблем Linear через стандартизированный интерфейс.

Функции

  • Создавайте новые выпуски и подвыпуски с поддержкой лейблов

  • Получить список линейных проектов

  • Получить обновления проекта

  • Создать новое обновление проекта со статусом работоспособности

  • Обновите существующие проблемы с полной модификацией поля

  • Удалить проблему с проверкой

  • Самостоятельно назначать проблемы, используя ключевое слово «я»

  • Расширенный поиск с мощными возможностями фильтрации Linear

  • Фильтрация проблем по циклу (текущий, следующий, предыдущий или определенный цикл по UUID или номеру)

  • Добавляйте комментарии к проблемам с поддержкой разметки

  • Запрос линейных проблем по идентификатору или ключу с дополнительными связями

  • Поиск проблем с использованием пользовательских запросов с расширенными метаданными

  • Типобезопасные операции с использованием официального SDK Linear

  • Комплексная обработка ошибок

  • Обработка ограничения скорости

  • Чистое преобразование данных

  • Отслеживание отношений родитель/потомок с наследованием команды

  • Управление и синхронизация этикеток

Related MCP server: Linear MCP Server

Предпосылки

  • Среда выполнения Bun (v1.0.0 или выше)

  • Линейный аккаунт с доступом через API

Переменные среды

LINEAR_API_KEY=your_api_key  # Your Linear API token

Установка и настройка

1. Клонируйте репозиторий:

git clone [repository-url]
cd linear-mcp

2. Установите зависимости и соберите:

bun install
bun run build

3. Настройте MCP-сервер:

Отредактируйте соответствующий файл конфигурации:

macOS:

  • Cline: ~/Library/Application Support/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Рабочий стол Клода: ~/Library/Application Support/Claude/claude_desktop_config.json

Окна:

  • Cline: %APPDATA%\Code\User\globalStorage\saoudrizwan.claude-dev\settings\cline_mcp_settings.json

  • Рабочий стол Клода: %APPDATA%\Claude Desktop\claude_desktop_config.json

Линукс:

  • Клайн: ~/.config/Code/User/globalStorage/saoudrizwan.claude-dev/settings/cline_mcp_settings.json

  • Claude Desktop: к сожалению, пока не существует

Добавьте следующую конфигурацию в объект mcpServers :

{
  "mcpServers": {
    "linear": {
      "command": "node",
      "args": ["/absolute/path/to/linear-mcp/build/index.js"],
      "env": {
        "LINEAR_API_KEY": "your_api_key"
      }
    }
  }
}

4. Перезапустите сервер MCP.

В настройках MCP Клайна перезапустите сервер MCP. Перезапустите Claude Desktop, чтобы загрузить новый сервер MCP.

Разработка

Запустить сервер разработки:

bun run dev

Проект сборки:

bun run build

Доступные инструменты MCP

Подробные примеры использования всех инструментов см. на USAGE.md .

создать_выпуск

Создайте новый линейный выпуск или подвыпуск.

Схема ввода:

{
  "teamId": "string",     
  "title": "string",      
  "description": "string",
  "parentId": "string",   
  "status": "string",
  "priority": "number",   
  "assigneeId": "string | 'me'",
  "labelIds": ["string"]  
}

обновление_выпуск

Обновите существующую линейную проблему.

Схема ввода:

{
  "issueId": "string",    
  "title": "string",
  "description": "string",
  "status": "string",     // Expects status NAME (e.g., "In Progress"). Must be valid for the issue's team.
  "priority": "number",   // Expects 0 (None) to 4 (Low).
  "assigneeId": "string | 'me'",
  "labelIds": ["string"],
  "cycleId": "string"
}

получить_выпуск

Получите подробную информацию о конкретной линейной проблеме с дополнительными связями.

Схема ввода:

{
  "issueId": "string",
  "includeRelationships": "boolean"  
}

поисковые_вопросы

Поиск проблем Linear с использованием строки запроса и расширенных фильтров. Поддерживает мощные возможности фильтрации Linear.

Схема ввода:

{
  "query": "string",
  "includeRelationships": "boolean",
  "filter": {
    "title": { "contains": "string", "eq": "string", ... },
    "description": { "contains": "string", "eq": "string", ... },
    "priority": { "gte": "number", "lt": "number", ... },
    "estimate": { "eq": "number", "in": ["number"], ... },
    "dueDate": { "lt": "string", "gt": "string", ... },
    "createdAt": { "gt": "P2W", "lt": "2024-01-01", ... },
    "updatedAt": { "gt": "P1M", ... },
    "completedAt": { "null": true, ... },
    "assignee": { "id": { "eq": "string" }, "name": { "contains": "string" } },
    "creator": { "id": { "eq": "string" }, "name": { "contains": "string" } },
    "team": { "id": { "eq": "string" }, "key": { "eq": "string" } },
    "state": { "type": { "eq": "started" }, "name": { "eq": "string" } },
    "labels": { "name": { "in": ["string"] }, "every": { "name": { "eq": "string" } } },
    "project": { "id": { "eq": "string" }, "name": { "contains": "string" } },
    "and": [{ /* filters */ }],
    "or": [{ /* filters */ }],
    "assignedTo": "string | 'me'",
    "createdBy": "string | 'me'"
  },
  "projectId": "string",
  "projectName": "string"
}

Поддерживаемые компараторы:

  • Строковые поля: eq , neq , in , nin , contains , startsWith , endsWith (плюс варианты без учета регистра)

  • Числовые поля: eq , neq , lt , lte , gt , gte , in , nin

  • Поля даты: eq , neq , lt , lte , gt , gte (поддерживает длительность ISO 8601)

получить_команды

Получите список линейных команд с дополнительной фильтрацией по имени/ключу.

Схема ввода:

{
  "nameFilter": "string"  
}

удалить_выпуск

Удалить существующую линейную проблему.

Схема ввода:

{
  "issueId": "string"
}

создать_комментарий

Создайте новый комментарий к линейной проблеме.

Схема ввода:

{
  "issueId": "string",
  "body": "string"
}

получить_проекты

Получите список линейных проектов с дополнительной фильтрацией по имени и разбиением на страницы.

Схема ввода:

{
  "nameFilter": "string",
  "includeArchived": "boolean",
  "first": "number",
  "after": "string"
}

получить_обновления_проекта

Получайте обновления проекта для указанного идентификатора проекта с дополнительными параметрами фильтрации.

Схема ввода:

{
  "projectId": "string",
  "includeArchived": "boolean",
  "first": "number",
  "after": "string",
  "createdAfter": "string",
  "createdBefore": "string",
  "userId": "string | 'me'",
  "health": "string"
}

создать_проект_обновить

Создайте новое обновление для линейного проекта.

Схема ввода:

{
  "projectId": "string",
  "body": "string",
  "health": "onTrack | atRisk | offTrack",
  "isDiffHidden": "boolean"
}

Технические подробности

  • Создано с помощью TypeScript в строгом режиме

  • Использует официальный SDK Linear (@linear/sdk)

  • Использует MCP SDK (@modelcontextprotocol/sdk 1.4.0)

  • Аутентификация через API-токены

  • Комплексная обработка ошибок

  • Соображения по ограничению скорости

  • Bun runtime для повышения производительности

  • Модули ESM по всему

  • Система сборки Vite

  • Типобезопасные операции

  • Возможности очистки данных:

    • Извлечение упоминаний о проблеме (формат ABC-123)

    • Извлечение упоминаний пользователя (формат @имя пользователя)

    • Очистка содержимого Markdown

    • Оптимизация контента для контекста ИИ

  • Поддержка самостоятельного назначения:

    • Автоматическое разрешение текущего пользователя

    • Поддержка ключевого слова «me» в операциях создания/обновления

    • Эффективное кэширование идентификаторов пользователей

  • Расширенные возможности поиска:

    • Комплексная фильтрация с помощью API Linear

    • Поддержка всех полевых компараторов

    • Фильтрация отношений

    • Логические операторы (и, или)

    • Фильтрация по относительной дате

    • Фильтр по правообладателю/создателю (включая себя)

    • Поддержка определенных идентификаторов пользователей

    • Фильтрация проектов по идентификатору или названию

    • Эффективная оптимизация запросов

  • Возможности управления проектами:

    • Список проектов с фильтрацией и пагинацией

    • Создание обновлений проекта с отслеживанием состояния работоспособности

    • Извлечение обновлений проекта с возможностью фильтрации

Обработка ошибок

Сервер реализует комплексную стратегию обработки ошибок:

  • Обнаружение сетевых ошибок и отправка соответствующих сообщений

  • Обработка кода статуса HTTP

  • Подробные сообщения об ошибках с кодами состояния

  • Подробная информация об ошибке выводится на консоль

  • Проверка ввода всех параметров

  • Проверка и синхронизация этикеток

  • Безопасное распространение ошибок через протокол MCP

  • Обнаружение и обработка ограничений скорости

  • Обработка ошибок аутентификации

  • Неверная обработка запроса

  • Проверка наследования команды для подзадач

  • Проверка разрешения пользователя

  • Проверка фильтра поиска

ЛИЦЕНЗИЯ

Данный проект лицензирован по лицензии MIT — подробности см. в файле LICENCE .

Install Server
A
license - permissive license
-
quality - not tested
F
maintenance

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/cosmix/linear-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server