style-memory-mcp
Officialstyle-memory-mcp
一个轻量级的本地 MCP 服务器,能够学习用户的对话风格、口头禅、方言标记、表情符号使用习惯、语气偏好以及具体的协作偏好,而无需存储私人记忆。
它的目的是记住一个人说话方式的风味,而不是他们生活中的私人事实。
为什么
大多数智能体记忆工具记住的是事实:
"用户住在……"
"用户在……工作"
"用户偏好……"
style-memory-mcp 记住的是声音:
"用户会随意说
lol、no cap或ship it。""用户喜欢温暖、俏皮的回复。"
"用户会使用
✨、😭或😄等表情符号。""用户倾向于使用像
tiny but mighty这样的小众个人语言标记。"
小东西。大氛围。✨
Related MCP server: AI Diary MCP Server
功能特性
仅本地 JSON 存储——你的数据保留在你的机器上
无云服务、无遥测、无外部 API 调用
MCP 服务器本身从不调用 LLM。 字典路径是纯正则表达式。你可以选择让宿主智能体通过
hints转发其自身的观察结果——请参阅下面的 LLM 辅助学习。不存储完整对话日志——仅存储风格信号(以及每个习惯的简短 ≤60 字符使用示例,存储前已清理)
先学习候选习惯;语义表达模式需要至少 2 次跨 2 个独立会话的观察才能自动激活
自动清理过时习惯(候选 → 归档 → 删除)
支持英语俚语、表情符号、多语言标记和文本表情符号——以及宿主 LLM 注意到的任何自由格式的
idiolect内置词典涵盖四川话、粤语、东北话、上海话和闽南语/台湾话标记,以及当前(2024–2026 年)的中文和英语网络俚语。通过区域标记,智能体可以区分通用安全短语和必须避免出现在法律/医疗/严肃回复中的俚语
返回可操作的风格简报:首先说明如何应用风格,然后是上下文相关的习惯
支持
交互档案:用户希望智能体如何协作,不包含个性标签交互档案偏好可以像风格习惯一样被查看、固定或遗忘
包含轻量级的
get_style_memory_score健康检查,用于就绪状态、漂移风险、过度模仿风险和简要刷新建议适用于任何支持 MCP 工具调用的智能体
固定习惯以保护其不被自动清理
随时通过
set_learning_enabled暂停学习v2 版本生成六部分简报:称呼、核心语气、表达模式、标点/表情符号、陪伴偏好和失败日志
将模型外部的
hook观察与agent的full/event/off策略分离;默认运行时仅暴露三个紧凑工具使用持久存储版本,包含胶囊/增量/确认响应
安装
本地安装
git clone https://github.com/hexingyuofficial/style-memory-mcp.git
cd style-memory-mcp
npm install
npm run build全局安装(可选)
npm install -g style-memory-mcp
# Then use: style-memory-mcp用于本地开发:
npm run devMCP 客户端配置
添加到你的 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 获取实用的中文集成指南,包括豆包风格设置说明和推荐的自动简报刷新协议。
环境变量
变量 | 默认值 | 描述 |
|
| JSON 存储路径 |
|
| 激活前所需的兼容性习惯观察次数;语义表达还需要 2 个独立会话 |
|
| 未使用的候选习惯在被删除前的天数 |
|
| 活跃习惯在被归档前的天数 |
|
| 旧版简报限制;v2 版本对表达/称呼的限制更严格 |
|
| 存储的使用示例的最大字符数 |
|
| 设置为 |
| 未设置 | 自定义风格词典 JSON 文件的路径 |
自定义词典可以是数组或 { "habits": [...] } 格式:
{
"habits": [
{
"kind": "catchphrase",
"text": "ship it",
"locale": "en",
"confidenceDelta": 0.14,
"useWhen": ["casual_chat"],
"avoidWhen": ["formal_writing", "high_stakes_advice"],
"match": "word"
}
]
}工具
默认聊天连接仅暴露三个运行时工具:
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 个会话的激活门槛限制;它不会批量计数或立即激活表达模式。这与显式档案提炼分开,后者记录经过审查的协作偏好。
智能体指令
在你的智能体或技能中添加类似内容:
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。
交互档案
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
}
]
}对于一次性种子,使用 distill_interaction_profile 包含 1–8 个高确信度的偏好。活跃的档案偏好会与风格习惯一起出现在 get_style_brief 中,但简报保持简短且经过上下文过滤。
如果档案偏好有误,使用 forget_interaction_preference。如果它很重要且应保留不被清理,使用 pin_interaction_preference。使用 review_interaction_profile 查看简短的修正队列。
漂移与刷新
MCP 服务器无法自行将上下文推送到宿主智能体中。一个持久的 MCP 配置、一个固定的绝对 STYLE_MEMORY_PATH 以及全局智能体指令必须让宿主在每个新会话中执行引导程序。宿主应刷新其对齐简报:
在新聊天开始时,
作为长聊天的后备,不早于每 30 个用户轮次,
在主要话题或上下文切换后,
在长或重要的回答之前,
当用户说"这感觉不对"、"重新对齐到我的风格"、"这听起来不像我"或类似内容时。
如需快速健康检查,调用 get_style_memory_score。如果 briefRefreshRecommended 为 true,则在下一个实质性回复之前调用 get_style_brief。
只读复用与重启
MCP 进程通常由宿主智能体启动和重启。style-memory-mcp 不需要自行重启。持久化部分是 JSON 存储:如果多个对话使用相同的 STYLE_MEMORY_PATH,它们在任何重启后都会读取相同的风格记忆。
如果存储已学习足够内容,并且你希望它指导风格而不继续学习,请使用此模式:
保持相同的
STYLE_MEMORY_PATH。在新对话开始时调用
get_style_brief。调用
set_learning_enabled(false)或设置STYLE_MEMORY_LEARNING=off。仅在你想要刷新风格时重新开启学习。
这让你获得持久的风格延续,而无需在每条消息上写入新习惯。
LLM 辅助学习
字典路径只知道硬编码的内容(网络俚语、常见口头禅、表情符号、区域标记等)。它会遗漏作者未想到的任何内容——包括那些让人听起来像自己的个人习惯。
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 mighty 被提升为 active 并可以出现在未来的简报中。MCP 应用评分和激活门槛;宿主置信度提示不会替代所需的观察。
对于会话结束时的提炼,调用仅管理员可用的 distill_recent_style,最多包含 3 个低权重候选。每次调用都有边界限制,不会绕过激活门槛。
使其安全的防护措施:
MCP 服务器本身从不调用 LLM——它只记录宿主报告的内容。"无网络"仍然成立。
具有错误
kind或空text的提示会被丢弃,不会被学习。示例经过清理(
sanitizeExample):折叠空白、长度限制、敏感内容(凭据/令牌)被静默丢弃。两次观察 + 两个会话的晋升规则可防止单个幻觉提示污染活跃习惯集。
所有现有控制(
forget_style_habit、pin_style_habit、set_learning_enabled)保持不变。
清理规则
服务器不需要后台守护进程。清理在 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.md
和 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词典大小与令牌成本
内置词典(方言标记、口头禅、网络俚语)位于src/extract.ts中,从不发送给LLM。它只参与本地的text.includes()/正则扫描。词典翻倍不会增加每轮对话的额外令牌成本。
到达主机LLM的负载包括:
第一个胶囊和后续增量。v2简报有六个有序部分:地址、核心声音、表达模式、标点/表情符号、伴侣偏好和失败日志。典型输出为每个方向选择一个地址和两个表达模式;硬限制是每个方向两个地址和五个表达模式。
工具描述、模式、调用参数和工具返回。运行时仅暴露三个紧凑模式;管理模式是可选加入的。
胶囊保留在后续模型输入中,必须由真实的令牌使用报告再次计数。修订确认不会追加另一份副本。当没有目标分词器或模型API使用情况时,项目不会声称E06模型令牌结果;请参阅docs/V0.5.0-TOKEN-REPORT.zh-CN.md。
因此,如果你的方言或俚语未被覆盖,请发送包含新条目的PR——这只会提高召回率,不会增加任何人的提示负担。
隐私
这个项目在数据方面刻意保持低调:
它存储风格信号,而非原始消息。
它避免从明显的秘密上下文中学习(类似凭据的模式会被过滤)。
它维护自己的JSON存储,与任何用户记忆数据库分开。
用户可以随时列出、遗忘、固定或禁用学习。
没有网络调用。一切都在本地运行。
贡献
欢迎贡献!特别是:
新的俚语、表情符号或地区表达模式
任何语言的新口头禅模式
更好的敏感性检测启发式方法
性能改进
请为新的提取规则添加测试。参见src/extract.test.ts中的示例。
许可证
MIT
Available Tools
15 toolsdistill_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.
| Name | Required | Description | Default |
|---|---|---|---|
| preferences | Yes | High-conviction behavioral collaboration preferences. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden. It 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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| habits | Yes | 3–7 high-conviction observations distilled from recent conversation. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrText | Yes | Preference id or exact preference text. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| idOrText | Yes | Habit id or exact habit text. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| context | No | Short context label. Habits with matching avoidWhen will be omitted. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| text | Yes | The latest user message only. | |
| hints | No | Up 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. | |
| context | No | Short context label, such as casual_chat, technical_chat, or formal_writing. | |
| profileHints | No | Up to 6 concrete collaboration or response-structure preferences. Do not submit personality labels, diagnoses, private facts, or psychological guesses. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pinned | No | Whether the preference should be pinned. | |
| idOrText | Yes | Preference id or exact preference text. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| pinned | No | Whether the habit should be pinned. | |
| idOrText | Yes | Habit id or exact habit text. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of profile preferences to include in the review queue. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of habits to include in the review queue. |
TDQS
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.
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.
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.
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.
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.
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.
| Name | Required | Description | Default |
|---|---|---|---|
| enabled | Yes | Set false to stop learning new style signals. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It 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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Cloud-hosted MCP server for durable AI memory
MCP server for AI dialogue using various LLM models via AceDataCloud
Hosted MCP server connecting claude.ai, ChatGPT and other AI apps to your own computer
Personal MCP server for humans who create. Proof of authorship, license control.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceA local-first MCP server that builds compact voice profiles from writing samples, then compares, rewrites, or generates new text in that voice.
- AlicenseNot gradedqualityCmaintenanceA 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
- AlicenseAqualityBmaintenanceA local, user-owned memory MCP server that allows AI agents to share context via a SQLite file you own.4MIT
- FlicenseBqualityBmaintenanceMCP 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.141
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/hexingyuofficial/style-memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server