Skip to main content
Glama
NeverDrunkMasterQian

spherical-memory-mcp

球状网络标签记忆体系 — MCP Server

一个基于三维球坐标与引力链接的 AI Agent 记忆插件,实现了"球状网络标签记忆体系"论文的核心构想。

任何支持 MCP(Model Context Protocol)的 LLM Agent,接入此插件后即可获得:

  • 空间化记忆存储:每条记忆在闭合球状空间中有唯一的坐标位置

  • 引力联想检索:记忆之间通过语义/情感/因果关联引力自组织为网络

  • 类人遗忘机制:记忆衰减但不删除,可被强关联唤醒

  • 🫀 对话心跳:自动追踪轮次,定时触发记忆固化


快速开始

安装

# 开发安装(推荐)
git clone <this-repo>
cd spherical-memory-mcp
pip install -e .

配置到 Agent

WorkBuddy

编辑 ~/.workbuddy/mcp.json

{
  "mcpServers": {
    "spherical-memory": {
      "command": "/path/to/python",
      "args": ["-m", "spherical_memory.server"],
      "description": "球状网络标签记忆体系"
    }
  }
}

然后在连接器管理中启用(需要点击 信任)。

Claude Desktop

编辑 Claude Desktop 的 MCP 配置:

{
  "mcpServers": {
    "spherical-memory": {
      "command": "python",
      "args": ["-m", "spherical_memory.server"]
    }
  }
}

通用 MCP 客户端

任何支持 MCP stdio 协议的客户端,配置 command + args 同上即可。


Related MCP server: Memsolus MCP Server

工具总览

工具

用途

调用时机

tool_store_memory

存储记忆节点

有意义交互后

tool_recall_by_gravity

引力联想检索

用户提及话题时

tool_recall_by_coordinate

坐标精确查询

知道时间/类型/事件时

tool_register_event

注册事件锚点

新项目/话题出现时

tool_link_memories

手动建立引力链接

发现深层关联时

tool_get_memory_stats

查看记忆概况

了解记忆全景

tool_decay_memories

执行遗忘衰减

每 24 小时

tool_conversation_heartbeat

🫀 对话心跳

每轮对话结束时


🫀 对话心跳机制

每个接入此插件的 Agent 应在每轮对话结束时调用 tool_conversation_heartbeat

心跳工具自动追踪轮次计数,按配置的间隔(默认每 3 轮)返回 consolidate: true。此时 Agent 应回顾本轮对话的关键信息,批量调用 store_memory 写入球状空间。

对话流程:
  第1轮 → heartbeat → consolidate: false
  第2轮 → heartbeat → consolidate: false
  第3轮 → heartbeat → consolidate: true  ← 批量 store_memory
  第4轮 → heartbeat → consolidate: false
  ...

可通过环境变量 SM_HEARTBEAT_INTERVAL 调整间隔(默认 3)。


记忆写入原则

该存什么

  • ✅ 用户分享的重要事实、决定、偏好

  • ✅ Agent 做出的关键决策及其理由

  • ✅ 有情感价值的互动

  • ✅ 新知识的习得

  • ✅ 项目进展的里程碑

不该存什么

  • ❌ 日常问候、简单确认

  • ❌ 重复信息

  • ❌ 临时性技术细节

标签是引力链接的生命线

每条 store_memory 必须提供 3–8 个精准的 semantic_tags。标签质量直接决定引力检索效果。

"用户决定辞去大厂工作开始创业" → ["辞职", "创业", "大厂", "职业转型", "勇气"]

语义相似度引擎

当前默认使用 Jaccard 标签重叠(零外部依赖,速度快),但存在颗粒度瓶颈——语义相近但文字不同的标签(如"论文"vs"学术写作")Jaccard = 0。

预留了可插拔引擎接口services/similarity.py),后续接入 bge-small-zh embedding 后,语义相似度将从"精确匹配"升级为"向量余弦",引力链接质量将质的飞跃。

⚠️ EmbeddingSimilarityEngine 当前尚未实现(规划中,欢迎贡献)。目前唯一切换方式是替换为其他 SimilarityEngine 的实现类。

# 未来切换方式(规划中):
# from spherical_memory.services.similarity import set_similarity_engine, EmbeddingSimilarityEngine
# set_similarity_engine(EmbeddingSimilarityEngine(model="BAAI/bge-small-zh-v1.5"))

