Skip to main content
Glama
hexingyuofficial

style-memory-mcp

Official

style-memory-mcp

English | 简体中文

사용자의 대화 스타일, 유행어, 방언 특징, 이모지 습관, 어조 선호도, 구체적인 협업 선호도를 학습하되 개인적인 기억은 저장하지 않는 작은 로컬 MCP 서버입니다.

이 서버는 누군가가 말하는 느낌을 기억하기 위한 것이지, 그들의 개인적인 사실을 기억하기 위한 것이 아닙니다.

Why

대부분의 에이전트 메모리 도구는 사실을 기억합니다:

  • "사용자는 ...에 살고 있습니다."

  • "사용자는 ...에서 일합니다."

  • "사용자는 ...을 선호합니다."

style-memory-mcp는 말투를 기억합니다:

  • "사용자는 lol, no cap 또는 ship it을 자연스럽게 사용합니다."

  • "사용자는 따뜻하고 장난기 있는 답변을 좋아합니다."

  • "사용자는 , 😭 또는 😄 같은 이모지를 사용합니다."

  • "사용자는 tiny but mighty 같은 작은 개인 특성을 자주 사용합니다."

작은 것. 큰 분위기. ✨

Related MCP server: AI Diary MCP Server

Features

  • 로컬 JSON 저장소만 사용 — 데이터는 사용자 기기에만 보관됩니다.

  • 클라우드 서비스, 원격 측정, 외부 API 호출이 없습니다.

  • MCP 서버 자체는 LLM을 호출하지 않습니다. 딕셔너리 경로는 순수 정규식입니다. 호스트 에이전트가 자체 관찰 결과를 hints를 통해 선택적으로 전달할 수 있습니다. 아래의 LLM 기반 학습을 참조하세요.

  • 전체 대화 로그를 저장하지 않습니다. 스타일 신호만 저장됩니다 (그리고 습관당 최대 60자 이하의 사용 예제가 저장 전 정리됩니다).

  • 먼저 후보를 학습합니다. 의미 표현 패턴은 2회 이상의 독립 세션에서 최소 2회 관찰되어야 자동 활성화됩니다.

  • 오래된 습관을 자동 정리합니다 (후보 → 보관 → 삭제).

  • 영어 속어, 이모지, 다국어 표식, 텍스트 이모티콘 및 호스트 LLM이 발견한 자유 형식의 idiolect를 지원합니다.

  • 내장 딕셔너리는 사천어, 광둥어, 동북어, 상하이어, 민난어/대만어 표식과 최신(2024–2026) 중국어 및 영어 인터넷 속어를 포함합니다. 로케일 태그가 붙어 있어 에이전트가 보편적으로 안전한 구문과 법률/의료/진지한 답변에서 제외되어야 하는 속어를 구별할 수 있습니다.

  • 실행 가능한 스타일 개요를 반환합니다: 먼저 스타일을 적용하는 방법, 그 다음 맥락에 맞는 습관.

  • interaction profile을 지원합니다: 사용자가 에이전트와 협업하는 방식을 성격 라벨 없이 기록합니다.

  • 상호작용 프로필 선호사항도 스타일 습관처럼 검토, 고정, 잊을 수 있습니다.

  • 경량의 get_style_memory_score 건강 점검을 포함합니다: 준비 상태, 표류 위험, 과도한 모방 위험, 간략한 새로고침 권장 사항.

  • MCP를 지원하는 모든 에이전트에서 작동합니다.

  • 습관을 고정하여 자동 정리로부터 보호할 수 있습니다.

  • set_learning_enabled로 언제든지 학습을 일시 중지할 수 있습니다.

  • v2는 6개 섹션의 개요를 생성합니다: 주소, 핵심 목소리, 표현 패턴, 구두점/이모지, 동반자 선호도, 실패 로그.

  • 모델 외부 hook 관찰과 에이전트 full/event/off 정책을 분리합니다. 기본 런타임은 세 가지 간결한 도구만 노출합니다.

  • 지속적인 저장소 리비전과 캡슐/델타/확인 응답을 사용합니다.

