MCP (Протокол контекста модели)
MCP позволяет VibeOS подключаться к внешним серверам инструментов, чтобы агент мог использовать инструменты, находящиеся вне самого VibeOS — GitHub, базы данных, файловые системы, стеки браузеров, внутренние API и многое другое.
Если вы когда-нибудь хотели, чтобы VibeOS использовал инструмент, который уже существует где-то еще, MCP обычно является самым простым способом сделать это.
Что дает вам MCP
- Доступ к внешним экосистемам инструментов без предварительного написания собственного инструмента VibeOS.
- Локальные stdio-серверы и удаленные серверы HTTP MCP в одной конфигурации.
- Автоматическое обнаружение и регистрация инструмента при запуске
- Оболочки утилит для ресурсов MCP и подсказки, если они поддерживаются сервером.
- Фильтрация для каждого сервера, поэтому вы можете предоставлять только те инструменты MCP, которые действительно хотите, чтобы VibeOS видел.
Быстрый старт
-
Поддержка MCP поставляется со стандартной установкой — никаких дополнительных действий не требуется.
-
Добавьте сервер MCP в
~/.vibeos/config.yaml:
mcp_servers:
filesystem:
command: "npx"
args: ["-y", "@modelcontextprotocol/server-filesystem", "/home/user/projects"]
- Запустите VibeOS:
vibeos chat
- Попросите 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
...
Предварительно проверенные строки берутся из:
- Ваш предыдущий выбор, если вы уже устанавливали эту запись ранее (переустанавливает сохраните то, что у вас было — значения по умолчанию манифеста не отменяют их)
tools.default_enabledманифеста, если запись объявляет один (некоторые записи каталога предварительно удаляют мутирующие или редко полезные инструменты)- Все, если ни то, ни другое не применимо.
Отправьте контрольный список с помощью ENTER. В папку попадают только проверенные инструменты.
mcp_servers.<name>.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/<name>/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/<server>.json с разрешениями 0o600; последующие запуски повторно используют их автоматически, пока обновление не завершится неудачно.
Удаленные / автономные хосты. Когда VibeOS работает на другом компьютере, чем ваш браузер, обратный вызов обратной связи не может достичь вашего ноутбука. Два способа завершения потока:
- Вставка обратно (без настройки): на интерактивном терминале VibeOS печатает «Или вставьте перенаправление URL сюда…» рядом с авторизацией URL. Откройте URL в своем браузере, подтвердите, скопируйте полный URL, на котором заканчивается браузер (перенаправление покажет ошибку подключения — это ожидаемо), вставьте его в командную строку. Голые строки запроса
?code=…&state=…тоже работают. - Перенаправление порта SSH:
ssh -N -L <port>:127.0.0.1:<port> 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 | Зарегистрированное имя |
|---|---|---|
filesystem | read_file | mcp_filesystem_read_file |
github | create-issue | mcp_github_create_issue |
my-api | query.data | mcp_my_api_query_data |
На практике обычно не требуется вызывать имя префикса вручную — VibeOS видит инструмент и выбирает его в ходе обычных рассуждений.
MCP утилиты
Если VibeOS поддерживается, он также регистрирует служебные инструменты вокруг ресурсов MCP и предлагает:
list_resourcesread_resourcelist_promptsget_prompt
Они регистрируются для каждого сервера с одинаковым шаблоном префикса, например:
mcp_github_list_resourcesmcp_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 теперь регистрирует эти оболочки только в том случае, если оба они верны:
- ваша конфигурация позволяет это
- сеанс сервера действительно поддерживает эту возможность
Это сделано намеренно и обеспечивает честность списка инструментов.
Параллельные вызовы инструментов
По умолчанию инструменты 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)