srs-mcp
srs-mcp — интервальное повторение в виде MCP-сервера
Дайте любому агенту, поддерживающему MCP (Claude Code, Claude Desktop или любому другому MCP-хосту), настоящую, правильно планируемую память с интервальным повторением, вместо того чтобы каждый раз вручную заново выводить «что нужно повторить сегодня» из markdown-таблицы. Реализует SM-2 (алгоритм, лежащий в основе Anki/SuperMemo) в виде четырёх вызываемых инструментов, с локальным SQLite-файлом в качестве хранилища. Без аккаунта, без сетевых вызовов, без телеметрии — всё работает на вашей машине.
Статус: прототип, ещё нигде не опубликован. Собран и проверен локально (см. «Как это было проверено» ниже); ещё не установлен никем за пределами этого проекта. Считайте версию 0.2.0 предрелизной.
Зачем это существует
Markdown-чек-листы и таблицы словарного запаса — распространённые способы, которыми люди (и помогающие им агенты) отслеживают, что нужно повторить, но ничто не вычисляет из них реальное расписание — «нужно сегодня» оказывается догадкой, которую каждый раз перечитывают глазами. srs-mcp — недостающий элемент: небольшой настоящий алгоритм планирования, представленный в виде инструментов, чтобы агент мог отслеживать состояние повторения для чего угодно — карточек, вопросов на собеседовании, словарного запаса, вводных тестов — не переписывая SM-2 в промпте.
Четыре основных инструмента (бесплатно, без ограничений, навсегда)
Tool | Что делает |
| Добавляет элемент для повторения в указанную тему. Новые элементы становятся доступными сразу. |
| Список элементов, которые нужно повторить сегодня или позже срока. Ответ скрыт до оценки, как при настоящем повторении карточек. |
| Оценивает запоминание по шкале 0–5 (5 = отлично, <3 = провал/сброс). Возвращает следующую дату повторения по SM-2 и правильный ответ. |
| Итоги, количество к повторению сегодня, средний коэффициент лёгкости. |
Получить Pro
Два дополнительных инструмента доступны только по Pro-лицензии — это разделение на бесплатную и платную версии, которое srs-mcp использует вместо подписок или облачного бэкенда:
Tool | Что делает |
| Массовый экспорт/резервное копирование всех ваших данных о повторениях. |
| Прогноз нагрузки повторений — сколько элементов станут доступными в каждый из следующих N дней, чтобы накопление было видно заранее. |
Как конкретно работает лицензирование: srs-mcp подписывает лицензионные ключи с помощью закрытого ключа Ed25519, который никогда не покидает машину сопровождающего; в этом репозитории поставляется только соответствующий открытый ключ (license.py), который может проверить подпись, но не может её подделать. Купите ключ, задайте его как SRS_LICENSE_KEY (переменная окружения) или сохраните в ~/.srs-mcp/license.key, и Pro-инструменты разблокируются — без аккаунта, без проверки связи с домом, работает офлайн. См. license.py для полного механизма и его заявленных ограничений (кратко: это сдерживает случайное копирование, это не DRM — ничто не мешает кому-то вырезать проверку в своей локальной копии открытого Python-файла; см. docstring модуля для честной версии этого компромисса).
Живой ссылки для покупки пока нет. Этот раздел описывает механизм, который создан и протестирован (см. test_license_gate.py), а не работающий магазин. Когда появится процесс покупки, он будет здесь.
Установка
Требуется Python 3.11+.
git clone <repo-url> # not yet public — see status note above
cd srs-mcp
python3 -m venv .venv
.venv/bin/pip install -e .
.venv/bin/srs-mcp # runs the server on stdioЧтобы использовать его как плагин Claude Code, укажите Claude Code на этот каталог (или, после публикации, на его запись в маркетплейсе) — .claude-plugin/plugin.json и .mcp.json уже настроены; сервер читает SRS_DB_PATH, поэтому данные установки плагина переживают обновления (${CLAUDE_PLUGIN_DATA}/srs.db в Claude Code или расположенный рядом srs.db для прямого/ручного запуска).
Как это было проверено
Не просто «оно импортируется» — реально запущено, по настоящему протоколу MCP:
test_client.pyзапускаетserver.pyкак подпроцесс (так же, как это делает настоящий MCP-хост), проводит полный сеанс add/list/grade/list и независимо перепроверяет полученные строки SQLite вне тестовой среды.test_license_gate.pyзапускает сервер тремя способами (без лицензии, с действительной лицензией, с изменённой лицензией) и подтверждает, чтоexport_items/get_forecastотказывают в случаях 1 и 3 и возвращают реальные данные в случае 2 — доказывая, что проверка лицензии — это настоящий шлюз, а не заглушка.ingest_chinese_vocab.pyиingest_leetcode.py— рабочие идемпотентные скрипты импорта, которые заполняют реальные личные данные (114 элементов китайского словарного запаса, 16 решённых задач LeetCode) из markdown-трекеров этого проекта через реальные вызовыadd_itemMCP, а не прямые записи в SQLite.
Честный разрыв до «готовности к запуску» — без преувеличений
Нет публичного репозитория. Каждый реальный путь распространения (маркетплейс плагинов сообщества Claude Code, релиз на GitHub, листинг в каталоге MCP) требует, чтобы проект был доступен по публичному git-URL. Этот проект существует только локально. Создание такого репозитория (репозиторий GitHub, возможно, аккаунт) выходит за рамки текущей автономии этого проекта без явного разрешения — всё вышеперечисленное подготовлено так, чтобы это было действие «скопировать и отправить», а не задача сборки, как только разрешение будет дано.
Невозможно самостоятельно проверить через
claude plugin validate. В этом окружении разработки нет CLIclaudeили Node/npx. Манифест плагина соответствует схеме, насколько это может подтвердить внимательное чтение документации Anthropic и перекрёстная ссылка на их собственный продакшн-marketplace.json, но не проверен машинно.Нет живого процесса покупки. Механизм лицензирования реален и протестирован; превращение его в реальную продажу требует витрины (Ko-fi, Gumroad или аналогичной), которой пока нет — это шаг создания аккаунта, выходящий за рамки автономии этого проекта без разрешения.
Обеспечение лицензии основано на честности, а не на защите от взлома — по замыслу и по природе поставки читаемого Python — см. раздел «Получить Pro» выше и docstring в
license.py.Нет истории с аутентификацией/мультитенантностью. Один локальный SQLite-файл, один пользователь. Нормально для текущей модели «работает на вашей машине»; потребуется реальная проектная работа, чтобы стать хостируемым/командным продуктом.
Ноль внешнего подтверждения. Никто за пределами этого проекта не устанавливал и не использовал это. Каждое утверждение выше — «это работает, как создано и протестировано», а не «люди этого хотят».
Лицензия
MIT — см. LICENSE. (Механизм лицензионных ключей Pro-уровня отделён от собственной MIT-лицензии кода — см. «Получить Pro» выше.)
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Free: turn your AI chats into spaced-repetition vocabulary. 13 tools, reads and writes.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Shared long-term memory vault for AI agents with 20 MCP tools.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/happymario123/srs-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server