Installation

Local install

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

Global install (optional)

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

로컬 개발의 경우:

npm run dev

MCP Client Config

MCP 클라이언트 설정에 추가하세요 (예: Claude Desktop, Cursor 등):

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

JSON 저장소 위치를 사용자 정의할 수 있습니다:

{
  "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"
      }
    }
  }
}

실용적인 중국어 통합 가이드는 docs/INTEGRATION.zh-CN.md를 참조하세요. Doubao 스타일 설정 노트와 권장 자동 개요 새로고침 프로토콜이 포함되어 있습니다.

Environment Variables

변수

기본값

설명

STYLE_MEMORY_PATH

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

JSON 저장소 경로

STYLE_MEMORY_MIN_PROMOTE_COUNT

2

활성화 전 필요한 호환성 습관 관찰 횟수; 의미 표현은 또한 2회의 독립 세션이 필요합니다

STYLE_MEMORY_CANDIDATE_TTL_DAYS

30

사용되지 않은 후보 습관이 삭제되기까지의 일수

STYLE_MEMORY_INACTIVE_TTL_DAYS

180

활성 습관이 보관되기까지의 일수

STYLE_MEMORY_MAX_BRIEF_ITEMS

8

레거시 개요 항목 제한; v2 표현/주소 제한은 더 엄격합니다

STYLE_MEMORY_MAX_EXAMPLE_LEN

60

저장된 사용 예제의 최대 문자 수

STYLE_MEMORY_LEARNING

on

off로 설정하면 학습 비활성화

STYLE_MEMORY_DICTIONARY_PATH

설정 안 함

사용자 정의 스타일 딕셔너리 JSON 파일 경로

사용자 정의 딕셔너리는 배열이거나 { "habits": [...] } 형식일 수 있습니다:

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

Tools

기본 채팅 연결은 정확히 세 가지 런타임 도구를 노출합니다:

  • bootstrap_style_memory: 세션을 시작하고 channel, policy, revision, 첫 번째 캡슐, 일회성 초기화 상태를 반환합니다.

  • observe_style_event: 가장 최근 사용자 메시지와 간결한 힌트만 제출합니다. 확인 응답을 반환하며 저장소 내용은 반환하지 않습니다.

  • get_style_brief: 첫 사용 시 캡슐, 리비전 변경 후 짧은 델타, 또는 알려진 리비전이 최신일 때 확인 응답을 반환합니다.

런타임에는 두 가지 관찰 채널이 있습니다. 호스트 hook은 모델 도구 루프 외부에서 각 메시지를 관찰합니다. hook이 없으면 agent는 정밀한 콜드 스타트 측정 시 full, 메모리가 성숙된 후에는 event, 읽기 전용 재사용 시 off를 사용합니다. bootstrap_style_memory는 선택된 채널과 정책을 보고합니다.

관리 및 진단을 위해서만 STYLE_MEMORY_TOOLSET=admin으로 설정하세요. 관리 전용 표면에는 호환성 observe_user_message, 전체 구조화된 개요 출력, 나열/검토/고정/잊기 도구, 주소 관리, 실패 로그 관리, 점수, 상태 및 distill_recent_style이 포함됩니다.

빈 저장소에서 부트스트랩은 일회성 초기화를 요청합니다. 적절한 호스트는 최근 30일 이내의 호스트-로컬 세션을 최대 12개 검사한 후, 제한된 목소리, 명시적으로 지원되는 응답 선호도, 구체적인 협업 선호도, 최대 3개의 표현 후보만 포함하여 부트스트랩을 다시 호출할 수 있습니다. 원시 메시지, 세션 제목, 신원/주소 필드, 실패 규칙, 알 수 없는 필드는 거부됩니다. 기록을 사용할 수 없는 경우 호스트는 action: "skip"을 제출합니다. 선택은 유지됩니다.