配置项

环境变量

默认值

说明

SM_DB_PATH

~/.spherical-memory/memory.db

数据库路径

SM_HEARTBEAT_INTERVAL

3

心跳固化间隔(轮)

SM_LINK_THRESHOLD

0.3

引力链接建立阈值

SM_ACTIVATION_THRESHOLD

0.6

引力检索激活阈值

SM_DECAY_RATE

0.95

记忆衰减系数

SM_ENABLE_EMBEDDING

false

是否启用 embedding 引擎


架构

src/spherical_memory/
├── server.py              # FastMCP Server 入口,8 个工具注册
├── config.py              # 全局配置
├── db/
│   ├── schema.py          # 5 张表 + 索引
│   └── connection.py      # SQLite 连接管理(WAL 模式)
├── models/
│   ├── memory.py          # MemoryNode
│   ├── event.py           # Event
│   └── gravity_link.py    # GravityLink
└── services/
    ├── memory_service.py  # 记忆 CRUD + 球坐标计算
    ├── event_service.py   # 事件管理
    ├── gravity_service.py # 引力计算 + 链接建立
    ├── recall_service.py  # 引力扩散 + 坐标检索
    ├── decay_service.py   # 质量衰减 + 唤醒
    ├── heartbeat_service.py # 🫀 对话心跳
    └── similarity.py      # 可插拔语义引擎接口

核心理念

Agent的记忆体系,不应当是传统的数据库格式。Agent作为强交互载体,其记忆的录入及读取方式应更类人,这样在双方的交互中才能让自然语言有更高效率。

详见配套论文《球状网络标签记忆体系》。

Available Tools

8 tools
tool_conversation_heartbeatA

对话心跳 — 追踪轮次并自动触发记忆固化。

🫀 每轮对话结束时调用此工具。它会自动统计轮次数,在达到配置的间隔时返回 consolidate=true,提示你应该执行一次记忆固化(批量 store_memory)。

返回: turn_count: 当前总轮次 consolidate: 是否应该执行记忆固化(批量写入 store_memory) turns_since_consolidation: 距上次固化已过轮数 next_consolidation_at: 下次触发固化的轮次

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

A4.8/5.0
Behavior5/5

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

With no annotations, the description fully discloses behavior: it tracks turn count, returns consolidate true at configured intervals, and provides statistics. It clarifies that the tool prompts consolidation rather than automatically executing it, avoiding ambiguity. No contradictions.

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 appropriately sized: a short declarative sentence followed by a bullet list of return fields. Every sentence contributes meaning, and the key information is front-loaded.

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 the tool's simplicity (no parameters, no output schema), the description is complete. It explains when to use it, what it returns, and how to interpret the result. No gaps for an agent to understand its role in the dialogue loop.

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 tool has zero parameters, making schema coverage 100% by default. The description adds significant value by explaining all return fields (turn_count, consolidate, turns_since_consolidation, next_consolidation_at) and their semantics, which is well beyond the baseline of 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 description clearly states the tool's purpose: tracking conversation turns and automatically triggering memory consolidation. It uses specific verbs ('追踪轮次并自动触发记忆固化') and distinguishes it from siblings that deal with memory operations (e.g., store_memory, decay_memories).

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?

Explicitly states '每轮对话结束时调用此工具' (call at the end of each conversation round). It also explains that when consolidate=true is returned, the agent should perform a memory consolidation via store_memory. However, it does not explicitly mention when not to use it or provide alternatives, so it loses a point.

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

tool_decay_memoriesA

执行一轮记忆质量衰减(遗忘机制)。

低质量记忆会沉降但不删除,未来可被强引力链接唤醒。 建议定期调用(如每24小时或每100轮对话),而非每次对话都调用。

参数: decay_rate: 每轮衰减系数(可选,默认0.95)。0.95表示每条衰减记忆的质量乘以0.95 batch_size: 每轮处理的记忆数上限(可选,默认100)

ParametersJSON Schema
NameRequiredDescriptionDefault
decay_rateNo
batch_sizeNo

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 the full burden. It discloses the decay mechanism and that low-quality memories are not deleted but can be awakened. However, it does not mention side effects, permissions, irreversibility, or whether it affects persistent storage, leaving some behavioral 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?

