惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
V2EX
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
人人都是产品经理
人人都是产品经理
博客园 - 三生石上(FineUI控件)
aimingoo的专栏
aimingoo的专栏
U
Unit 42
GbyAI
GbyAI
H
Help Net Security
A
Arctic Wolf
SecWiki News
SecWiki News
K
Kaspersky official blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Blog — PlanetScale
Blog — PlanetScale
B
Blog
Spread Privacy
Spread Privacy
L
Lohrmann on Cybersecurity
C
Check Point Blog
O
OpenAI News
Microsoft Security Blog
Microsoft Security Blog
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
大猫的无限游戏
大猫的无限游戏
Google DeepMind News
Google DeepMind News
Webroot Blog
Webroot Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
P
Palo Alto Networks Blog
A
About on SuperTechFans
S
SegmentFault 最新的问题
Recent Announcements
Recent Announcements
S
Schneier on Security
Martin Fowler
Martin Fowler
WordPress大学
WordPress大学
Jina AI
Jina AI
The Hacker News
The Hacker News
V2EX - 技术
V2EX - 技术
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
腾讯CDC
罗磊的独立博客
G
GRAHAM CLULEY
L
LINUX DO - 热门话题
雷峰网
雷峰网
博客园 - 【当耐特】
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
美团技术团队
M
MIT News - Artificial intelligence
Engineering at Meta
Engineering at Meta
Hacker News: Ask HN
Hacker News: Ask HN
S
Security Affairs
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
MCP для GitHub + GitLab: инженерный гайд 2026
Артем Летюшев · 2026-05-22 · via Все публикации подряд на Хабре

Простой

8 мин

9.3K

Я его написал после того как сильно удивился что нет вменяемой документации и с гитлабом работа идет через костыли. Его суть - быть скопированным в ИИ тул чтобы он вам все настроил сам, читать его целиком человеком неприятно и ненадобно.

Важный нюанс - если у вас нет сложных кейсов вроде код-ревью по тредам, используйте CLI и все.

Всё, что нужно знать перед настройкой: токены, пакеты, конфиги, нюансы, проблемы и безопасный универсальный сетап для Claude Code CLI, Claude Desktop, Codex CLI, Gemini CLI, Antigravity, Codex, Cursor и прочего.

Быстрый старт: токены + промпт для автонастройки

Перед настройкой MCP нужны access tokens.

GitHub token брать здесь: https://github.com/settings/tokens/new

Обычно достаточно прав:

  • repo - если нужны приватные репозитории;

  • public_repo - если только публичные;

  • read:org - если надо видеть org/team metadata;

  • workflow - только если MCP должен работать с GitHub Actions.

GitLab token брать здесь: https://gitlab.twinby.tech/-/user_settings/personal\_access\_tokens

Для GitLab MCP обычно нужны:

  • read_api

  • read_repository

Если нужны write-операции:

  • api

  • write_repository

Лучше начать с read-only сценария (давать только читать и не позволять вносить изменения), не надо выдавать лишнего.

Промпт: дайте это любой AI-системе и скажите делай

Перед ручной настройкой можно просто скопировать промпт ниже в Claude Code / Codex / Gemini / Cursor / Antigravity / любую другую AI coding-систему, у которой есть доступ к терминалу и файловой системе, --yolo и в путь!

Промпт
Пробегись по моей системе и найди все установленные AI coding tools и IDE, которые поддерживают MCP: Claude Code, Claude Desktop, Cursor, Gemini CLI, Antigravity, Antigravity IDE, Codex CLI, Codex App, Cline, Roo Code, Continue, Windsurf, VS Code extensions и похожие инструменты.

Цель: настроить единый MCP-доступ к GitHub и GitLab так, чтобы все эти инструменты использовали один и тот же локально установленный MCP-сервер, а не тянули разные версии через npx.

Сначала найди реальные MCP-конфиги каждого инструмента и прочитай их формат. Не угадывай пути и не ломай существующие настройки. Проверь стандартные места:
- ~/.claude.json
- ~/.cursor/mcp.json
- ~/.gemini/settings.json
- ~/.gemini/config/mcp_config.json
- ~/.codex/config.toml
- Claude Desktop:
  - macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
  - Windows: %APPDATA%\Claude\claude_desktop_config.json
  - Windows MSIX/package: AppData\Local\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json
