Skip to main content
Glama

agent-tool

한국어

MCP-сервер (Model Context Protocol) с инструментами для ИИ-агентов, пишущих код.

Зачем?

Встроенные инструменты ИИ-агентов для написания кода (Claude Code, Cursor, Codex и др.) имеют известные ограничения:

  • Ломаются отступы из табов: LLM выводят пробелы, а в вашем проекте используются табы. Встроенный инструмент Edit записывает пробелы как есть, нарушая ваш стиль отступов.

  • Порча кодировки: При редактировании файлов в EUC-KR, Shift-JIS или GB18030 они молча конвертируются в UTF-8, ломая легаси-проекты.

  • Слишком много отдельных инструментов: Заставлять агента искать, устанавливать и настраивать Redis CLI, MySQL-клиент, SSH-клиент и т.д. — утомительно и чревато ошибками. agent-tool объединяет 54 инструмента в один бинарник и предоставляет их по требованию через компактные профили.

  • Нет поддержки реверс-инжиниринга: Встроенные инструменты не умеют дизассемблировать бинарники, анализировать PE/ELF-заголовки, находить границы функций или искать перекрёстные ссылки. agent-tool включает статический анализ бинарников (дизассемблирование, xref, определение функций), DAP-отладчик и инструменты работы с памятью в стиле CheatEngine — это даёт вашему агенту полные возможности реверс-инжиниринга.

  • Цензура в сети: В некоторых странах государственная фильтрация веб-трафика ломает обычные запросы curl/wget. agent-tool по умолчанию использует ECH (Encrypted Client Hello) и DoH (DNS over HTTPS), чтобы обходить эти ограничения.

agent-tool решает эти проблемы с помощью инструментов, ориентированных на агентов, которые сохраняют конвенции проекта и при этом держат контекст модели в разумных пределах.

Related MCP server: DevToolkit MCP Server

Поддерживаемые агенты

Claude Code, Codex CLI, Cursor, Windsurf, Cline, Gemini CLI и любой MCP-совместимый агент.

Эффективность для LLM по умолчанию

Профиль core по умолчанию открывает только 11 схем (включая toolbox) вместо всех 54. При измерении на уровне протокола это сократило сериализованный список инструментов примерно с 84 КБ (full) до 18 КБ. Используйте toolbox(operation="describe", tool="ssh", compact=true, tool_operation="execute"), чтобы загрузить поля и список обязательных аргументов только одной операции, а затем вызывайте её через toolbox(operation="call", tool="ssh", arguments={...}). Шлюз не зависит от динамического обновления списка инструментов, поэтому работает с клиентами с фиксированной привязкой, такими как Codex. Describe возвращает привязанный к инструменту/версии schema_handle; при повторном вызове describe с ним возвращается короткое подтверждение без изменений, если схема всё ещё актуальна. Также можно запустить с флагом --profile coding|remote|analysis|full.

Потенциально большие текстовые ответы по умолчанию ограничены 32К символами с жёстким потолком 128К. Усечение всегда заметно, а инструменты с постраничной выдачей возвращают next_offset или next_cursor. Локальные относительные пути разрешаются относительно явно заданного workspace, затем корня MCP-клиента.

Возможности

Инструмент

Описание

Статус

Edit

Замена строк с умными отступами и сохранением кодировки (поддерживается dry_run)

Read

Чтение с учётом кодировки и номерами строк. По умолчанию 400 строк/32K символов, сообщает об усечении и точном next_offset, безопасно обрабатывает очень длинные строки, опциональный SHA-256. Гибкий offset и поддержка MCP ImageContent

Write

Создание/перезапись файлов с учётом кодировки

Grep

Регулярный поиск с учётом кодировки, бюджет вывода 32K, компактный вывод, сгруппированный по файлам, относительные пути, фильтрация .gitignore/сгенерированных каталогов, определение бинарных файлов, режимы/контекст вывода и детерминированная постраничная навигация next_cursor без повторных совпадений

Glob

Отсортированное ограниченное сопоставление файлов с **, относительные пути, фильтрация сгенерированных каталогов, явный has_more и детерминированная постраничная навигация по курсору

ListDir

Ограниченный/постраничный список каталога. max_entries + курсор продолжения, фильтры каталогов/файлов, glob-фильтры имён записей, режим только количества, плоский/древовидный вывод

Diff

