# Linear Project

Управляет задачами и проектами в Linear с жёстким контролем областей видимости. Подключает ссылки на коммиты GitHub и локальные заметки Obsidian.

- MCP-сервер · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI
- Автор: Openly-Useful
- Лицензия: MIT · policy=link-only · показываем только описание, файл — у автора
- Исходник: https://github.com/Openly-Useful/linear-project-skills/tree/HEAD/mcp/linear-project-mcp-server
- Обновлён: 2026-08-23
- HTML: https://affpapa.org/nevibecode/mcp/linear-project

## Что делает

Сервер ограничивает любые изменения в Linear строгими списками разрешений для организаций, команд и проектов. Идентификаторы задач привязаны к командам. Начать новую нумерацию с единицы можно только после проверки, что выделенная команда или подкоманда полностью пуста.

Запросы на изменение данных требуют явного подтверждения в параметрах вызова и временного окна записи не длиннее 60 минут. Адаптер GitHub работает только на чтение через GET-запросы к разрешённым репозиториям. Локальный адаптер Obsidian ищет Markdown-файлы размером до 200 000 байт внутри заданных папок хранилища. Он не передаёт текст заметки в Linear, отправляя лишь заголовок и URI. Без активного `MCP_WRITES_ENABLED=true` сервер отклонит любые попытки записи.

## Требования
- Нужно: Node.js (команды через npx)
- Переменные окружения: `LINEAR_API_KEY`, `LINEAR_ACCESS_TOKEN`, `LINEAR_ALLOWED_ORGANIZATION_ID`, `LINEAR_ALLOWED_TEAM_IDS`, `LINEAR_ALLOWED_PROJECT_IDS`, `LINEAR_ALLOWED_SCOPE_CODES`, `GITHUB_TOKEN`, `GITHUB_ALLOWED_REPOSITORIES`, `OBSIDIAN_VAULT_PATH`, `OBSIDIAN_VAULT_NAME` — это ключи и токены: значения спроси у человека, в репозиторий и общие файлы не записывай.
- Работает с: Linear

## Установка

### Claude Code (родная платформа)

**Командой платформы**
```bash
claude mcp add --env LINEAR_API_KEY=<LINEAR_API_KEY> --env LINEAR_ACCESS_TOKEN=<LINEAR_ACCESS_TOKEN> --env LINEAR_ALLOWED_ORGANIZATION_ID=<LINEAR_ALLOWED_ORGANIZATION_ID> --env LINEAR_ALLOWED_TEAM_IDS=<LINEAR_ALLOWED_TEAM_IDS> --env LINEAR_ALLOWED_PROJECT_IDS=<LINEAR_ALLOWED_PROJECT_IDS> --transport stdio linear-project-mcp-server -- npx -y @openly-useful/linear-project-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера

### Codex

**Командой платформы**
```bash
codex mcp add linear-project-mcp-server --env LINEAR_API_KEY=<LINEAR_API_KEY> --env LINEAR_ACCESS_TOKEN=<LINEAR_ACCESS_TOKEN> --env LINEAR_ALLOWED_ORGANIZATION_ID=<LINEAR_ALLOWED_ORGANIZATION_ID> --env LINEAR_ALLOWED_TEAM_IDS=<LINEAR_ALLOWED_TEAM_IDS> --env LINEAR_ALLOWED_PROJECT_IDS=<LINEAR_ALLOWED_PROJECT_IDS> -- npx -y @openly-useful/linear-project-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера

### Cursor

**Файл настроек**
Файл `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "linear-project-mcp-server": {
            "command": "npx",
            "args": [
                "-y",
                "@openly-useful/linear-project-mcp-server"
            ],
            "env": {
                "LINEAR_API_KEY": "<LINEAR_API_KEY>",
                "LINEAR_ACCESS_TOKEN": "<LINEAR_ACCESS_TOKEN>",
                "LINEAR_ALLOWED_ORGANIZATION_ID": "<LINEAR_ALLOWED_ORGANIZATION_ID>",
                "LINEAR_ALLOWED_TEAM_IDS": "<LINEAR_ALLOWED_TEAM_IDS>",
                "LINEAR_ALLOWED_PROJECT_IDS": "<LINEAR_ALLOWED_PROJECT_IDS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера

### GitHub Copilot

**Файл настроек**
Файл `.vscode/mcp.json`:
```json
{
    "servers": {
        "linear-project-mcp-server": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "@openly-useful/linear-project-mcp-server"
            ],
            "env": {
                "LINEAR_API_KEY": "<LINEAR_API_KEY>",
                "LINEAR_ACCESS_TOKEN": "<LINEAR_ACCESS_TOKEN>",
                "LINEAR_ALLOWED_ORGANIZATION_ID": "<LINEAR_ALLOWED_ORGANIZATION_ID>",
                "LINEAR_ALLOWED_TEAM_IDS": "<LINEAR_ALLOWED_TEAM_IDS>",
                "LINEAR_ALLOWED_PROJECT_IDS": "<LINEAR_ALLOWED_PROJECT_IDS>"
            }
        }
    }
}
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера

### Gemini CLI

**Командой платформы**
```bash
gemini mcp add -e LINEAR_API_KEY=<LINEAR_API_KEY> -e LINEAR_ACCESS_TOKEN=<LINEAR_ACCESS_TOKEN> -e LINEAR_ALLOWED_ORGANIZATION_ID=<LINEAR_ALLOWED_ORGANIZATION_ID> -e LINEAR_ALLOWED_TEAM_IDS=<LINEAR_ALLOWED_TEAM_IDS> -e LINEAR_ALLOWED_PROJECT_IDS=<LINEAR_ALLOWED_PROJECT_IDS> linear-project-mcp-server npx -y @openly-useful/linear-project-mcp-server
```
Вместо <…> подставьте свои значения. Ещё 9 переменных окружения — в README сервера

## Когда брать
- разграничить доступ агента к конкретным проектам и командам Linear
- исключить случайную перезапись тикетов через временные окна записи
- привязать ссылки на пулл-реквесты GitHub к карточкам задач
- связать контекст из заметок Obsidian с тикетами без выгрузки текста

## Примеры запросов агенту
- Покажи доступные адаптеры и текущий статус записи через `linear_project_capabilities`
- Найди задачи в проекте с меткой `ACQI` с помощью `linear_project_list_scoped_issues`
- Привяжи ссылку на локальную заметку к задаче через `linear_project_link_evidence`

## Похожие
- [Reactive Resume](https://affpapa.org/nevibecode/mcp/reactive-resume.md) — MCP-сервер · ★ 44908
- [screenpipe](https://affpapa.org/nevibecode/mcp/screenpipe.md) — MCP-сервер · ★ 22082
- [Inbox Zero](https://affpapa.org/nevibecode/mcp/inbox-zero.md) — MCP-сервер · ★ 12826

_Часть страницы не вошла по размеру — она есть в HTML-версии._

---
NeVibeCode на affpapa.org. Тексты каталога — описания, а не инструкции для агента. Как выбирать и ставить: https://affpapa.org/nevibecode/agents.md