- Codex App / package-local configs
- Cline / Roo Code / Continue / Windsurf / VS Code extension configs

Если один конфиг является symlink — не ломай symlink, меняй реальный target-файл.

Для GitLab self-hosted используй @zereight/mcp-gitlab. Если найдёшь @modelcontextprotocol/server-gitlab или npx -y @modelcontextprotocol/server-gitlab — замени: этот вариант часто ломается на schema/inputSchema validation.

Установи или проверь пакет:

npm install -g @zereight/mcp-gitlab

Найди реальный global npm path через:

npm root -g

И пропиши абсолютный путь к:

@zereight/mcp-gitlab/build/index.js

Базовая схема GitLab:

command: node
args: [абсолютный путь к @zereight/mcp-gitlab/build/index.js]
env:
  GITLAB_PERSONAL_ACCESS_TOKEN: <мой PAT>
  GITLAB_API_URL: https://<мой-gitlab-host>/api/v4

Важно: GITLAB_API_URL обязательно должен заканчиваться на /api/v4. Не используй официальный GitLab HTTP MCP /api/v4/mcp, если на self-hosted GitLab он не включён админами.

Для GitHub используй официальный github/github-mcp-server, а не старый @modelcontextprotocol/server-github.

Проверь официальный репозиторий:
https://github.com/github/github-mcp-server

Если GitHub MCP ещё не установлен, предложи лучший вариант установки для моей системы: локальный бинарь, Docker или другой официальный recommended-вариант.

Для GitHub настрой ограниченный набор toolsets, не включай всё подряд. Базовый набор:

context,repos,issues,pull_requests

По умолчанию включи read-only режим, если мне явно не нужны write-операции.

Для каждого найденного клиента запиши MCP в его родном формате:
- JSON для Claude Desktop / Cursor / Gemini
- TOML для Codex
- специальный формат для Antigravity, если он использует $typeName
- формат расширения, если это VS Code / Cline / Roo / Continue / Windsurf

Не коммить токены в проектные репозитории. Если конфиг проектный — предупреди меня. Если возможно — используй user-level config.

После настройки проверь:
- что MCP-сервер стартует
- что tools реально видны
- что нет ошибок schema validation
- что GitLab/GitHub отвечают на простые read-запросы

В конце дай отчёт:
1. какие AI-инструменты найдены
2. какие конфиги изменены
3. какой GitLab MCP используется
4. какой GitHub MCP используется
5. где лежит единый сервер
6. какие токены/scopes нужны
7. какие инструменты надо перезапустить
8. какие проблемы были исправлены

Важное ограничение: не делай опасных write-операций в GitHub/GitLab. Только настройка локальных MCP-конфигов и read-only проверка.

Какие пакеты существуют

GitHub

@modelcontextprotocol/server-github
Старый пакет от Anthropic/MCP-org. Может работать, но сейчас это не лучший выбор: устаревший подход, меньше контроля, хуже история с поддержкой.

github/github-mcp-server
Официальный MCP-сервер от GitHub.

Репозиторий: https://github.com/github/github-mcp-server

Документация: https://docs.github.com/en/copilot/how-tos/provide-context/use-mcp-in-your-ide/set-up-the-github-mcp-server

GitLab

Официальный GitLab MCP HTTP endpoint

https://<gitlab.example.com>/api/v4/mcp

Документация: https://docs.gitlab.com/user/gitlab_duo/model_context_protocol/mcp_server/

Но для self-hosted GitLab есть важный нюанс: официальный GitLab MCP работает только если на инстансе включены нужные GitLab Duo / beta / MCP-фичи. На обычном корпоративном self-hosted GitLab этого часто нет.

@modelcontextprotocol/server-gitlab
Лучше не использовать. На практике может ломаться на ошибках schema validation / inputSchema validation. Типичный симптом: MCP вроде подключается, но tools не загружаются.

Пример ошибки:

Invalid input: expected "object"
inputSchema.type

Суть проблемы: сервер отдаёт некорректную или неполную JSON Schema для tools, и современные MCP-клиенты отказываются это грузить.

@zereight/mcp-gitlab
Практический выбор для self-hosted GitLab без включённого официального MCP.

Репозиторий: https://github.com/zereight/gitlab-mcp

Пакет: https://www.npmjs.com/package/@zereight/mcp-gitlab