distill_recent_style은 호출당 최대 3개의 질적 후보를 허용합니다. 각 후보는 하나의 낮은 가중치 관찰을 기여하며, 2-관찰/2-세션 활성화 게이트의 적용을 받습니다. 대량 계산하거나 즉시 표현 패턴을 활성화하지 않습니다. 이는 명시적 프로필 증류와 별개이며, 증류는 검토된 협업 선호도를 기록합니다.

Agent Instruction

에이전트나 기술 지시사항에 다음과 같은 내용을 추가하세요:

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.

더 긴 템플릿은 examples/agent-instruction.md에 있습니다.

Interaction Profile

style-memory-mcp는 성격 프로필을 만들지 않습니다. 더 안전하고 유용한 구체적이고 행동적인 협업 선호도를 학습할 수 있습니다:

  • "사용자는 결론을 세부 사항보다 먼저 선호합니다."

  • "기술 작업의 경우 사용자는 계획 → 구현 → 확인을 좋아합니다."

  • "사용자는 단계별 지침보다 먼저 가치 판단을 선호합니다."

  • "사용자는 모호한 칭찬을 싫어하고 구체적인 추천을 원합니다."

저장하지 말아야 할 것:

  • "사용자는 불안합니다."

  • "사용자는 내성적입니다."

  • 심리적 라벨, 진단, 성격 유형.

  • 실제 세계의 신원, 주소, 직업, 또는 기타 개인 정보.

호스트 에이전트는 observe_style_event (또는 관리 호환성 도구)에 profileHints를 제출할 수 있습니다:

{
  "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
    }
  ]
}

일회성 시드의 경우, 확신이 강한 선호도 1~8개로 distill_interaction_profile을 사용하세요. 활성 프로필 선호도는 스타일 습관과 함께 get_style_brief에 나타나지만, 개요는 짧고 컨텍스트에 따라 필터링됩니다.

프로필 선호도가 잘못된 경우 forget_interaction_preference를 사용하세요. 정리에서 보호해야 할 중요한 선호도는 pin_interaction_preference를 사용하세요. 짧은 수정 큐를 보려면 review_interaction_profile을 사용하세요.

Drift and Refresh

MCP 서버는 혼자서 호스트 에이전트에 컨텍스트를 푸시할 수 없습니다. 지속적인 MCP 설정, 하나의 고정된 절대 STYLE_MEMORY_PATH, 전역 에이전트 명령이 호스트가 새 세션을 부트스트랩하도록 해야 합니다. 호스트는 다음 시점에 정렬 개요를 새로고침해야 합니다:

  • 새 채팅 시작 시,

  • 긴 채팅의 경우 최소 30턴마다 한 번씩,

  • 주요 주제 또는 컨텍스트 전환 후,

  • 길거나 중요한 답변 전,

  • 사용자가 "이상하다", "내 스타일에 맞춰줘", "내 말투가 아닌데", 또는 비슷한 말을 할 때.

빠른 건강 점검을 위해 get_style_memory_score를 호출하세요. briefRefreshRecommendedtrue이면 다음 중요한 답변 전에 get_style_brief를 호출하세요.

Read-only Reuse and Restarts

MCP 프로세스는 일반적으로 호스트 에이전트에 의해 시작되고 재시작됩니다. style-memory-mcp는 스스로 재시작할 필요가 없습니다. 지속적인 부분은 JSON 저장소입니다: 여러 대화가 동일한 STYLE_MEMORY_PATH를 사용하는 경우, 재시작 후에도 동일한 스타일 메모리를 읽습니다.

저장소가 충분히 학습되었고 배우지 않고 스타일을 안내하기만 원한다면 다음 패턴을 사용하세요:

  1. 동일한 STYLE_MEMORY_PATH를 유지합니다.

  2. 새 대화 시작 시 get_style_brief를 호출합니다.

  3. set_learning_enabled(false)를 호출하거나 STYLE_MEMORY_LEARNING=off로 설정합니다.

  4. 스타일을 새로고침하려는 경우에만 학습을 다시 켜세요.

