Skip to main content
Glama
hexingyuofficial

style-memory-mcp

Official

style-memory-mcp

English | 简体中文

Ein kleiner lokaler MCP-Server, der den Gesprächsstil eines Benutzers lernt – einschließlich Lieblingsausdrücke, Dialektmarker, Emoji-Gewohnheiten, Tonfall-Präferenzen und konkrete Kollaborationsvorlieben – ohne private Erinnerungen zu speichern.

Es soll den Geschmack davon bewahren, wie jemand spricht, nicht die privaten Fakten seines Lebens.

Warum

Die meisten Agenten-Memory-Tools merken sich Fakten:

  • "Der Benutzer wohnt in..."

  • "Der Benutzer arbeitet an..."

  • "Der Benutzer bevorzugt..."

style-memory-mcp merkt sich die Stimme:

  • "Der Benutzer sagt locker lol, no cap oder ship it."

  • "Der Benutzer mag warme, verspielte Antworten."

  • "Der Benutzer verwendet Emojis wie , 😭 oder 😄."

  • "Der Benutzer nutzt kleine idiolektische Marker wie tiny but mighty."

Kleine Sache. Große Wirkung. ✨

Related MCP server: AI Diary MCP Server

Funktionen

  • Nur lokaler JSON-Speicher – Ihre Daten bleiben auf Ihrem Rechner

  • Kein Cloud-Dienst, keine Telemetrie, keine externen API-Aufrufe

  • Der MCP-Server selbst ruft niemals ein LLM auf. Der Wörterbuchpfad ist reiner Regex. Sie können optional dem Host-Agenten erlauben, seine eigenen Beobachtungen über hints weiterzuleiten – siehe LLM-gestütztes Lernen unten.

  • Keine vollständigen Gesprächsprotokolle – nur Stilsignale (und ein kurzes ≤60-Zeichen-Nutzungsbeispiel pro Gewohnheit, vor der Speicherung bereinigt)

  • Zuerst werden Kandidaten gelernt; semantische Ausdrucksmuster benötigen mindestens 2 Beobachtungen in 2 unabhängigen Sitzungen, bevor sie automatisch aktiviert werden

  • Automatische Bereinigung veralteter Gewohnheiten (Kandidat → archiviert → gelöscht)

  • Unterstützt englischen Slang, Emojis, mehrsprachige Marker und Text-Emoticons – plus freies idiolect für alles, was das Host-LLM bemerkt

  • Integriertes Wörterbuch deckt Sichuanesisch, Kantonesisch, Nordostchinesisch (Dongbei), Shanghai-Dialekt und Min-Nan-/Taiwanesisch-Marker ab, sowie aktuelle (2024–2026) chinesische und englische Internet-Slangs. Mit Gebietsschema-Tag, damit der Agent universell sichere Phrasen von Slang unterscheiden kann, der in juristischen / medizinischen / ernsten Antworten vermieden werden muss.

  • Liefert eine umsetzbare Stilübersicht: zuerst, wie der Stil angewendet werden soll, dann die kontextrelevanten Gewohnheiten

  • Unterstützt ein Interaktionsprofil: wie der Benutzer die Zusammenarbeit mit dem Agenten bevorzugt, ohne Persönlichkeitsetiketten

  • Interaktionsprofil-Präferenzen können wie Stilgewohnheiten überprüft, angepinnt oder vergessen werden

  • Enthält einen leichten get_style_memory_score-Gesundheitscheck für Bereitschaft, Drift-Risiko, Überimitationsrisiko und kurze Aktualisierungsempfehlungen

  • Funktioniert mit jedem MCP-fähigen Agenten, der die Tools aufruft

  • Gewohnheiten anpinnen, um sie vor der automatischen Bereinigung zu schützen

  • Lernen jederzeit mit set_learning_enabled pausieren

  • v2 erzeugt eine sechsteilige Übersicht: Anrede, Kernstimme, Ausdrucksmuster, Interpunktion/Emoji, Begleitpräferenzen und Fehlerprotokoll

  • Trennt die modell-externe hook-Beobachtung von den agent-Richtlinien full/event/off; die Standardlaufzeit stellt nur drei kompakte Tools bereit

  • Verwendet eine persistente Speicherrevision mit Kapsel/Delta/Ack-Antworten

Installation

Lokale Installation

git clone https://github.com/hexingyuofficial/style-memory-mcp.git
cd style-memory-mcp
npm install
npm run build

Globale Installation (optional)

npm install -g style-memory-mcp
# Then use: style-memory-mcp

Für lokale Entwicklung:

npm run dev

MCP-Client-Konfiguration

Fügen Sie Ihrer MCP-Client-Konfiguration hinzu (z. B. Claude Desktop, Cursor usw.):

{
  "mcpServers": {
    "style-memory": {
      "command": "node",
      "args": ["/absolute/path/to/style-memory-mcp/dist/server.js"]
    }
  }
}

Sie können den Speicherort des JSON-Speichers anpassen:

{
  "mcpServers": {
    "style-memory": {
      "command": "node",
      "args": ["/absolute/path/to/style-memory-mcp/dist/server.js"],
      "env": {
        "STYLE_MEMORY_PATH": "/absolute/path/to/style-memory.json"
      }
    }
  }
}

Siehe docs/INTEGRATION.zh-CN.md für eine praktische chinesische Integrationsanleitung, einschließlich Doubao-ähnlicher Einrichtungshinweise und dem empfohlenen automatischen Aktualisierungsprotokoll für die Übersicht.