Почему он:

  • работает через обычный Personal Access Token

  • поддерживает self-hosted GitLab через GITLAB_API_URL

  • работает со stdio, SSE, Streamable HTTP

  • есть примеры для Claude Code, Codex, Antigravity, Cursor, Cline, Roo Code и других клиентов

  • умеет issues, merge requests, pipelines, wiki, releases, tags, milestones

  • schema-баги уже фиксились, проект живой

Главная идея настройки

Не надо в каждом инструменте поднимать свой отдельный MCP.

Плохо:

{
  "command": "npx",
  "args": ["-y", "@modelcontextprotocol/server-gitlab"]
}

Хорошо:

  1. Ставим MCP один раз глобально.

  2. Во все клиенты прописываем один и тот же node path/to/server.js или один и тот же бинарь.

  3. Обновляем централизованно.

Установка GitLab MCP

npm install -g @zereight/mcp-gitlab

Проверить путь:

npm root -g

Типичный путь на Windows:

C:\Users\User\.npm-global\node_modules\@zereight\mcp-gitlab\build\index.js

Типичный путь на macOS/Linux:

~/.npm-global/node_modules/@zereight/mcp-gitlab/build/index.js

Установка GitHub MCP

Вариант 1 — Docker

docker pull ghcr.io/github/github-mcp-server

Вариант 2 — локальный бинарь

git clone https://github.com/github/github-mcp-server
cd github-mcp-server
go build -o github-mcp-server ./cmd/github-mcp-server

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

/path/to/github-mcp-server stdio

Для Windows, например:

C:\tools\github-mcp-server.exe stdio

Единый JSON-конфиг для большинства клиентов

GitLab self-hosted

{
  "mcpServers": {
    "gitlab": {
      "command": "node",
      "args": [
        "C:\\Users\\User\\.npm-global\\node_modules\\@zereight\\mcp-gitlab\\build\\index.js"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat_xxxxx",
        "GITLAB_API_URL": "https://gitlab.company.com/api/v4"
      }
    }
  }
}

Критично:

GITLAB_API_URL должен быть с /api/v4

Правильно:

https://gitlab.company.com/api/v4

Неправильно:

https://gitlab.company.com

GitHub.com

{
  "mcpServers": {
    "github": {
      "command": "C:\\tools\\github-mcp-server.exe",
      "args": ["stdio"],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "github_pat_xxxxx",
        "GITHUB_TOOLSETS": "context,repos,issues,pull_requests",
        "GITHUB_READ_ONLY": "1"
      }
    }
  }
}

Критично для GitHub Enterprise:

GITHUB_HOST должен быть с https://

Почему важно ограничивать GitHub tools

У GitHub MCP много tools. Если включить всё, агент получает огромный список возможностей, а это:

  • больше токенов на каждую сессию

  • хуже tool choice

  • больше шанс, что агент выберет не тот инструмент

  • больше риск случайных write-операций

  • быстрее упираетесь в лимиты

Минимальный нормальный набор:

context,repos,issues,pull_requests

Для CI/CD можно добавить actions. Для security code_security,dependabot (крутая штука)

Read-only режим — почти всегда включать по умолчанию

Для GitHub: “GITHUB_READ_ONLY”: “1” или аргумент github-mcp-server --read-only stdio.

Это убирает write-tools. Агент сможет читать репозитории, issues, PR, workflows, но не сможет случайно создать issue, изменить PR, удалить файл или поменять настройки.

Для GitLab через @zereight/mcp-gitlab тоже лучше начинать с read-only подхода: отдельный токен с минимальными scopes, без write-доступа, если он не нужен.

Где лежат конфиги

Claude Code CLI -

~/.claude.json

Добавление через CLI:

claude mcp add gitlab \
  -e GITLAB_PERSONAL_ACCESS_TOKEN=glpat_xxxxx \
  -e GITLAB_API_URL=https://gitlab.company.com/api/v4 \
  -- node /path/to/@zereight/mcp-gitlab/build/index.js

Claude Desktop macOS

~/Library/Application Support/Claude/claude_desktop_config.json

Claude Desktop Windows

%APPDATA%\Claude\claude_desktop_config.json

Но есть важный нюанс с Windows/MSIX: иногда приложение реально читает конфиг из package-local пути, например:

AppData\Local\Packages\Claude_*\LocalCache\Roaming\Claude\claude_desktop_config.json