Сравнение двух файлов с выводом unified diff (с учётом кодировки). Файлы, отличающиеся только переводами строк или завершающим переводом строки, сообщают об этом вместо пустого diff

Patch

Применение unified diff патча к файлу (поддерживается dry_run). Каждая строка сохраняет собственное окончание, поэтому смешанный CRLF/LF файл не переписывается

Checksum

Вычисление хеша файла (md5, sha1, sha256)

FileInfo

Метаданные файла (размер, кодировка, количество смешанных окончаний строк, отступы, количество строк)

Compress

Создание zip / tar.gz архивов

Decompress

Извлечение zip / tar.gz архивов (защита от Zip Slip/Bomb)

Backup

Резервное копирование в zip с меткой времени и шаблонами исключений. Предпросмотр dry_run со статистикой каталогов, количеством совпадений шаблонов и крупнейшими файлами

ConvertEncoding

Преобразование кодировки файла (EUC-KR ↔ UTF-8, добавление/удаление BOM и т.д.)

Delete

Безопасное удаление одного файла (без каталогов, без симлинков, защита системных путей, dry_run)

Rename

Атомарное переименование или перемещение файла/каталога (dry_run)

SysInfo

Информация о системе — ОС, CPU, RAM, диск, время работы, измерение загрузки CPU

FindTools

Обнаружение установленных инструментов разработки — компиляторы, среды выполнения, системы сборки (Go, .NET, Node, Python, Java, Rust, C/C++ и т.д.). Поиск в PATH, переменных окружения и известных местах (~/bin, snap, scoop, Homebrew, SDKMAN, nvm, fnm, pyenv)

ProcList

Список запущенных процессов — PID, имя, командная строка, память. Конфиденциальные аргументы автоматически маскируются. Фильтр по имени или порту

ProcKill

Завершение, приостановка или возобновление процессов по PID или порту. Завершение дерева, выбор сигнала (kill/term/hup/int/stop/cont), обработка зомби (Linux), dry_run

ProcExec

Выполнение команд как новых процессов. Запуск на переднем плане/в фоне/приостановленный, таймаут/переменные окружения и безопасное уплотнение повторяющихся диагностик с истекающим получением необработанного вывода

EnvVar

Чтение переменных окружения. Конфиденциальные значения (пароли, токены) автоматически маскируются

Firewall

Чтение правил брандмауэра — iptables/nftables/firewalld (Linux), netsh (Windows). Только чтение

SSH

Выполнение SSH с захватом 32K head+tail, исходными счётчиками байтов, корректными ошибками ненулевого выхода и фоновыми заданиями (start/status/tail/cancel). Пул с учётом аутентификации, проверка ключей хоста, ProxyJump, IPv6

SFTP

Передача файлов и управление удалёнными файловыми системами по SSH. Загрузка, скачивание, ls, stat, mkdir, rm, chmod, rename. Использует пул SSH-сессий. Максимум 2 ГБ на передачу

Bash

Постоянные shell-сессии с сохранением рабочего каталога/окружения, безопасное уплотнение повторяющихся диагностик и истекающее получение необработанного вывода. Пул сессий (макс. 5, таймаут простоя 30 мин). Unix: bash/sh, Windows: PowerShell/git-bash/cmd

WebFetch

Получение веб-контента как текст/Markdown с максимумом 32K по умолчанию/128K. ECH + DoH, конвертация HTML→Markdown, защита SSRF, поддержка прокси, Chrome User-Agent

WebSearch

Веб-поиск через Brave Search или Naver API. Требуются переменные окружения с API-ключами (BRAVE_SEARCH_API_KEY или NAVER_CLIENT_ID/NAVER_CLIENT_SECRET). Автовыбор движка, Brave предпочтителен

Download

Скачивание файлов с URL на диск. ECH + DoH по умолчанию. Защита SSRF. HTTP/SOCKS5 прокси. Атомарная запись. Максимум 2 ГБ

HTTPReq

Выполнение HTTP-запросов любым методом (GET/POST/PUT/PATCH/DELETE/HEAD/OPTIONS). Тестирование API с пользовательскими заголовками, телом, прокси. Защита SSRF

JSONQuery

Запросы к JSON-файлам с путями в точечной нотации (например, dependencies.react, items[*].id). Извлечение конкретных значений без загрузки всего файла в контекст

YAMLQuery

