Перейти к основному содержимому

MCP (Протокол контекста модели)

MCP позволяет VibeOS подключаться к внешним серверам инструментов, чтобы агент мог использовать инструменты, находящиеся вне самого VibeOS — GitHub, базы данных, файловые системы, стеки браузеров, внутренние API и многое другое.

Если вы когда-нибудь хотели, чтобы VibeOS использовал инструмент, который уже существует где-то еще, MCP обычно является самым простым способом сделать это.

Что дает вам MCP​

  • Доступ к внешним экосистемам инструментов без предварительного написания собственного инструмента VibeOS.
  • Локальные stdio-серверы и удаленные серверы HTTP MCP в одной конфигурации.
  • Автоматическое обнаружение и регистрация инструмента при запуске
  • Оболочки утилит для ресурсов MCP и подсказки, если они поддерживаются сервером.
  • Фильтрация для каждого сервера, поэтому вы можете предоставлять только те инструменты MCP, которые действительно хотите, чтобы VibeOS видел.

Быстрый старт​

  1. Поддержка MCP поставляется со стандартной установкой — никаких дополнительных действий не требуется.

  2. Добавьте сервер MCP в ~/.vibeos/config.yaml:

mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
  1. Запустите VibeOS:
vibeos chat
  1. Попросите VibeOS использовать возможности, поддерживаемые MCP.

Например:

List the files in /home/user/projects and summarize the repo structure.

VibeOS обнаружит инструменты сервера MCP и будет использовать их как любой другой инструмент.

Каталог: установка в один клик для одобренных Nous MCP​

VibeOS представляет тщательно подобранный каталог серверов MCP, проверенный сотрудниками Nous. и слились. По умолчанию они отключены — устанавливайте только то, что вам действительно нужно. хочу.

vibeos mcp                # interactive picker (default)
vibeos mcp catalog # plain-text list, scriptable
vibeos mcp install n8n # install a catalog entry by name

Средство выбора показывает каждую запись с ее текущим статусом:

n8n          available              Manage and inspect n8n workflows from VibeOS
linear enabled Linear issue/project management (remote OAuth)
notion available Notion workspace search/fetch (remote OAuth)
perplexity available Perplexity Sonar search / ask (API key)
scholar-search available Semantic Scholar + arXiv literature tools
github installed (disabled) GitHub repo + PR tools

Нажмите Enter в строке, чтобы установить (и пройти через все необходимые учетные данные), включить, отключить или удалить. Записи каталога хранятся под optional-mcps/ в репозитории vibeos-agent — наличие в этом каталоге означает Нус одобрение. Не существует уровня представления сообщества; записи добавляются объединение PR.

Для записей каталога могут потребоваться:

  • Ключ API — VibeOS запрашивает во время установки и записывает значение в ~/.vibeos/.env. Несекретные значения (базовые URL-адреса) сохраняются в том же файле.
  • OAuth (удаленный MCP) — в вашем конфиге прописан как auth: oauth; MCP клиент открывает браузер при первом подключении.
  • OAuth (сторонний поставщик, например Google/GitHub) — VibeOS указывает на vibeos auth <provider>`, если вы еще не прошли аутентификацию.

Выбор инструмента во время установки​

После настройки учетных данных VibeOS проверяет сервер MCP, чтобы составить список всех инструмент, который он предоставляет и представляет контрольный список:

Select tools for 'linear' (SPACE toggle, ENTER confirm)
[x] find_issues Find issues matching a query
[x] get_issue Get a single issue
[x] create_issue Create a new issue
[ ] delete_workspace Delete a Linear workspace
...

Предварительно проверенные строки берутся из:

  1. Ваш предыдущий выбор, если вы уже устанавливали эту запись ранее (переустанавливает сохраните то, что у вас было — значения по умолчанию манифеста не отменяют их)
  2. tools.default_enabled манифеста, если запись объявляет один (некоторые записи каталога предварительно удаляют мутирующие или редко полезные инструменты)
  3. Все, если ни то, ни другое не применимо.

Отправьте контрольный список с помощью ENTER. В папку попадают только проверенные инструменты. mcp_servers.&lt;name&gt;.tools.include. Если выбрать все, фильтр не будет работать. написано (чистейшая форма конфига, идентичное поведение).

Если проверка не удалась (сервер недоступен, OAuth еще не завершен, служба резервного копирования не запущена), установка по-прежнему завершается успешно: манифест tools.default_enabled применяется напрямую (если объявлено) или фильтр не применяется. написано (если нет). Перезапустите vibeos mcp configure <name>`, как только сервер доступен для уточнения.