The description is well-structured and efficient: it starts with the main purpose, explains the mechanism, gives usage advice, and then details the parameters in a bulleted format. Every sentence adds value with no superfluous content.

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 maintenance tool with two optional parameters and no output schema, the description covers purpose, behavior, usage guidelines, and parameters. It does not mention return values (likely none), but this is acceptable given the tool's side-effect nature. Minor gap: no mention of whether the tool returns a status or confirmation.

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 0%, so the description must compensate. It explains decay_rate as a coefficient multiplying memory quality (default 0.95) and batch_size as the upper limit per round (default 100). This adds clear meaning beyond the schema's type and default fields, though it could provide more detail on valid ranges.

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 executes a round of memory quality decay (forgetting mechanism). It explains that low-quality memories sink but are not deleted, and can be awakened later. This distinct purpose differentiates it from siblings like store, recall, or link.

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 explicitly advises periodic invocation (e.g., every 24 hours or every 100 dialogues) rather than each dialogue. It gives clear usage context but does not explicitly compare to sibling tools or state when not to use.

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

tool_get_memory_statsA

查看记忆空间的整体状况。

包含总记忆数、类型分布、大质量节点、最近记忆、衰减状态等。 在对话开始时了解记忆全景,或用户问"你记得多少东西?"时调用。

参数: detail_level: 详细程度(可选,默认summary)。可选:summary(概要)、detailed(详细)

ParametersJSON Schema
NameRequiredDescriptionDefault
detail_levelNosummary

TDQS

A3.9/5.0
Behavior3/5

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

Without annotations, the description implies read-only behavior via '查看' (view), but lacks explicit statements on side effects, auth, or rate limits. It adds some context but not full 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?

Description is concise, front-loads purpose, then use cases, then parameter info. No unnecessary text.

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 stats retrieval tool with no output schema, the description lists what is included (total memories, type distribution, etc.), which is fairly complete. Could elaborate on return format but not critical.

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 0%, but the description explains the sole parameter 'detail_level' with default and allowed values (summary/detailed), adding meaning beyond the bare schema.

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 tool retrieves overall memory stats, listing specific components (total memories, type distribution, etc.). It gives a specific verb 'view' and resource 'memory space', and though it doesn't explicitly differentiate from all siblings, the purpose 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 Guidelines4/5

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

Explicitly mentions two use cases: at conversation start and when user asks about memory amount. While it doesn't state when not to use, the contexts are clear and sufficient.

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

tool_recall_by_coordinateA

坐标精确查询 — 通过时间/类型/事件三轴交叉定位记忆。

当用户明确指定了时间范围或类型时使用。适合精确查找,不适合联想检索。

参数: memory_type: 精确匹配记忆类型(可选)。可选值同 store_memory event_id: 精确匹配事件ID(可选) time_range: 时间范围(可选)。格式:{"from": "2025-06-01", "to": "2025-12-31"} keyword: 内容关键词(可选),用于全文搜索 limit: 返回数量上限(可选,默认10,上限20) sort_by: 排序方式(可选,默认time_desc)。可选:time_desc(时间倒序)、time_asc(时间正序)、mass_desc(质量降序)

ParametersJSON Schema
NameRequiredDescriptionDefault
memory_typeNo
event_idNo
time_rangeNo
keywordNo
limitNo
sort_byNotime_desc

TDQS

A4.5/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 describes the tool as a query operation with no mention of destructive effects, but does not disclose rate limits, required permissions, or behavior when no parameters are given. Adequate but not exhaustive.

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?

Very concise: one sentence for purpose, one for usage guidelines, then a bulleted list of parameters. Every sentence adds value, front-loaded with purpose.

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?

Covers purpose and parameters well. No output schema, so return values are not described. Could mention what the tool returns (e.g., list of memories). Otherwise complete for a read tool with 6 optional params.

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?

Schema description coverage is 0%, so description fully compensates by explaining each parameter: memory_type, event_id, time_range (with JSON format example), keyword, limit (with default and upper bound), sort_by (with options). Adds meaning beyond 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's purpose: precise querying of memories by time/type/event coordinates. It distinguishes from the sibling tool 'tool_recall_by_gravity' by explicitly stating it is for precise search, not associative retrieval.

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

Usage Guidelines5/5

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

Explicitly says to use when user specifies time range or type, and that it is not suitable for associative retrieval. This provides clear when-to-use and when-not-to-use guidance, implying alternatives.

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