Запросы к YAML-файлам с путями в точечной нотации (тот же синтаксис, что и JSONQuery)

TOMLQuery

Запросы к TOML-файлам с путями в точечной нотации (тот же синтаксис, что и JSONQuery). Поддерживает специфичные для TOML типы (datetime, int64)

Copy

Копирование файлов/каталогов с атомарной записью и сохранением прав. Рекурсивное копирование каталогов. Запасной вариант для заблокированных файлов Windows (переименование запущенных exe/DLL в сторону). Предпросмотр dry_run

Mkdir

Создание каталогов с опциональным режимом прав (восьмеричный, например 0755). Рекурсивно по умолчанию (mkdir -p). Предпросмотр dry_run

MultiRead

Чтение до 50 файлов с бюджетом 32K на вызов, по умолчанию 200 строк на файл, безопасность длинных строк и метаданные продолжения для каждого файла/в целом. Хеши опциональны

RegexReplace

Регулярный поиск и замена в файлах/каталогах. Сохранение кодировки и окончаний строк, группы захвата ($1, $2). Пропускает бинарные файлы. Предпросмотр dry_run

TLSCheck

Проверка деталей TLS-сертификата — субъект, издатель, срок действия, SAN, версия TLS, набор шифров

DNSLookup

Поиск DNS-записей (A/AAAA/MX/CNAME/TXT/NS/SOA). DNS через HTTPS (DoH) по умолчанию для конфиденциальности

MySQL

Выполнение SQL-запросов на MySQL/MariaDB. Результаты SELECT в табличном формате с настраиваемыми лимитами строк/столбцов/ячеек/общего вывода; затронутые строки для DML. Используйте SQL LIMIT/OFFSET для постраничной навигации

Redis

Выполнение команд Redis с форматированным выводом по типу. Поддержка TLS. Опасные команды (FLUSHALL, SHUTDOWN и т.д.) заблокированы

PortCheck

Проверка, открыт ли TCP-порт на хосте. Возвращает OPEN/CLOSED со временем ответа. Поддерживает hostname, IPv4, IPv6

ExternalIP

Получение внешнего (публичного) IP-адреса. Несколько провайдеров с автоматическим резервным переключением (ipify, ifconfig.me, icanhazip)

SLOC

Подсчёт строк исходного кода по языкам. Определение 70+ языков, разбивка по файлам/языкам, статистика пустых строк, контроль max_depth

Debug

Интерактивный отладчик через DAP (Debug Adapter Protocol). Полное покрытие DAP с ограниченными значениями/выводом и постраничной навигацией для переменных, завершений, модулей и загруженных источников. Протестировано с dlv (Go), debugpy (Python), codelldb (C/C++/Rust). Работает с любым совместимым с DAP адаптером. Режимы Stdio и TCP. Примечание: vsdbg (Microsoft) требует лицензию VS Code и не может использоваться отдельно — используйте codelldb или netcoredbg как альтернативы с открытым исходным кодом

Analyze

Статический анализ бинарных файлов и реверс-инжиниринг. Дизассемблирование x86/x64/ARM/ARM64; разбор PE/ELF/Mach-O с ограниченным, постраничным выводом импортов PE; xref, обнаружение функций/графы вызовов, анализ указателей/RTTI/vtable/структур, imphash, Rich header, DWARF, строки, hexdump, поиск шаблонов, энтропия, обнаружение оверлеев и бинарный diff. Нет глобального ограничения размера файла

Memtool

Инструмент памяти процессов в стиле CheatEngine — поиск/фильтрация/чтение/запись значений памяти, read_chain (разрешение цепочек указателей base+offset, пакетно за один вызов), живое дизассемблирование (x86/x64/ARM/ARM64), отмена, поиск структурных шаблонов, сканирование указателей, diff памяти. Снимки на диске для больших сканирований. Управление сессиями с таймаутом простоя. Windows (ReadProcessMemory) и Linux (/proc/pid/mem). Windows автоматически включает SeDebugPrivilege при повышении прав; опциональный force_dacl обходит самозащищённый DACL процесса того же пользователя (оригинал восстанавливается после)

IPC

Межпроцессное взаимодействие между сессиями AI-агентов через TCP. Обмен сообщениями 1:1 с блокирующим приёмом. Протокол: [2-байтовый тип][4-байтовая длина][полезная нагрузка]. Операции: send, receive (блокирующий с таймаутом), ping. Работает между машинами. Максимум 1 МБ сообщение, таймаут 300 с