Модель доверия​

При установке записи каталога выполняется все, что указано в манифесте — git clone, команды bootstrap записи (pip install, npm install и т. д.) и в конечном итоге собственный код сервера MCP. Манифесты проходят PR-анализ. репозиторий VibeOS, поэтому Ноус просматривал каждую запись перед ее отправкой — но вам все равно следует прочитать манифест перед установкой, особенно Репозиторий поля source:, команды install.bootstrap: и любые Вызов transport.command:.

Манифесты живут по адресу optional-mcps/&lt;name&gt;/manifest.yaml на GitHub. Средство выбора также печатает source: URL манифеста при установке. время, чтобы вы могли быстро проверить исходный репозиторий. Веб-панель MCP страница отображает одну и ту же информацию для каждой записи каталога — транспорт, тип аутентификации, конечная точка URL (HTTP) или команда + аргументы (stdio), git install source/ref и команды начальной загрузки и примечания по настройке — с source:, отображаемым как кликабельная ссылка, позволяющая точно узнать, с чем именно связана или запускается запись. прежде чем нажать «Установить».

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

media:
icon: https://example.com/icon.png
screenshots:
- src: https://example.com/screen.png
alt: "Инструменты сервера видны в VibeOS"
caption: "Установлено и включено в настройках MCP"
demo:
src: https://example.com/demo.gif
kind: gif
caption: "OAuth и первый вызов инструмента"

result_examples:
- title: "Поиск issues"
tool: search_issues
description: "Возвращает найденные issues без включения инструментов изменения."
sample: "repo: org/project; query: cache invalidation"

Используйте media.screenshots только для реальных скриншотов продукта/сервера. src может быть стабильным удалённым URL изображения или относительным путём рядом с манифестом (например, assets/screen.png); VibeOS превращает локальные пути в отображаемые URL для Desktop/Dashboard. Используйте result_examples для коротких фактических примеров вызовов инструментов, которые работают с настройками манифеста по умолчанию.

Для локализованных экранов каталога манифест может добавить i18n-карты рядом с базовыми английскими полями. VibeOS применяет их, когда Desktop вызывает mcp.catalog.list с локалью или когда Dashboard запрашивает GET /api/mcp/catalog?locale=ru:

description_i18n:
ru: "Официальный удаленный MCP GitHub с read-first настройками."

media:
screenshots:
- src: assets/settings.png
alt: "GitHub MCP settings"
alt_i18n:
ru: "Настройки GitHub MCP"
caption: "Configured server"
caption_i18n:
ru: "Настроенный сервер"

result_examples:
- title: "Inspect a pull request"
title_i18n:
ru: "Проверить pull request"
description: "Reads PR metadata and discussion."
description_i18n:
ru: "Читает метаданные и обсуждение PR."
sample: "owner: org; repo: project; pullNumber: 123"
sample_i18n:
ru: "owner: org; repo: project; pullNumber: 123"

Совместимость версий манифеста​

В манифестах закреплен manifest_version. Каталог совместим с предыдущими версиями: если PR добавляет запись с более новым manifest_version, чем установленный VibeOS. понимает, сборщик выдаст предупреждение (⚠ '<имя>' требует более новой версии Обновление VibeOS) for that entry instead of silently hiding it. Run `vibeos чтобы установить последнюю версию VibeOS, когда вы это увидите.

Замена $\{ENV_VAR\} во время выполнения​

Внутри записи transport.command, transport.args, transport.url, и заполнители headers, $\{VAR\} разрешаются во время подключения к серверу. из переменных среды (которые включают в себя все, что есть в ~/.vibeos/.env). Это полезно, когда запись каталога хочет ссылаться на значение, которое пользователь настроено в другом месте — например. $\{HOME\}/foo или $\{MY_PROVIDER_TOKEN\}.

Обратите внимание, что это отличается от $\{INSTALL_DIR\} в манифестах каталога, который заменяется во время установки путем, в котором каталог клонировал запись репо в.

Обновление выбора инструмента позже​

vibeos mcp configure linear

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

Обновление манифеста каталога​

MCP никогда не обновляются автоматически. Перезапустите vibeos mcp install <name>` для обновления. после обновления VibeOS, если изменилась версия манифеста.

