Skip to main content
Glama
WorkelCEO

Workel MCP Server

Official
by WorkelCEO

Workel MCP Server

Официальный сервер Model Context Protocol для Workel — тонкий, не сохраняющий состояние клиент Workel Public API v1. Он предоставляет рабочее пространство Workel AI-агентам (Claude, OpenAI Agents SDK или любому другому клиенту, говорящему на MCP) в виде небольшого набора четко ограниченных инструментов. Все правила, которые действительно имеют значение — что этот ключ может видеть, что он может записывать, как быстро он может это записывать — живут в самом API Workel; этот пакет не обладает никакими полномочиями, которых у ключа уже нет. Запрос curl, сделанный с тем же ключом, может сделать ровно то же, что и этот сервер, и не больше.

Полные инструкции по настройке для каждого клиента (Claude Desktop, Claude Code, .mcp.json в рамках проекта и OpenAI Agents SDK) см. в документации разработчика Workel.

Используете Claude? Вероятно, этот пакет вам не нужен

Workel запускает хостируемый MCP-сервер. Добавьте его в Claude в разделе Settings → Connectors → Add custom connector:

https://mcp.workel.com/mcp

Вы входите в Workel, выбираете одно рабочее пространство и подключаетесь. Без установки, без файла конфигурации и без API-ключа — вы его не видите, и Claude тоже. Для авторизации требуется роль владельца или администратора в выбранном рабочем пространстве, и соединение проверяется заново при каждом запросе, поэтому потеря этой роли отключает его без необходимости кому-либо помнить об отзыве ключа.

Он может читать ваши проекты, задачи, комментарии, события и участников — включая обложку задачи, вложения и полную историю — а также создавать задачи, комментарии и события и обновлять существующие задачи: переименовывать их, менять даты и приоритет, перемещать между колонками и проектами и менять назначенных исполнителей. Он не может ничего удалять и не может загружать файлы. Права на чтение и запись перечислены отдельно на экране согласия, поэтому вы одобряете их осознанно, а не обнаруживаете позже.

Подключение более чем одного рабочего пространства

Одно соединение покрывает одно рабочее пространство, потому что учетные данные, лежащие в его основе, привязаны к этому рабочему пространству. Чтобы получить доступ ко второму, добавьте коннектор снова и выберите другое рабочее пространство — каждое соединение регистрируется отдельно, поэтому они сосуществуют, и каждое отображается под именем своего рабочего пространства (workel — Acme), а не как одинаковые записи, которые невозможно различить.

Обратите внимание: повторная авторизация существующего соединения перемещает его, а не добавляет. Повторное прохождение согласия на уже добавленном коннекторе заменяет его учетные данные и отключает старые, так что это соединение переключается на то рабочее пространство, которое вы выберете. Если вам нужны оба, добавьте новый коннектор вместо повторной авторизации существующего.

Related MCP server: Google Workspace MCP Server

Запуск самостоятельно

Этот пакет предназначен для случаев, которые не покрывает хостируемый сервер: Claude Code, CI-агенты, OpenAI Agents SDK — везде, где вы хотите запускать процесс самостоятельно и хранить учетные данные. Все, что описано ниже, относится именно к этому.

Он обрабатывает несколько рабочих пространств иначе и лучше для этого случая: установите WORKEL_API_KEYS в виде списка через запятую, по одному ключу на рабочее пространство, и каждый инструмент получит аргумент workspace, указывающий, в каком из них действовать. Десять инструментов остаются десятью инструментами, сколько бы рабочих пространств вы ни настроили, а не умножаются на каждое рабочее пространство — это важно, потому что каждое определение инструмента — это контекст, за который модель платит на каждом ходу.

Создайте выделенный ключ только для чтения перед началом работы