Umgebungsvariablen

Variable

Standard

Beschreibung

STYLE_MEMORY_PATH

~/.style-memory-mcp/style-memory.json

Pfad zum JSON-Speicher

STYLE_MEMORY_MIN_PROMOTE_COUNT

2

Erforderliche Beobachtungen einer Kompatibilitätsgewohnheit vor der Aktivierung; semantische Ausdrücke benötigen ebenfalls 2 unabhängige Sitzungen

STYLE_MEMORY_CANDIDATE_TTL_DAYS

30

Tage, bevor ungenutzte Kandidatengewohnheiten gelöscht werden

STYLE_MEMORY_INACTIVE_TTL_DAYS

180

Tage, bevor aktive Gewohnheiten archiviert werden

STYLE_MEMORY_MAX_BRIEF_ITEMS

8

Legacy-Grenze für die Übersicht; v2-Ausdrucks-/Anredegrenzen sind strenger

STYLE_MEMORY_MAX_EXAMPLE_LEN

60

Maximale Zeichen für ein gespeichertes Nutzungsbeispiel

STYLE_MEMORY_LEARNING

on

Auf off setzen, um das Lernen zu deaktivieren

STYLE_MEMORY_DICTIONARY_PATH

nicht gesetzt

Pfad zu einer benutzerdefinierten Stilwörterbuch-JSON-Datei

Benutzerdefinierte Wörterbücher können entweder ein Array oder { "habits": [...] } sein:

{
  "habits": [
    {
      "kind": "catchphrase",
      "text": "ship it",
      "locale": "en",
      "confidenceDelta": 0.14,
      "useWhen": ["casual_chat"],
      "avoidWhen": ["formal_writing", "high_stakes_advice"],
      "match": "word"
    }
  ]
}

Tools

Die Standard-Chat-Verbindung stellt genau drei Laufzeit-Tools bereit:

  • bootstrap_style_memory: startet eine Sitzung und gibt channel, policy, revision, die erste Kapsel und den einmaligen Initialisierungsstatus zurück.

  • observe_style_event: sendet nur die neueste Benutzernachricht plus kompakte Hinweise. Es gibt eine Bestätigung zurück, nicht den Speicher.

  • get_style_brief: gibt bei erster Verwendung eine Kapsel zurück, nach einer Revisionsänderung ein kurzes Delta oder eine Bestätigung, wenn die bekannte Revision aktuell ist.

Die Laufzeit hat zwei Beobachtungskanäle. Ein Host-hook beobachtet jede Nachricht außerhalb der Modell-Tool-Schleife. Ohne Hook verwendet agent full während der präzisen Kaltstartmessung, event nachdem der Speicher gereift ist, oder off für schreibgeschützte Wiederverwendung. bootstrap_style_memory meldet den ausgewählten Kanal und die Richtlinie.

Setzen Sie STYLE_MEMORY_TOOLSET=admin nur für Verwaltung und Diagnose. Die Admin-Oberfläche umfasst das Kompatibilitäts-Tool observe_user_message, die vollständige strukturierte Übersichtsausgabe, Tools zum Auflisten/Überprüfen/Anpinnen/Vergessen, Adressverwaltung, Fehlerprotokollverwaltung, Bewertung, Status und distill_recent_style.

Bei einem frischen leeren Speicher fordert Bootstrap eine einmalige Initialisierung an. Ein fähiger Host kann maximal 12 host-lokale Sitzungen der letzten 30 Tage inspizieren, dann Bootstrap erneut aufrufen, jedoch nur mit begrenzter Stimme, explizit unterstützten Antwortpräferenzen, konkreten Kollaborationspräferenzen und bis zu 3 Ausdruckskandidaten. Rohe Nachrichten, Sitzungstitel, Identitäts-/Adressfelder, Fehlerregeln und unbekannte Felder werden abgelehnt. Wenn der Verlauf nicht verfügbar ist, sendet der Host action: "skip"; die Wahl bleibt bestehen.

distill_recent_style akzeptiert maximal 3 qualitative Kandidaten pro Aufruf. Jeder Kandidat trägt eine Beobachtung mit geringem Gewicht bei und unterliegt weiterhin der 2-Beobachtungen/2-Sitzungen-Aktivierungsschwelle; es zählt nie in großen Mengen oder aktiviert sofort ein Ausdrucksmuster. Dies ist getrennt von der expliziten Profildestillation, die überprüfte Kollaborationspräferenzen aufzeichnet.

Agentenanweisung

Fügen Sie Ihrem Agenten oder Skill etwas wie dies hinzu:

Use style-memory-mcp for lightweight conversational style only.
At the start of each new session, call bootstrap_style_memory and read its capsule before the first substantive reply.
If bootstrap requests initialization, inspect at most 12 host-local sessions from the last 30 days and submit only sanitized aggregate fields; send action=skip if history is unavailable.
Use observe_style_event only according to the returned hook/agent policy; send only the latest user message.
Call get_style_brief with the known revision. Do not repeat the capsule when it returns an ack.
After a revision change, use the returned delta and refresh the capsule before an important reply.
As a long-chat fallback, refresh no earlier than 30 user turns, after context switches, or when the user says the style feels off.
If you spot a personal habit the built-in dictionary likely would not catch,
add a compact semantic hints[] entry to the same runtime event. Include
behaviorSummary, functions, and one of exact_only, same_family, or
open_variation when known. Two observations across two session IDs are
needed before a semantic expression becomes active.
Never infer a user name from assistant output, examples, environment text, or tools.
Do not send secrets, private memories, files, or full conversation logs.
Use returned style hints lightly. Shape the assistant's own stable
collaboration style; never copy the user mechanically.

