Skip to main content
Glama
Xplore-LAB

asmemory

by Xplore-LAB

asmemory — Action-State Memory Engine

Give your agent a time memory: record what happened and what changed, then analyze trends, anomalies, and causality — not just what was said.

Language: English | 简体中文

License: MIT DSH Plugin Zero dependencies Verified on DSH

⭐ If this helps you, a star is the best way to say thanks — it keeps the project visible to others.


What it does

asmemory stores two kinds of typed events, not raw text:

  • State — a value of some entity/metric at a point in time (gpu.temperature = 78°C)

  • Action — something that happened (agent ran training, operator adjusted a valve)

On top of this memory it provides four analyses:

Analysis

Question it answers

Trend

Is my metric going up or down? (slope + direction)

Anomaly

Which readings are outliers? (z-score)

Causal

Did action X move metric Y? (before/after delta)

Summary

What's in my memory? (counts + entities)

Related MCP server: Memory Cortex

Why asmemory

Most memory plugins store conversations or documents, so they answer "what did you say". asmemory stores actions and states, so it answers "what happened, and why":

"Did GPU temperature rise after training started?" → causal "Is my sleep trending down this week?" → trend "Which readings are outliers?" → anomaly

It is the memory layer for the physical and operational world — agents observing themselves, industrial processes, and personal metrics.

Example: agent self-tracking

Record your agent's own actions and resource states, then ask why the GPU got hot:

from asmemory import StateEvent, ActionEvent, MemoryStore, analysis

store = MemoryStore("memory.db")
store.add_state(StateEvent("gpu", "temperature", 78.5, "celsius"))
store.add_action(ActionEvent("agent", "run_training", "qwen3.6", ts=1723500000))

# Did training actually heat the GPU?
causal = analysis.causal_effect(store, "run_training", "gpu", "temperature")
print(causal["before_mean"], "->", causal["after_mean"], f"(Δ={causal['delta']})")

Real output (24h simulated agent, 72 states + 20 actions):

【因果】run_training → gpu.temperature:  45.3 → 78.7  (Δ=33.4, up)   ← significant
【因果对照】git_commit → gpu.temperature: 53.7 → 56.4  (Δ=2.7, up)    ← no effect
【异常】ram.usage: 1 outlier (z=-2.4)

The engine cleanly separates real causality (training) from coincidence (git commits) — no LLM guessing involved, just time-series math.

Example: industrial monitoring → DataLens

Air-separation plant: oxygen purity (monitored metric) vs. valve opening (control action). asmemory remembers the causality, then exports to DataLens for over-control optimization:

from asmemory.export import export_datalens

export_datalens(store, entity="oxygen", metric="purity",
                action_verb="valve_adjust",
                pollutant="氧纯度", regulator="导叶开度",
                regulatory_limit=99.5)
# → data_datalens.csv + data_datalens.config.json

Real output (240 min, 240 states + 240 actions):

【因果】valve_adjust → oxygen.purity: Δ=0.0009 (up)
✅ CSV → data_datalens.csv          (时间,指标值,控制量,整点标记)
✅ config → data_datalens.config.json (pollutant/regulator/limit)

Open data_datalens.csv in DataLens to visualize the "still over-controlling in the safe zone" savings space.

Tools

Seven MCP tools, exposed to the model as mcp__asmemory__<tool>:

Tool

What it does

memory_store_state

Record a state event (entity / metric / value / unit / tags)

memory_store_action

Record an action event (actor / verb / object / amount)

memory_trend

Trend direction + slope of a metric

memory_anomaly

z-score outlier detection

memory_causal

Mean change of a metric before/after an action

memory_summary

Library statistics

memory_export_datalens

Export CSV + config for DataLens visualization

Installation

The server runs from the asmemory-mcp command (or an absolute path via ASMEMORY_MCP_PATH). Install the command first, then register the MCP bridge with DSH.

  1. Install the asmemory-mcp command:

    pip install .

    (Or skip the install and set ASMEMORY_MCP_PATH=/path/to/bin/asmemory-mcp instead.)

  2. Launch DSH with the plugin patch:

    dsh web --patch "$PWD/cordis.yml"

    (Once published, you can also run dsh plugin add dsh-plugin-asmemory.)

  3. Done. The server is a single stdio process using only the Python 3.10+ standard library.

Persistence defaults to ~/.asmemory/memory.db (override with ASMEMORY_DB_PATH).

Verified

