MCP сервер

MCP-сервер открывает данные FreshOffice внешним AI-инструментам по протоколу Model Context Protocol: модель получает доступ к нужным сущностям системы — компаниям, контактам, сделкам, задачам, почте — и работает с ними из своего интерфейса.

Параметры подключения:

Параметр Значение
Адрес (endpoint) https://mcp.freshoffice.ru/mcp
Транспорт Streamable HTTP
Авторизация Вход через браузер (OAuth) или заголовок Authorization: Bearer <токен>

Два способа авторизации

Вход через браузер (OAuth) — самый простой способ: добавьте сервер, войдите со своим логином и паролем — готово. Так подключаются claude.ai, Claude Code и другие клиенты с поддержкой OAuth.

Каждое такое подключение появляется в реестре токенов (Настройка → API) отдельной строкой «MCP OAuth: имя приложения». Отключите строку — и доступ этого приложения будет немедленно отозван.

Токен API — универсальный способ для клиентов без поддержки OAuth. Используется тот же токен, что и для публичного API. Как его получить — в разделе Быстрый старт API: Настройка → API.

Важно

Токен даёт доступ к данным вашего аккаунта FreshOffice. Не публикуйте его и не передавайте третьим лицам. Если токен скомпрометирован — отключите его в реестре токенов (Настройка → API), и весь трафик по нему будет остановлен.

Подключение

Токен не нужен — подключение через вход в аккаунт:

  1. Откройте Settings → Connectors → Add custom connector.
  2. Укажите адрес https://mcp.freshoffice.ru/mcp.
  3. Нажмите Connect — откроется страница входа FreshOffice. Войдите со своим логином и паролем.

После входа инструменты FreshOffice появятся в чате. Доступ можно отозвать в любой момент: удалите коннектор в claude.ai или отключите строку «MCP OAuth: Claude» в реестре (Настройка → API).

Токен не нужен — при первом обращении откроется браузер со страницей входа FreshOffice:

claude mcp add --transport http freshoffice https://mcp.freshoffice.ru/mcp

Инструменты появятся в новой сессии Claude Code. Проверить подключение и пройти авторизацию можно командой /mcp внутри сессии.

По умолчанию сервер добавляется только для текущего проекта. Чтобы он был доступен во всех проектах, добавьте флаг --scope user.

Вариант с токеном (если вход через браузер не подходит, например на сервере):

claude mcp add --transport http freshoffice https://mcp.freshoffice.ru/mcp \
  --header "Authorization: Bearer <токен>"

Сохраните токен в переменную окружения и добавьте сервер в файл конфигурации ~/.codex/config.toml:

export FRESHOFFICE_MCP_TOKEN="<токен>"
[mcp_servers.freshoffice]
url = "https://mcp.freshoffice.ru/mcp"
bearer_token_env_var = "FRESHOFFICE_MCP_TOKEN"
enabled = true

Либо командой через CLI:

codex mcp add freshoffice --url https://mcp.freshoffice.ru/mcp

После этого перезапустите Codex — сервер появится в списке codex mcp list.

Откройте Settings → MCP → Add new MCP Server или создайте файл .cursor/mcp.json в корне проекта (для всех проектов — ~/.cursor/mcp.json):

{
  "mcpServers": {
    "freshoffice": {
      "url": "https://mcp.freshoffice.ru/mcp",
      "headers": {
        "Authorization": "Bearer <токен>"
      }
    }
  }
}

После сохранения сервер появится в списке Settings → MCP — переключатель должен стать зелёным.

В свежих версиях Cursor можно не указывать headers — тогда при подключении откроется страница входа FreshOffice (OAuth).

Создайте файл .vscode/mcp.json в рабочей папке:

{
  "servers": {
    "freshoffice": {
      "type": "http",
      "url": "https://mcp.freshoffice.ru/mcp",
      "headers": {
        "Authorization": "Bearer <токен>"
      }
    }
  }
}

Затем запустите сервер из панели MCP (команда MCP: List Servers в палитре команд).

В свежих версиях VS Code можно не указывать headers — тогда при запуске сервера откроется страница входа FreshOffice (OAuth).

Подойдёт любой MCP-клиент с поддержкой транспорта Streamable HTTP. Если клиент поддерживает OAuth-авторизацию MCP — достаточно указать адрес https://mcp.freshoffice.ru/mcp, вход пройдёт через браузер. Иначе укажите в настройках:

  • URL: https://mcp.freshoffice.ru/mcp
  • Заголовок: Authorization: Bearer <токен>

Пример прямого вызова для проверки подключения:

curl -X POST https://mcp.freshoffice.ru/mcp \
  -H "Content-Type: application/json" \
  -H "Accept: application/json, text/event-stream" \
  -H "Authorization: Bearer <токен>" \
  -d '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-03-26","capabilities":{},"clientInfo":{"name":"test","version":"1.0"}}}'

В ответе придёт информация о сервере и его инструкции — значит, подключение работает. Дальнейшие запросы (например, tools/list) отправляются с заголовком Mcp-Session-Id из заголовков этого ответа — MCP-клиенты делают это автоматически.

Платформам, которые пока не поддерживают Streamable HTTP (например, агенты Yandex AI Studio), укажите вместо этого адрес легаси-транспорта HTTP+SSE: https://mcp.freshoffice.ru/mcp/sse — с тем же заголовком авторизации.

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

