amnesic

amnesic

SurajKGoyalMIT
Amnesic — это MCP-сервер, который даёт AI-ассистенту долговременную память о структуре ваших SQL баз. Название ироничное: он не забывает, а наоборот, помнит всё между сессиями. Каждый раз, когда вы начинаете новый диалог с ассистентом, ему приходится заново объяснять, какие таблицы есть, что означают значения колонок, как связаны таблицы. Amnesic решает эту проблему: он один раз сканирует схему, запоминает внешние ключи, типы колонок, а также аннотации, которые вы добавили, и при каждом последующем запросе передаёт эти знания ассистенту. Работает с PostgreSQL, MySQL, MSSQL и SQLite. Полностью read-only — два уровня защиты гарантируют, что никакие изменения в базе не произойдут.

Характеристики

Общее

  • СтатусСообщество
  • РазработчикSurajKGoyal
  • ЛицензияMIT

Технологии

  • Языки
    Python
  • Транспорт
    stdio

Описание

Возможности

  • Автоматически обнаруживает все таблицы, представления, их колонки, типы и первичные ключи для подключённой базы данных.
  • Запоминает семантику колонок — вы можете один раз объяснить ассистенту, что означает значение '3' в колонке status, и это сохранится для всех будущих сессий.
  • Сохраняет граф внешних ключей между таблицами, чтобы ассистент мог автоматически строить корректные JOIN-запросы.
  • Поддерживает четыре СУБД: PostgreSQL, MySQL, Microsoft SQL Server и SQLite (включая файловые и in-memory базы).
  • Гарантирует безопасность: два уровня защиты от записи — статический анализ SQL на этапе разбора и принудительный откат транзакции после выполнения любого запроса.
  • Хранит всё накопленное знание в локальном SQLite-файле в директории ~/.config/amnesic, независимо от источника данных.
  • Предоставляет интерактивный мастер настройки — команда amnesic init проведёт вас по шагам, протестирует подключение и сохранит пароль в зашифрованном виде.
  • Включает демо-режим (amnesic init --demo) с предсозданной SQLite-базой e-commerce (клиенты, товары, заказы, внешние ключи, enum-колонка) — можно попробовать все инструменты за минуту.
  • Работает в любом MCP-совместимом клиенте: Claude Desktop, Claude Code, Cursor, VS Code, Cline, Windsurf.

Как подключить

Установите amnesic с помощью pipx или uvx:

pipx install amnesic

Затем запустите мастер настройки:

amnesic init

Мастер задаст тип базы данных, хост, порт, учётные данные и пароль. Он протестирует подключение и запишет конфигурацию в файл ~/.config/amnesic/connections.toml. Пароль сохраняется в .env с правами доступа 600.

После этого добавьте amnesic в конфигурацию вашего AI-клиента. Для Claude Desktop отредактируйте файл конфигурации (обычно claude_desktop_config.json) и добавьте строчку:

{
  "mcpServers": {
    "amnesic": {
      "command": "uvx",
      "args": ["amnesic"]
    }
  }
}

Перезапустите клиент — теперь ассистент будет видеть полную структуру вашей базы.

Примеры запросов

  • «Покажи список всех таблиц в базе и их колонки»
  • «Найди внешний ключ, который связывает таблицы orders и users»
  • «Что означает значение 3 в колонке status таблицы orders?» (если ранее для этого значения была добавлена аннотация)
  • «Создай SQL-запрос, который выводит имена клиентов и их последние заказы, используя известные связи»

Технические детали

  • Язык: Python
  • Транспорт: stdio
  • Лицензия: MIT
  • Совместимые клиенты: Claude Code, Claude Desktop, Cursor, VS Code, Cline, Windsurf, любые MCP-совместимые клиенты

Поделиться