The full loop is tested end-to-end on a real DSH instance (headless profile + a local Qwen3.6 model): the agent called memory_store_state, memory_store_action, and memory_summary, and the events landed in SQLite — exactly the data it was asked to record.

Quick start

python3 examples/demo_agent_self_tracking.py   # agent self-tracking demo
python3 examples/demo_datalens_export.py       # industrial → DataLens export demo

Use cases

  • Agent self-tracking — record the agent's own actions and resource states

  • Industrial monitoring — process variables and operator actions (air separation, emission control)

  • Personal data — sleep, weight, spending, exercise trends

License

MIT — use it, fork it, ship it. And if it earns you a star-shaped reward in return, all the better. ⭐

Available Tools

7 tools
memory_anomalyB

检测某指标的异常点(z-score,|z|>threshold 视为异常)。

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
metricYes
thresholdNoz-score 阈值,默认 2.0

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations, the description carries the behavioral burden. It does disclose the core algorithm behavior: z-score is computed and |z| > threshold marks an anomaly. However, it does not state whether the operation is read-only, what data range it uses, or how edge cases are handled.

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

Conciseness5/5

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

The description is a single front-loaded sentence with no filler. Every clause contributes information: the target, the method, and the anomaly criterion.

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?

There is no output schema and no annotations, so the description should clarify the return value and usage context. It fails to state what the function returns or how entity is used, leaving an agent without enough information to confidently invoke and consume the result.

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

Parameters2/5

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

Schema description coverage is only 33%; only threshold is documented. The description refers to '某指标' (a metric), giving metric a loose role, but it does not explain the entity parameter at all. Since coverage is low, the description needed to compensate, and it only partially does.

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 operation: detect anomaly points of a metric, with an explicit z-score criterion. It identifies a specific verb and resource, and the content is distinct from sibling tools like memory_trend or memory_causal, though it does not explicitly name or contrast those alternatives.

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

Usage Guidelines3/5

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

The description implies the tool should be used when anomaly detection on a metric is needed, but it gives no explicit guidance about when to prefer it over sibling tools. No alternatives, exclusions, or contextual conditions are mentioned.

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

memory_causalA

因果关联:某动作(verb)对某指标(entity.metric)的影响,返回动作前后均值变化量。

ParametersJSON Schema
NameRequiredDescriptionDefault
verbYes
entityYes
metricYes
windowNo时间窗秒,默认 3600

TDQS

A3.6/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 behavioral burden. It communicates a read/compute behavior by saying it returns a before/after mean change, but it does not explicitly state that the operation is non-destructive, how the before/after boundary is determined, or whether any special permissions or data requirements apply.

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

Conciseness5/5

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

The description is a single sentence that front-loads the core concept and result. It contains no filler, repeats no parameter names unnecessarily, and is easy for an agent to parse quickly.

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?

With four parameters, no output schema, and no annotations, a single-sentence description is thin. The agent is not told the shape of the returned value, how to interpret 'mean change,' how the causal calculation is scoped, or when to prefer this over sibling tools. This leaves important operational and selection context missing.

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

Parameters3/5

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

Schema description coverage is only 25% because only `window` has a description. The prose partially compensates by explaining `verb` as an action and `entity.metric` as a metric, but it does not describe valid values or the relationship between `window` and the before/after computation. Thus it adds some meaning beyond the bare schema but does not fully compensate for the low coverage.

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 states a specific analytical purpose: measuring the causal impact of an action (verb) on a metric (entity.metric) and returning the mean change before vs. after the action. This clearly differentiates the tool from siblings like memory_trend and memory_anomaly by emphasizing causality and before/after comparison.

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

Usage Guidelines3/5

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

The description implies when to use the tool: when the caller wants the causal effect of an action on a metric. However, it does not explicitly list alternatives, exclusion criteria, or prerequisites such as needing pre-existing action history, so 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.

memory_export_datalensA

导出 DataLens 格式(监控指标+控制手段+红线)的 CSV 与 config,用于可视化优化分析。

ParametersJSON Schema
NameRequiredDescriptionDefault
sectionNo
site_nameNo
control_nameNo
control_unitNo
control_verbYes控制动作 verb,如 valve_adjust
indicator_nameNo指标显示名(中文),可选
indicator_unitNo
indicator_entityYes指标实体,如 oxygen
indicator_metricYes指标名,如 purity
regulatory_limitYes法规红线

TDQS

A3.5/5.0
Behavior3/5

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