Eine längere Vorlage befindet sich unter examples/agent-instruction.md.

Interaktionsprofil

style-memory-mcp erstellt kein Persönlichkeitsprofil. Es kann konkrete, verhaltensorientierte Kollaborationspräferenzen lernen, die sicherer und nützlicher sind:

  • "Der Benutzer bevorzugt Schlussfolgerungen vor Details."

  • "Bei technischer Arbeit mag der Benutzer Plan → Umsetzung → Überprüfung."

  • "Der Benutzer bevorzugt eine Wertung vor Schritt-für-Schritt-Anleitungen."

  • "Der Benutzer mag keine vagen Komplimente und wünscht sich spezifische Empfehlungen."

Nicht speichern:

  • "Der Benutzer ist ängstlich."

  • "Der Benutzer ist introvertiert."

  • Psychologische Etiketten, Diagnosen oder Persönlichkeitstypen.

  • Reale Identität, Adresse, Beruf oder andere private Fakten.

Host-Agenten können profileHints bei observe_style_event (oder dem Admin- Kompatibilitätstool) senden:

{
  "text": "First tell me whether this is worth doing, then give steps.",
  "context": "planning",
  "profileHints": [
    {
      "category": "response_structure",
      "text": "prefers value judgment before step-by-step implementation",
      "example": "First tell me whether this is worth doing, then give steps.",
      "useWhen": ["planning", "technical_chat"],
      "confidence": 0.7
    }
  ]
}

Für eine einmalige Initialisierung verwenden Sie distill_interaction_profile mit 1–8 hoch überzeugten Präferenzen. Aktive Profilpräferenzen erscheinen in get_style_brief zusammen mit Stilgewohnheiten, aber die Übersicht bleibt kurz und kontextgefiltert.

Wenn eine Profilpräferenz falsch ist, verwenden Sie forget_interaction_preference. Wenn sie wichtig ist und die Bereinigung überleben soll, verwenden Sie pin_interaction_preference. Verwenden Sie review_interaction_profile für eine kurze Korrekturwarteschlange.

Drift und Aktualisierung

Der MCP-Server kann von sich aus keinen Kontext in den Host-Agenten schieben. Eine persistente MCP-Konfiguration, ein fester absoluter STYLE_MEMORY_PATH und eine globale Agentenanweisung müssen den Host veranlassen, jede neue Sitzung zu bootstrappen. Der Host sollte seine Ausrichtungsübersicht aktualisieren:

  • zu Beginn eines neuen Chats,

  • frühestens alle 30 Benutzerbeiträge als Fallback bei langen Chats,

  • nach größeren Themen- oder Kontextwechseln,

  • vor langen oder wichtigen Antworten,

  • wenn der Benutzer sagt "das fühlt sich falsch an", "richte dich an meinen Stil aus", "das klingt nicht nach mir" oder ähnliches.

Für einen schnellen Gesundheitscheck rufen Sie get_style_memory_score auf. Wenn briefRefreshRecommended true ist, rufen Sie get_style_brief vor der nächsten substanziellen Antwort auf.

Schreibgeschützte Wiederverwendung und Neustarts

MCP-Prozesse werden normalerweise vom Host-Agenten gestartet und neu gestartet. style-memory-mcp muss sich nicht selbst neu starten. Der dauerhafte Teil ist der JSON-Speicher: Wenn mehrere Gespräche denselben STYLE_MEMORY_PATH verwenden, lesen sie nach jedem Neustart denselben Stilspeicher.

Wenn der Speicher genug gelernt hat und Sie möchten, dass er den Stil vorgibt, ohne weiterzulernen, verwenden Sie dieses Muster:

  1. Behalten Sie denselben STYLE_MEMORY_PATH bei.

  2. Rufen Sie get_style_brief zu Beginn eines neuen Gesprächs auf.

  3. Rufen Sie set_learning_enabled(false) auf oder setzen Sie STYLE_MEMORY_LEARNING=off.

  4. Schalten Sie das Lernen nur dann wieder ein, wenn Sie den Stil aktualisieren möchten.

Dies ermöglicht eine dauerhafte Stilübertragung, ohne bei jeder Nachricht neue Gewohnheiten zu schreiben.

LLM-gestütztes Lernen

Der Wörterbuchpfad kennt nur das, was fest codiert ist (Internet-Slang, gebräuchliche Lieblingsausdrücke, Emojis, regionale Marker usw.). Er wird alles übersehen, woran der Autor nicht gedacht hat – einschließlich der persönlichen Gewohnheiten, die jemanden wie sich selbst klingen lassen.

style-memory-mcp löst dies, ohne selbst eine LLM-Abhängigkeit einzugehen: der Host-Agent liest bereits jede Benutzernachricht, um seine Antwort zu generieren, also lassen Sie ihn alles weitergeben, was ihm aufgefallen ist. Der MCP-Server bleibt eine dünne "Zähler + Lebenszyklus + Sicherheit"-Schicht über lokalem JSON. Kein API-Schlüssel. Kein Netzwerk. Kein Modell-Register. Null zusätzliche Kosten.

// observe_style_event input
{
  "text": "tiny but mighty ✨ ship it",
  "context": "casual_chat",
  "hints": [
    {
      "kind": "idiolect",
      "text": "tiny but mighty",
      "example": "tiny but mighty ✨ ship it",
      "confidence": 0.6
    }
  ]
}