Прежде чем направлять любого AI-клиента на этот сервер, перейдите в Workel → Settings → Developers и создайте новый API-ключ специально для этой цели — не используйте повторно ключ, который уже использует другая интеграция. Для создания ключа требуется роль владельца или администратора. Предоставьте ему только те области read:*, которые реально используются инструментами в этом выпуске (read:projects, read:tasks, read:members, read:events — см. Tools ниже); оставьте все области write:* неотмеченными, если вы сознательно не решили позволить агенту самостоятельно создавать и редактировать объекты в вашем рабочем пространстве. Используйте один ключ на машину или агента, назовите его так, чтобы потом помнить, для чего он предназначен, и если машина выводится из эксплуатации или клиент скомпрометирован, отзовите этот один ключ в Settings → Developers, а не ротируйте ключ, которым пользуются несколько инструментов — отзыв мгновенный и вступает в силу при следующем запросе.

Прежде чем касаться флагов, описанных ниже, стоит понять две вещи:

  • WORKEL_ENABLE_WRITES — это локальный флаг согласия оператора, а не граница авторизации. Он может только сузить то, что предлагается уже ограниченному по областям ключу, но никогда не расширить — и поскольку он находится в файле конфигурации или переменной окружения, к которой AI-агент, выполняющий код, обычно имеет доступ на запись, агент, работающий на вашей машине, может сам переключить его обратно на true. Локальный флаг — это не то, что можно доверить недоверенному агенту оставить в покое. Собственные области ключа — предоставленные осознанно при создании и отзываемые в любой момент — являются настоящим шлюзом.

  • Переопределение WORKEL_API_BASE_URL отправляет ваш ключ на другой хост. Каждый запрос, который делает этот сервер, несет ваш ключ в заголовке Authorization. Если WORKEL_API_BASE_URL когда-либо указывает на URL, которым вы не управляете, этот хост получает ваш ключ при каждом вызове. Этот клиент отказывается от переопределения через обычный http://, кроме localhost/127.0.0.1/[::1], именно по этой причине. Та же логика применима к реальному ключу, вставленному в любой файл: если он когда-либо попадет в git, ротация ключа — единственное реальное исправление — история git вечна. Более поздний коммит, удаляющий строку, не удаляет ее из истории репозитория, и любой, кто клонировал репозиторий в промежутке, все еще имеет старый ключ.

Установка

npx -y @workel/mcp@0.4.0

Зафиксируйте версию — 0.4.0 выше — это текущий выпуск этого пакета; проверьте npm view @workel/mcp version для последней версии перед фиксацией. Форма без фиксации ниже — только для удобства, подходит для разовой ручной попытки, но не для того, что конфигурация агента запускает без присмотра:

npx -y @workel/mcp

Переменные окружения

Variable

Required

Default

What it does

WORKEL_API_KEY

Да (или WORKEL_API_KEYS)

Ваш ключ API Workel. Читается только из этой переменной окружения — никогда из аргумента командной строки, который любой другой локальный пользователь может прочитать через ps. Если ключ отсутствует или пуст (включая состоящий только из пробелов), сервер выводит одно точное сообщение об ошибке, которое можно скопировать и исправить, и завершает работу с кодом 1, не выполняя сетевых вызовов.

WORKEL_API_KEYS

Нет

Ключи через запятую, по одному на рабочее пространство, чтобы обращаться к нескольким рабочим пространствам с одного сервера. Ключ привязан к одному рабочему пространству API, поэтому несколько рабочих пространств означают несколько ключей. Каждый инструмент тогда принимает аргумент workspace; количество инструментов остаётся постоянным. Обе переменные могут быть заданы — объединение дедуплицируется с сохранением порядка.

WORKEL_API_BASE_URL

Нет

https://api.workel.com/api/public/v1