tool_recall_by_gravityA

【核心工具】引力联想检索 — 从入口节点沿引力链接扩散,激活相关联的记忆。

这是球状记忆体系最核心的差异化能力。当用户提到某个话题、需要联想回忆、或说"你还记得..."时,优先使用此工具。

参数: query: 查询描述文本(必填)。纯自然语言,如"用户又提到了辞职的想法" query_tags: 从 query 中提取的关键标签(必填!)。❌ 必填!MCP Server 无推理能力,必须由你从 query 中提取核心概念作为标签。示例:用户说"我又想辞职了" → 提取 ["辞职", "职业", "决定"] max_activations: 最大激活记忆数(可选,默认8,上限8) gravity_threshold: 引力阈值(可选,默认0.6)。低于此值的链接不会被激活。需要更宽泛联想时降至0.4,需要精确匹配时升至0.8 memory_type_filter: 限制记忆类型范围(可选) time_range: 时间范围(可选)。格式:{"from": "2025-06-01", "to": "2025-12-31"} depth: 引力扩散深度(可选,默认2,上限3)。深度越大召回越多但噪声也越多

ParametersJSON Schema
NameRequiredDescriptionDefault
queryYes
query_tagsYes
max_activationsNo
gravity_thresholdNo
memory_type_filterNo
time_rangeNo
depthNo

TDQS

A4.3/5.0
Behavior4/5

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

With no annotations, the description bears full burden. It explains the behavioral traits: diffusion activation along gravitational links, depth controlling recall and noise, and threshold for link activation. It does not cover all possible side effects or permissions, but for a recall tool, the description is transparent enough.

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

Conciseness4/5

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

The description is well-structured: starts with purpose and usage, then parameter details. It is front-loaded with the most important info. However, the parameter section is somewhat verbose with Chinese formatting and emojis, but every sentence adds value.

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 7 parameters and no output schema, the description covers parameters well but does not describe the return format or error behavior. It mentions activating associated memories but no structure. For full completeness, it should hint at the output (e.g., list of memory objects).

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?

Schema description coverage is 0%, so the description must compensate. It does so excellently: explains query as natural language, query_tags as required extraction by AI, max_activations default and max, gravity_threshold adjustment guidance, memory_type_filter, time_range format, depth default and max. This adds critical meaning beyond the bare 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's purpose: '引力联想检索' (gravitational associative recall). It explains the mechanism of spreading from entry nodes along gravitational links to activate associated memories. It distinguishes itself from sibling tools like tool_recall_by_coordinate by positioning itself as the core differentiation for topic-based or associative recall.

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 explicitly says when to use this tool: when the user mentions a topic, needs associative recall, or says 'do you remember...'. It also provides guidance on adjusting gravity_threshold for broader or more precise recall. It does not explicitly state when not to use, but the sibling tools imply alternatives.

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

tool_register_eventA

注册一个新事件到事件空间,自动分配极角坐标。

对话中出现新的项目、任务、话题等独立事件线索时调用。Agent 应主动识别事件边界,而非被动等用户声明。 例如:"我们开始开发一个新功能" → 注册事件"XX功能开发";"换个话题,聊聊你的童年" → 注册事件"童年回忆"

参数: event_name: 事件名称(必填)。简洁明确,如"川西旅行"、"Python课程开发"、"辞职与转行" parent_event_id: 父事件ID(可选)。用于创建子事件 description: 事件描述(可选)

ParametersJSON Schema
NameRequiredDescriptionDefault
event_nameYes
parent_event_idNo
descriptionNo

TDQS

A3.5/5.0
Behavior2/5

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

No annotations provided; description only mentions automatic polar coordinate assignment. Lacks details on side effects, constraints (e.g., uniqueness), idempotency, or return values, which is insufficient for a mutation tool.

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

Conciseness4/5

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

Description is efficient, front-loaded with purpose and usage, includes examples and parameter list. Well-structured and readable.

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?

No output schema; description does not explain return value or confirmation of registration. Missing details on duplicate names or error conditions, making it incomplete for real 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?

Schema coverage is 0%, but description briefly explains each parameter: event_name required, parent_event_id for sub-events, description optional. Adds modest value beyond schema types.

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 clearly states it registers a new event into an event space with automatic polar coordinate assignment. Examples differentiate it from sibling tools like store_memory or recall.

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?