이렇게 하면 모든 메시지에 새 습관을 쓰지 않고도 지속적인 스타일 전달이 가능합니다.

LLM-assisted learning

딕셔너리 경로는 하드코딩된 내용(인터넷 속어, 일반 유행어, 이모지, 지역 표식 등)만 알고 있습니다. 저자가 생각하지 못한 것 — 특히 개인이 자신만의 말투를 만드는 개인적인 습관 — 은 놓칠 것입니다.

style-memory-mcp는 LLM 의존성을 자체적으로 가지지 않고 이 문제를 해결합니다: 호스트 에이전트는 이미 답변을 생성하기 위해 모든 사용자 메시지를 읽으므로, 에이전트가 발견한 내용을 전달하게 하세요. MCP 서버는 로컬 JSON 위에서 얇은 "카운터 + 생명주기 + 안전" 계층으로 유지됩니다. API 키가 없습니다. 네트워크가 없습니다. 모델 레지스트리가 없습니다. 추가 비용이 없습니다.

// 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
    }
  ]
}

두 개의 서로 다른 sessionId 값에 걸친 두 번의 의미적 관찰 후에 tiny but mightyactive로 승격되어 향후 개요에 나타날 수 있습니다. MCP는 점수와 활성화 게이트를 적용합니다. 호스트 신뢰도 힌트는 필요한 관찰을 대체하지 않습니다.

세션 종료 증류를 위해 관리 전용 distill_recent_style을 최대 3개의 낮은 가중치 후보와 함께 호출하세요. 각 호출은 제한적이며 활성화 게이트를 우회하지 않습니다.

이를 안전하게 만드는 안전장치:

  • MCP 서버 자체는 LLM을 호출하지 않습니다. 호스트가 보고한 내용을 기록만 합니다. "네트워크 없음"은 여전히 유지됩니다.

  • kind가 잘못되었거나 text가 비어 있는 힌트는 학습되지 않고 삭제됩니다.

  • 예제는 정리됩니다(sanitizeExample): 공백 축소, 길이 제한, 민감한 내용(자격 증명/토큰)은 자동 삭제.

  • 2-관찰 + 2-세션 승격 규칙은 단일 환각 힌트가 활성 습관 세트를 오염시키는 것을 방지합니다.

  • 기존 컨트롤(forget_style_habit, pin_style_habit, set_learning_enabled)은 변경 없이 작동합니다.

Cleanup Rules

서버는 백그라운드 데몬이 필요하지 않습니다. 정리는 MCP가 시작될 때와 도구가 호출될 때 발생합니다.

기본 동작:

  • 후보 습관은 30일간 비활성 상태이면 사라집니다.

  • 활성 습관은 180일간 비활성 상태이면 보관됩니다.

  • 보관된 습관은 마지막 등장 후 360일이 지나면 삭제됩니다.

  • 고정된 표현 패턴은 자동으로 삭제되지 않습니다.

  • 주소, 명시적 동반자 선호도, 실패 로그는 표현 패턴 TTL 정리에서 제외됩니다. forget은 즉시 적용됩니다.

중요: 습관은 사용자가 다시 말할 때만 갱신됩니다. 에이전트 사용은 이를 유지하지 않으므로 시스템이 스스로를 모방하는 상태에 빠지지 않습니다.

예시 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"]
}

업그레이드 및 롤백