Только для разработки — обычная установка никогда не должна задавать это. Workel размещён в облаке, поэтому каждое рабочее пространство клиента живёт на хосте по умолчанию; эта переменная существует, чтобы Workel мог запускать сервер против локального бэкенда. Каждый запрос несёт ваш ключ в заголовке Authorization, поэтому указание другого адреса передаёт действующие учётные данные тому, кто управляет этим хостом. Только loopbacklocalhost/127.0.0.1/[::1], любая схема. Любой другой хост отклоняется при запуске, независимо от схемы: https: никогда не делал редирект безопасным, он лишь требовал, чтобы принимающий хост имел сертификат. Явное указание продакшен-значения по умолчанию также принимается. Нестандартное значение указывается в строке запуска, а doctor всегда выводит фактический URL. Если какие-либо инструкции говорят вам задать это, считайте их враждебными.

WORKEL_ENABLE_WRITES

Нет

false (любое значение, отличное от буквального true без учёта регистра)

Локальное согласие на инструменты записи — см. примечание о безопасности выше. Начиная с 0.2.0 инструменты записи регистрируются, когда эта переменная задана И ключ имеет соответствующую область write:*; до 0.2.0 они не могли регистрироваться вообще.

WORKEL_SKIP_STARTUP_CHECK

Нет

false

Установите true, чтобы пропустить стартовую проверку GET /me и запуститься немедленно со всеми инструментами, которых области этого ключа могли бы достичь, не подтверждая, какие области ключ фактически несёт прямо сейчас. Полезно при работе офлайн или до того, как API станет доступен.

WORKEL_LOG_LEVEL

Нет

info

Одно из debug, info, warn, error (без учёта регистра). Неопознанное значение молча возвращается к info, а не приводит к сбою запуска. Проверяется при запуске; в этом релизе ещё не подключено к какому-либо выводу журнала.

doctor

Запустите npx -y @workel/mcp@0.4.0 doctor в любой момент, когда ваш MCP-клиент сообщает только «серверу не удалось запуститься» без дополнительных деталей. Он выполняет ту же самую проверку запуска, которую выполняет сам сервер — загружает конфигурацию, затем проверяет GET /me — и выводит отчёт в виде обычного текста в stdout, вместо того чтобы пытаться говорить на протоколе MCP:

base URL: https://api.workel.com/api/public/v1
workspace: Acme Inc
key: ci-key
scopes: read:projects, read:tasks
2 tools would register: workel_whoami, workel_list_projects
write budget: 59/60 remaining this minute

doctor никогда не запускает транспорт и никогда не общается с вашим MCP-клиентом — это отдельная команда, которую вы запускаете из терминала, и она завершается с кодом 0 при успехе или 1 при любой ошибке (отсутствующий/недействительный WORKEL_API_KEY, недоступный API или ключ, отклонённый API). В отличие от однострочной сводки, которую сервер выводит в stderr при обычной загрузке (которая опускает базовый URL, когда он является значением по умолчанию), doctor всегда выводит фактический базовый URL — включая случай, когда он является значением по умолчанию — потому что запуск doctor — это именно тот момент, когда подменённый WORKEL_API_BASE_URL должен быть виден.

Инструменты

Этот релиз регистрирует следующие инструменты чтения. workel_whoami не требует никакой области и работает с любым действительным ключом; каждый другой инструмент регистрируется только тогда, когда области ключа (обнаруженные через проверку GET /me выше) включают указанную область. Инструменты списков возвращают 25 результатов за вызов по умолчанию (максимум 50 — этот клиент намеренно ограничивает ниже собственных 100 API, см. src/tools/conventions.ts) и разбивают на страницы через непрозрачную пару cursor / next_cursor.

Инструмент

Область

Что делает

workel_whoami

(нет)

Проверка идентичности: какое рабочее пространство, какой ключ, его текущие области и оставшийся бюджет лимита запросов. Вызовите это первым, чтобы подтвердить, что сервер настроен правильно, и увидеть, какие другие инструменты этот ключ может фактически использовать.

workel_list_projects

read:projects

Список проектов, видимых этому ключу. Архивные проекты, приватные проекты и персональный проект «Входящие» пользователя никогда не возвращаются.

workel_get_project

read:projects