Nach zwei semantischen Beobachtungen in zwei verschiedenen sessionId-Werten wird tiny but mighty zu active befördert und kann in zukünftigen Übersichten erscheinen. Der MCP wendet die Bewertung und die Aktivierungsschwelle an; ein Vertrauenshinweis des Hosts ersetzt nicht die erforderlichen Beobachtungen.

Für die Destillation am Sitzungsende rufen Sie das Admin-Tool distill_recent_style mit maximal 3 Kandidaten mit geringem Gewicht auf. Jeder Aufruf ist begrenzt und umgeht nicht die Aktivierungsschwelle.

Schutzmaßnahmen, die dies sicher machen:

  • Der MCP-Server selbst ruft niemals ein LLM auf – er zeichnet nur auf, was der Host gemeldet hat. "Kein Netzwerk" bleibt wahr.

  • Hinweise mit einem falschen kind oder leerem text werden verworfen, nicht gelernt.

  • Beispiele werden bereinigt (sanitizeExample): Leerzeichen reduzieren, Längenbegrenzung, sensible Inhalte (Anmeldedaten/Tokens) werden stillschweigend entfernt.

  • Die Zwei-Beobachtungen- + Zwei-Sitzungen-Beförderungsregel verhindert, dass ein einzelner halluzinierter Hinweis die aktiven Gewohnheiten verunreinigt.

  • Alle vorhandenen Steuerungen (forget_style_habit, pin_style_habit, set_learning_enabled) funktionieren unverändert.

Bereinigungsregeln

Der Server benötigt keinen Hintergrund-Daemon. Die Bereinigung erfolgt beim Start des MCP und beim Aufruf von Tools.

Standardverhalten:

  • Kandidaten-Gewohnheiten verschwinden nach 30 inaktiven Tagen.

  • Aktive Gewohnheiten werden nach 180 inaktiven Tagen archiviert.

  • Archivierte Gewohnheiten werden 360 Tage nach ihrem letzten Auftreten gelöscht.

  • Angeheftete Ausdrucksmuster werden niemals automatisch gelöscht.

  • Adressen, explizite Begleiterpräferenzen und das Fehlerprotokoll werden durch die TTL-Bereinigung von Ausdrucksmustern nicht vergessen. forget ist sofort wirksam.

Wichtig: Eine Gewohnheit wird nur dann aufgefrischt, wenn der Benutzer sie erneut sagt. Die Nutzung durch den Agenten hält sie nicht am Leben, sodass das System nicht in einer Selbstnachahmung stecken bleibt.

Beispiel-JSON

{
  "id": "en-catchphrase-ship-it-h-0abc123",
  "kind": "catchphrase",
  "text": "ship it",
  "locale": "en",
  "confidence": 0.64,
  "seenCount": 4,
  "status": "active",
  "pinned": false,
  "useWhen": ["casual_chat", "technical_chat", "friendly_reply"],
  "avoidWhen": ["serious_debugging", "legal", "medical", "user_upset"]
}

Upgrade und Rollback

Für eine bestehende Installation das Paket erstellen und node scripts/install-or-upgrade.mjs über einen hostspezifischen Wrapper ausführen, der ein explizites Installationsverzeichnis und denselben absoluten Store-Pfad bereitstellt. Der Installer bereitet eine versionierte Laufzeitumgebung vor, sichert den v1-Store und die Host-Dateien, migriert den Store atomar, wechselt zu einem stabilen Launcher und führt einen Laufzeit/Store-Version-Handshake durch. Eine Sperre führt bei gleichzeitigen Ausführungen zu einem abgesicherten Fehlschlag; Fehler geben ein maschinenlesbares Rollback-Ergebnis zurück und stellen die alte Laufzeitumgebung, den Store und die Host-Konfiguration wieder her.

Der Installer scannt oder ändert keine beliebigen Pfade. Halten Sie den Launcher, die MCP-Konfiguration, die globale Agentenanweisung und STYLE_MEMORY_PATH stabil über Sitzungen hinweg, sodass jede neue Sitzung denselben Store bootstrappen kann.

Entwicklung

Das v0.5.0-Härtungs-Backlog, das Speichermodell, reproduzierbare Experimente und das Release-Gate werden in docs/V0.5.0-HARDENING-PLAN.zh-CN.md verfolgt. Der Meilenstein ist erst abgeschlossen, nachdem jedes erforderliche Experiment bestanden ist. Die detaillierte Ausführungssequenz und der Übergabe-Prompt befinden sich in docs/V0.5.0-EXECUTION-PLAN.zh-CN.md und docs/V0.5.0-IMPLEMENTATION-PROMPT.zh-CN.md.

# Install dependencies
npm install

# Type-check
npm run check

# Build
npm run build

# Run tests
npm test

# Development mode (auto-reload with tsx)
npm run dev

Wörterbuchgröße & Token-Kosten

Das eingebaute Wörterbuch (Dialektmarker, Schlagwörter, Internet-Slang) befindet sich in src/extract.ts und wird niemals an das LLM gesendet. Es nimmt nur an lokalen text.includes() / Regex-Scans teil. Eine Verdopplung des Wörterbuchs kostet null zusätzliche Token pro Runde.