Чтобы добавить MCP в каталог, откройте PR на optional-mcps/.

Два типа серверов MCP​

Стдио-серверы​

Серверы Stdio работают как локальные подпроцессы и обмениваются данными через stdin/stdout..

mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"

Используйте stdio-серверы, когда:

  • сервер установлен локально
  • вам нужен доступ к локальным ресурсам с низкой задержкой
  • вы следуете документации сервера MCP, в которой показаны command, args и env.

HTTP серверы​

Серверы HTTP MCP — это удаленные конечные точки, к которым VibeOS подключается напрямую.

mcp_servers:
remote_api:
url: "https://mcp.example.com/mcp"
headers:
Authorization: "Bearer ***"

Используйте серверы HTTP, когда:

  • сервер MCP размещен в другом месте
  • ваша организация предоставляет внутренние конечные точки MCP.
  • вы не хотите, чтобы VibeOS создавал локальный подпроцесс для этой интеграции

Серверы HTTP с аутентификацией OAuth​

Большинству размещенных серверов MCP (Linear, Sentry, Atlassian, Asana, Figma, Stripe и т. д.) требуется OAuth 2.1 вместо статического токена-носителя. Наборы auth: oauth и VibeOS обрабатывают обнаружение, динамическую регистрацию клиентов, PKCE, обмен токенами, обновление и пошаговую аутентификацию через MCP Python SDK.

mcp_servers:
linear:
url: "https://mcp.linear.app/mcp"
auth: oauth

При первом подключении VibeOS печатает авторизацию URL, открывает браузер, если это возможно, и ожидает обратного вызова OAuth на локальном порту обратной связи. Токены кэшируются по адресу ~/.vibeos/mcp-tokens/&lt;server&gt;.json с разрешениями 0o600; последующие запуски повторно используют их автоматически, пока обновление не завершится неудачно.

Удаленные / автономные хосты. Когда VibeOS работает на другом компьютере, чем ваш браузер, обратный вызов обратной связи не может достичь вашего ноутбука. Два способа завершения потока:

  • Вставка обратно (без настройки): на интерактивном терминале VibeOS печатает «Или вставьте перенаправление URL сюда…» рядом с авторизацией URL. Откройте URL в своем браузере, подтвердите, скопируйте полный URL, на котором заканчивается браузер (перенаправление покажет ошибку подключения — это ожидаемо), вставьте его в командную строку. Голые строки запроса ?code=…&state=… тоже работают.
  • Перенаправление порта SSH: ssh -N -L &lt;port&gt;:127.0.0.1:&lt;port&gt; user@host в отдельный терминал, затем дайте перенаправлению пройти нормально.

См. OAuth через SSH/Удаленные хосты для полного пошагового руководства, включая серверы без DCR (например, Slack), предварительно зарегистрированные client_id/client_secret, настройку области действия и повторную аутентификацию через vibeos mcp login <server>`.

Подводная ошибка — провайдеры, которые не поддерживают автоматическую регистрацию (Google Drive, Atlassian). Некоторые серверы отклоняют этап динамической регистрации клиента (RFC 7591), на котором основан простой auth: oauth — официальный сервер Google Drive (https://drivemcp.googleapis.com/mcp/v1) возвращает 400 Bad Request, поэтому клиент OAuth не создается и токен не получается. Признак незаметен: эти серверы также обслуживают tools/list без аутентификации, поэтому vibeos mcp login может перечислить инструменты и выглядеть так, как будто они работают, но каждый реальный вызов инструмента позже истекает по тайм-ауту. vibeos mcp login теперь обнаруживает это (он проверяет, действительно ли токен попал на диск) и предлагает вам предоставить собственный клиент OAuth. Создайте его в консоли провайдера и добавьте в конфиг:

mcp_servers:
googledrive:
url: "https://drivemcp.googleapis.com/mcp/v1"
auth: oauth
oauth:
client_id: "<your-oauth-client-id>"
client_secret: "<your-oauth-client-secret>"

Затем запустите vibeos mcp login googledrive — с предварительно зарегистрированным клиентом VibeOS пропускает регистрацию и запускает обычный процесс авторизации браузера.

Подводный камень — гонка с автоматической перезагрузкой конфигурации. Когда вы редактируете ~/.vibeos/config.yaml из работающего сеанса VibeOS, CLI автоматически перезагружает соединения MCP с таймаутом 30 секунд. Этого недостаточно для интерактивного потока OAuth. Добавьте запись, затем запустите vibeos mcp login <server>` с нового терминала — он ждет полные 5 минут, пока вы завершите аутентификацию.