Инструмент Что делает
list_records Универсальный постраничный список записей любого модуля: компании, задачи, документы, финансы, продажи, сделки, товары, почта, журнал — по всем компаниям сразу, с фильтрами по датам, ответственным и тегам
list_users Список активных пользователей (менеджеров)
get_directory Значения справочника по его ID: типы компаний, статусы сделок, категории
list_custom_filters Пользовательские фильтры модуля
list_additional_fields Дополнительные поля модуля
insert_company Создание компании или частного лица — сразу с почтами, телефонами, контактными лицами и реквизитами (ИНН)
update_company Частичное обновление карточки компании: статус, ответственный, примечание, адрес
get_company Карточка компании целиком: поля, все email и телефоны, реквизиты, контактные лица
lookup_company_official Официальные данные из ЕГРЮЛ/ЕГРИП по ИНН или названию: наименование, коды, адрес, статус, руководитель (только для российского контура)
add_company_requisites Добавление реквизитов существующей компании: ИНН, КПП, ОГРН, адреса, руководитель, банк
find_company_contacts Контакты компании с её собственного сайта: главная плюс страницы «Контакты», «О компании», «Реквизиты». Возвращает найденные email с указанием страницы и уровня доверия, телефоны и ИНН из подвала. Нужен, когда у карточки нет почты: в реестре её обычно нет или она давно мертва, а на сайте — живая
list_contacts Контактные лица с телефонами и почтой: по компании или поиском по имени
insert_contact Добавление контактного лица к существующей компании
update_contact Частичное обновление контактного лица: должность, ФИО, статус, примечание
add_company_phone Добавление телефона существующей компании или контактному лицу
add_company_email Добавление email существующей компании или контактному лицу
list_tasks Задачи одной компании или сделки; все задачи и за период — через list_records
insert_task Создание задачи: текст, исполнитель, сроки, напоминание
update_task Частичное обновление задачи, включая закрытие с результатом
insert_deal Создание сделки, привязанной к компании
list_deal_goods Товарные позиции сделки
add_deal_goods Добавление товаров из каталога в сделку
update_deal_good Изменение позиции сделки: количество, цена, скидка
list_document_goods Товарные позиции документа
add_document_goods Добавление товаров из каталога в документ
list_documents Документы одной компании или сделки; за период и по всем компаниям — через list_records
insert_document Создание документа с автогенерацией номера
update_document Частичное обновление документа: сумма, статус, номер, даты
list_finance Движения денежных средств одной компании или сделки; за период и по всем компаниям — через list_records
insert_finance Добавление прихода или расхода по счёту
update_finance Частичное обновление движения: сумма, статья, счёт, примечание
update_deal Частичное обновление сделки: смена этапа, суммы, ответственного, дат — меняются только переданные поля
list_goods Каталог товаров и услуг: поиск по названию, артикулу, разделу
insert_good Добавление товара или услуги в каталог
update_good Частичное обновление товара: цена, остаток, артикул
list_mail_accounts Список почтовых аккаунтов пользователя
send_email Отправка письма через настроенный почтовый аккаунт

Набор инструментов постепенно расширяется. Подробное описание методов публичного API, на которые они опираются, — в разделе API.

Как это использовать

После подключения достаточно обычного запроса на естественном языке — модель сама выберет нужный инструмент:

  • «Найди и добавь 10 новых потенциальных клиентов» — модель найдёт компании в открытых источниках, уточнит у вас ответственного и тип контрагента, и создаст карточки с телефонами, почтой и контактными лицами
  • «Покажи список клиентов, добавленных вчера»
  • «Найди компанию с ИНН 7801234567»
  • «Создай компанию Ромашка с телефоном +7 812 123-45-67 и почтой info@romashka.ru»
  • «Сколько сделок в работе у менеджера Екатерины за август?»
  • «Какие поступления денег были сегодня?»
  • «Переведи сделку с Ромашкой на этап Согласование и поставь сумму 250 000»
  • «Поставь Владимиру задачу позвонить в Ромашку завтра в 15:00 с напоминанием за полчаса»
  • «Зафиксируй приход 150 000 от Продстара на расчётный счёт по статье Продажи»

Частые вопросы

Как отозвать доступ AI-инструмента

Все подключения — и по токену, и через вход в браузере — видны в реестре токенов (Настройка → API). Подключения через браузер подписаны как «MCP OAuth: имя приложения». Отключите строку — и доступ будет остановлен: активные запросы перестанут проходить, а продлить доступ приложение не сможет.

Подключил сервер, но инструменты не появились

MCP-клиенты загружают список инструментов при старте сессии. Начните новую сессию (новый чат) — инструменты подтянутся автоматически.

Клиент видит старый набор инструментов

Список инструментов кешируется на время подключения. Если сервер обновился, а новые инструменты не видны — переподключите интеграцию или начните новую сессию.

Вызовы возвращают ошибку авторизации

При входе через браузер: проверьте, что подключение не отключено в реестре (Настройка → API, строка «MCP OAuth: …»). Если отключали и включили заново или доступ истёк — переподключите интеграцию, снова войдя в аккаунт.

При подключении по токену: проверьте, что токен активен в реестре (Настройка → API) и что заголовок передаётся именно в виде Authorization: Bearer <токен> — со словом Bearer и пробелом перед токеном.

Можно ли выдать AI-инструменту ограниченный доступ?

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

Предыдущая
Следующая