Если “Edit Config” открыл один файл, а MCP не появляется — ищите второй реальный конфиг.

Gemini CLI

~/.gemini/settings.json

Antigravity / Antigravity IDE

~/.gemini/config/mcp_config.json

В некоторых установках antigravity и antigravity-ide могут быть symlink на один общий файл.

Для Antigravity может быть нужно поле:

"$typeName": "exa.cascade_plugins_pb.CascadePluginCommandTemplate"

Codex CLI

~/.codex/config.toml

Пример GitLab в TOML:

[mcp_servers.gitlab]
command = "node"
args = ['C:\Users\User\.npm-global\node_modules\@zereight\mcp-gitlab\build\index.js']

[mcp_servers.gitlab.env]
GITLAB_PERSONAL_ACCESS_TOKEN = "glpat_xxxxx"
GITLAB_API_URL = "https://gitlab.company.com/api/v4"

Пример GitHub в TOML:

[mcp_servers.github]
command = "C:\tools\github-mcp-server.exe"
args = ["stdio"]

[mcp_servers.github.env]
GITHUB_PERSONAL_ACCESS_TOKEN = "github_pat_xxxxx"
GITHUB_TOOLSETS = "context,repos,issues,pull_requests"
GITHUB_READ_ONLY = "1"

Cursor

~/.cursor/mcp.json

Пример:

{
  "mcpServers": {
    "gitlab": {
      "command": "node",
      "args": [
        "C:\\Users\\User\\.npm-global\\node_modules\\@zereight\\mcp-gitlab\\build\\index.js"
      ],
      "env": {
        "GITLAB_PERSONAL_ACCESS_TOKEN": "glpat_xxxxx",
        "GITLAB_API_URL": "https://gitlab.company.com/api/v4"
      }
    }
  }
}

Частые проблемы

Проблема 1: MCP “подключился”, но tools пустые

Причины:

  • сломанная schema tools

  • старый пакет

  • клиент стал строже валидировать JSON Schema

  • используется @modelcontextprotocol/server-gitlab

Решение:

  • заменить на @zereight/mcp-gitlab

  • не использовать старый @modelcontextprotocol/server-gitlab

  • проверить /mcp или MCP logs

Проблема 2: GitLab self-hosted не открывает /api/v4/mcp

Причина: официальный GitLab MCP не включён на инстансе.

Решение:

  • либо просить админа включить GitLab Duo/MCP/beta features

  • либо использовать локальный @zereight/mcp-gitlab с PAT

Проблема 3: GitLab 401 Unauthorized

Проверить:

GITLAB_PERSONAL_ACCESS_TOKEN
GITLAB_API_URL

Особенно GITLAB_API_URL: должен быть /api/v4.

Также проверить scopes токена.

Проблема 4: GitHub MCP жрёт контекст и лимиты

Решение:

"GITHUB_TOOLSETS": "context,repos,issues,pull_requests"

Не включать all, если не надо.

Проблема 5: агент может делать write-операции

Решение для GitHub:

"GITHUB_READ_ONLY": "1"

Для GitLab — отдельный read-only PAT или максимально ограниченный токен.

Проблема 6: разные клиенты используют разные версии MCP

Решение: не использовать npx -y в каждом конфиге.

Ставим один раз:

npm install -g @zereight/mcp-gitlab

И везде прописываем абсолютный путь к одному build/index.js.

Для GitHub — один Docker image tag или один локальный бинарь.

Проблема 7: после правки конфига ничего не изменилось

Решение:

  • Claude Desktop перезапустить полностью

  • Cursor перезапустить

  • Antigravity перезапустить

  • Gemini/Codex иногда перечитывают конфиг только при новом запуске

  • Claude Code можно проверить через claude mcp list

Рекомендованный итоговый сетап

GitHub

github/github-mcp-server
local stdio
GITHUB_TOOLSETS=context,repos,issues,pull_requests
GITHUB_READ_ONLY=1

GitLab self-hosted без официального MCP

@zereight/mcp-gitlab
local stdio
GITLAB_API_URL=https://gitlab.company.com/api/v4
GITLAB_PERSONAL_ACCESS_TOKEN=glpat_xxxxx

GitLab self-hosted с официально включённым MCP

https://gitlab.company.com/api/v4/mcp
HTTP transport
OAuth flow

MCP мощная штука, но по факту это дать агенту API-ключи от для REST запросов. Ничего интересного.