mTLS/клиентские сертификаты​

Удаленные серверы HTTP MCP, которым требуется взаимная TLS (аутентификация по сертификату клиента), поддерживаются через client_cert/client_key. VibeOS передает разрешенный сертификат базовому клиенту HTTP для подтверждения связи TLS.

client_cert принимает три формы:

  • Единый комбинированный путь PEM — один файл, содержащий сертификат и закрытый ключ:
mcp_servers:
internal_api:
url: "https://mcp.internal.example.com/mcp"
client_cert: "~/.certs/mcp-client.pem"
  • A [cert, key] 2-tuple — сертификат и ключ в отдельных файлах (эквивалент настройке client_cert + client_key):
mcp_servers:
internal_api:
url: "https://mcp.internal.example.com/mcp"
client_cert: ["~/.certs/mcp-client.crt", "~/.certs/mcp-client.key"]
  • 3-кортеж [cert, key, password] — когда закрытый ключ зашифрован, третьим элементом является ключевая фраза:
mcp_servers:
internal_api:
url: "https://mcp.internal.example.com/mcp"
client_cert: ["~/.certs/mcp-client.crt", "~/.certs/mcp-client.key", "${MCP_KEY_PASSWORD}"]

Вы также можете хранить сертификат и ключ полностью отдельно через client_cert (комбинированный PEM) плюс явный client_key. Пути поддерживают расширение ~; отсутствующий файл вызывает явную ошибку на уровне сервера, а не непрозрачный сбой рукопожатия TLS.

Справочник по базовой конфигурации​

VibeOS считывает конфигурацию MCP из ~/.vibeos/config.yaml под mcp_servers.

Общие ключи​

КлючТипЗначение
commandстрокаИсполняемый файл для сервера stdio MCP
argsсписокАргументы в пользу сервера stdio
envкартографированиеПеременные среды, передаваемые на сервер stdio
urlстрокаHTTP MCP конечная точка
headersкартографированиеHTTP заголовки для удаленных серверов
client_certстрока | списокСертификат клиента для mTLS — комбинированный путь PEM, или [cert, key]/[cert, key, password]
client_keyстрокаПуть PEM к личному ключу клиента (если он отделен от client_cert)
timeoutномерТайм-аут вызова инструмента
connect_timeoutномерТайм-аут начального соединения
enabledбулЕсли false, VibeOS полностью пропускает сервер
supports_parallel_tool_callsбулЕсли true, инструменты с этого сервера могут работать одновременно
toolsкартографированиеПолитика фильтрации и утилит для отдельных серверов

Минимальный пример stdio​

mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]

Минимальный пример HTTP​

mcp_servers:
company_api:
url: "https://mcp.internal.example.com"
headers:
Authorization: "Bearer ***"

Встроенные пресеты​

Для известных серверов MCP vibeos mcp add принимает флаг --preset, который заполняет детали транспорта, поэтому вам не нужно искать команду и аргументы. Предустановка предоставляет только значения по умолчанию — все остальное (переменные окружения, заголовки, фильтрация), которые вы передаете в той же командной строке, по-прежнему имеет преимущество.

ПредустановленныеЧто это подключается
codexСервер MCP Кодекса CLI (codex mcp-server через stdio). Требуется codex CLI на PATH.
# Add Codex CLI as an MCP server in one line
vibeos mcp add codex --preset codex

Это записывает эквивалент:

mcp_servers:
codex:
command: "codex"
args: ["mcp-server"]

Вы можете выбрать любое локальное имя (vibeos mcp add my-codex --preset codex подойдет); пресет предоставляет только значения по умолчанию command/args.

Как VibeOS регистрирует инструменты MCP​

VibeOS добавляет префиксы к инструментам MCP, чтобы они не конфликтовали со встроенными именами:

mcp_<server_name>_<tool_name>

Примеры:

СерверИнструмент MCPЗарегистрированное имя
filesystemread_filemcp_filesystem_read_file
githubcreate-issuemcp_github_create_issue
my-apiquery.datamcp_my_api_query_data

На практике обычно не требуется вызывать имя префикса вручную — VibeOS видит инструмент и выбирает его в ходе обычных рассуждений.