Wintool

Автоматизация GUI Windows — поиск/перечисление окон и дочерних элементов управления, захват скриншотов (ImageContent PNG через PrintWindow), чтение изображений из буфера обмена, чтение/установка текста, клик, ввод, отправка сырых сообщений, показать/скрыть/свернуть/развернуть, переместить/изменить размер, закрыть, фокус. screenshot/clipboard возвращают ImageContent по умолчанию (опция save_path для вывода в файл). Позволяет AI-агентам «видеть» и взаимодействовать с GUI-приложениями. Только Windows

CodeGraph

Полностью встроенный семантический граф кода: AST стандартной библиотеки Go плюс ленивый сжатый tree-sitter WASM для C/C++, Python, C#, Rust и Java. Добавляет идентичность объявлений/определений, цепочки возврата и распространение дженериков/алиасов, транзитивные include, калиброванные доказательства перегрузки, виртуальную/интерфейсную диспетчеризацию, рёбра макросов/обратных вызовов, происхождение условий сборки и мультикорневые рабочие области. Без компилятора, языкового сервера, внешних бинарников, вызовов LLM или затрат токенов

SetConfig

Изменение настроек времени выполнения (кодировка, лимит размера файла, симлинки, рабочая область и т.д.)

Help

Встроенное руководство по использованию для агентов (кодировка, отступы, устранение неполадок)

Ключевые улучшения

Умные отступы

LLM обычно выводят пробелы, но во многих проектах используются табуляции. AgentTool автоматически преобразует отступы в соответствии с существующим стилем файла.

  • Читает .editorconfig для indent_style и indent_size

  • В качестве запасного варианта использует определение по содержимому (первые 100 строк)

  • Защищает устаревшие файлы: не выполняет преобразование, если фактическое содержимое противоречит .editorconfig

Сохранение кодировки

Правки сохраняют исходную кодировку файла, а не принудительно используют UTF-8.

  • Приоритет определения: BOM → charset из .editorconfig → UTF-16 без BOM → корректный UTF-8 → автоопределение chardet → запасная кодировка

  • Поддерживаемые: UTF-8, UTF-8 BOM, EUC-KR, Shift-JIS, ISO-8859-1, UTF-16 (LE/BE, с BOM и без), и другие

  • Без ложных предупреждений об ASCII: корректный UTF-8 проверяется напрямую, поэтому обычные ASCII-файлы никогда не вызывают предупреждение о низкой достоверности

  • Переводы строк: определяет LF, CRLF, CR и смешанные файлы. edit сопоставляет многострочный old_string независимо от того, использует ли файл CRLF или LF, включая файлы со смешанными переводами строк, а текст, вставленный через edit/regexreplace, следует стилю перевода строк той области, в которую попадает, поэтому остальная часть файла остаётся побайтово идентичной

Экономные по токенам списки каталогов

listdir по умолчанию возвращает 500 записей на страницу и возвращает next_cursor, когда доступны дополнительные записи. Сузьте результаты с помощью directories_only, files_only, name_pattern (например, A*) или нескольких OR-шаблонов в include. Используйте counts_only=true, когда нужны только количества соответствующих файлов/каталогов.

Освобождение памяти в простое

После 30 минут без вызова инструментов сервер возвращает свою кучу (heap) операционной системе. stdio MCP-сервер не может отличить покинутого клиента от просто молчащего — процесс, который его запустил, может быть жив, уже закончил работу с ним и всё ещё удерживает pipe открытым, поэтому EOF никогда не наступает, — а завершение на основе такой догадки разорвало бы сессию, которая лишь приостановлена. Освобождение памяти — безопасная половина этой сделки: экземпляр, однажды прочитавший файл на 50MB, возвращается к своему базовому уровню ~20MB вместо того, чтобы удерживать 200MB всё время работы машины. Открытые shell и ssh сессии сохраняются, и ничто из того, что клиент может наблюдать, не меняется.

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

  1. Скачайте бинарный файл для вашей ОС из Releases

  2. Выполните agent-tool install (или agent-tool install claude для конкретного агента)

  3. Перезапустите вашу IDE / агента

  4. Готово — компактные основные инструменты доступны сразу; toolbox описывает и вызывает все остальные инструменты по требованию

