mcp-linear
mcp-linear
MCP-сервер, предоставляющий операции с задачами Linear. Автономный — не зависит от встроенного Claude Linear MCP.
Задачи адресуются по человекочитаемому идентификатору (GOV-123). Статусы, команды, метки и исполнители задаются по имени; сервер преобразует их в UUID Linear и возвращает ошибку со списком допустимых вариантов, если имя не совпало.
Инструменты
Инструмент | Описание |
| Получить задачу по идентификатору |
| Задачи, назначенные на владельца API-ключа |
| Полнотекстовый поиск с фильтрами по команде/статусу/исполнителю |
| Создать задачу в команде |
| Обновить поля существующей задачи |
| Комментарии к задаче |
| Опубликовать комментарий |
| Ключи и названия команд |
| Статусы рабочего процесса для команды |
| Метки команды плюс метки рабочего пространства (команда необязательна) |
| Активные пользователи |
Настройка
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
cp .env.example .env
# Edit .env — set LINEAR_API_KEYПолучите API-ключ: Linear → Settings → Security & access → Personal API keys. Для операций записи нужен ключ с правом записи.
Добавление в Claude Code
{
"mcpServers": {
"linear": {
"command": "/Users/piuschungath/Workspace/mcp-linear/.venv/bin/mcp-linear",
"env": { "LINEAR_API_KEY": "lin_api_..." }
}
}
}Тесты
.venv/bin/pytestВесь HTTP замокан с помощью respx. Ни API-ключ, ни доступ к сети не требуются.
С mcp-pr-assistant
Два сервера работают вместе без импорта друг друга: получите задачу через
get_issue, передайте её поля в create_pr_from_ticket, затем отправьте URL
PR обратно через add_comment.
Проверка схемы
Имена полей GraphQL в src/mcp_linear/queries.py были проверены против
живого API Linear 2026-08-21 путём выполнения фактических строк запросов
инструментов (не их копий) в реальном рабочем пространстве.
Проверено корректно:
компаратор номера задачи
Float!метки в рамках команды через
team { labels }корневое соединение
issueLabelsviewer.assignedIssues(orderBy: updatedAt)каждое поле, которое отправляют три мутации —
IssueCreateInput,IssueUpdateInputиCommentCreateInput— все принимаютteamId,title,description,stateId,assigneeId,priority,labelIds,issueIdиbodyв том виде, как они используются
Было обнаружено и исправлено одно расхождение:
Полнотекстовый поиск.
issueSearchотклоняет свой аргументqueryкак устаревший. Поиск теперь используетsearchIssues(term: ...), который возвращаетIssueSearchPayload, чьи узлы —IssueSearchResult, а неIssue— поэтому он не может развернуть фрагментIssueFields. Вqueries.pyобъявлен второй фрагмент,SearchFields, с идентичной выборкой по этому типу. Интроспекция подтвердила, чтоIssueSearchResultнесёт каждое поле, которое выбираетIssueFields. Если вы меняете один фрагмент, меняйте и другой.
Одно осталось неподтверждённым:
Метки рабочего пространства. Корневое соединение
issueLabelsразрешается, но было ли установлено, возвращает ли оно только метки всего рабочего пространства — или также метки, ограниченные командой, принадлежащие другим командам — не было установлено. Разрешение меток сначала обращается к собственным меткам команды, поэтому метка команды всегда побеждает одноимённую метку рабочего пространства.
Чтобы повторно проверить после изменения схемы Linear:
LINEAR_API_KEY=lin_api_... .venv/bin/python scripts/probe_schema.py <team-key> <issue-number> <issue-uuid>Для этого нужен ключ команды, существующий номер задачи в этой команде и UUID этой задачи (и один раз интерактивно запрашивается UUID команды, выведенный первым пробным запросом). Пробный запрос доступен только для чтения: мутации проверяются путём интроспекции их типов ввода, а не записью в ваш трекер.
Примечания
Личные API-ключи Linear отправляются как
Authorization: <key>без префиксаBearer.Linear сообщает о большинстве сбоев как HTTP 200 с массивом
errorsна верхнем уровне, поэтому клиент проверяет тело ответа, а не код состояния.Метаданные команд, статусов, меток и пользователей кэшируются на время жизни процесса сервера. Перезапустите сервер после изменения статусов рабочего процесса или меток команды.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Shortcut project management. Create, update, search stories and manage workflows.
Connect to Atlassian Jira, Confluence, and Compass to search, create, and manage your work.
Manage projects, tasks, time tracking, and team collaboration through natural language.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/pius-grainger/mcp-linear'
If you have feedback or need assistance with the MCP directory API, please join our Discord server