MCP-сервер
Bordio говорит на Model Context Protocol (MCP), поэтому ИИ-ассистент читает и меняет вашу работу напрямую, а не через копирование туда-обратно.
https://api.bordio.com/mcpАутентификация — OAuth: вы подтверждаете подключение в браузере и нигде не вставляете ключ. API-ключи предназначены для серверных интеграций и здесь не работают.
С чего начать
Заголовок раздела «С чего начать»Три условия решают, заработает ли подключение вообще. Проверьте их первыми — почти все неудачные настройки упираются в одно из них, а не в клиент.
- Командная организация. В личной организации интеграций нет ни на одном тарифе, и подключить её нельзя.
- Платный тариф или активный триал. Триал работает полностью, карта не требуется. На бесплатном тарифе и после прекращения оплаты подключение создаётся, но каждый вызов инструмента отклоняется.
- Участие, а не гостевой доступ. Гость не может авторизовать приложение для организации. Попросите администратора сделать вас участником.
Условия проверяются на каждом вызове, а не только при подключении — см. требования к тарифу и организации.
Подключение
Заголовок раздела «Подключение»Все клиенты ниже обращаются к одному и тому же адресу. Токен копировать не нужно: клиент откроет браузер, вы войдёте в Bordio и подтвердите доступ, а результат он сохранит сам.
Claude Desktop
Заголовок раздела «Claude Desktop»Settings → Connectors → Add custom connector → вставьте адрес. Подтвердите в открывшемся окне браузера.
Claude Code
Заголовок раздела «Claude Code»claude mcp add --transport http bordio https://api.bordio.com/mcpЗатем выполните /mcp, выберите bordio и пункт Authenticate. Чтобы войти, не открывая сессию, выполните claude mcp login bordio.
Добавьте сервер в ~/.cursor/mcp.json (доступен везде) или в .cursor/mcp.json (только в этом проекте):
{ "mcpServers": { "bordio": { "url": "https://api.bordio.com/mcp" } }}Cursor подхватит изменение и при первом обращении начнёт вход через браузер.
VS Code
Заголовок раздела «VS Code»Добавьте сервер в .vscode/mcp.json:
{ "servers": { "bordio": { "type": "http", "url": "https://api.bordio.com/mcp" } }}codex mcp add bordio --url https://api.bordio.com/mcpcodex mcp login bordiologin откроет браузер и сохранит результат. Codex регистрируется в Bordio на лету, поэтому получать идентификатор клиента заранее не нужно; если ваша версия спросит способ регистрации, выберите динамическую (--oauth-client-registration dcr).
Старые сборки обслуживают серверы по URL прежним MCP-стеком, где вход через OAuth не выполняется. Если login падает или сервер не подключается, добавьте в ~/.codex/config.toml и повторите:
experimental_use_rmcp_client = trueТо же самое через файл, если удобнее править его напрямую:
[mcp_servers.bordio]url = "https://api.bordio.com/mcp"Другие ассистенты
Заголовок раздела «Другие ассистенты»Всё, что поддерживает удалённые MCP-серверы по HTTP и умеет проходить вход через OAuth — Windsurf, Zed и прочие, — работает так же: дайте адрес и подтвердите в браузере.
Автоматизации: используйте REST API
Заголовок раздела «Автоматизации: используйте REST API»n8n, Make, Zapier и собственные скрипты — другой случай, и MCP им не подходит.
Вход здесь означает, что человек подтверждает доступ в браузере, и выданный токен принадлежит этому человеку. У автоматизации, которая запускается в три часа ночи, браузер открывать некому, а выдать ей постоянные учётные данные для MCP нельзя — Bordio не раздаёт OAuth-клиентам секреты для самостоятельного использования.
Для автоматизаций возьмите REST API с секретным API-ключом: он для этого и сделан — долгоживущий ключ, без браузера и без срока, за которым надо следить. Всё, что ассистент делает через MCP, доступно и там.
Свой MCP-клиент
Заголовок раздела «Свой MCP-клиент»Если вы пишете клиент, а не пользуетесь готовым, регистрировать вручную ничего не нужно. Bordio реализует цепочку discovery, описанную в спецификации MCP, поэтому совместимый клиент находит всё по одному адресу эндпоинта:
- Метаданные защищённого ресурса по
/.well-known/oauth-protected-resource/mcp— указывают на сервер авторизации; - Метаданные сервера авторизации по
/.well-known/oauth-authorization-server— эндпоинты, права и поддерживаемые способы; - Client ID Metadata Documents (способ, который спецификация теперь предпочитает): разместите JSON-документ с описанием клиента и передайте его HTTPS-адрес как
client_id. Мы его загрузим, проверим, чтоclient_idвнутри совпадает с адресом, откуда он получен, и сверим ваши redirect URI с ним; - Динамическая регистрация по
/oauth/register— запасной путь для клиентов, которые не поддерживают вышеперечисленное.
PKCE обязателен, только S256. Loopback-адреса возврата (http://127.0.0.1/... и http://localhost/...) принимаются с любым портом, как это и нужно нативным клиентам.
Каким бы путём вы ни пошли, экран подтверждения показывает человеку домен, на который вернётся его код авторизации, — это единственное утверждение о вашем приложении, которое он может проверить, поэтому пусть домен будет узнаваемым. См. подтверждение приложения.
Что умеет ассистент
Заголовок раздела «Что умеет ассистент»После подключения спрашивайте обычными словами: «что у меня сегодня», «создай задачу продлить SSL-сертификат до пятницы», «что команда закрыла на прошлой неделе».
| Область | Что может ассистент |
|---|---|
| Задачи | Список с фильтрами, чтение задачи с подзадачами и комментариями, создание, изменение, закрытие, удаление |
| Подзадачи | Список, создание, изменение, удаление |
| События | Список и чтение событий календаря, создание и изменение, работа с участниками |
| Корзина | Посмотреть удалённое и вернуть задачу или событие — удаление не окончательно |
| Повестка | Всё в заданном окне дат — встречи, дедлайны и запланированная работа — одним упорядоченным списком |
| Сводка | Количества за период, по статусам и исполнителям, без перечисления каждой записи |
| Комментарии | Чтение и написание комментариев к задачам и событиям |
| Учёт времени | Чтение и запись затраченного времени |
| Проекты, участники, теги | Чтение структуры организации; архивирование и разархивирование проектов; работа с тегами |
| Справочники | Статусы и типы задач, типы событий, статусы проектов, кастомные поля |
Всё, до чего ассистент дотягивается через MCP, он делает с вашими правами. Проект, который не видите вы, он не увидит никогда.
Ничего необратимого ассистент здесь не делает. Удаление задачи или события отправляет их в корзину, откуда их можно вернуть в течение 30 дней; проекты архивируются, а не удаляются. Инструмента, уничтожающего запись насовсем, не существует — см. удаление и восстановление.
Готовые сценарии
Заголовок раздела «Готовые сценарии»Сервер поставляет три готовых запроса. В Claude Desktop они видны как команды, которые можно выбрать, — формулировку придумывать не нужно:
| Сценарий | Что делает |
|---|---|
| Что у меня сегодня | Встречи, дедлайны и запланированная работа на сегодня одним упорядоченным списком, с указанием, что заслуживает внимания в первую очередь |
| Разобрать просроченное | Группирует просроченные задачи и предлагает каждой новую дату — пока вы не подтвердите, ничего не меняется |
| Подвести итоги недели | Что сделано, что съехало, что ждёт на следующей неделе |
Каждый принимает необязательное название проекта, чтобы сузить выборку.
Привязать конкретную запись
Заголовок раздела «Привязать конкретную запись»Некоторые клиенты позволяют приложить ресурс к разговору, вместо того чтобы просить ассистента его искать. Bordio отдаёт четыре:
bordio://workspacebordio://project/{project_id}bordio://task/{task_id}bordio://event/{event_id}Пользуйтесь ими, когда уже знаете, о какой записи речь: ассистент будет работать прямо с ней, а не искать её. Списки остаются на стороне инструментов — там, где им и место вместе с фильтрами и постраничностью.
Экран подтверждения показывает ровно то, что просит приложение, и вы выдаёте права на одну организацию. Если вы состоите в нескольких, то выбираете одну при подтверждении: подключение никогда не выходит за её пределы.
Ассистент видит только те инструменты, которые покрыты его правами: если подключение подтвердили только на чтение, инструменты записи не просто отклоняются — они не предлагаются вовсе.
| Право | Что покрывает |
|---|---|
tasks:read / tasks:write |
Задачи, подзадачи и комментарии к ним |
events:read / events:write |
События календаря, их участники и комментарии к ним |
projects:read / projects:write |
Проекты и их настройка — статусы, типы, кастомные поля |
time_logs:read / time_logs:write |
Учёт времени |
tags:read / tags:write |
Теги |
members:read |
Другие люди в организации, включая их адреса почты |
profile:read |
Ваши собственные имя и адрес почты |
offline_access |
Оставаться подключённым, не спрашивая вас заново каждый час |
profile:read стоит запрашивать даже ассистенту, который только читает: без него никто не ответит на «что у меня сегодня» — ассистент попросту не знает, кто из участников организации вы.
Клиент, запросивший право, которое ему не положено, ошибки не получит: право отбрасывается, остальные выдаются, а экран подтверждения показывает то, что будет выдано на самом деле. Читайте выданный список из ответа на запрос токена, а не считайте, что получили всё запрошенное.
Посмотреть и отозвать подключения можно в любой момент в Профиль → Интеграции → Приложения с доступом к Bordio. Отзыв действует немедленно.
Требования к тарифу и организации
Заголовок раздела «Требования к тарифу и организации»Подключиться может кто угодно: экран подтверждения появляется для любой организации, где вы состоите, независимо от тарифа. Тариф ограничивает использование — проверяется каждый вызов инструмента, а не только первый.
| Ситуация | Что происходит |
|---|---|
| Командная организация на тарифе с интеграциями | Всё работает |
| Командная организация на триале | Всё работает, карта не требуется |
| Командная организация, где платёж не прошёл, но провайдер ещё повторяет попытки | Продолжает работать: не прошедшее с первого раза списание — не отказ от продукта |
| Командная организация на бесплатном тарифе или после окончательной остановки оплаты | Подключение остаётся, но каждый вызов инструмента возвращает workspace_plan_required, пока тариф не решён |
| Личная организация | Подключить нельзя вовсе: integrations_unavailable, на любом тарифе |
| Вы гость в организации | Авторизовать приложение для неё нельзя: guest_access_denied. Попросите администратора сделать вас участником |
Проверка на каждом вызове — намеренная: подтверждение, выданное при действующем тарифе, не продолжает работать после того, как тариф закончился. Верно и обратное — как только тариф возвращается, существующее подключение начинает работать снова, переподключать ничего не надо.
Одно подключение — одна организация. Организацию вы выбираете на экране подтверждения, и за её пределы подключение не выходит. Чтобы работать с другой, отзовите подключение в Профиль → Интеграции → Приложения с доступом к Bordio и авторизуйте заново, выбрав нужную.
Ограничения
Заголовок раздела «Ограничения»| Ограничение | Значение |
|---|---|
| Вызовы инструментов на чтение | 180 в минуту |
| Вызовы инструментов на запись | 60 в минуту |
| Запросы к эндпоинту, включая служебные сообщения протокола | 300 в минуту |
| Один вызов инструмента | 30 секунд |
| Один ответ | 128 КБ |
Служебные сообщения протокола — подключение, получение списка инструментов — бюджет вызовов не расходуют. Чтение щедрее, чем в REST API, потому что один вопрос обычно превращается в короткую цепочку вызовов.
Если ответ выходит за предел размера, вызов отклоняется с подсказкой сузить запрос, а не обрезается молча: ассистент, работающий с обрезанным списком, сделает выводы по данным, о неполноте которых не подозревает.
Если что-то не работает
Заголовок раздела «Если что-то не работает»| Что вы видите | Что это значит |
|---|---|
| Клиент раз за разом просит авторизоваться, и подтверждение каждый раз проходит | Токен отвергается уже после выдачи. Проверьте в Профиль → Интеграции → Приложения с доступом к Bordio, что подключение не отозвано и не заблокировано, затем удалите сервер в клиенте и добавьте заново. |
workspace_plan_required на каждый вызов |
Организация на бесплатном тарифе либо оплата прекращена. Само подключение исправно и заработает, как только вернётся тариф. |
integrations_unavailable |
Вы подтвердили доступ для личной организации. Подключите командную. |
guest_access_denied |
Вы там гость. Гости не могут авторизовывать приложения — попросите администратора сделать вас участником. |
connection_blocked |
Администратор остановил это подключение. Это обратимо: попросите вернуть доступ. Повторное подтверждение при действующей блокировке не поможет. |
| Ассистент говорит, что задачи нет, а вы её видите | Подключение работает с вашими правами и в одной организации. Запись из другой организации или из проекта, где вас нет, для него действительно недоступна. |
| Инструмента записи нет вовсе | Подключение подтвердили без этого права. Отзовите и подтвердите заново, выдав его. |
| Вызовы начали отклоняться после всплеска активности | Вы упёрлись в минутный лимит. В ошибке указано, сколько ждать. |
Подтверждение приложения
Заголовок раздела «Подтверждение приложения»Подключиться может любое приложение: MCP позволяет приложению зарегистрироваться самостоятельно, и мы этого не ограничиваем. Ничего при этом не выдаётся втихую — приложение получает ровно те права, которые подтвердил человек, и не больше.
На экране подтверждения показано то, что действительно можно проверить:
| Показано | Почему этому можно верить |
|---|---|
| Название и логотип приложения | Присланы самим приложением, если клиент зарегистрировался сам, либо взяты из документа метаданных на вашем домене. |
| Домен, на который вернётся код | Подделать его, не владея этим доменом, нельзя. Для настольных и редакторских клиентов экран вместо домена говорит, что код вернётся на компьютер самого человека. |
| Список прав | Ровно то, что будет выдано. |
Очереди на проверку нет и подавать заявку некуда: приложение, опубликовавшее документ метаданных на своём домене, просто отображается под этим доменом. Известным клиентам — среди них Claude, Slack, Cursor, Codex и VS Code — название и логотип дополнительно подставляем мы, поэтому они узнаваемы с первого взгляда.
Ассистент видит отказы как обычные ответы и может исправиться и повторить: недоступная задача возвращается как «не найдено», а не как сломавшийся сервер.
| Ситуация | Что происходит |
|---|---|
| Не выполнен вход или подтверждение истекло | Клиент предложит авторизоваться заново |
| У приложения нет права | Вызов отклоняется, клиенту сообщается, какого права не хватает |
| Достигнут лимит запросов | Вызов отклоняется с указанием, сколько ждать |
| Запись не найдена или вне вашего доступа | Ассистенту сообщается, что запись недоступна |
- Аутентификация — API-ключи для серверных интеграций
- Лимиты — ограничения REST API
- Ошибки — полный каталог ошибок