MCP утилиты​

Если VibeOS поддерживается, он также регистрирует служебные инструменты вокруг ресурсов MCP и предлагает:

  • list_resources
  • read_resource
  • list_prompts
  • get_prompt

Они регистрируются для каждого сервера с одинаковым шаблоном префикса, например:

  • mcp_github_list_resources
  • mcp_github_get_prompt

Важно​

Эти служебные инструменты теперь учитывают возможности:

  • VibeOS регистрирует утилиты ресурсов только в том случае, если сеанс MCP действительно поддерживает операции с ресурсами.
  • VibeOS регистрирует утилиты подсказок только в том случае, если сеанс MCP действительно поддерживает операции подсказок.

Таким образом, сервер, который предоставляет вызываемые инструменты, но не имеет ресурсов /prompts, не получит эти дополнительные оболочки.

Фильтрация по серверам​

Вы можете контролировать, какие инструменты каждый сервер MCP вносит в VibeOS, что позволяет более детально управлять пространством имен ваших инструментов.

Полностью отключить сервер​

mcp_servers:
legacy:
url: "https://mcp.legacy.internal"
enabled: false

Если enabled: false, VibeOS полностью пропускает сервер и даже не пытается подключиться.

Инструменты сервера белого списка​

mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [create_issue, list_issues]

Зарегистрированы только серверные инструменты MCP.

Инструменты сервера черного списка​

mcp_servers:
stripe:
url: "https://mcp.stripe.com"
tools:
exclude: [delete_customer]

Зарегистрированы все серверные инструменты, кроме исключенных.

Правило приоритета​

Если присутствуют оба:

tools:
include: [create_issue]
exclude: [create_issue, delete_issue]

include побеждает.

Инструменты фильтрации также​

Также можно отдельно отключить обертки утилит, добавленных VibeOS:

mcp_servers:
docs:
url: "https://mcp.docs.example.com"
tools:
prompts: false
resources: false

Это означает:

  • tools.resources: false отключает list_resources и read_resource.
  • tools.prompts: false отключает list_prompts и get_prompt.

Полный пример​

mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [create_issue, list_issues, search_code]
prompts: false

stripe:
url: "https://mcp.stripe.com"
headers:
Authorization: "Bearer ***"
tools:
exclude: [delete_customer]
resources: false

legacy:
url: "https://mcp.legacy.internal"
enabled: false

Что произойдет, если все отфильтровать?​

Если ваша конфигурация отфильтровывает все вызываемые инструменты и отключает или опускает все поддерживаемые утилиты, VibeOS не создает пустой набор инструментов MCP среды выполнения для этого сервера.

Это сохраняет список инструментов чистым.

Поведение во время выполнения​

Время обнаружения​

VibeOS обнаруживает серверы MCP при запуске и регистрирует их инструменты в обычном реестре инструментов.

Динамическое обнаружение инструментов​

Серверы MCP могут уведомлять VibeOS об изменении доступных инструментов во время выполнения, отправляя уведомление notifications/tools/list_changed. Когда VibeOS получает это уведомление, он автоматически повторно получает список инструментов сервера и обновляет реестр — /reload-mcp вручную не требуется.

Это полезно для серверов MCP, возможности которых изменяются динамически (например, сервер, который добавляет инструменты при загрузке новой схемы базы данных или удаляет инструменты, когда служба переходит в автономный режим).

Обновление защищено блокировкой, поэтому быстрые уведомления с одного и того же сервера не вызывают перекрывающихся обновлений. Уведомления о подсказках и изменениях ресурсов (prompts/list_changed, resources/list_changed) перерегистрируют оболочки утилит (list_prompts, list_resources, …), чтобы переключение возможностей выполнялось без повторного подключения; содержимое каталога по-прежнему извлекается при каждом вызове утилиты.

Перезагрузка​

Если вы меняете конфигурацию MCP, используйте:

/reload-mcp

Это перезагрузит серверы MCP из конфигурации и обновит список доступных инструментов. Информацию об изменениях инструментов во время выполнения, вносимых самим сервером, см. в разделе Динамическое обнаружение инструментов выше.

Наборы инструментов​

Каждый настроенный сервер MCP также создает набор инструментов среды выполнения, если он предоставляет хотя бы один зарегистрированный инструмент:

mcp-<server>

Это упрощает анализ серверов MCP на уровне набора инструментов.

Модель безопасности​

