vault-ask — MCP-сервер для Claude Code: секреты без чата
Передаёт пароль или API-ключ агенту через одноразовую ссылку, не печатая значение в чате. Работает и в обратную сторону.
claude mcp add --env VAULT_ASK_API_KEY=<VAULT_ASK_API_KEY> --env VAULT_ASK_SERVER=<VAULT_ASK_SERVER> --transport stdio cli -- npx -y @erseni/vault-askЧто делает vault-ask
vault-ask показывает агенту ссылку на страницу Erseni Vault, вы открываете её, видите, для какой команды или файла предназначено значение, и вводите его. Агент получает только метаданные: имя, длину, куда ушло. Значение расшифровывается на вашей машине и попадает ровно в одно место: в окружение дочернего процесса (через --), в .env или в файл с правами 600.
Подкоманда send идёт в другую сторону: генерирует значение на локальной машине, шифрует свежим ключом AES-256-GCM, отдаёт человеку одноразовую ссылку и при желании пишет то же самое значение в .env или передаёт команде. Ключ едет только во фрагменте #k=, сервер хранит шифротекст. Уже существующее значение можно отправить флагами --from-env или --from-file.
Для Claude в комплекте есть хук vault-ask-guard: он запрещает читать файлы, куда vault-ask писал секреты, и не даёт запускать vault-ask через env, echo, printf и подобные обёртки. Хук разбирает текст команды, не выполняя её, поэтому ловит случайности, а не агента, который нарочно прячет путь. Агент под тем же системным пользователем с шеллом всё равно может прочитать память своих процессов — без разделения привилегий полной защиты не будет. Нужен Node.js 20 или новее; для учётной записи Vault пригодится VAULT_ASK_API_KEY, тогда запросы идут без proof of work и видны в дашборде.
Какие задачи решает
- отдать агенту пароль к базе, не вставляя его в переписку
- записать несколько ключей в
.envс правами 600 - сгенерировать токен и передать его коллеге одноразовой ссылкой
- скрыть секрет в выводе команды, заменив его на
*** - не дать агенту прочитать файл, куда лёг секрет
Примеры запросов агенту
- Достань
DB_PASSWORDи запусти с нимpsql -h db.example.com -U app - Положи
STRIPE_KEYиSENTRY_DSNв.envчерезvault-ask - Сгенерируй токен на 48 символов и отправь ссылкой с подписью «Router admin»
Как установить vault-ask
Командой платформы
claude mcp add --env VAULT_ASK_API_KEY=<VAULT_ASK_API_KEY> --env VAULT_ASK_SERVER=<VAULT_ASK_SERVER> --transport stdio cli -- npx -y @erseni/vault-askВместо <…> подставьте свои значения
Командой платформы
codex mcp add cli --env VAULT_ASK_API_KEY=<VAULT_ASK_API_KEY> --env VAULT_ASK_SERVER=<VAULT_ASK_SERVER> -- npx -y @erseni/vault-askВместо <…> подставьте свои значения
Файл настроек
{
"mcpServers": {
"cli": {
"command": "npx",
"args": [
"-y",
"@erseni/vault-ask"
],
"env": {
"VAULT_ASK_API_KEY": "<VAULT_ASK_API_KEY>",
"VAULT_ASK_SERVER": "<VAULT_ASK_SERVER>"
}
}
}
}Вместо <…> подставьте свои значения
Файл настроек
{
"servers": {
"cli": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@erseni/vault-ask"
],
"env": {
"VAULT_ASK_API_KEY": "<VAULT_ASK_API_KEY>",
"VAULT_ASK_SERVER": "<VAULT_ASK_SERVER>"
}
}
}
}Вместо <…> подставьте свои значения
Командой платформы
gemini mcp add -e VAULT_ASK_API_KEY=<VAULT_ASK_API_KEY> -e VAULT_ASK_SERVER=<VAULT_ASK_SERVER> cli npx -y @erseni/vault-askВместо <…> подставьте свои значения
По шагам, с командами для каждой платформы: Как подключить MCP-сервер: Claude Code, Codex, Cursor, VS Code, Gemini CLI и другие
Вопросы о vault-ask
Как установить vault-ask в Claude Code?
Добавьте MCP-сервер командой claude mcp add vault-ask -e VAULT_ASK_API_KEY=<VAULT_ASK_API_KEY> -- npx -y @erseni/vault-ask.
Что делает vault-ask?
Просит у человека значение через страницу Erseni Vault и передаёт его одной цели: команде, файлу или .env. Подкоманда send делает обратное — генерирует значение и отдаёт его человеку одноразовой ссылкой.
Секрет попадёт в чат или в вывод команды?
Нет. Ссылка печатается в stderr, а значение в stdout и stderr дочерней команды заменяется на ***, включая Base64, URL и hex-кодировки.