spherical-memory-mcp
This server provides a spatially-organized, gravity-linked AI memory system that stores, retrieves, and manages memories in a 3D spherical coordinate space with human-like forgetting and associative recall.
Store Memories (
tool_store_memory): Save memory nodes with rich metadata including content, type (coding, creation, discussion, planning, emotion, life, learning), emotional intensity/type, personality relevance, semantic tags (3-8 required), and event associations.Gravity-Based Associative Recall (
tool_recall_by_gravity): Retrieve related memories by spreading activation through gravity links from a natural language query — the core differentiating feature for deep associative search.Coordinate-Based Precise Recall (
tool_recall_by_coordinate): Look up memories using exact filters like memory type, event ID, time range, or keyword, with configurable sorting (by time or quality/mass).Register Events (
tool_register_event): Create named event anchors (e.g., a project, trip, or topic) with optional parent-child hierarchy, serving as organizational axes in the memory space.Manually Link Memories (
tool_link_memories): Explicitly create gravity links between two memory nodes with a specified link type (semantic, emotional, or causal) and optional strength override.View Memory Statistics (
tool_get_memory_stats): Get an overview including total memory count, type distribution, high-mass nodes, recent memories, and decay status.Trigger Memory Decay (
tool_decay_memories): Apply a forgetting mechanism that reduces the quality/mass of memories over time without deleting them, allowing strong links to later reactivate them.Conversation Heartbeat (
tool_conversation_heartbeat): Track conversation turns and signal when memory consolidation (batch store) should occur, based on a configurable interval (default every 3 turns).
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@spherical-memory-mcpstore my idea for a mobile app"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
球状网络标签记忆体系 — 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
工具总览
工具 | 用途 | 调用时机 |
| 存储记忆节点 | 有意义交互后 |
| 引力联想检索 | 用户提及话题时 |
| 坐标精确查询 | 知道时间/类型/事件时 |
| 注册事件锚点 | 新项目/话题出现时 |
| 手动建立引力链接 | 发现深层关联时 |
| 查看记忆概况 | 了解记忆全景 |
| 执行遗忘衰减 | 每 24 小时 |
| 🫀 对话心跳 | 每轮对话结束时 |
🫀 对话心跳机制
每个接入此插件的 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"))
配置项
环境变量 | 默认值 | 说明 |
|
| 数据库路径 |
| 3 | 心跳固化间隔(轮) |
| 0.3 | 引力链接建立阈值 |
| 0.6 | 引力检索激活阈值 |
| 0.95 | 记忆衰减系数 |
| 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 toolstool_conversation_heartbeatA
对话心跳 — 追踪轮次并自动触发记忆固化。
🫀 每轮对话结束时调用此工具。它会自动统计轮次数,在达到配置的间隔时返回 consolidate=true,提示你应该执行一次记忆固化(批量 store_memory)。
返回: turn_count: 当前总轮次 consolidate: 是否应该执行记忆固化(批量写入 store_memory) turns_since_consolidation: 距上次固化已过轮数 next_consolidation_at: 下次触发固化的轮次
| 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 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.
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.
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.
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.
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.
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)
| Name | Required | Description | Default |
|---|---|---|---|
| decay_rate | No | ||
| batch_size | No |
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 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.
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.
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.
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.
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.
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(详细)
| Name | Required | Description | Default |
|---|---|---|---|
| detail_level | No | summary |
TDQS
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.
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.
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.
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.
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.
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_link_memoriesA
手动为两条记忆建立引力链接,补充自动计算的不足。
当你在对话中识别到两条记忆存在明确的深层关联时调用。自动算法遗漏的因果/类比/对照关系,由此工具补充。 手动建立的链接权重高于自动链接。
参数: source_id: 源记忆ID(必填) target_id: 目标记忆ID(必填) link_type: 链接类型(必填)。可选:semantic(语义相关)、emotion(情感共鸣)、causal(因果关联) strength_override: 手动指定关联因子 0-1(可选)。不提供则自动计算
| Name | Required | Description | Default |
|---|---|---|---|
| source_id | Yes | ||
| target_id | Yes | ||
| link_type | Yes | ||
| strength_override | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It discloses that manually created links have higher weight than automatic links, and explains parameter effects. Does not mention return values or error cases.
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?
Two brief paragraphs plus a parameter list with no redundant information. Each sentence adds value, and structure is 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?
Context is good: explains purpose, usage, and parameters. Lacks details on return type or failure behavior, but given it's a mutation tool with no output schema, the description is mostly complete. Could mention prerequisites like memory existence.
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 0%, but description compensates fully by explaining all parameters: source_id, target_id, link_type with options (semantic, emotion, causal), and strength_override with default automatic. Adds meaning beyond 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's purpose: manually creating gravity links between two memories to supplement automatic computation. It specifies the action (link), the resources (memories), and contrasts with automatic linking.
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 explicitly states when to use: '当你在对话中识别到两条记忆存在明确的深层关联时调用' (when you identify a clear deep connection). It implies when not to use by noting it supplements automatic algorithm omissions, but does not list 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_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(质量降序)
| Name | Required | Description | Default |
|---|---|---|---|
| memory_type | No | ||
| event_id | No | ||
| time_range | No | ||
| keyword | No | ||
| limit | No | ||
| sort_by | No | time_desc |
TDQS
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.
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.
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.
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.
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.
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)。深度越大召回越多但噪声也越多
| Name | Required | Description | Default |
|---|---|---|---|
| query | Yes | ||
| query_tags | Yes | ||
| max_activations | No | ||
| gravity_threshold | No | ||
| memory_type_filter | No | ||
| time_range | No | ||
| depth | No |
TDQS
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.
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.
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.
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.
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.
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: 事件描述(可选)
| Name | Required | Description | Default |
|---|---|---|---|
| event_name | Yes | ||
| parent_event_id | No | ||
| description | No |
TDQS
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.
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.
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.
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.
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.
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 等
| Name | Required | Description | Default |
|---|---|---|---|
| content | Yes | ||
| memory_type | Yes | ||
| event_ids | No | ||
| personality_match | No | ||
| emotion_intensity | No | ||
| emotion_type | No | neutral | |
| semantic_tags | No | ||
| summary | No | ||
| sub_type | No |
TDQS
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.
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.
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.
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.
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.
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.
8 tool updates
v0.2.0- First observed
tool_conversation_heartbeat - First observed
tool_decay_memories - First observed
tool_get_memory_stats - First observed
tool_link_memories - First observed
tool_recall_by_coordinate - First observed
tool_recall_by_gravity - First observed
tool_register_event - First observed
tool_store_memory
TDQS
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.
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.
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.
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
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
Memory system for AI agents with semantic search. Store and recall memories with ease.
Shared long-term memory for AI agents: save and recall context as a searchable knowledge graph.
Universal memory runtime for AI agents — episodic, semantic, and procedural memory.
Persistent memory and knowledge graphs for AI agents. Hybrid search, context checkpoints, and more.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenancePersistent memory for AI agents — organized by time and space. Important memories get promoted, noise decays naturally, and related knowledge clusters into a browsable topic tree. Fully automatic.27MIT

Memsolus MCP Serverofficial
AlicenseAqualityDmaintenanceProvides persistent long-term memory for AI agents through semantic search and automated knowledge graph extraction. It enables agents to store, recall, and reason over facts, preferences, and relationships across multiple conversations and sessions.1419MIT- AlicenseNot gradedqualityCmaintenanceProvides persistent long-term memory for AI agents with semantic search and activation-based decay. Enables AI systems to remember across sessions through layered memory architecture and automatic context-aware retrieval.31MIT
- AlicenseAqualityDmaintenanceEnables AI agents with persistent semantic memory, including semantic recall, knowledge graphs, and instant domain expertise via pre-built Intelligence Packs.1067MIT
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/NeverDrunkMasterQian/spherical-memory-mcp'
If you have feedback or need assistance with the MCP directory API, please join our Discord server