With no annotations, the description must carry the behavioral burden. It states that the tool produces CSV and config artifacts and what data categories are included, which is useful. It does not explicitly confirm that memory is not modified, nor does it mention permissions or side effects, so it is only partially transparent.

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

Conciseness5/5

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

A single sentence with no filler: verb, object, format, content scope, and purpose are all present. It is easy to scan and every phrase contributes.

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

Completeness3/5

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

For a 10-parameter export tool with no annotations and no output schema, one sentence gives only the high-level context. The schema covers parameter names and some descriptions, and the description covers output format and purpose, but config structure, return behavior, and side effects remain unspecified. It is adequate but has clear gaps.

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

Parameters3/5

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

Schema description coverage is 50%, so parameter semantics are only partially compensated. The description groups parameters into monitoring metrics, control means, and regulatory red lines, which maps roughly to the required schema fields. It does not explain the optional parameters or add meaningful details beyond the schema descriptions.

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 identifies the operation (导出/export), the output artifacts (DataLens-format CSV and config), and the intended purpose (visualization optimization analysis). It is distinguishable from the memory_* sibling tools by the export action, though it does not explicitly name a closest sibling.

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

Usage Guidelines3/5

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

The final clause '用于可视化优化分析' implies the tool should be used when visualization-oriented optimization analysis is needed, which is reasonable context. It does not state when not to use it or name an alternative, so the usage guidance is implied rather than explicit.

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

memory_store_actionA

存一条动作事件:actor 对 object 执行了 verb,可带控制量 amount 与元数据。

ParametersJSON Schema
NameRequiredDescriptionDefault
tsNounix 时间戳秒,默认当前
verbYes做了什么,如 run_training/git_commit/喷氨
actorYes谁做的,如 agent/user/operator
amountNo控制量数值(喷氨量/功率/开度),可选
objectNo对象,可选
metadataNo元数据,可选

TDQS

A3.7/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It indicates a write operation (storing an event) but does not explain persistence semantics, duplicate handling, idempotency, permissions, failures, or what an agent should expect after invocation.

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

Conciseness5/5

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

The description is a single dense sentence that front-loads the core operation and then captures the event semantics without filler. Every part contributes to understanding what the tool does.

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

Completeness3/5

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

Given the schema fully documents all parameters, the description is adequate for basic invocation. However, with no output schema, no annotations, and write-side behavior, it stops short of fully covering behavioral expectations and routing to sibling tools.

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

Parameters4/5

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

Schema coverage is 100%, so the baseline is 3, but the description adds relational meaning by composing actor, verb, and object into a sentence and clarifying that amount is a control quantity. This goes beyond the individual parameter descriptions in 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 states a specific operation (store an action event) and gives the event model: actor performs verb on object, optionally with amount and metadata. This clearly distinguishes it from a sibling like memory_store_state, which stores state rather than actions.

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

Usage Guidelines3/5

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

The wording makes it clear that this tool is for action events, but it never explicitly says when to use this instead of memory_store_state or other siblings. The intended usage is implied by the action-event phrasing and sibling names, but no explicit exclusions or alternative-routing guidance are provided.

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

memory_store_stateC

存一条状态事件到记忆库:某实体(entity)在某个指标(metric)上的数值(value),可带单位与标签。

ParametersJSON Schema
NameRequiredDescriptionDefault
tsNounix 时间戳秒,默认当前
tagsNo标签,可选
unitNo单位,可选
valueYes数值
entityYes实体名,如 gpu/cpu/user/repo
metricYes指标名,如 temperature/usage/purity

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden. It states that the tool 'stores a state event', which implies a write operation, but it does not disclose whether the operation appends or overwrites, whether duplicate events are allowed, or what side effects or response to expect. This lack of behavioral detail is a significant gap.

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

Conciseness5/5

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

The description is a single efficient sentence that front-loads the verb and resource. Every part contributes to understanding the core purpose, with no filler or redundancy.

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

Completeness2/5

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

For a tool with 6 parameters, a nested object, and no output schema or annotations, the description is too brief. It omits important contextual details such as behavior on duplicate writes, timestamp defaulting nuances, and how this relates to the other memory tools. The schema covers parameter names but not operational context.

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

Parameters3/5

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

Schema description coverage is 100%, so the baseline is 3. The description adds a relational gloss on entity/metric/value, but it does not meaningfully expand on the parameter semantics already present in the 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 uses a specific verb ('存', meaning store) and identifies the resource ('状态事件到记忆库', a state event to memory). It clearly explains the semantic of entity/metric/value with optional unit and tags, which distinguishes it from the action-oriented sibling memory_store_action, though not explicitly.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus memory_store_action or other siblings like memory_trend or memory_summary. The description implies a use case but does not state any when-to-use or when-not-to-use conditions.

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