Die Nutzlasten, die das Host-LLM erreichen, umfassen:

  1. Die erste Kapsel und spätere Deltas. Die v2-Kurzbeschreibung hat sechs geordnete Abschnitte: Adresse, Kernstimme, Ausdrucksmuster, Zeichensetzung/Emoji, Begleiterpräferenzen und Fehlerprotokoll. Die typische Ausgabe wählt eine Adresse pro Richtung und zwei Ausdrucksmuster; harte Grenzen sind zwei Adressen pro Richtung und fünf Ausdrucksmuster.

  2. Tool-Beschreibungen, Schemata, Aufrufparameter und Tool-Rückgaben. Die Laufzeit legt nur drei kompakte Schemata offen; Admin-Schemata sind optional.

Die Kapsel verbleibt in späteren Modelleingaben und muss von einem echten Token-Nutzungsbericht erneut gezählt werden. Eine Revisionsbestätigung fügt keine weitere Kopie hinzu. Das Projekt behauptet kein E06-Modell-Token-Ergebnis, wenn kein Ziel-Tokenizer oder keine Modell-API-Nutzung verfügbar ist; siehe docs/V0.5.0-TOKEN-REPORT.zh-CN.md.

Wenn Ihr Dialekt oder Slang also nicht abgedeckt ist, senden Sie bitte einen PR mit neuen Einträgen – das verbessert nur die Trefferquote und bläht niemandes Prompts auf.

Datenschutz

Dieses Projekt ist absichtlich langweilig, was Daten angeht:

  • Es speichert Stilsignale, keine rohen Nachrichten.

  • Es vermeidet das Lernen aus offensichtlich geheimen Kontexten (anmeldeinformationsähnliche Muster werden herausgefiltert).

  • Es führt einen eigenen JSON-Store, getrennt von jeder Benutzer-Speicherdatenbank.

  • Benutzer können das Lernen jederzeit auflisten, vergessen, anheften oder deaktivieren.

  • Keine Netzwerkaufrufe. Alles läuft lokal.

Mitwirken

Beiträge sind willkommen! Insbesondere:

  • Neue Slang-, Emoji- oder regionale Ausdrucksmuster

  • Neue Schlagwortmuster für jede Sprache

  • Bessere Heuristiken zur Sensitivitätserkennung

  • Leistungsverbesserungen

Bitte fügen Sie Tests für neue Extraktionsregeln hinzu. Siehe src/extract.test.ts für Beispiele.

Lizenz

MIT

Available Tools

15 tools
distill_interaction_profileDistill interaction profileA

One-shot batched distillation of concrete collaboration preferences. Use for response structure, explanation style, workflow, and decision-making preferences — not personality labels.

ParametersJSON Schema
NameRequiredDescriptionDefault
preferencesYesHigh-conviction behavioral collaboration preferences.

TDQS

A3.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries the full burden. It mentions 'one-shot batched distillation' implying batch processing but does not disclose whether the call modifies stored state, requires authorization, has rate limits, or what the return value is. The description is insufficient for behavioral understanding.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences: purpose then usage scope. It is front-loaded, efficient, and contains no redundant information. Every sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The description fails to explain what happens after the call (e.g., storage, overwrite behavior) and does not describe the output format. Given the lack of output schema, the description should address return values or side effects. This is a significant gap for a tool that likely mutates state.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% with detailed property descriptions and enum. The description adds no parameter-specific insights beyond the schema. It reinforces the type of preferences but does not clarify how to format text or use subfields like useWhen/avoidWhen. Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool performs one-shot batched distillation of concrete collaboration preferences, specifying the resource (interaction profile) and scope (response structure, explanation style, workflow, decision-making). It explicitly excludes personality labels, distinguishing it from sibling tools like distill_recent_style.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides clear context on when to use the tool ('Use for response structure, explanation style, workflow, and decision-making preferences') and what to avoid ('not personality labels'). However, it does not explicitly name alternative tools or state when not to use it beyond the exclusion.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

distill_recent_styleDistill recent styleA

One-shot batched distillation: based on the user's recent ~10–20 messages, identify 3–7 signature expressions (catchphrases, sentence-final particles, structural quirks, etc.) and write them all at once. Treated as user-endorsed — each habit becomes active immediately if its content passes basic checks. Use sparingly: at conversation seed-time, or when the agent feels its style brief is too thin.

ParametersJSON Schema
NameRequiredDescriptionDefault
habitsYes3–7 high-conviction observations distilled from recent conversation.

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries full burden. It discloses batched, one-shot, uses recent messages, treats as user-endorsed, and immediate activation. However, it lacks detail on side effects (e.g., whether it replaces existing habits) and the 'basic checks' criteria.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Description is two sentences plus a brief usage note, no wasted words, and front-loads key information about purpose and constraints.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given low complexity (1 parameter, no output schema, no nested objects), description covers purpose, usage, behavioral effects, and constraints. It lacks explanation of return values but that is acceptable without output schema. Could be more detailed on 'basic checks'.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so baseline is 3. Description adds no additional meaning beyond the schema; it mentions '3–7 signature expressions' but schema already defines array constraints and field descriptions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description uses specific verb 'distill' with resource 'recent user messages' and output 'signature expressions'. It clearly distinguishes from siblings like 'observe_user_message' by being a batched one-shot operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Provides explicit usage guidance ('Use sparingly: at conversation seed-time, or when the agent feels its style brief is too thin'), but does not explicitly mention when not to use or list alternative sibling tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forget_interaction_preferenceForget interaction preferenceB

Delete a collaboration preference by id or exact text.

