Metadata-Version: 2.4
Name: adaptive-memory-graph
Version: 1.1.1
Summary: Intelligent persistent memory graph MCP plugin for Claude — weighted, interconnected knowledge nodes that evolve through conversation
Project-URL: Homepage, https://github.com/raskolnikovdd/adaptive-memory-graph
Project-URL: Repository, https://github.com/raskolnikovdd/adaptive-memory-graph
Project-URL: Issues, https://github.com/raskolnikovdd/adaptive-memory-graph/issues
Author: David Dunham
License-Expression: MIT
License-File: LICENSE
Keywords: ai,claude,graph,mcp,memory,plugin
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.10
Requires-Dist: cryptography>=42.0.0
Requires-Dist: mcp[cli]>=1.0.0
Description-Content-Type: text/markdown

# Adaptive Memory Graph

<!-- mcp-name: io.github.raskolnikovdd/adaptive-memory-graph -->

An MCP server plugin that gives Claude persistent, intelligent memory across sessions. It stores knowledge as weighted, interconnected nodes in a graph that evolves through conversation — nodes that get used gain weight, unused ones decay and eventually archive.

Works with **Claude Code** and **Claude Desktop**.

## Features

- **Weighted memory nodes** — Important memories stay prominent; stale ones fade
- **Cross-domain connections** — Link related knowledge across topics
- **Time-based decay** — Graph self-prunes so only relevant memories persist
- **Encrypted storage** — AES-256-GCM encryption with macOS Keychain key storage
- **Session logging** — Tracks which memories were accessed and how they were received
- **Domain organization** — Nodes organized by domain (e.g. health_and_safety, personal, ideas_and_projects)
- **Chat history ingestion** — Review and extract knowledge from past Claude Code sessions

## Installation

```bash
pip install adaptive-memory-graph
```

Or with [uv](https://docs.astral.sh/uv/):

```bash
uv pip install adaptive-memory-graph
```

## Setup

### Claude Code

```bash
claude mcp add adaptive-memory-graph -s user -- amg-server
```

### Claude Desktop

Add to your `claude_desktop_config.json`:

```json
{
  "mcpServers": {
    "adaptive-memory-graph": {
      "command": "amg-server"
    }
  }
}
```

**Config file location:**
- macOS: `~/Library/Application Support/Claude/claude_desktop_config.json`
- Windows: `%APPDATA%\Claude\claude_desktop_config.json`

## Tools

| Tool | Description |
|------|-------------|
| `amg_load_index` | Load lightweight graph index at session start |
| `amg_expand_branch` | Fetch full node content when contextually relevant |
| `amg_get_connected_nodes` | Find related nodes across domains |
| `amg_log_session` | Log session summary at conversation end |
| `amg_update_graph` | Process pending logs and apply weight decay |
| `amg_export_report` | Generate human-readable graph summary |
| `amg_manual_adjust` | Boost, decay, archive, or delete nodes |
| `amg_add_node` | Add new nodes to the graph |
| `amg_search_nodes` | Search nodes by title, summary, tags, or content |
| `amg_list_chat_sessions` | List available Claude Code chat sessions for review |
| `amg_read_chat_session` | Read a chat session's conversation content |

## How It Works

1. **Session start** — Claude calls `amg_load_index` to get a lightweight summary of your memory graph
2. **During conversation** — If a topic is relevant, Claude expands specific nodes for deeper context
3. **Session end** — Claude silently logs which nodes were accessed and suggests new ones
4. **Between sessions** — Weight decay runs, archiving memories that haven't been useful

Nodes are stored as encrypted JSON on disk (`~/.amg/graph.json.enc`). The encryption key is stored in your macOS Keychain.

## Requirements

- Python 3.10+
- macOS (for Keychain-based encryption key storage)

## License

MIT