Фильтрация окружения Stdio​

Для серверов stdio VibeOS не передает слепо всю вашу среду оболочки.

Передаются только явно настроенные env плюс безопасный базовый уровень. Это снижает случайную утечку секрета.

Контроль экспозиции на уровне конфигурации​

Новая поддержка фильтрации также является средством контроля безопасности:

  • отключите опасные инструменты, которые вы не хотите, чтобы модель видела
  • предоставлять только минимальный белый список для конфиденциального сервера
  • отключите обертки resources/prompt, если вы не хотите, чтобы эта поверхность была открыта

Примеры использования​

Сервер GitHub с минимальной поверхностью управления проблемами​

mcp_servers:
github:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-github"]
env:
GITHUB_PERSONAL_ACCESS_TOKEN: "***"
tools:
include: [list_issues, create_issue, update_issue]
prompts: false
resources: false

Используйте его как:

Show me open issues labeled bug, then draft a new issue for the flaky MCP reconnection behavior.

Сервер Stripe с удаленными опасными действиями​

mcp_servers:
stripe:
url: "https://mcp.stripe.com"
headers:
Authorization: "Bearer ***"
tools:
exclude: [delete_customer, refund_payment]

Используйте его как:

Look up the last 10 failed payments and summarize common failure reasons.

Сервер файловой системы для одного корня проекта​

mcp_servers:
project_fs:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/my-project"]

Используйте его как:

Inspect the project root and explain the directory layout.

Устранение неполадок​

Сервер MCP не подключается​

Проверьте:

# Verify MCP deps are installed (already included in standard install)
cd ~/.vibeos/vibeos-agent && uv pip install -e ".[mcp]"

node --version
npx --version

Затем проверьте свою конфигурацию и перезапустите VibeOS.

Инструменты не отображаются​

Возможные причины:

  • сервер не смог подключиться
  • открытие не удалось
  • ваша конфигурация фильтра исключила инструменты
  • на этом сервере не существует возможности утилиты
  • сервер отключен с помощью enabled: false

Если вы намеренно фильтруете, это ожидаемо.

Почему не появились утилиты ресурсов и подсказок?​

Потому что VibeOS теперь регистрирует эти оболочки только в том случае, если оба они верны:

  1. ваша конфигурация позволяет это
  2. сеанс сервера действительно поддерживает эту возможность

Это сделано намеренно и обеспечивает честность списка инструментов.

Параллельные вызовы инструментов​

По умолчанию инструменты MCP запускаются последовательно — по одному. Если ваш сервер MCP предоставляет инструменты, которые можно безопасно запускать одновременно (например, запросы только для чтения, независимые вызовы API), вы можете выбрать параллельное выполнение:

mcp_servers:
docs:
command: "docs-server"
supports_parallel_tool_calls: true

Если supports_parallel_tool_calls — это true, VibeOS может одновременно выполнять несколько инструментов с этого сервера в рамках одного пакета вызова инструментов, точно так же, как это происходит со встроенными инструментами только для чтения (web_search, read_file и т. д.).

предупреждение

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

MCP Поддержка выборки​

Серверы MCP могут запрашивать вывод LLM от VibeOS через протокол sampling/createMessage. Это позволяет серверу MCP попросить VibeOS сгенерировать текст от его имени — полезно для серверов, которым необходимы возможности LLM, но у которых нет доступа к собственной модели.

Выборка включена по умолчанию для всех серверов MCP (если MCP SDK поддерживает ее). Настройте его для каждого сервера под ключом sampling:

mcp_servers:
my_server:
command: "my-mcp-server"
sampling:
enabled: true # Enable sampling (default: true)
model: "openai/gpt-4o" # Override model for sampling requests (optional)
max_tokens_cap: 4096 # Max tokens per sampling response (default: 4096)
timeout: 30 # Timeout in seconds per request (default: 30)
max_rpm: 10 # Rate limit: max requests per minute (default: 10)
max_tool_rounds: 5 # Max tool-use rounds in sampling loops (default: 5)
allowed_models: [] # Allowlist of model names the server may request (empty = any)
log_level: "info" # Audit log level: debug, info, or warning (default: info)

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

Чтобы отключить выборку для определенного сервера:

mcp_servers:
untrusted_server:
url: "https://mcp.example.com"
sampling:
enabled: false

Запуск VibeOS в качестве сервера MCP​