ParametersJSON Schema
NameRequiredDescriptionDefault
idOrTextYesPreference id or exact preference text.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description should fully disclose behavior. It only states 'delete' without mentioning permanence, reversibility, or authentication needs. The destructive nature is implied but not elaborated.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single short sentence that conveys the essential information without any fluff. Every word is necessary and well-placed.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the simplicity of the tool (one param, no output schema), the description is minimal. However, it lacks context about success/failure indicators, whether the deletion is irreversible, or any side effects. More detail would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already describes the parameter ('idOrText') with a clear description. The description redundantly says 'by id or exact text' but adds no new meaning. With 100% schema coverage, baseline is 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description specifies the action ('delete') and the resource ('collaboration preference'), and the distinction from sibling tools like 'forget_style_habit' is clear. The purpose is unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as 'pin_interaction_preference' or 'review_interaction_profile'. No when-not-to-use context is given.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

forget_style_habitForget style habitB

Delete a style habit by id or exact text.

ParametersJSON Schema
NameRequiredDescriptionDefault
idOrTextYesHabit id or exact habit text.

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, and the description does not disclose behavioral traits such as idempotency, error handling (e.g., if habit not found), or side effects. As a delete operation, it is destructive, but this is not clarified.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence, front-loaded with the verb and resource. No unnecessary words; every part is essential.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple delete tool, the core information is present. However, it lacks details on behavior when the habit does not exist, whether it is reversible, or any relationship with other tools like 'list_style_habits'. The absence of an output schema is noted.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% for the single parameter 'idOrText'. The description adds no additional meaning beyond what the schema already provides (habit id or exact habit text).

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Delete' and the resource 'style habit', and specifies the lookup method (by id or exact text). This distinguishes it from siblings like 'forget_interaction_preference' (different resource) and 'pin_style_habit' (different action).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit when-to-use or when-not-to-use guidance is provided. There is no mention of prerequisites or alternatives. The agent must infer usage context from the tool name and siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_style_briefGet style briefA

Return a short style brief for the agent to use lightly. Call this at the start of a conversation or before drafting a friendly reply.

ParametersJSON Schema
NameRequiredDescriptionDefault
contextNoShort context label. Habits with matching avoidWhen will be omitted.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry the burden of transparency. It implies a read operation by 'return' and 'use lightly', but does not explicitly state that it is non-destructive or requires no authentication. The description is adequate but lacks explicit behavioral disclosure.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a two-sentence structure with no redundant or wasted words. It is front-loaded and efficient, providing essential information without clutter.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple with one optional parameter and no output schema. The description explains when to call it and that it returns a 'short style brief', but does not elaborate on what the brief contains or how it should inform behavior. Given the lack of output schema, more detail on the return value would improve completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, with the single parameter 'context' well-described in the schema. The tool description adds no additional parameter semantics beyond what is already in the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Return' and the resource 'short style brief', with specific usage context ('at the start of a conversation or before drafting a friendly reply'). This distinguishes it from sibling tools that do other operations like distillation or memory scoring.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It explicitly says when to call the tool ('at the start of a conversation or before drafting a friendly reply'), providing clear context. However, it does not mention when not to use it or offer alternatives among siblings, which would improve the score.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_style_memory_scoreGet style memory scoreA

Score whether the local style memory is usable, stable, fresh, and at risk of drift or over-imitation.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A3.7/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description must disclose behavior. It lists evaluation criteria but does not specify return format, side effects (read-only assumed), or permissions. Some transparency added by listing dimensions, but vague on what 'score' entails.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, front-loaded with action, no unnecessary words. Efficient and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no output schema and no annotations, description partially covers context (dimensions scored) but lacks details on return value, usage context among siblings, and behavioral norms. Agent may not know what format the score takes or when to invoke this tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters; schema coverage is 100% (empty). Description does not need to add parameter info, and baseline for 0 parameters is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states verb 'Score' and resource 'local style memory', listing specific dimensions (usable, stable, fresh, drift, over-imitation). Distinguishes from siblings like get_style_brief and get_style_memory_status by focusing on scoring health aspects.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use vs siblings like get_style_brief or review_style_habits. The description implies a health-check use case but does not state when it is appropriate or when alternatives are better.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_style_memory_statusGet style memory statusA

Show where the local JSON store lives and how many habits are stored.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It describes the output but does not disclose behavioral traits such as read-only nature, file system access, or any side effects. The description is adequate but minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

One succinct sentence that is front-loaded with the key action and resource. No wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given no parameters and no output schema, the description fully captures what the tool does: it shows the location and count. This seems complete for a simple status read.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters5/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The input schema has no parameters with 100% coverage. The description adds value by explaining what the tool does and what it returns, which is beyond the empty schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool shows the local JSON store location and habit count, with a specific verb and resource. It distinguishes from sibling tools like list_style_habits or get_style_memory_score.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for checking memory status, but does not explicitly state when to use this tool versus alternatives like get_style_memory_score or list_style_habits.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_interaction_profileList interaction profileB

List stored collaboration and response-structure preferences from the local JSON store.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations provided, so description carries the full burden. Description only states it lists preferences, implying a read operation but lacks disclosure of side effects, performance, memory usage, or any behavioral traits beyond the basic action.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence, no wasted words. Front-loaded with verb and resource. Succinct and clear.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a list tool with no parameters and no output schema, the description is adequate but could be more complete by specifying the returned data structure or fields. It mentions the content type but not the format.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

No parameters defined. Parameter count is 0, so baseline is 4. Description does not need to add parameter info, and it does not provide any, which is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