Или просто попросите вашего ИИ-агента сделать это за вас:

"Скачайте agent-tool с https://github.com/knewstimek/agent-tool/releases/latest и выполните agent-tool install"

Любой способный ИИ-агент для написания кода (Claude Code, Codex и т. д.) может автоматически выполнить весь процесс загрузка → установка → перезапуск.

Рекомендуется: укажите агенту предпочитать agent-tool

После установки агенты получат доступ к agent-tool, но по-прежнему могут по умолчанию использовать встроенные инструменты (Read, Edit и т. д.). Чтобы агенты предпочитали учитывающие кодировку и интеллектуально работающие с отступами инструменты agent-tool, добавьте одну из приведённых ниже инструкций.

Совет по навигации по коду: для крупных проектов добавьте это в CLAUDE.md / AGENTS.md, чтобы включить навигацию по коду на основе AST:

At the start of a session, run codegraph(op="index", path="<project_root>") to build a code index.
For several repositories sharing one graph, use codegraph(op="index", path="<db_root>", roots=["<source_root_1>", "<source_root_2>"]). Source-root provenance prevents unrelated projects with the same symbol names from contaminating candidates while explicit/transitive includes can still cross roots.
Then use codegraph for structural queries (find, callers, callees, methods, inherits) instead of grep.

Выберите Strict или Soft:

Режим

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

Инструкция

Strict

Проекты с файлами не в UTF-8 или со смешанными отступами

ALWAYS use agent-tool MCP tools (mcp__agent-tool__*) instead of built-in file tools. agent-tool preserves file encoding and respects .editorconfig indentation settings.

Soft

Обычные проекты

Prefer agent-tool MCP tools (mcp__agent-tool__*) over built-in file tools when available.

Куда добавить:

Для конкретного проекта — добавьте в CLAUDE.md вашего проекта:

ALWAYS use agent-tool MCP tools (mcp__agent-tool__*) instead of built-in file tools.

Глобально (все проекты) — добавьте в ~/.claude/CLAUDE.md:

ALWAYS use agent-tool MCP tools (mcp__agent-tool__*) instead of built-in file tools.

Жёсткое принуждение — запретите встроенные файловые инструменты на уровне разрешений через ~/.claude/settings.json:

{
  "permissions": {
    "deny": ["Read", "Edit", "MultiEdit", "Write", "Glob", "Grep"]
  }
}

Это делает встроенные файловые инструменты Claude Code недоступными, поэтому агент вынужден использовать agent-tool. Рекомендуется, когда нужно строгое принуждение без опоры на инструкции в промпте.

  1. Добавьте в ~/.codex/config.toml (на верхнем уровне, не внутри [mcp_servers.*]):

model_instructions_file = "~/.codex/model_instructions.md"
  1. Создайте ~/.codex/model_instructions.md:

ALWAYS use agent-tool MCP tools (mcp__agent-tool__*) instead of built-in file tools.
  1. Перезапустите Codex.

Для конкретного проекта — вместо этого добавьте в AGENTS.md вашего проекта.

Добавьте в .cursorrules, .windsurfrules или AGENTS.md вашего проекта:

ALWAYS use agent-tool MCP tools (mcp__agent-tool__*) instead of built-in file tools.

Установка

Автоустановка (рекомендуется)

# Register with all detected agents (full auto-approve — all tools)
agent-tool install

# Safe mode — only auto-approve local file tools (no SSH, HTTP, DB, shell)
agent-tool install --safe-approve

# No auto-approve — manual approval required for every tool call
agent-tool install --no-auto-approve

# Register with a specific agent
agent-tool install claude
agent-tool install claude --safe-approve

# Uninstall (removes agent-tool entry only, preserves other settings)
agent-tool uninstall          # from all agents
agent-tool uninstall claude   # from specific agent

Уровни разрешений при установке:

Уровень

Флаг

Автоматически одобряемые инструменты

Полный (по умолчанию)

(нет)

Все инструменты (подстановочный шаблон mcp__agent-tool__*)

Безопасный

--safe-approve

29 локальных инструментов (read, edit, write, grep, glob и т. д.) — без SSH, HTTP, DB, bash и управления процессами

Нет

--no-auto-approve

Никакие инструменты — каждый вызов требует ручного одобрения