기존 설치의 경우 패키지를 빌드하고 호스트별 래퍼를 통해 node scripts/install-or-upgrade.mjs를 실행하세요. 래퍼는 명시적 설치 루트와 동일한 절대 저장소 경로를 제공해야 합니다. 설치 프로그램은 버전별 런타임을 준비하고, v1 저장소와 호스트 파일을 백업하며, 저장소를 원자적으로 마이그레이션하고, 안정적인 런처로 전환하며, 런타임/저장소 버전 핸드셰이크를 수행합니다. 잠금 장치로 인해 동시 실행은 안전하게 실패합니다. 오류가 발생하면 기계가 읽을 수 있는 롤백 결과를 반환하고 이전 런타임, 저장소, 호스트 구성을 복원합니다.

설치 프로그램은 임의의 경로를 검사하거나 수정하지 않습니다. 런처, MCP 구성, 전역 에이전트 지침, STYLE_MEMORY_PATH를 세션 간에 안정적으로 유지하여 각 새 세션이 동일한 저장소를 부트스트랩할 수 있도록 하세요.

개발

v0.5.0 강화 백로그, 메모리 모델, 재현 가능한 실험, 릴리스 게이트는 docs/V0.5.0-HARDENING-PLAN.zh-CN.md에서 추적됩니다. 필요한 모든 실험이 통과해야만 마일스톤이 완료됩니다. 자세한 실행 순서와 핸드오프 프롬프트는 docs/V0.5.0-EXECUTION-PLAN.zh-CN.mddocs/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

사전 크기 및 토큰 비용

내장 사전(방언 표식, 유행어, 인터넷 속어)은 src/extract.ts에 있으며 LLM에 절대 전송되지 않습니다. 이는 로컬 text.includes() / 정규식 검색에만 참여합니다. 사전을 두 배로 늘려도 턴당 추가 토큰 비용은 0입니다.

호스트 LLM에 도달하는 페이로드는 다음을 포함합니다:

  1. 첫 번째 캡슐과 이후 델타. v2 브리프에는 6개의 순서가 있는 섹션이 있습니다: 주소, 핵심 음성, 표현 패턴, 구두점/이모지, 동반자 선호도, 실패 로그. 일반적인 출력은 방향당 주소 하나와 표현 패턴 두 개를 선택합니다. 하드 제한은 방향당 주소 두 개와 표현 패턴 다섯 개입니다.

  2. 도구 설명, 스키마, 호출 매개변수, 도구 반환 값. 런타임은 세 개의 간결한 스키마만 노출하며, 관리자 스키마는 선택 사항입니다.

캡슐은 이후 모델 입력에도 남아 있으므로 실제 토큰 사용량 보고서에서 다시 계산해야 합니다. 수정 확인은 다른 복사본을 추가하지 않습니다. 이 프로젝트는 대상 토크나이저나 모델 API 사용량이 없을 때 E06 모델 토큰 결과를 주장하지 않습니다. docs/V0.5.0-TOKEN-REPORT.zh-CN.md를 참조하세요.

따라서 사용자의 방언이나 속어가 포함되지 않은 경우 새 항목이 포함된 PR을 보내주세요. 회수율만 향상되고 누구의 프롬프트도 부풀리지 않습니다.

개인정보 보호

이 프로젝트는 의도적으로 데이터에 대해 보수적입니다:

  • 원시 메시지가 아닌 스타일 신호를 저장합니다.

  • 명백한 비밀 컨텍스트(자격 증명 유사 패턴은 필터링됨)에서 학습을 피합니다.

  • 사용자 메모리 데이터베이스와 분리된 자체 JSON 저장소를 유지합니다.

  • 사용자는 언제든지 학습을 나열, 잊기, 고정, 비활성화할 수 있습니다.

  • 네트워크 호출이 없습니다. 모든 것이 로컬에서 실행됩니다.

기여

기여를 환영합니다! 특히:

  • 새로운 속어, 이모지, 지역 표현 패턴

  • 모든 언어의 새로운 유행어 패턴

  • 민감도 감지를 위한 더 나은 휴리스틱

  • 성능 개선

새 추출 규칙에는 테스트를 추가해 주세요. 예시는 src/extract.test.ts를 참조하세요.

라이선스

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