wasurenagusa-mcp
wasurenagusa
Научите своего ИИ-агента учиться на ошибках.
wasurenagusa (незабудка) — японский цветок, название которого означает «не забывай меня».
Проблема
ИИ-агенты для написания кода мощны, но страдают амнезией. Каждая сессия начинается с чистого листа — ваши проектные соглашения, прошлые решения и усвоенные уроки исчезают, как только сессия заканчивается.
Существующие решения либо требуют ручного труда, либо просто хранят «сырые» воспоминания, которые разрастаются до тех пор, пока не переполняют контекстное окно.
Related MCP server: memory-bank-mcp
Решение
wasurenagusa — это MCP-сервер, который не просто запоминает — он учится.
Автоматически обнаруживает ошибки — отслеживает паттерны повторных попыток, разочарование пользователя и повторяющиеся сбои.
Дистиллирует уроки в принципы — LLM сжимает сотни «сырых» записей в несколько применимых правил.
Превращает негатив в позитив — генерирует
positiveRuleвместе с каждым принципом: «не делай X» превращается в «вместо этого делай Y». Исследования показывают, что LLM значительно лучше следуют утвердительным инструкциям, чем запретам (проблема «Розового слона»).Сжимает конфигурацию в темы — LLM группирует разрозненные настройки в связные резюме, сохраняя такие факты, как порты и пути.
Внедряет только то, что важно — только консолидированная мудрость + активные настройки. Никакого мусора из шаблонов, никаких дубликатов.
Гибридный поиск (полнотекстовый + семантический) — хранилище на базе SQLite с локальным выводом эмбеддингов (внешний API не нужен). Полнотекстовый поиск с поддержкой японского языка + векторный семантический поиск, объединенные и дедуплицированные. Работает полностью офлайн.
Умное извлечение по тегам — взвешенные теги, сгенерированные LLM + композитный скоринг (свежесть, вес тега, частота доступа) оптимизируют приоритет извлечения без удаления данных.
Стейшинг/восстановление памяти — временно выгружайте воспоминания из активного контекста, чтобы сэкономить место, и восстанавливайте их при необходимости. Идеально для длинных сессий с под-агентами.
Полная автоматизация через хуки Claude Code — никакой настройки после установки.
Реальное влияние
Из ежедневного использования автором в 8 производственных проектах (с обменом памятью между проектами):
1,581 "dont" entries → 5-9 principles per project (LLM consolidation)
each with positiveRule → affirmative-only injection (Pink Elephant fix)
29 config entries → 4-5 thematic summaries (LLM consolidation)
21,800 chars raw data → 6,200 chars injected (71% reduction)Демонстрация
Сессия 1: Claude использует порт 3000 — пользователь исправляет его на 8080.
Хук остановки: wasurenagusa автоматически анализирует диалог и записывает ошибку.
Сессия 2: Claude правильно использует порт 8080 без напоминаний.
Почему wasurenagusa
Большинство инструментов памяти хранят то, что произошло. wasurenagusa учит ваш ИИ почему что-то пошло не так — и гарантирует, что он никогда не повторит ту же ошибку.
Это не банк памяти. Это система обучения.
wasurenagusa | claude-mem | mcp-memory-service | CLAUDE.md | |
Авто-обнаружение ошибок | Да (повторы + тональность) | Нет | Нет | Нет |
Авто-консолидация (LLM) | Да (негатив→принципы, конфиг→темы) | Нет | Да (на основе затухания) | Нет |
Векторный семантический поиск | Да (локальный вывод, офлайн) | Да (ChromaDB) | Да (SQLite-vec / ChromaDB) | Нет |
Уровни памяти (кратко/средне/долго) | Да (пороги косинусного расстояния) | Нет | Нет | Нет |
Авто-продвижение (интенсивность) | Да (счетчик доступа → интенсивность 5) | Нет | Нет | Нет |
Нулевые усилия через хуки | Да | Да | Частично | Нет |
Читаемое человеком хранилище | Нет (SQLite — авто-миграция из v1 Markdown) | Нет (SQLite) | Нет (SQLite-vec) | Да |
Поддержка нескольких LLM | Gemini / OpenAI / Anthropic (эмбеддинги локальны) | Только Claude | Локально (MiniLM-L6-v2) | Н/Д |
Эффективное извлечение токенов | Да (индекс → детали, экономия 70-90%) | Да (3 уровня) | Н/Д | Нет |
Память между проектами | Да (топ-5 активных проектов) | Нет | Нет | Нет |
Лицензия | MIT | AGPL-3.0 | Apache-2.0 | Н/Д |
Как это работает
Session Start (Hook) — injection mode
→ Checks if consolidation is stale
→ Spawns background LLM worker if needed (non-blocking)
→ Spawns background embedding backfill worker (non-blocking)
→ Injects consolidated config + principles (layer 1) + recent 30-day entries (layer 2) + owner profile
→ Vector search injects semantically related short-term memories (layer 3)
→ Cross-project vector search injects related memories from other active projects (layer 4)
→ Only customized settings injected (defaults stripped)
Session Start (Hook) — agent mode
→ Injects dont summary + config index + owner profile (minimal footprint)
→ No vector search at startup (deferred to on-demand recall)
User Prompt (Hook) — agent mode
→ Injects 1-line reminder: "search memory if relevant"
→ Main agent spawns memory-recall sub-agent as needed
→ Sub-agent runs memory_search → returns summary only (no raw data in main context)
→ Survives compaction (re-injected on every user message)
During Session
→ memory_save auto-generates embedding via local inference (no API call)
→ memory_save enriches tags with LLM-assigned weights (0.0-1.0) (when API key available)
→ Theme shift triggers background re-tagging of related past entries
→ memory_search merges keyword + vector semantic + tag-weighted results
→ Vector hits increment access counts → auto-promote to intensity 5 at threshold
Session End (Hook)
→ LLM analyzes the conversation
→ Detects mistakes, frustration, retry patterns
→ Auto-saves lessons learned (with embedding)
→ Deduplicates against existing entries before saving
→ Updates active projects tracker (top 5 recent projects)
Background (async workers)
→ Consolidates "dont" entries → behavioral principles
→ Consolidates "config" entries → thematic summaries
→ Backfills embeddings for entries created before vector layer (20/run)
→ Results used in next session startБыстрый старт
💡 Рекомендуется: Вставьте этот README в Claude Code и попросите его настроить wasurenagusa за вас. Он автоматически выполнит все действия ниже.
Предварительные требования
Node.js 18+
Claude Code (CLI)
Внешний API-ключ не требуется для основных функций памяти (эмбеддинги работают локально)
Опционально: API-ключ для консолидации/анализа LLM — Gemini / OpenAI / Anthropic
1. Установка
npm install -g wasurenagusa-mcpИли из исходного кода:
git clone https://github.com/tsutushi0628/wasurenagusa-mcp.git
cd wasurenagusa-mcp
npm install && npm run build
npm link
npm run buildавтоматически выполняетchmod +xдля CLI-точек входа. Ручная настройка прав не требуется.
2. Конфигурация
Создайте ~/.wasurenagusa/.env:
# Set at least one API key
GEMINI_API_KEY=your-key-here
# OPENAI_API_KEY=your-key-here
# ANTHROPIC_API_KEY=your-key-hereПеременная | Обязательно | Описание |
| Одна из трех | API-ключ Google Gemini |
| Одна из трех | API-ключ OpenAI |
| Одна из трех | API-ключ Anthropic |
| Нет |
|
| Нет | Переопределение модели по умолчанию |
| Нет | Директория памяти (по умолчанию: |
| Нет | Лимит записей на категорию до авто-архивации (по умолчанию: |
| Нет | Срок хранения логов в днях (по умолчанию: |
| Нет | Slack-уведомления для автономных задач |
3. Регистрация MCP-сервера
claude mcp add wasurenagusa -- wasurenagusa-mcp4. Настройка хуков
⚠️ Обязательно — без этого шага память не будет внедряться при запуске сессии. Это самый часто пропускаемый шаг настройки.
Добавьте в ~/.claude/settings.json (или settings.local.json, если предпочитаете разделять хуки):
{
"hooks": {
"SessionStart": [
{
"hooks": [
{
"type": "command",
"command": "wasurenagusa-context",
"timeout": 5
}
]
}
],
"UserPromptSubmit": [
{
"hooks": [
{
"type": "command",
"command": "wasurenagusa-context",
"timeout": 5
}
]
}
],
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "wasurenagusa-analyze",
"timeout": 30
}
]
}
],
"PreCompact": [
{
"hooks": [
{
"type": "command",
"command": "wasurenagusa-context",
"timeout": 15
}
]
}
]
}
}5. Начало использования
Запустите Claude Code. Это всё.
Первая сессия: директория
.wasurenagusa/создается автоматически.После первого диалога: хук остановки анализирует и сохраняет важный контекст.
Со второй сессии: накопленная мудрость автоматически внедряется при старте.
Добавьте
.wasurenagusa/в ваш.gitignore— там хранятся специфичные для проекта данные памяти.
Категории памяти
Категория | Что хранит | Файл |
config | API URL, порты, пути авторизации |
|
dont | Ошибки, анти-паттерны, разочарования |
|
decision | Архитектурные решения, выбор технологий |
|
log | Записи реализации, решенные ошибки |
|
snippet | Часто используемые команды и запросы |
|
Инструменты MCP
Инструмент | Описание |
| Получить конфиг + консолидированные принципы (вызывается при старте) |
| Легкий поиск по индексу (только ID, заголовок, теги). Используйте |
| Получить полные детали по ID |
| Явное сохранение записи памяти |
| Временная выгрузка памяти для экономии контекста |
| Восстановление выгруженной памяти в активный контекст |
| Удаление записей по ID |
| Отправка автономной задачи для выполнения 24/7 |
| Проверка статуса выполнения задачи |
| Список и управление ожидающими действиями человека |
| Инициализация стандартов качества проекта |
Команды CLI
Команда | Цель | Кем вызывается |
| Вывод конфига + dont + векторной памяти в stdout | SessionStart / UserPromptSubmit / PreCompact Hook |
| LLM-анализ диалога и авто-сохранение | Stop Hook |
| Генерация эмбеддингов для записей без векторов | Фон (авто-запуск) |
| Исправление поврежденных данных памяти | Вручную |
| Авто-обновление документов спецификаций | cron / systemd timer |
| Запуск консолидации по всем проектам | Вручную / Планировщик |
| Установка/удаление ночного планировщика | Вручную |
Режим вывода
wasurenagusa поддерживает два режима вывода для хука SessionStart, настраиваемых для каждого проекта через .wasurenagusa/config.json.
Режим | Описание | Лучше всего для |
injection (по умолч.) | Внедряет полный текст памяти при старте | Сред без под-агентов (Cursor, Windsurf и т.д.) |
agent | Внедряет минимальный индекс + напоминание о вызове памяти | Claude Code + Команды агентов |
Конфигурация
Добавьте outputMode в .wasurenagusa/config.json вашего проекта:
{
"outputMode": "agent"
}Если файл отсутствует или outputMode не задан, по умолчанию используется "injection" (полная обратная совместимость).
Рекомендуемые правила CLAUDE.md для режима агента
При использовании режима "agent" с командами агентов Claude Code, добавьте эти правила в CLAUDE.md вашего проекта:
- Read/write memories via sub-agents (memory_search / memory_get_detail / memory_save)
- Do not bring raw memory data into the main context
- When system-reminder suggests memory recall, spawn a sub-agent to run memory_search and return summary onlyПродвинутые функции
Уровни векторной памяти
wasurenagusa представляет систему памяти, вдохновленную биологическими принципами, на базе локальных эмбеддингов. Каждое воспоминание преобразуется в 384-мерный вектор, что позволяет выполнять поиск по смыслу, выходящий далеко за рамки простого сопоставления ключевых слов.
Трехуровневая архитектура с порогами косинусного расстояния:
Уровень | Порог | Вариант использования |
Краткосрочная | ≤ 0.2 | Высокая релевантность — авто-внедрение при старте |
Среднесрочная | ≤ 0.45 | Контекстуально связанная — всплывает при |
Долгосрочная | ≤ 0.7 | Слабо связанная — доступна, но не показывается проактивно |
Автоматическое продвижение: Каждый раз, когда воспоминание извлекается через векторный поиск, счетчик доступа увеличивается. После 5 извлечений воспоминание автоматически переходит в intensity: 5, гарантируя, что часто нужные знания получают максимальный вес при консолидации.
Как это работает:
memory_save
→ Text → local inference (Hugging Face Transformers) → embedding → SQLite (sqlite-vec)
memory_search "authentication setup"
→ Full-text search (FTS5, Japanese support) ─┐
→ Embed query → vector similarity search ─┤→ merge, deduplicate → results
└→ increment access count
→ auto-promote if threshold met
SessionStart Hook
→ Embed project name → short-tier search → inject related memoriesВнешний API не требуется — эмбеддинги генерируются локально через @huggingface/transformers. Данные хранятся в SQLite с sqlite-vec для векторной индексации. Работает полностью офлайн.
Автоматическая миграция из v1 — существующие Markdown-файлы памяти автоматически переносятся в SQLite при первом запуске.
Умное извлечение по тегам
Умное извлечение по тегам повышает точность поиска тремя механизмами — без удаления или забывания данных:
Взвешенное обогащение тегами при сохранении — при сохранении памяти LLM генерирует описательные теги и присваивает каждому вес (0.0-1.0). Конкретные факты (порты, API) получают высокий вес; общие категории — низкий.
Фоновая перемаркировка при смене темы — при обнаружении новой темы фоновый процесс обновляет теги связанных прошлых записей.
Композитный скоринг — результаты поиска ранжируются по смеси свежести, веса тега и частоты доступа.
Память между проектами
wasurenagusa автоматически отслеживает 5 последних использованных проектов и ищет релевантный контекст в их памяти.
**Как это работает
Available Tools
10 toolsmemory_deleteA
メモリエントリを削除する。memory_searchで取得したIDを指定して削除。 複数IDを一括指定可能。カテゴリをまたいだ削除もOK。
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 削除したいエントリのID配列 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full disclosure burden. It mentions cross-category deletion scope and bulk capability, but fails to mention whether deletion is permanent, if there are permission requirements, or error handling behavior when IDs don't exist.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Four compact sentences with zero waste: action definition, ID source requirement, bulk capability, and scope flexibility. Information is front-loaded with the core action first, followed by constraints and capabilities.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a single-parameter deletion tool without output schema, the description adequately covers the operational workflow (search-then-delete) and key behavioral constraints (bulk, cross-category). Minor gap in not describing the operation's result or permanent nature, but sufficient for correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema has 100% coverage (baseline 3), the description adds valuable semantic context by specifying that IDs come from 'memory_search' (workflow prerequisite) and explicitly noting that multiple IDs can be bulk-specified, reinforcing the array nature of the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states 'メモリエントリを削除する' (Delete memory entries), providing a specific verb and resource. It clearly distinguishes this as the sole deletion tool among siblings (memory_save, memory_search, memory_update_intensity, etc.).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear workflow guidance by specifying that IDs should be obtained from 'memory_search' first. It also notes bulk and cross-category deletion capabilities. However, it lacks explicit 'when not to use' guidance or mention of alternatives like memory_update_intensity for partial modifications.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_get_contextA
config(設定情報)とdont(やってはいけないこと)を一括取得する。 通常はSessionStart Hookで自動注入されるため、手動で呼ぶ必要は少ない。 セッション途中でコンテキストを再確認したい場合に使用。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It successfully conveys the SessionStart Hook injection pattern, which is critical operational context. However, it lacks explicit statements about read-only safety, idempotency, caching behavior, or the structure of the returned config/dont data, leaving gaps in the safety/behavioral profile.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: (1) function definition, (2) automatic usage pattern/warning, (3) exceptional manual usage case. The logical flow moves from what it does, to the common case (don't use), to the edge case (do use). Japanese text is economical and every clause earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a zero-parameter retrieval tool, the description adequately covers the operational context (hook injection) and identifies the returned data categories (config and dont). However, given the absence of annotations and output schema, it could be improved by explicitly confirming the read-only nature of the operation or describing the return format structure.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema contains zero parameters (empty object). According to calibration rules, zero parameters establishes a baseline score of 4. The description correctly does not invent parameter documentation where none exist, and the 100% schema coverage is vacuously satisfied.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description explicitly states the tool performs batch retrieval ('一括取得') of specific resources: 'config' (configuration) and 'dont' (constraints/things not to do). It clarifies what 'context' means in this domain, effectively distinguishing it from siblings like memory_get_detail or memory_search which likely operate on specific memories rather than system context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit usage guidance: it states when NOT to use the tool ('通常はSessionStart Hookで自動注入されるため、手動で呼ぶ必要は少ない' - rarely needed manually because it's auto-injected at session start) and specifically when TO use it ('セッション途中でコンテキストを再確認したい場合' - when reconfirming context mid-session). This clear conditional guidance prevents unnecessary invocations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_get_detailA
memory_search で取得したIDを指定して、メモリのフル詳細を取得する。 複数IDを一括指定可能。必要なものだけ取得してトークンを節約すること。
| Name | Required | Description | Default |
|---|---|---|---|
| ids | Yes | 取得したいメモリエントリのID配列 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses batch capability ('複数IDを一括指定可能') and cost implications (token saving). However, lacks disclosure of error behavior (what happens if ID not found), idempotency, or safety characteristics beyond the implicit 'get' operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with two efficient sentences. First sentence establishes purpose and batch capability; second provides optimization guidance. Zero redundancy, front-loaded with essential workflow information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no nested objects, 100% schema coverage), the description is appropriately complete. It explains the integration with memory_search (sibling tool) and batch behavior. Minor gap regarding error handling or return value description, but acceptable without output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing baseline 3. Description adds valuable semantic context that IDs should come specifically from memory_search (not arbitrary sources) and emphasizes batch retrieval capability, enriching the 'ids' parameter meaning beyond the schema's basic type description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool retrieves 'full details' (フル詳細) of memories using IDs, with specific verb+resource. It distinguishes from sibling memory_search by explicitly stating this tool requires IDs obtained from memory_search, establishing a clear workflow dependency.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit prerequisite ('memory_search で取得したIDを指定して'), guiding users to search first. Includes specific optimization guidance ('必要なものだけ取得してトークンを節約') for efficient usage. Lacks explicit 'when not to use' or named alternatives, though the workflow implication is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_saveA
メモリを保存する。カテゴリ:
config: API URL、ポート、認証情報などの設定
dont: やってはいけないこと、過去のミス、ユーザーが怒ったこと、AIのリトライパターン
decision: 決定事項、採用した方針
log: 実装したこと、解決したエラー
snippet: よく使うコマンド、クエリ、便利スクリプト
titleには検索しやすい具体的な名詞を含めること。
| Name | Required | Description | Default |
|---|---|---|---|
| category | Yes | メモリのカテゴリ | |
| title | Yes | 1行の要約タイトル(20文字以内推奨)。検索用の具体的な名詞を含める。例: 「本番API URL」「ログ未読への怒り」 | |
| content | Yes | 保存する内容の詳細 | |
| tags | No | 検索用タグ(オプション、最大5個) | |
| scope | No | スコープ(オプション)。推奨候補: frontend, backend, infra, design, spec, ai, general。自由入力も可 | |
| intensity | No | 怒られ度(オプション、1〜10の整数)。1=提案, 2=軽い注意, 3=明確な指摘, 4=強い不満, 5=激怒・諦め。6以上は手動ピン留め用(数値が大きいほどcontext注入で優先される)。指定時はLLM自動判定より優先される |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It successfully discloses behavioral semantics of the intensity parameter (the 1-10 scale meaning from '提案' to '激怒') and category taxonomy, but omits operational details like idempotency, overwrite behavior for duplicate titles, or error conditions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Perfectly structured with the core action front-loaded, followed by a scannable bulleted category list with inline semantics, and closing with specific title guidance. No redundant text; every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the 100% schema coverage and lack of output schema, the description is appropriately complete for a save operation. It comprehensively covers the categorical taxonomy and intensity semantics that the schema cannot express fully, though it could briefly mention whether the operation returns an ID or confirmation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the input schema has 100% description coverage (baseline 3), the description adds significant semantic value by detailing what each enum value in 'category' represents (e.g., 'config: API URL、ポート、認証情報などの設定') and expanding the 'intensity' parameter with the full semantic scale of anger levels (1=提案 through 5=激怒).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with the specific verb+resource 'メモリを保存する' (save memory) and immediately distinguishes this as the creation tool among CRUD siblings by enumerating the five distinct category types (config, dont, decision, log, snippet) that can be saved.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides extensive contextual guidance on when to use each category (e.g., 'config' for API URLs/auth, 'dont' for past mistakes, 'snippet' for commands) and specific title formatting instructions. Lacks explicit comparison to sibling tools like memory_update_intensity or memory_delete.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_searchA
メモリを検索する。【重要】このツールは軽量インデックス(ID, タイトル, タグ)のみを返す。 フル内容が必要な場合は、返されたIDを memory_get_detail に渡すこと。 全件の詳細を取得せず、必要なものだけ取得してトークンを節約すること。
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | 検索クエリ(キーワード) | |
| category | No | 検索対象カテゴリ。デフォルトはall | |
| limit | No | 最大取得件数。デフォルトは20 | |
| project | No | プロジェクトフィルタ(オプション)。指定するとそのプロジェクト+プロジェクト未指定のエントリのみ返却。"active"を指定すると最近作業した上位5プロジェクト横断で検索 | |
| scope | No | スコープフィルタ(オプション)。指定するとそのscope+general+scope未指定のエントリのみ返却 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. Discloses critical behavioral trait that only partial data is returned (軽量インデックスのみ), explains the token-saving optimization strategy, and clarifies the return structure. Minor gap: doesn't specify behavior when no matches found.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences with zero waste: (1) purpose declaration, (2) critical limitation + alternative tool, (3) optimization rationale. Front-loaded with 【重要】alert and efficient Japanese prose. Every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Strong coverage for a 5-parameter search tool with no output schema: explains return format (lightweight index), workflow integration with memory_get_detail, and cost optimization. Lacks only error-handling context (e.g., empty results behavior) to be perfect.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (all 5 parameters fully documented), so baseline score applies. Description focuses on behavioral guidance rather than repeating parameter details already covered in schema, which is appropriate prioritization.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Opens with specific verb+resource (メモリを検索する) and immediately distinguishes from sibling tools by clarifying it returns only lightweight index (ID, title, tags) rather than full content, explicitly naming memory_get_detail as the alternative for full data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit when-not-to-use guidance (フル内容が必要な場合は...memory_get_detailに渡すこと) and describes the two-step workflow (search IDs first, fetch details selectively) to optimize token usage, directly addressing the alternative tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
memory_update_intensityA
既存メモリエントリのintensity(重要度)だけを変更する。 ピン留め運用に使う: intensity 6以上を設定するとcontext注入で最優先される。 memory_searchで取得したIDを指定すること。
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | 更新対象エントリのID | |
| intensity | Yes | 新しいintensity値(1〜10の整数)。6以上は手動ピン留め用 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses critical behavioral details: setting intensity 6+ results in 'highest priority in context injection' (context注入で最優先される), explaining the ranking mechanism. It also clarifies this is a partial update (only intensity). It does not mention error handling for invalid IDs or idempotency, but covers the key domain-specific behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three tightly structured sentences with zero waste: (1) purpose/scope, (2) usage mechanics and threshold behavior, (3) prerequisite workflow. Information is front-loaded and every sentence earns its place. Appropriate length for the tool's complexity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Complete for a simple 2-parameter update tool. It explains the domain concept (intensity/pinning), references the necessary sibling tool (memory_search) for the workflow, and describes the priority system's effect. No output schema exists, but the description does not need to explain return values for this type of operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds workflow semantics beyond the schema: it specifies that the ID should come from memory_search (establishing tool chaining) and elaborates on the 'context injection priority' effect of the intensity parameter, which is not fully explained in the schema's description of the number range.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it 'only changes the intensity of existing memory entries' (既存メモリエントリのintensityだけを変更する), using a specific verb and resource. It explicitly distinguishes itself from creation tools like memory_save by emphasizing 'existing' entries and narrowing scope to 'only intensity'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear context for when to use: 'Used for pin operation' (ピン留め運用に使う) and specifies the prerequisite workflow 'Specify the ID obtained from memory_search' (memory_searchで取得したIDを指定すること). However, it does not explicitly state when NOT to use it (e.g., for creating new entries) or name alternatives like memory_save.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
project_initA
プロジェクトの初期設定を行う。自律タスク実行のために、プロジェクトの品質基準・フェーズ・判断基準を登録する。
操作モード:
mode="generate": 選択式の質問リストを生成
mode="save": 回答をもとにプロジェクトメタ情報を保存
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | 操作モード | |
| projectName | Yes | プロジェクト名 | |
| projectPath | No | プロジェクトの絶対パス(mode=save時に必須) | |
| initialInfo | No | プロジェクトの初期情報(mode=generate時、省略可) | |
| answers | No | 質問への回答(mode=save時に必須)。キーは質問のkey、値は選択した回答 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It discloses that the tool registers project metadata and saves meta-information, and mentions the autonomous execution context. However, it fails to specify critical operational details: whether 'save' mode is destructive (overwrites existing), idempotent, requires specific file permissions for projectPath, or what side effects occur (file creation vs database storage).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with a clear purpose statement followed by operation mode bullets. Every sentence serves a function: the first defines the action and target, the second explains the 'why' (autonomous execution), and the bullets clarify the mode parameter semantics. No redundancy or filler text.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (5 parameters, nested objects, conditional requirements, two distinct operating modes) and lack of output schema, the description adequately explains the input workflow but omits critical details about return values (what does 'generate' return? what does 'save' return?) and error conditions. For an initialization tool, it should also address idempotency concerns.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema has 100% coverage documenting each parameter, the description adds valuable workflow context explaining that 'generate' produces questions and 'save' consumes those answers to create metadata. It clarifies the semantic relationship between the mode, answers, and initialInfo parameters beyond the schema's standalone descriptions, though it doesn't add syntax details.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool performs 'initial project setup' (プロジェクトの初期設定を行う) and specifies exactly what gets registered: 'quality standards, phases, and decision criteria for autonomous task execution' (品質基準・フェーズ・判断基準を登録する). It effectively distinguishes from siblings like memory_* (memory management) and task_* (task execution) by focusing on project metadata initialization.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description explains the two-mode workflow (generate vs save) and implies the sequence (generate questions first, then save based on answers). However, it lacks explicit guidance on when to use this versus task_submit or memory_save, and doesn't specify prerequisites or conditions where this tool should not be used (e.g., existing projects).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_action_listA
人間アクションリストを管理する。AIが解決できなかったタスクの一覧表示と対応操作。
操作モード:
mode="list"(デフォルト): アクションリストを表示
mode="resolve": タスクに対応(action: "retry"=再実行, "complete"=手動解決済み, "cancel"=対応不要)
| Name | Required | Description | Default |
|---|---|---|---|
| mode | No | 操作モード(デフォルト: list) | |
| taskId | No | 対応するタスクID(mode=resolve時に必須) | |
| action | No | 対応アクション(mode=resolve時に必須) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It successfully explains the semantics of actions (retry=re-execute, complete=manual resolution, cancel=no action needed) and conditional requirements, but lacks disclosure of side effects, return values, or safety profile (e.g., whether resolve operations are reversible).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is optimally structured with a clear purpose statement followed by an 'Operation modes' section that efficiently delineates the two modes and their associated actions. Every sentence earns its place with zero redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of an output schema and annotations, the description adequately covers the input parameters and operational modes but fails to describe what the 'list' mode returns or the success/failure behavior of the 'resolve' mode, leaving gaps in contextual completeness for a tool handling task lifecycle operations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
While the schema has 100% coverage, the description adds significant value by explaining the operational semantics of enum values (e.g., clarifying that 'complete' means manually resolved and 'cancel' means no action needed) and explicitly noting conditional requirements for taskId and action that are not enforced in the schema's required fields.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it manages 'human action lists' specifically for 'tasks AI could not resolve' (AIが解決できなかったタスク), using specific verbs (管理する, 一覧表示, 対応操作). This effectively distinguishes it from siblings like task_submit (new tasks) and task_status (monitoring).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides clear operational guidance through the two-mode structure (list vs resolve) and explains when each parameter is required (mode=resolve時に必須). However, it does not explicitly contrast with sibling tools like task_submit to clarify when to escalate to human action versus initial submission.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_statusA
自律タスクの状態サマリを返す。pending/in-progress/completed/failed/human-required/cancelledの件数と直近20件のタスク一覧を表示。
| Name | Required | Description | Default |
|---|---|---|---|
| project | No | プロジェクト名でフィルタ(省略時は全プロジェクト) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It adds valuable context about pagination (20-item limit) and specific status taxonomy, but does not explicitly state safety characteristics (read-only nature) or error handling, leaving gaps an annotation would normally cover.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, dense sentence that front-loads the core function (returning status summaries) and efficiently packs in specific status values and result limits with zero wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite lacking an output schema, the description adequately compensates by detailing the return structure (count metrics + task list). For a single-parameter read operation, this provides sufficient completeness, though explicit safety confirmation would strengthen it further.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, documenting the optional 'project' filter parameter fully. The description does not mention the parameter, but since the schema is self-explanatory, it meets the baseline expectation without adding redundant information.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns a status summary (状態サマリ) of autonomous tasks, specifying exact status categories (pending/in-progress/completed/failed/human-required/cancelled) and output format (counts + recent 20 items), effectively distinguishing it from sibling tools like task_submit (submission) and task_action_list (action listing).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
While the description implies usage context by detailing the output (status counts and recent tasks), suggesting it's for status overview/monitoring, it lacks explicit guidance on when to use this versus task_action_list or task_submit, and contains no 'when-not-to-use' exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
task_submitA
自律タスクを投入する。AIが24/365で自動実行し、完了条件を満たすまでリトライする。
投入する4項目:
why: なぜやるか(背景・目的)
what: どんな体験/行動変容を与えたいか
done: 完了条件(機械検証可能な基準。例: "npx tsc通過 + vitest全パス")
project: プロジェクト名
| Name | Required | Description | Default |
|---|---|---|---|
| why | Yes | なぜやるか(背景・目的) | |
| what | Yes | どんな体験/行動変容を与えたいか | |
| done | Yes | 完了条件(機械検証可能な基準) | |
| project | Yes | プロジェクト名 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden and successfully discloses critical behavioral traits: continuous execution (24/365), automatic retry logic, and completion-based termination. It could be strengthened by mentioning failure modes (e.g., max retry limits) or return values, but the execution model disclosure is substantial.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely efficient structure: one sentence for purpose/behavior, a header '投入する4項目:', then four bullet-style parameter definitions. Every line earns its place. The critical behavioral information (24/365, retry) is front-loaded before parameter details.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter flat schema with no output schema, the description adequately covers operational context. It explains what happens after invocation (AI takes over execution). Minor gap: doesn't describe the return value (likely a task ID) or how to reference the task later, though sibling tools suggest this functionality exists.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, establishing a baseline of 3. The description adds significant value by providing a concrete, syntax-rich example for the 'done' parameter: '例: "npx tsc通過 + vitest全パス"'. This example clarifies expected machine-verifiable formats beyond the schema's abstract description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description opens with '自律タスクを投入する' (submit autonomous tasks) and immediately clarifies the unique execution model: 'AIが24/365で自動実行し、完了条件を満たすまでリトライする' (AI executes automatically 24/365, retrying until completion conditions are met). This specific verb+resource+behavioral scope clearly distinguishes it from siblings like task_status (query) or memory_save (storage).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 24/365 auto-execution and retry behavior implicitly signals when to use this (for persistent background tasks) versus one-shot operations. While it doesn't explicitly name alternatives like 'use task_status to monitor progress,' the operational model is distinct enough to guide selection. Lacks explicit 'when not to use' guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
10 tool updates
v0.15.0- First observed
memory_delete - First observed
memory_get_context - First observed
memory_get_detail - First observed
memory_save - First observed
memory_search - First observed
memory_update_intensity - First observed
project_init - First observed
task_action_list - First observed
task_status - First observed
task_submit
TDQS
Scored across 10 tools
Most tools have distinct purposes, but there is some overlap between memory_get_context and memory_get_detail, as both retrieve memory information. However, memory_get_context focuses on config and dont categories specifically, while memory_get_detail retrieves full details for any memory entry, which helps differentiate them. The other tools like memory_search, memory_save, and task-related tools are clearly distinct in their functions.
The naming follows a consistent verb_noun pattern throughout, such as memory_delete, memory_get_context, and task_submit. All tools use snake_case, which is uniform. The only minor deviation is project_init, which fits the pattern but stands out slightly as it doesn't start with a memory or task prefix, though it's still consistent in structure.
With 10 tools, the count is well-scoped for the server's purpose, which appears to be memory management and task automation. This number allows for comprehensive coverage without being overwhelming, including operations for memory CRUD, context retrieval, and task lifecycle management, making it efficient for agents to handle.
The tool set provides good coverage for memory operations (save, search, get, delete, update) and task management (init, action list, status, submit), but there are minor gaps. For example, there's no tool for updating memory content beyond intensity, and task operations lack direct update or delete functions, though agents might work around this with existing tools like task_action_list for resolution.
Maintenance
Related MCP Connectors
Cloud-hosted MCP server for durable AI memory
- EngramOAuthapp.getengram
Persistent, verbatim, searchable memory for AI assistants — one memory across every MCP client.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Persistent personal memory for AI assistants — save, search, and recall across every MCP client.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA self-hosted MCP server that provides AI assistants with a shared, persistent SQLite-backed memory for storing and retrieving project context, decisions, and discoveries. It enables cross-session continuity and team-wide knowledge sharing to keep AI coding tools aligned and informed.3MIT
- AlicenseBqualityCmaintenanceAn MCP server that gives AI assistants persistent memory across sessions. It stores project context, decisions, and progress in structured markdown files as well as a knowledge graph and sequential thinking for better memory storage.3634 npm1MIT
- AlicenseAqualityAmaintenanceA local MCP server that gives AI assistants a long-term memory by capturing sessions verbatim and surfacing relevant context automatically.15917MIT
- AlicenseCqualityCmaintenanceAn MCP server that gives AI coding assistants persistent memory across sessions with chain-based project tracking, tickets, and structured handoffs.42GPL 3.0