Explicitly specifies when to call (new independent event clues) and provides examples. Encourages proactive identification by the agent, but does not mention explicit alternatives or when not to use.

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

tool_store_memoryA

存储一条新记忆到球状记忆空间。

每次对话产生值得记住的信息时调用此工具。应在对话自然停顿点(如完成一个话题时)批量调用,而非逐句调用。

参数: content: 记忆内容全文(必填) memory_type: 一级类型(必填)。可选值:coding(编码开发)、creation(内容创作)、discussion(讨论交流)、planning(规划决策)、emotion(情感陪伴)、life(生活记录)、learning(知识学习) event_ids: 所属事件ID列表,最多3个。不提供则挂在默认事件上 personality_match: 此记忆与 Agent 人格核心的匹配度 0-1(可选,默认0.5)。0=与人格无关,1=高度相关 emotion_intensity: 情感强度 0-1(可选,默认0.3)。0=完全中性,1=极度强烈的情感冲击 emotion_type: 情感类型(可选,默认neutral)。可选值:joy(喜悦)、sadness(悲伤)、anger(愤怒)、fear(恐惧)、surprise(惊讶)、disgust(厌恶)、trust(信任)、anticipation(期待)、neutral(中性) semantic_tags: 语义标签列表(强烈建议提供,3-8个精准关键词)。❌ 不提供会导致引力检索效果极差!标签是引力链接的生命线。推荐:["项目名", "核心概念", "关键实体"] summary: 记忆摘要(可选)。不提供则自动截取前100字 sub_type: 二级子类型(可选)。如 coding.bugfix, creation.writing 等

ParametersJSON Schema
NameRequiredDescriptionDefault
contentYes
memory_typeYes
event_idsNo
personality_matchNo
emotion_intensityNo
emotion_typeNoneutral
semantic_tagsNo
summaryNo
sub_typeNo

TDQS

A4.6/5.0
Behavior4/5

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

No annotations provided, but the description comprehensively explains parameter behaviors, including defaults and recommendations (e.g., semantic_tags critical for retrieval). It lacks details on return value or side effects, but for a write tool this is acceptable.

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

Conciseness4/5

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

The description is detailed and well-structured with a parameter list, but slightly verbose. Every sentence adds value, though minor trimming could improve conciseness.

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 the 9 parameters (2 required) and no output schema, the description covers all inputs thoroughly and provides usage context. It could mention what the tool returns (e.g., success/failure), but overall sufficient.

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?

Schema description coverage is 0%, but the description compensates fully by explaining all 9 parameters, including valid enum values, defaults, and usage recommendations. This adds significant meaning beyond the 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's purpose: '存储一条新记忆到球状记忆空间' (store a new memory in spherical memory space). It explicitly distinguishes itself from sibling tools (e.g., recall, decay) by being the only tool for storing new memories.

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

Usage Guidelines5/5

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

The description provides specific usage guidance: call when there is noteworthy information, batch at natural conversation pauses rather than sentence by sentence. This clearly tells the agent when and how to use the tool.

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

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.

  1. 8 tool updatesv0.2.0
    • First observedtool_conversation_heartbeat
    • First observedtool_decay_memories
    • First observedtool_get_memory_stats
    • First observedtool_link_memories
    • First observedtool_recall_by_coordinate
    • First observedtool_recall_by_gravity
    • First observedtool_register_event
    • First observedtool_store_memory

TDQS

A4.2/5.0
Disambiguation5/5

Each tool targets a specific aspect of memory management: heartbeat for timing, decay for forgetting, stats for overview, link for associations, two recall methods for different search styles, event registration, and memory storage. No overlap in purposes.

Naming Consistency5/5

All tool names follow a consistent 'tool_' prefix with a clear verb_noun or verb_preposition_noun pattern (e.g., store_memory, recall_by_gravity). The naming convention is uniform and predictable.

Tool Count5/5

With 8 tools, the server is well-scoped for a memory system. It covers creation, retrieval in two modes, linking, decay, statistics, event management, and session tracking without being overwhelming or sparse.

Completeness4/5

The tool set covers core operations but lacks explicit update or delete tools for memories/events. The decay tool handles forgetting, but direct modifications are absent, which could limit certain workflows.

Maintenance

ActivityStale
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

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/NeverDrunkMasterQian/spherical-memory-mcp'

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