Уровень одобрения не зависит от профиля схемы: установка может одобрить всё пространство имён, пока сервер всё ещё запускается с экономным по токенам профилем core. toolbox намеренно не одобряется автоматически через --safe-approve, поскольку его шлюз operation=call может вызывать сетевые инструменты, shell-инструменты, инструменты баз данных и управления процессами. Пользователям безопасного режима следует проверять каждое одобрение toolbox и избегать предоставления ему постоянного правила разрешения, если они не намерены доверять всему пространству имён AgentTool.

Ручная настройка

Claude Code / Cursor / Cline (settings.json или mcp.json):

{
  "mcpServers": {
    "agent-tool": {
      "command": "/path/to/agent-tool"
    }
  }
}

Codex CLI (~/.codex/config.toml):

[mcp_servers.agent-tool]
command = "/path/to/agent-tool"

Параметры

# Select the initial schema profile (default: core)
agent-tool --profile coding

# Set fallback encoding for projects with non-UTF-8 files
agent-tool --fallback-encoding EUC-KR

Профили — это аддитивные пресеты: core (11 схем), coding (core плюс более широкие файловые/сборочные/shell инструменты), remote, analysis и full. Во время выполнения предпочитайте независимый от клиента шлюз toolbox: operation=describe возвращает схему одного инструмента (compact=true вместе с tool_operation ограничивает её одной операцией), а operation=call вызывает его через стабильную привязку toolbox. Повторно отправьте полученный schema_handle, чтобы не получать снова неизменённую схему. Когда диагностика команд сжимается, operation=output получает ограниченный необработанный вывод по указанному ID в течение 30 минут и сообщает next_offset, когда требуется постраничный переход. enable, disable и profile остаются доступны для клиентов, поддерживающих tools/list_changed; клиенты с фиксированной привязкой могут всегда продолжать использовать шлюз.

Переменная окружения

Задайте AGENT_TOOL_FALLBACK_ENCODING и/или AGENT_TOOL_PROFILE, чтобы не повторять флаги CLI:

# Windows (no admin required)
setx AGENT_TOOL_FALLBACK_ENCODING EUC-KR
setx AGENT_TOOL_PROFILE coding

# Linux / macOS (add to ~/.bashrc or ~/.zshrc)
export AGENT_TOOL_FALLBACK_ENCODING=EUC-KR
export AGENT_TOOL_PROFILE=coding

Приоритет: флаг CLI > переменная окружения > значение по умолчанию (UTF-8).

Локальные профили подключений SSH/SFTP

SSH и SFTP принимают либо connection_profile, либо локальный для сессии connection_id, поэтому поля host, user, key и jump-host не нужно повторять. Профили читаются из каталога конфигурации пользователя ОС по пути agent-tool/connections.json; переопределите расположение с помощью AGENT_TOOL_CONNECTION_PROFILE_FILE. Храните этот файл локально и явно игнорируйте его, если он помещён внутри рабочей области.

{
  "connections": {
    "dev": {
      "host": "192.0.2.10",
      "user": "builder",
      "key_file": "/local/path/to/id_ed25519",
      "host_key_check": "strict",
      "trusted": true
    }
  }
}

Первый вызов возвращает непрозрачный connection_id, который остаётся пригодным для повторного использования обоими инструментами в течение 30 минут. trusted:true влияет только на отображение: предупреждение о разрешённом частном адресе показывается один раз для объединённого подключения, а не при каждом вызове; блокировка SSRF и защита метаданных облака не меняются. SSH также поддерживает quiet, echo_command и result_only; последний возвращает компактный JSON с фокусом на stdout, stderr и exit_code. SFTP поддерживает quiet, result_only и upload_many (до 100 файлов).

Конфигурация во время выполнения

Агенты могут изменять настройки во время выполнения через set_config без перезапуска:

Параметр

Описание

По умолчанию

fallback_encoding

Запасная кодировка, когда автоопределение не срабатывает

UTF-8

encoding_warnings

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

true

max_file_size_mb

Максимальный размер файла для read/edit/grep (МБ)

100

allow_symlinks

Разрешить извлечение симлинков из tar-архивов

false

workspace

Явный корень локальной рабочей области. В противном случае используется первый корень MCP-клиента, затем cwd

(корень MCP/cwd)

allow_http_private

Разрешить webfetch/download/httpreq доступ к частным IP-адресам

false

allow_mysql_private

Разрешить инструменту mysql доступ к частным IP-адресам

