fix(install): регистрировать MCP через claude mcp add-json + permissions.allow#4
Open
xxxvita wants to merge 1 commit intovbcherepanov:mainfrom
Open
fix(install): регистрировать MCP через claude mcp add-json + permissions.allow#4xxxvita wants to merge 1 commit intovbcherepanov:mainfrom
xxxvita wants to merge 1 commit intovbcherepanov:mainfrom
Conversation
Claude Code reads MCP server config from ~/.claude.json (managed by 'claude mcp' CLI), NOT from ~/.claude/settings.json — writing 'mcpServers' into settings.json is silently ignored. Also adds permissions.allow entries for the 20 memory tools, because without explicit permissions Claude Code prompts for confirmation on every tool call, which breaks automatic recall/save/error logging from hooks. Changes in install.sh: - Step 4: register MCP via 'claude mcp add-json memory ... -s user' instead of editing settings.json; abort with clear message if the 'claude' CLI is missing; remove-then-add makes the step idempotent. - Step 4b2 (new): write permissions.allow with all 20 mcp__memory__* tool names. - Step 6 verify: check registration with 'claude mcp get memory' instead of reading settings.json mcpServers. README updated accordingly. Reapplies the intent of 0659e71 on top of upstream v6.0 (which rewrote README.md and kept the install.sh bug). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Что фиксится
В
install.shStep 4 сейчас записывает MCP-сервер в~/.claude/settings.jsonв секциюmcpServers. Но Claude Code не читает MCP-конфиг изsettings.json— каноничное хранилище это~/.claude.json, и управляется оно через CLIclaude mcp add/claude mcp add-json. В результате после стандартной установки команда/mcpв Claude Code может не увидеть серверmemory, и пользователь вынужден разбираться сам.Этот PR переводит регистрацию MCP на каноничный путь и параллельно добавляет секцию
permissions.allowвsettings.json— без неё Claude каждый вызовmemory_recall/memory_save/ и т. д. сопровождает подтверждением, что ломает автоматические вызовы из хуков и делаетCLAUDE.md-инструкции «Auto-Save Rules» бесполезными.Что именно изменилось в
install.shStep 4 — регистрация MCP (было → стало):
pythonскрипт вручную правит$CLAUDE_SETTINGS, добавляяmcpServers.memoryclaude mcp remove memory -s user(ignore error) →claude mcp add-json memory '<json>' -s userclaudeCLI вPATHи падает с понятной ошибкой, если его нет (раньше писал в settings.json мимо цели и рапортовал OK)Step 4b2 (новый) — permissions.allow:
mcp__memory__*tool names вsettings.json → permissions.allowStep 6 verify — проверка статуса:
pythonчитаетsettings.jsonи проверяет наличиеmcpServers.memory(проверка проходила даже при нерабочей регистрации)claude mcp get memory >/dev/null 2>&1— реальная проверка через тот же CLIREADME.md:
~/.claude/settings.jsonна~/.claude.json (via claude mcp add-json)Почему это важно
~/.claude.json— внутренний формат, Anthropic может его менять.claude mcpCLI — документированный публичный интерфейс, который останется стабильным при рефакторингах.permissions.allowхуки, которые автоматически сохраняют знания черезmemory_save, спамят диалог подтверждениями на каждый вызов.CLAUDE.md-правила типа «save decisions automatically» просто не работают.settings.json— но сама регистрация могла быть мертва.Риски и ограничения
claudeCLI. Раньше можно было поставить memory server до Claude Code (и даже вообще без него, для тестирования). Теперь installer прервётся на Step 4. Я считаю это корректным поведением — MCP server без Claude Code бесполезен, — но это изменение поведения, которое стоит обсудить.mcpServers. Оставил те жеCLAUDE_MEMORY_DIRиEMBEDDING_MODEL, не менял набор.mcp__memory__*тулы, их надо будет отдельно добавить в этот список — до тех пор они будут подтверждаться вручную. Долгосрочное решение — генерировать список изsrc/server.py, но это выходит за рамки PR.Что проверено
Протестировано end-to-end на Manjaro Linux:
install.sh→claude mcp get memoryвозвращает правильный конфиг/mcpв Claude Code показываетmemory: Connectedcat ~/.claude/settings.json | jq '.permissions.allow | length'показывает +20 новых пермишеновmemory_save/memory_recallиз хуков выполняются без confirmation-промптовЧто не проверено
claude mcp add-jsonработает одинаково на обеих платформах — но formally не тестировал.Generated with Claude Code