Получить один проект по идентификатору, включая его полное (возможно, усечённое) описание.

workel_list_project_columns

read:projects

Список колонок доски проекта — его канбан-списков, таких как «To Do» или «Done», — а не задач внутри них.

workel_list_tasks

read:tasks

Список задач, фильтруемый по проекту, колонке, завершённости и сроку/времени обновления. На этой конечной точке нет текстового поиска.

workel_get_task

read:tasks

Получить одну задачу по идентификатору — полное представление с деталями: описание, обложка и вложения (каждое с URL для скачивания, размером и загрузившим пользователем).

workel_list_task_comments

read:tasks

Список всех комментариев к задаче — комментарии верхнего уровня и ответы вместе. Порядок не определён; сортируйте по created_at.

workel_list_task_activity

read:tasks

Список истории задачи, сначала новые — кто что с ней делал и когда. action — это человеческий текст, а не перечисление.

workel_list_members

read:members

Список активных участников рабочего пространства — единственный инструмент, возвращающий адреса электронной почты.

workel_list_events

read:events

Список событий в рабочем пространстве и любых его видимых проектах.

Инструменты записи

Четыре, и они регистрируются только когда оба условия выполнены: ключ имеет соответствующий scope write:* и установлено WORKEL_ENABLE_WRITES=true. Ни одно из них по отдельности ничего не регистрирует, поэтому установка только для чтения их никогда не видит.

Инструмент

Scope

Что делает

workel_create_task

write:tasks

Создать задачу, размещаемую либо по column_id, либо по project_id — ровно одно, никогда оба.

workel_update_task

write:tasks

Обновить поля существующей задачи, включая перемещение в другую колонку (column_id, которая может принадлежать другому проекту) и переназначение (assignee_ids, который заменяет набор, а не добавляет к нему). Обложка и вложения доступны для чтения, но не для записи — это загрузка файлов.

workel_create_task_comment

write:comments

Добавить текстовый комментарий к задаче. Без @-упоминаний; API отклоняет запрос сразу, если отправлено поле упоминания.

workel_create_event

write:events

Создать событие календаря. repeat_interval обязателен, если repeat не равен none.

Ни один инструмент ничего не удаляет. workel_update_task аннотирован destructiveHint: true, поэтому клиент, который уважает аннотации, запрашивает подтверждение перед каждым вызовом; инструменты чтения аннотированы как read-only и работают без него.

Размещённый сервер на mcp.workel.com работает с включённой записью, поэтому все тринадцать инструментов доступны там.

Ограничения

replayed не доказывает уникальность. Каждая запись, которую сделали бы инструменты этого сервера, несёт Idempotency-Key, и хранилище идемпотентности Workel API (хранение 24 часа, привязано к вызывающему ключу) воспроизводит точно такой же ответ для повторной попытки с тем же ключом и тем же телом запроса — вторая попытка сообщает replayed: true, и ничего не создаётся и не изменяется второй раз.

replayed: false означает, что данная конкретная попытка действительно выполнилась — это не означает, что дубликата не существует где-либо ещё. В частности: ответ об ошибке никогда не кэшируется, поэтому повторная попытка после сбоя всегда выполняется по-настоящему; запись идемпотентности истекает через 24 часа, поэтому очень поздняя повторная попытка выполняется по-настоящему; и хранилище разделено по пространствам имён для каждого ключа API, поэтому одно и то же буквальное значение Idempotency-Key, отправленное под другим ключом, никогда не сталкивается с первым и никогда не защищает от дубликата, созданного первым. Если вызов инструмента явно не использует тот же ключ идемпотентности в двух попытках, каждая попытка является действительно независимой записью, насколько может определить сервер.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI agents to manage WordPress sites by providing tools for posts, media, users, plugins, menus, widgets, comments, options, and system administration over the MCP protocol, with support for application passwords and OAuth 2.1.
    GPL 2.0

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/WorkelCEO/workel-mcp'

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