true

allow_redis_private

Разрешить инструменту redis доступ к частным IP-адресам

true

allow_ssh_private

Разрешить инструментам ssh/sftp доступ к частным IP-адресам

true

enable_doh

Включить DNS over HTTPS глобально (webfetch/download/httpreq/dnslookup)

true

enable_ech

Включить Encrypted Client Hello глобально (webfetch/download/httpreq)

true

Сборка

go build -trimpath -ldflags="-s -w" -o agent-tool .

Кросс-компиляция:

GOOS=linux GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o agent-tool .
GOOS=darwin GOARCH=arm64 go build -trimpath -ldflags="-s -w" -o agent-tool .
GOOS=windows GOARCH=amd64 go build -trimpath -ldflags="-s -w" -o agent-tool.exe .

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

Нечитаемый текст (проблемы с кодировкой)

Если корейский, японский или другой не-ASCII текст отображается в виде нечитаемых символов:

Вариант 1: добавьте charset в ваш .editorconfig:

[*]
charset = euc-kr

Вариант 2: задайте переменную окружения (постоянно):

setx AGENT_TOOL_FALLBACK_ENCODING EUC-KR   # Windows
export AGENT_TOOL_FALLBACK_ENCODING=EUC-KR  # Linux

Вариант 3: флаг CLI (на сессию):

agent-tool --fallback-encoding EUC-KR

Встроенная справка для агентов

agent-tool включает инструмент agent_tool_help, который агенты могут вызывать для получения руководства по использованию. Когда агент сталкивается с предупреждениями о кодировке или нечитаемым текстом, он может вызвать:

{ "tool": "agent_tool_help", "arguments": { "topic": "encoding" } }

Доступные темы: overview, encoding, indentation, tools, troubleshooting

Безопасность

agent-tool предоставляет мощный доступ к системе (SSH, MySQL, Redis, файловые операции, HTTP-запросы). При использовании с ИИ-агентами для написания кода помните о рисках промпт-инъекций:

  • Защита от SSRF: IP-адреса метаданных облака (169.254.x.x, fe80::/10) всегда блокируются независимо от настроек. Доступ к приватным IP-адресам настраивается отдельно для каждого протокола через set_config (allow_http_private, allow_mysql_private, allow_redis_private, allow_ssh_private)

  • DLP (предотвращение утечек данных): Все исходящие тела HTTP-запросов сканируются на предмет паттернов конфиденциальных данных (приватные ключи PEM, ключи доступа AWS, токены GitHub/GitLab, токены Slack, дампы .env-файлов) и блокируются до передачи

  • Предупреждения о промпт-инъекциях: Каждое подключение к приватному IP-адресу показывает предупреждение о безопасности, видимое и пользователю, и ИИ-агенту, помогая обнаруживать атаки промпт-инъекций из загруженного веб-контента

  • Защита от Zip Slip: Записи архивов с обходом пути ../ блокируются (как zip, так и tar)

  • Защита от Zip Bomb: Лимит одного файла (1GB), общий лимит извлечения (5GB)

  • Символические ссылки: По умолчанию пропускаются. Включаются через set_config allow_symlinks=true (только для tar; символические ссылки в zip пропускаются всегда). Даже при включении символические ссылки, ведущие за пределы выходного каталога, блокируются

  • Лимит размера файла: Настраиваемый максимальный размер файла (по умолчанию 100MB) предотвращает нехватку памяти (OOM) на больших файлах. Регулируется через set_config max_file_size_mb=N

  • Безопасность кодировок: chardet использует выборку размером 64KB (не весь файл) для эффективного использования памяти

Для максимальной безопасности проверяйте вызовы инструментов ИИ-агента перед одобрением, особенно команды SSH, HTTP-запросы к внешним URL и запросы к базам данных.

Технологический стек

  • Язык: Go

  • MCP SDK: github.com/modelcontextprotocol/go-sdk

  • Кодировки: saintfish/chardet + golang.org/x/text

  • Распространение: один бинарный файл (кросс-компилируемый)

Лицензия

MIT

A
license - permissive license
A
quality
A
maintenance

Maintenance

Maintainers
Response time
4dRelease cycle
41Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Servers

View all related MCP servers

Related MCP Connectors

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/knewstimek/agent-tool'

If you have feedback or need assistance with the MCP directory API, please join our Discord server