Помимо подключения к серверам MCP, VibeOS также может быть сервером MCP. Это позволяет другим агентам с поддержкой MCP (Claude Code, Cursor, Codex или любому клиенту MCP) использовать возможности обмена сообщениями VibeOS — составлять списки разговоров, читать историю сообщений и отправлять сообщения на все подключенные платформы.

Когда это использовать​

  • Вы хотите, чтобы Claude Code, Cursor или другой агент кодирования отправлял и читал сообщения Telegram/Discord/Slack через VibeOS.
  • Вам нужен один сервер MCP, который будет соединяться со всеми подключенными платформами обмена сообщениями VibeOS одновременно.
  • У вас уже есть работающий шлюз VibeOS с подключенными платформами.

Быстрый старт​

vibeos mcp serve

Это запустит сервер stdio MCP. Клиент MCP (а не вы) управляет жизненным циклом процесса.

Конфигурация клиента MCP​

Добавьте VibeOS в конфигурацию клиента MCP. Например, в ~/.claude/claude_desktop_config.json Claude Code:

{
"mcpServers": {
"vibeos": {
"command": "vibeos",
"args": ["mcp", "serve"]
}
}
}

Или, если вы установили VibeOS в определенное место:

{
"mcpServers": {
"vibeos": {
"command": "/home/user/.vibeos/vibeos-agent/venv/bin/vibeos",
"args": ["mcp", "serve"]
}
}
}

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

Сервер MCP предоставляет 10 инструментов, соответствующих поверхности моста каналов OpenClaw, а также специальный браузер каналов VibeOS:

ИнструментОписание
conversations_listСписок активных диалогов обмена сообщениями. Фильтруйте по платформе или ищите по названию.
conversation_getПолучите подробную информацию об одном разговоре по ключу сеанса.
messages_readПрочитайте историю недавних сообщений для разговора.
attachments_fetchИзвлекайте нетекстовые вложения (изображения, мультимедиа) из конкретного сообщения.
events_pollОпрос новых событий разговора с момента позиции курсора.
events_waitДлительный опрос/блокировка до прихода следующего события (почти в реальном времени).
messages_sendОтправьте сообщение через платформу (например, telegram:123456, discord:#general).
channels_listПеречислите доступные цели обмена сообщениями на всех платформах.
permissions_list_openСписок ожидающих запросов на утверждение, наблюдаемых во время этого сеанса моста.
permissions_respondРазрешите или отклоните ожидающий запрос на утверждение.

Система событий​

Сервер MCP включает в себя мост живых событий, который опрашивает базу данных сеансов VibeOS на наличие новых сообщений. Это дает клиентам MCP информацию о входящих разговорах практически в реальном времени:

# Poll for new events (non-blocking)
events_poll(after_cursor=0)

# Wait for next event (blocks up to timeout)
events_wait(after_cursor=42, timeout_ms=30000)

Типы событий: message, approval_requested, approval_resolved.

Очередь событий находится в памяти и запускается при подключении моста. Более старые сообщения доступны через messages_read.

Параметры​

vibeos mcp serve              # Normal mode
vibeos mcp serve --verbose # Debug logging on stderr

Как это работает​

Сервер MCP считывает данные диалога непосредственно из хранилища сеансов VibeOS (~/.vibeos/sessions/sessions.json и базы данных SQLite). Фоновый поток опрашивает базу данных на наличие новых сообщений и поддерживает очередь событий в памяти. Для отправки сообщений он использует ту же инфраструктуру send_message, что и сам агент VibeOS.

Шлюз должен запускать NOT для операций чтения (список разговоров, история чтения, события опроса). Для операций отправки необходимо запустить DOES, поскольку адаптерам платформы необходимы активные соединения.

Текущие лимиты​

  • Сегодня встроенный vibeos mcp serve предоставляет сервер MCP только для stdio. Если вам нужен сервер HTTP MCP, запустите отдельный адаптер — или, что гораздо чаще, используйте MCP клиентскую сторону VibeOS, которая уже поддерживает как stdio, так и HTTP (url + headers в mcp_servers.yaml / config.yaml; см. Серверы HTTP выше).
  • Опрос событий с интервалом ~ 200 мс с помощью опроса БД, оптимизированного по времени (пропускает работу, если файлы не изменены)
  • Протокола push-уведомлений claude/channel пока нет.
  • Отправка только текстовых сообщений (без отправки медиа/attachment через messages_send)

Связанные документы​