memory_summaryB

记忆库统计摘要:状态数/动作数/实体列表/动作类型列表。

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

TDQS

B3.3/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It only lists output contents and leaves read-only nature, data scope, freshness, and any potential side effects implicit. It is not misleading, but it does not meaningfully go beyond the tool's name.

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

Conciseness5/5

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

A single compact sentence that front-loads the resource and deliverable, then lists the output components. There is no filler or redundant repetition of the tool name's meaning.

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 parameterless summary tool, the description covers the main output elements and is adequate for an agent to know what to expect. It does not define the exact semantics of the counts or list ordering, but these are minor gaps given the tool's simplicity.

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?

The input schema has zero parameters, so there is no parameter documentation burden. The description usefully identifies what the no-argument call returns, which satisfies the minimal semantic need for such a tool.

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 states a clear deliverable: a statistical summary of the memory library, and enumerates its concrete components (状态数/动作数/实体列表/动作类型列表). It is distinguishable from siblings like memory_trend or memory_anomaly, though it does not explicitly name them as alternatives.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives such as memory_trend or memory_anomaly. No exclusions, prerequisites, or context are provided; usage must be inferred entirely from the name and content list.

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

memory_trendB

分析某指标的时间趋势(rising/falling/flat + 斜率)。

ParametersJSON Schema
NameRequiredDescriptionDefault
entityYes
metricYes

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the disclosure burden. It does reveal a key behavioral outcome: the analysis returns a trend category and slope. It does not explicitly state that the operation is read-only, what data source or time window is used, or any error conditions, 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 a single compact sentence with no filler or repetition. It front-loads the core action and immediately gives the concrete output categories, which is appropriately concise for a tool of this simplicity.

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?

There is no output schema and no annotations, so the description is the only source of operational detail. It mentions the result shape but does not explain the required parameters adequately, does not describe the time interval or data source, and gives no guidance on how this relates to sibling tools. This is insufficient for confident invocation in all cases.

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

Parameters2/5

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

Schema description coverage is 0%, and the description adds only minimal meaning: 'metric' maps to '某指标' and the trend is over time. The 'entity' parameter is entirely unexplained, including what kind of entity is expected or how it relates to the metric, so the description does not sufficiently compensate for 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 states a specific verb ('analyze') and resource ('time trend of a metric'), and it names the output categories (rising/falling/flat + slope), making the tool's function clear. It implicitly distinguishes from siblings like memory_anomaly and memory_causal, though it does not explicitly name any alternative.

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

Usage Guidelines3/5

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

The description implies this tool is for time-trend analysis of a metric, which gives the agent enough context for a straightforward read-style task. However, it does not state when to prefer it over memory_anomaly, memory_causal, or memory_summary, nor does it mention any exclusion conditions.

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

TDQS

B3.4/5.0
Disambiguation4/5

Each tool targets a distinct operation—storing state, storing action, trend analysis, anomaly detection, causal analysis, export, and summary. memory_trend and memory_anomaly both analyze metric series, but their purposes are clear enough to avoid real confusion.

Naming Consistency3/5

All tools share the memory_ prefix and snake_case, which helps consistency. However, the second part mixes noun-style names (trend, anomaly, causal, summary) with verb-object names (export_datalens, store_state, store_action), so the naming convention is readable but not uniform.

Tool Count5/5

Seven tools is well-scoped for a memory and analysis server: two writers, three analyzers, one export, and one summary. There is no obvious redundancy or bloat.

Completeness4/5

The surface covers state/action ingestion, trend/anomaly/causal analysis, export, and summary. It lacks direct raw-event queries or deletion, but that may be intentional for an append-only memory store, so this is a minor gap rather than a blocker.

Maintenance

ActivityMaintained
ResponsivenessNo issues

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

  • A
    license
    Not graded
    quality
    B
    maintenance
    Provides transparent, self-pruning memory for AI agents via MCP, enabling persistent, auditable recall that automatically forgets unimportant details.
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Durable, inspectable memory for MCP agents. Preserves decisions, preferences, and project knowledge across sessions with full provenance and version history.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables AI agents to capture, search, and manage structured memory from agent sessions with append-only events and provenance tracking, providing eight local MCP stdio tools.
    Apache 2.0

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/Xplore-LAB/dsh-plugin-asmemory'

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