Description clearly states the tool lists stored preferences from a specific store. Verb 'List' and resource 'collaboration and response-structure preferences' are specific. Distinguishes from siblings like 'get' or 'distill' tools, though similar list tools like 'list_style_habits' exist, but the resource is distinct.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance on when to use this tool versus alternatives like 'get_style_brief' or 'list_style_habits'. No exclusions or context provided for usage.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_style_habitsList style habitsA

List stored style habits and candidates from the local JSON store.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries full burden. It mentions the source ('local JSON store') and content ('stored style habits and candidates'), indicating a read operation, but lacks details on side effects, cost, or limits.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence of 15 words, highly efficient and front-loaded. Every word adds value with no fluff.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple list tool with no parameters and no output schema, the description is mostly complete. It could mention if there is any pagination or filtering, but the context signals (device complexity) suggest this is minimal.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

There are zero parameters, and schema description coverage is 100% (empty schema). The description adds value by clarifying that both 'stored style habits and candidates' are listed, which is beyond the schema. Baseline for zero params is 4.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The name 'list_style_habits', title 'List style habits', and description 'List stored style habits and candidates from the local JSON store' clearly specify the action (list), resource (style habits and candidates), and source (local JSON store). It is well-differentiated from siblings like 'list_interaction_profile'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool vs alternatives like 'review_style_habits'. The description implies listing, but does not state when not to use it or contrast with siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

observe_user_messageObserve user messageA

Learn lightweight conversational style signals from the latest user message. Pass only the message text — not secrets, private memories, or full conversation logs. Optionally include hints: things YOU (the host LLM) noticed that the built-in dictionary wouldn't catch, such as a self-invented sentence-final particle or a unique structural quirk.

ParametersJSON Schema
NameRequiredDescriptionDefault
textYesThe latest user message only.
hintsNoUp to 8 personal style observations from this message. Only include things the user actually said that look like a signature habit — if unsure, omit. Three repetitions are required before a habit is treated as stable, so you don't need to be right on the first try.
contextNoShort context label, such as casual_chat, technical_chat, or formal_writing.
profileHintsNoUp to 6 concrete collaboration or response-structure preferences. Do not submit personality labels, diagnoses, private facts, or psychological guesses.

TDQS

A3.9/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description must carry behavioral disclosure. It states 'Learn' which implies a side effect (updating style memory), but it does not explicitly confirm persistence, return behavior, or whether it is idempotent. This leaves ambiguity for the agent.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two sentences long, front-loaded with the core purpose, and contains no extraneous information. Every phrase earns its place, making it efficient and easy to parse.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the lack of output schema and no annotations, the description could be more complete by explicitly stating whether the tool stores observations or returns a result. The mention of 'three repetitions' for stable habits hints at storage, but it is not confirmed, leaving a gap in completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, but the description adds valuable context beyond what the schema provides: emphasizing security (not to pass secrets) and explaining the purpose of hints with examples (e.g., 'self-invented sentence-final particle'). This clarifies parameter usage meaningfully.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's purpose: learning lightweight conversational style signals from the latest user message. It uses a specific verb 'Learn' and resource 'conversational style signals', and conceptually distinguishes itself from sibling tools focused on retrieval, forgetting, or pinning.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description provides guidance on what to pass (only message text, not secrets or logs) and hints about optional usage. However, it does not explicitly contrast when to use this tool versus alternatives like distill_recent_style or review_style_habits, limiting its utility for tool selection.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pin_interaction_preferencePin interaction preferenceB

Pin or unpin a collaboration preference so cleanup will not delete it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinnedNoWhether the preference should be pinned.
idOrTextYesPreference id or exact preference text.

TDQS

B3.1/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden. It discloses that the tool toggles pin status to prevent deletion, but omits details like idempotency, permission requirements, or side effects, leaving significant gaps.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, front-loaded sentence of 12 words that efficiently conveys the purpose and outcome with no wasted text.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple toggle tool with two parameters and no output schema, the description covers the core functionality. However, it lacks details on return behavior or confirmation messages, which would be helpful for completeness.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and both parameters have descriptions in the schema. The description adds no additional meaning beyond what the schema already provides, meeting the baseline but not exceeding it.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb ('Pin or unpin') and the resource ('collaboration preference'), with the outcome ('so cleanup will not delete it'). However, it does not explicitly distinguish from sibling tools like 'pin_style_habit', though the title differentiates by resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage context (cleanup avoidance) but provides no guidance on when to use this tool versus alternatives like 'pin_style_habit' or when not to use it.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

pin_style_habitPin style habitB

Pin or unpin a style habit so cleanup will not delete it.

ParametersJSON Schema
NameRequiredDescriptionDefault
pinnedNoWhether the habit should be pinned.
idOrTextYesHabit id or exact habit text.

TDQS

B3.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations provided, the description carries full burden for behavioral disclosure. It only states that pinning protects from cleanup (deletion), but omits important details like whether unpinning also reverses protection, permission requirements, side effects on other operations, or idempotency of repeated calls.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single sentence with no wasted words. It is front-loaded with the actionable verb and resource, immediately clarifying the tool's function. Every element serves a purpose.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's simplicity (2 params, no output schema, no annotations), the description is minimal but incomplete. It lacks details on return values, error handling, matching semantics for idOrText (exact match, case-sensitivity), and whether the operation is idempotent. An agent using this tool would be uncertain about behavior in edge cases.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% (both parameters have descriptions in the schema). The tool description adds minimal value beyond the schema, merely connecting the parameters to the purpose. Per guidelines, baseline 3 is appropriate when schema already provides sufficient semantic meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Pin or unpin' and the resource 'style habit', with the explicit purpose 'so cleanup will not delete it.' It effectively distinguishes from sibling tools like pin_interaction_preference by specifying the target resource.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No guidance is provided on when to use this tool versus alternatives such as pin_interaction_preference. There is no mention of when not to use it or any prerequisites. The context implies usage for habit pinning, but lacks explicit actionable guidance.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_interaction_profileReview interaction profileA

