Personal Context Manager
Click on "Deploy 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., "@Personal Context Managerremember that I prefer dark mode in all my code editors"
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.
Personal Context Manager
An MCP (Model Context Protocol) server that provides persistent personal context storage across AI conversations. It allows AI assistants to remember user preferences, project conventions, and other personal information between sessions.
Features
Persistent Storage — Context entries are saved to a local JSON file and survive across conversations
Upsert by Key — Automatically creates or updates entries based on key, avoiding duplicates
Keyword Search — Search across keys, values, and tags to find relevant context
Tagging — Organize entries with optional tags for easier retrieval
Atomic Writes — Uses tmp-file + rename to prevent data corruption
Related MCP server: agent-mem0
Tools
Tool | Description |
| Add or update a context entry by key |
| Search entries by keyword |
| List all stored entries |
| Delete an entry by ID |
Setup
Install
npm install
npm run buildConfigure in Claude Code
Add to your MCP settings (~/.claude/settings.json):
{
"mcpServers": {
"personal-context-manager": {
"command": "node",
"args": ["/path/to/personal-context-manager/dist/index.js"]
}
}
}Data Location
Context data is stored at ~/.personal-context-manager/contexts.json by default.
Override with the CONTEXT_MANAGER_DATA_DIR environment variable:
{
"mcpServers": {
"personal-context-manager": {
"command": "node",
"args": ["/path/to/personal-context-manager/dist/index.js"],
"env": {
"CONTEXT_MANAGER_DATA_DIR": "/custom/path"
}
}
}
}License
MIT
Available Tools
8 toolsdelete_contextA
Delete a personal memory entry by ID. Use when: 1) User asks to forget something. 2) Entry is outdated/contradicted by newer info. Always use get_context or list_contexts first to find the entry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The UUID of the context entry to delete |
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 conveys that this is a destructive mutation on 'personal memory' scope and that an ID must first be discovered, but it never states permanence/irreversibility, whether confirmation is required, or what the deletion returns.
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?
Front-loaded with verb+resource, then a compact numbered condition list, then the prerequisite. Every sentence earns its place with no filler.
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 single-parameter destructive tool with no output schema or annotations, the description covers purpose, triggers, and the ID-discovery prerequisite. It stops short of disclosing deletion permanence or confirmation behavior, a minor gap 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?
Schema description coverage is 100% and the single 'id' parameter is fully documented as a UUID, so the schema does the heavy lifting. The description only adds that the ID must be sourced via get_context/list_contexts, which is workflow guidance rather than new parameter meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Delete a personal memory entry by ID'), which cleanly distinguishes it from the read siblings get_context/list_contexts it references. An agent can tell what it does and what it targets without opening the schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit triggering conditions ('User asks to forget something' / 'Entry is outdated/contradicted by newer info') and a mandated prerequisite workflow ('Always use get_context or list_contexts first to find the entry ID'). Routing to the ID-discovery tools is concrete and actionable.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
generate_promptA
Generate the PCM system prompt and optionally save it to a file (e.g. CLAUDE.md). If output_path is provided, writes/replaces the PCM section in that file. If omitted, returns the prompt text directly.
| Name | Required | Description | Default |
|---|---|---|---|
| output_path | No | File path to save the prompt to. If the file already contains a PCM section, it will be replaced. If omitted, returns prompt as text. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does disclosing meaningful behavior: it writes/replaces the PCM section of a file (a mutation of existing content) or returns text if no path is given. It lacks details on whether a missing file is created or what markers delimit the PCM section, which a full disclosure would include.
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 sentences, front-loaded with the primary action, and the conditional behavior follows immediately. Every clause carries information with no padding.
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 one-parameter tool with no output schema or annotations, the description covers both branches (write-to-file vs. return-text) and the replacement semantics. It stops short of defining what constitutes a 'PCM section' or file-creation behavior, which would make it fully self-contained.
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 single parameter is already documented, including the replace behavior. The description restates this semantics in a sentence but adds no format or path syntax detail beyond the schema, matching the baseline for high 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?
States a specific verb (Generate) and resource (PCM system prompt) and clarifies the optional side effect (saving to a file). It does not differentiate itself from siblings, but the sibling set (context CRUD, workflow tools) is unrelated enough that ambiguity is low.
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 clearly explains the two operating modes selected by output_path (save vs. return text), which is conditional usage guidance. However, it never states when an agent should choose this tool over alternatives or what triggers prompt generation, so 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.
get_contextA
Search personal memory by keyword. Returns stored user preferences, habits, and facts sorted by most recently updated. PROACTIVE: Auto-call at the START of coding tasks to retrieve relevant conventions, and when user mentions code quality/style/review. Triggers — EN: "check/review/convention/lint/format/best practice" ZH: "检查/规范/风格/命名/写法/单测". Extract topic keywords from user message to search (e.g. "单测" → search "测试").
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Keyword to search across key, value, and tags |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full behavioral burden. It does disclose the return ordering (most recently updated) and contents, and gives proactive invocation rules. However it doesn't mention whether the search is case-sensitive, fuzzy, or what empty results look like – meaningful gaps for a search 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?
Front-loads purpose first, then returns, then proactive triggers and examples. Dense but every sentence adds actionable value; only the bilingual trigger list feels slightly overloaded.
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 1-parameter read/search tool with no output schema and no annotations, the description covers purpose, returns, and proactive invocation well. Missing only minor behavioral details (pagination, empty results) that an agent could discover at call time.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the schema already explains the query searches across key, value, and tags. The description adds an extraction example ("单测" → search "测试") which is helpful but does not extend beyond the schema's own documented scope.
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?
States a specific verb (Search) and resource (personal memory by keyword), plus the returned content (preferences, habits, facts sorted by recency). Clearly distinct from siblings like list_contexts or update_context.
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 when to auto-call (START of coding tasks, user mentions of code quality/style/review) and even provides bilingual trigger keywords with an extraction example. Far exceeds typical when-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_contextsB
List all entries in personal memory. Returns summary of stored user preferences, habits, and facts.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the behavioral burden, but it is a read-only, parameterless listing so there is little risk to disclose. It does add useful context about what is returned (preferences, habits, facts), though it says nothing about ordering, volume, or pagination.
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 short sentences, front-loaded with the core action and followed by what is returned. Nothing is padded, though the second sentence is arguably redundant with the first.
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 zero-parameter read tool with no output schema, the description gives enough to call it correctly and sketches the return contents. It could note ordering or result size, but nothing essential to invocation is 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?
The tool takes zero parameters, so per the rubric the baseline is 4. The description introduces no parameter confusion and the empty schema makes semantics moot.
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?
States a specific verb and resource ("List all entries in personal memory") and clarifies scope as the full personal memory store. It distinguishes itself implicitly from get_context (singular retrieval) but never names or contrasts with that sibling, so it falls short of a 5.
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 explicit when-to-use guidance. The phrase "List all entries" weakly implies bulk retrieval versus the singular get_context, but the description never states when to choose this over get_context or the workflow_* siblings, leaving the agent to infer.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
update_contextA
Personal memory system: save user preferences, habits, and facts for personalized assistance across conversations. PROACTIVE: Auto-call when user reveals personal info. Triggers — EN: "like/love/prefer/hate/always/never/I am/I use/my...is" ZH: "喜欢/讨厌/偏好/习惯/每天/总是/从不/我是/我用". Upserts by key. Check existing entries first to avoid duplicates; delete contradicted entries before updating. Auto-infer category (work/personal/health/tech/preference/etc). Tags: include both EN and ZH (e.g. "food"+"食物").
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Short label for this context, e.g. "tech_stack", "wake_time" | |
| tags | No | Optional tags for easier searching | |
| value | Yes | The context content to store | |
| category | No | Category for this entry. AI should auto-infer from content. Use lowercase English names such as: work, personal, health, tech, finance, learning, preference. Create new names when none fit. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full behavioral burden and does so: it discloses upsert-by-key semantics, the destructive behavior of removing contradicted entries, cross-conversation persistence, auto-inference of category, and the encoding convention for tags. That covers mutation semantics and scope, which is more than structured fields supply here.
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?
Front-loads the purpose, then layers triggers, upsert rules, and conventions in a compact, scannable block. It is dense but nearly every clause carries an actionable rule; the long trigger list is justified by its role in proactive invocation, though it is the densest part.
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 no annotations and no output schema, the description supplies the semantics an agent needs: persistence scope, upsert/dedupe workflow, and how to populate optional fields. It stops short of describing what a successful write returns or how to recover from a failed upsert, but nothing essential to correct invocation is 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 already 100%, so the baseline is 3; the description adds value by specifying the bilingual tag convention ("food"+"食物") and reinforcing that category should be inferred from content, going beyond the schema's own wording. It does not, however, add format or length guidance for key/value.
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?
States a specific verb+resource ('save user preferences, habits, and facts') and frames the tool as a personal memory system, which cleanly separates it from the sibling read/list/delete tools (get_context, list_contexts, delete_context). An agent can identify the operation without opening the schema.
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 instructs when to call (PROACTIVE auto-call when the user reveals personal info), lists concrete EN and ZH trigger phrases, and prescribes prerequisites: check existing entries first, and delete contradicted entries before updating. This is when/when-not plus sequencing, not vague guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_doneB
Mark a workflow entry as done. Use this when a task is completed or a tracked item is resolved. Use workflow_list first to find the entry ID.
| Name | Required | Description | Default |
|---|---|---|---|
| id | Yes | The UUID of the workflow entry to mark as done |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It implies a mutation (marking as done) but says nothing about idempotency, whether the change is reversible, permissions required, or side effects on related items — all material for a state-changing 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?
Three short sentences, front-loaded with the action, then the trigger, then the prerequisite — no filler. It could be tightened marginally but every sentence carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a one-parameter mutation with no output schema and no annotations, the description covers the action, when to use it, and how to obtain the ID. It omits reversibility, permission requirements, and whether any result is returned, leaving meaningful gaps for a write operation.
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% and the single 'id' parameter is already documented as the UUID of the entry. The description only adds that the ID should be sourced from workflow_list, which is modest but real added value; baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('Mark a workflow entry as done'), so an agent immediately knows this is a state-transition operation on a workflow entry. It is distinguishable from workflow_list and workflow_log by naming the 'done' outcome, though it does not explicitly contrast itself with those siblings.
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?
Gives an explicit trigger condition ('when a task is completed or a tracked item is resolved') and a concrete prerequisite ('Use workflow_list first to find the entry ID'). It lacks a when-not clause or mention of an alternative tool for reopening/undoing, but the context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_listA
List workflow entries for the current git project. Returns entries filtered by type and/or status (defaults to active). PROACTIVE: Call this tool at the START of every conversation to load project context — understand what tasks are in progress, what decisions have been made, and what insights have been recorded.
| Name | Required | Description | Default |
|---|---|---|---|
| type | No | Filter by entry type | |
| status | No | Filter by status. Defaults to "active" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full behavioral burden. It usefully discloses the default filter (status='active') and that results are scoped to the current git project, which is real behavioral context. However, it says nothing about return shape, ordering, pagination/limits, or read-only nature beyond the implied 'List', leaving meaningful gaps for an unannotated 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?
Two sentences, purpose front-loaded before the PROACTIVE guidance, with no redundant filler. Slightly verbose in the 'understand what tasks...' elaboration, but it still earns its place by motivating the proactive call.
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 zero-required-parameter read tool, the definition covers scope, filtering, default status, and invocation timing. The main omission is what a returned entry looks like, which matters somewhat given there is no output schema.
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% and both parameters are enum-constrained with their descriptions and the 'active' default documented in the schema. The description's 'filtered by type and/or status (defaults to active)' restates rather than extends the schema, so the baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ('List workflow entries') and pins the scope to 'the current git project', plus the filter semantics. It is clear what the tool does, but it never names or distinguishes itself from siblings like workflow_log, workflow_done, or list_contexts, so sibling differentiation is left to inference.
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 PROACTIVE sentence gives explicit, actionable context: call at the start of every conversation to load project context. That is a strong when-to-use signal, but no when-not-to-use or alternative routing (e.g., vs. get_context/list_contexts) is offered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
workflow_logA
Log a project workflow entry. PROACTIVE: You MUST automatically call this tool (without being asked) when any of these happen: (1) User requests a multi-step task → log type "task" with what needs doing. (2) A design/architecture choice is made between alternatives → log type "decision" with rationale. (3) You discover something non-obvious and project-specific (e.g. undocumented behavior, workaround needed) → log type "insight". Core question: "Would this be useful in a FUTURE conversation about this project?" If yes, log it. If only relevant now, skip it. WHEN TO LOG each type: type "task" — User requests a multi-step task (not a one-liner fix). Log when starting (what needs doing) and when partially complete (what is done, what remains). Do NOT log trivial single-step changes. type "decision" — A choice was made between alternatives (e.g. Redis vs local cache, library A vs B). Include the rationale: WHY this approach was chosen. Do NOT log obvious defaults with no alternatives considered. type "insight" — Discovered something PROJECT-SPECIFIC that is not obvious from docs or code (e.g. an API has an undocumented rate limit, a specific query is slow, a workaround was needed). Do NOT log general programming knowledge that applies to all projects. If an entry with the same title and type exists, it will be updated (upsert). Data is scoped to the current git project and auto-synced to the project CLAUDE.md.
| Name | Required | Description | Default |
|---|---|---|---|
| tags | No | Optional tags for categorization | |
| type | Yes | Entry type: "task" for work items, "decision" for architecture/design choices, "insight" for discovered knowledge or pitfalls | |
| title | Yes | Short title for this entry, used as upsert key | |
| content | Yes | Detailed description |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden and does so well: it discloses upsert-on-same-title-and-type semantics, git-project data scoping, and auto-sync to CLAUDE.md. These are non-obvious side effects an agent must know before invoking.
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 PROACTIVE mandate is front-loaded, followed by a clean core-question test and a type-by-type breakdown. Length is justified by the need to drive unsolicited invocation, and no sentence is redundant with the schema besides minor restatement.
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 4-param mutation tool with no output schema and no annotations, the description covers purpose, triggers, exclusions, parameter meaning, upsert behavior, and storage/sync scope. Nothing an agent needs to call it correctly is 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 coverage is 100% so the baseline is 3, but the description goes further by explaining what each enum value means in practice and when each applies, plus confirming title acts as the upsert key. Some of this is redundant with the schema, keeping it just under a 5.
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?
States a specific verb+resource ('Log a project workflow entry') and immediately scopes it with the three entry types, so an agent can tell it apart from workflow_list and workflow_done (read/complete siblings) without opening the schema.
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?
Explicit when-to-call triggers, per-type logging criteria, and negative cases ('Do NOT log trivial single-step changes', 'Do NOT log obvious defaults', 'Do NOT log general programming knowledge'). It even supplies a decision heuristic ('Would this be useful in a FUTURE conversation?'), leaving nothing to inference.
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.
8 tool updates
v1.0.0- First observed
delete_context - First observed
generate_prompt - First observed
get_context - First observed
list_contexts - First observed
update_context - First observed
workflow_done - First observed
workflow_list - First observed
workflow_log
TDQS
Scored across 8 tools
While most tools target distinct resources (personal context vs. workflow), there is potential overlap between update_context/get_context (personal memory) and workflow_log/workflow_list (project memory) when users mention work-related conventions. The descriptions provide some guidance with specific triggers, but an agent could still confuse which memory store to use for a given piece of information.
Two different naming patterns are used: context_* tools use verb_noun (update_context, get_context, list_contexts, delete_context) while workflow_* tools use noun_verb (workflow_log, workflow_list, workflow_done). Additionally, generate_prompt follows a third pattern, creating inconsistency across the server's tools.
8 tools is a well-scoped count for a personal context manager, covering core operations for two memory systems (personal and project) plus a prompt generator. Each tool appears to earn its place without redundancy.
The surface offers CRUD operations for personal context (create, read, list, delete) and workflow entries (create, read, update status), covering essential memory management. Minor gaps include the absence of an update tool for personal context (though upsert via update_context covers modification) and no bulk operations or search for workflow entries beyond filtering.
Maintenance
Related MCP Connectors
- memoryOAuthcom.leapmemory
Long-term memory for AI assistants. Isolated per-user storage, recall across conversations.
Gives your AI assistant persistent memory and intelligence about your work patterns.
Cross-LLM persistent memory: store context once, recall it from any AI model.
Persistent memory layer that saves and recalls your project context and preferences.
Related MCP Servers
- AlicenseDqualityDmaintenanceEnables AI assistants to access and update personalized context data, creating persistent memory between sessions.14MIT
- AlicenseNot gradedqualityDmaintenanceProvides persistent cross-session memory for Claude Code, enabling it to remember user preferences, decisions, and project context across new sessions.Apache 2.0
- AlicenseAqualityFmaintenanceProvides persistent personal context (identity, projects, decisions, knowledge) to MCP-compatible AI tools, eliminating the need to re-explain yourself across sessions.251 npm1MIT
- AlicenseAqualityDmaintenanceEnables AI coding assistants to store and retrieve persistent long-term memory across sessions, remembering project preferences, build steps, and architecture decisions.4MIT