asmemory
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., "@asmemoryDid the training action cause the GPU temperature to rise?"
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.
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 | 简体中文
⭐ 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.jsonReal 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 |
| Record a state event (entity / metric / value / unit / tags) |
| Record an action event (actor / verb / object / amount) |
| Trend direction + slope of a metric |
| z-score outlier detection |
| Mean change of a metric before/after an action |
| Library statistics |
| 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.
Install the
asmemory-mcpcommand:pip install .(Or skip the install and set
ASMEMORY_MCP_PATH=/path/to/bin/asmemory-mcpinstead.)Launch DSH with the plugin patch:
dsh web --patch "$PWD/cordis.yml"(Once published, you can also run
dsh plugin add dsh-plugin-asmemory.)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 demoUse 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 toolsmemory_anomalyB
检测某指标的异常点(z-score,|z|>threshold 视为异常)。
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | ||
| metric | Yes | ||
| threshold | No | z-score 阈值,默认 2.0 |
TDQS
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.
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.
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.
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.
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.
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)的影响,返回动作前后均值变化量。
| Name | Required | Description | Default |
|---|---|---|---|
| verb | Yes | ||
| entity | Yes | ||
| metric | Yes | ||
| window | No | 时间窗秒,默认 3600 |
TDQS
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.
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.
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.
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.
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.
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,用于可视化优化分析。
| Name | Required | Description | Default |
|---|---|---|---|
| section | No | ||
| site_name | No | ||
| control_name | No | ||
| control_unit | No | ||
| control_verb | Yes | 控制动作 verb,如 valve_adjust | |
| indicator_name | No | 指标显示名(中文),可选 | |
| indicator_unit | No | ||
| indicator_entity | Yes | 指标实体,如 oxygen | |
| indicator_metric | Yes | 指标名,如 purity | |
| regulatory_limit | Yes | 法规红线 |
TDQS
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.
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.
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.
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.
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.
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 与元数据。
| Name | Required | Description | Default |
|---|---|---|---|
| ts | No | unix 时间戳秒,默认当前 | |
| verb | Yes | 做了什么,如 run_training/git_commit/喷氨 | |
| actor | Yes | 谁做的,如 agent/user/operator | |
| amount | No | 控制量数值(喷氨量/功率/开度),可选 | |
| object | No | 对象,可选 | |
| metadata | 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 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.
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.
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.
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.
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.
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),可带单位与标签。
| Name | Required | Description | Default |
|---|---|---|---|
| ts | No | unix 时间戳秒,默认当前 | |
| tags | No | 标签,可选 | |
| unit | No | 单位,可选 | |
| value | Yes | 数值 | |
| entity | Yes | 实体名,如 gpu/cpu/user/repo | |
| metric | Yes | 指标名,如 temperature/usage/purity |
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 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.
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.
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.
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.
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.
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
记忆库统计摘要:状态数/动作数/实体列表/动作类型列表。
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries 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.
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.
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.
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.
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.
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 + 斜率)。
| Name | Required | Description | Default |
|---|---|---|---|
| entity | Yes | ||
| metric | Yes |
TDQS
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.
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.
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.
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.
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.
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
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.
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.
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.
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
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
Persistent, inspectable memory for AI agents with lineage, correction, and a hosted MCP endpoint.
Shared, governed long-term memory for AI agents across tools and sessions via MCP and REST.
Persistent memory for AI agents — log and recall conversation context over MCP.
Hosted MCP memory and agent control plane for durable conversations, jobs, and operations.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceProvides transparent, self-pruning memory for AI agents via MCP, enabling persistent, auditable recall that automatically forgets unimportant details.MIT
- AlicenseNot gradedqualityCmaintenanceDurable, inspectable memory for MCP agents. Preserves decisions, preferences, and project knowledge across sessions with full provenance and version history.2Apache 2.0

CarpeOS MCP Serverofficial
AlicenseNot gradedqualityAmaintenanceEnables 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- FlicenseNot gradedqualityBmaintenanceProvides persistent, causal memory for AI agents with semantic recall, causal tracking, and importance-based forgetting through MCP tools.
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/Xplore-LAB/dsh-plugin-asmemory'
If you have feedback or need assistance with the MCP directory API, please join our Discord server