Return a concise review queue for stored collaboration preferences, with suggested actions such as keep, pin, forget, or observe.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of profile preferences to include in the review queue.

TDQS

A3.6/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Discloses return of a review queue and suggested actions, but does not specify read-only nature, response format, or any side effects. With no annotations, more detail would improve transparency.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Single sentence directly states purpose and key output without any wasted words.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Adequate for a simple tool with one parameter, covering the main functionality and output, though lacks detail on response structure and potential constraints.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The description adds no parameter information beyond what the schema provides; since schema coverage is 100% and the limit parameter is well-described there, this is adequate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

Clearly states the tool returns a review queue for stored collaboration preferences with suggested actions, distinguishing it from sibling tools like list_interaction_profile and review_style_habits by specifying content and actions.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

No explicit guidance on when to use this tool versus alternatives such as list_interaction_profile or forget_interaction_preference; usage context is only implied.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

review_style_habitsReview style habitsB

Return a concise review queue with suggested actions such as keep, pin, forget, or observe.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNoMaximum number of habits to include in the review queue.

TDQS

B3.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries full burden. It states the tool 'returns a concise review queue with suggested actions,' but does not disclose whether this is a read-only operation, whether it modifies any state, or how the suggestions are generated. The behavioral implications are unclear.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, efficient sentence that front-loads the key purpose. Every word earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool has no output schema and only one parameter, the description is incomplete. It does not explain what the review queue contains (e.g., habit details, current state, rationale for suggestions) or how the suggested actions are meant to be used. More detail is needed for effective use.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The only parameter, 'limit', has 100% schema description coverage. The description adds 'concise review queue,' which hints at the limit controlling conciseness, but does not add meaningful information beyond the schema. Baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool returns a 'review queue' with suggested actions like keep, pin, forget, or observe. It specifies the resource (style habits) and action (review). It distinguishes from sibling tools such as list_style_habits (which likely only lists) and the action-specific tools (pin_style_habit, etc.).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for reviewing habits and deciding actions, but does not explicitly state when to use this tool versus alternatives like list_style_habits or the individual action tools. No exclusions or prerequisites are mentioned, leaving some ambiguity.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

set_learning_enabledSet learning enabledA

Enable or disable style learning in the local JSON store.

ParametersJSON Schema
NameRequiredDescriptionDefault
enabledYesSet false to stop learning new style signals.

TDQS

A3.5/5.0
Behavior2/5

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 mentions modifying a 'local JSON store' but does not disclose behavioral traits such as persistence, side effects on existing learned styles, or any required permissions. The behavioral context is minimal.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single, concise sentence that efficiently communicates the tool's purpose with no redundant information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple tool with one boolean parameter and no output schema, the description provides the core function. However, it lacks details on behavioral implications (e.g., impact on existing data, whether changes are reversible). Completeness is adequate but not exceptional.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100% and the parameter description is already clear. The tool description does not add new meaning beyond repeating what the schema says ('Set false to stop learning new style signals'). Baseline score applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the verb 'Enable or disable' and the resource 'style learning in the local JSON store'. It distinguishes from sibling tools like 'observe_user_message' and 'distill_interaction_profile' by focusing specifically on toggling the learning setting.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies usage for enabling or disabling learning but does not provide explicit guidance on when to use this tool versus alternatives like 'observe_user_message' or 'distill_interaction_profile'. No exclusions or when-not-to-use scenarios are mentioned.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

TDQS

A3.8/5.0
Disambiguation5/5

Each tool targets a distinct operation or resource (e.g., distill, forget, list, pin, review) with clear separation between interaction preferences and style habits. No two tools have overlapping purposes.

Naming Consistency5/5

All tool names follow a consistent verb_noun pattern using snake_case, such as distill_interaction_profile, forget_style_habit, and list_style_habits. The naming is predictable and uniform.

Tool Count5/5

15 tools is well-scoped for the domain of style and preference memory management, covering learning, retrieval, modification, review, and control without being excessive or insufficient.

Completeness4/5

The surface covers observation, distillation, retrieval, forgetting, pinning, reviewing, and toggling learning. Minor gaps include lack of manual creation or editing of individual preferences, but the learning-focused design justifies this.

Maintenance

ActivityMaintained
ResponsivenessSyncing

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

Related MCP Servers

  • F
    license
    Not graded
    quality
    D
    maintenance
    A local-first MCP server that builds compact voice profiles from writing samples, then compares, rewrites, or generates new text in that voice.
  • A
    license
    Not graded
    quality
    C
    maintenance
    A private, local-first MCP server that gives any AI long-term memory — its own diary. Zero models, zero network, zero subscription; smarter search than Notion, running entirely on your machine.
    MIT
  • A
    license
    A
    quality
    B
    maintenance
    A local, user-owned memory MCP server that allows AI agents to share context via a SQLite file you own.
    4
    MIT
  • F
    license
    B
    quality
    B
    maintenance
    MCP server that bridges multiple AI agents for unified local chat, supporting private messages, chat rooms, role queues, and broadcast with fixed identities and rate limiting.
    14
    1

Latest Blog Posts

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/hexingyuofficial/style-memory-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server