Skip to main content

Memory Forge

Memory Forge is a local-first MCP memory backend for MCP-capable AI clients. It gives compatible clients a small set of tools for saving, searching, and summarizing durable project memories without sending the database to a cloud service.

V1 is intentionally boring in the best way: a Python MCP server, SQLite, and full-text search.

Features

  • Local SQLite database with FTS5 search.
  • MCP tools for remember, search, context, update, and forget.
  • Soft-delete by default so accidental forgets can be recovered from backups.
  • Project, tag, source-agent, and importance metadata.
  • Token-budgeted context retrieval to avoid duplicate long-term memory blocks.
  • Usage estimates on retrieved context so clients can see read cost.
  • Active-context compaction through memory_compact when clients send the working context they want Memory Forge to own.
  • Model-window budgeting with context_window_tokens, reserved_prompt_tokens, and reserved_output_tokens.
  • Fallback retrieval for focused queries that miss but project memory exists.
  • Works with any MCP client that can launch a stdio server.

Memory Budgeting

Memory Forge returns only the focused memory a client asks for. Use small memory_context budgets by default, then request more only when the task needs broader project orientation. A good starting point is max_chars: 2000 for normal coding tasks and max_chars: 6000 for broad project orientation.

If the client knows the model window, pass context_window_tokens, reserved_prompt_tokens, and reserved_output_tokens so Memory Forge budgets retrieved memory against the same window as the model call.

See Memory Model Guide for token-budget guidance and active-context compaction behavior.

Install

uv sync

Run the MCP server:

uv run memory-forge

Configure Codex to use Memory Forge and disable duplicate built-in memory:

uv run memory-forge-setup codex --from-checkout .

For an installed release, run:

memory-forge-setup codex

Preview the config change without writing:

memory-forge-setup codex --dry-run

By default the database is stored at:

%USERPROFILE%\.memory-forge\memory.db

Set a custom path with:

$env:MEMORY_FORGE_DB="C:\path\to\memory.db"
uv run memory-forge

MCP Tools

memory_remember

Save a durable memory.

{
  "content": "The API service uses SQLite for local development.",
  "tags": ["api", "local-dev"],
  "project": "example-project",
  "source_agent": "codex",
  "importance": 3
}

Search memories with optional filters.

{
  "query": "SQLite local development",
  "project": "example-project",
  "tags": ["api"],
  "limit": 10
}

memory_context

Return compact prompt-ready context for an agent.

{
  "query": "database setup",
  "project": "example-project",
  "limit": 8,
  "max_chars": 2000,
  "context_window_tokens": 128000,
  "reserved_prompt_tokens": 24000,
  "reserved_output_tokens": 4000
}

The response includes context, count, max_chars, truncated, and the raw matching memories. It also includes usage with character count and rough token estimates, including whether the returned memory fits the declared model window budget. If a focused query misses but project or tag filters can still return relevant memories, fallback_used is true. Clients should inject only the context string into the working prompt.

memory_compact

Compact active context supplied by a client and optionally store the compacted result in Memory Forge.

{
  "active_context": "Current chat notes or working context supplied by the client.",
  "project": "example-project",
  "tags": ["handoff"],
  "source_agent": "codex",
  "max_chars": 2000,
  "context_window_tokens": 128000,
  "reserved_prompt_tokens": 24000,
  "reserved_output_tokens": 4000,
  "save": true
}

MCP servers cannot read a client's hidden prompt or chat buffer by themselves. Clients that want Memory Forge to handle active context should call memory_compact before the working context grows too large, then replace the bulky active context with only the returned compacted_context or saved memory reference. Appending compacted context while keeping the original transcript still spends the model window twice.

memory_update

Update content, tags, project, source agent, or importance.

{
  "memory_id": "memory-id",
  "importance": 5,
  "tags": ["api", "database"]
}

memory_forget

Archive by default, or hard-delete only when explicitly requested.

{
  "memory_id": "memory-id",
  "hard_delete": false
}

Development

uv run pytest

Client Integrations

Memory Forge's MCP server can only receive context a client explicitly sends. A richer client integration can handle more memory sources, such as:

  • configuring the client to disable duplicate built-in memory;
  • installing Memory Forge as the MCP memory backend;
  • importing accessible chat history when the user explicitly opts in;
  • indexing selected local files or repositories into compact memories.

These integrations should be explicit, local-first, and reversible. Memory Forge should not silently ingest private chats, secrets, or entire filesystems.

Codex

memory-forge-setup codex updates the local Codex config to:

  • disable built-in Codex memory;
  • register Memory Forge as the memory_forge MCP server;
  • point MEMORY_FORGE_DB at the local Memory Forge database.

Use --from-checkout PATH while developing from a local checkout. Use --dry-run to inspect the diff and --check in automation.

Next Clients

Claude Code is the next planned setup target. Its installer should follow the same pattern: configure Memory Forge as the memory backend, avoid duplicate built-in memory where possible, and keep imports or local indexing opt-in.

Roadmap

  • Export and import memories as JSONL.
  • Optional semantic search using local embeddings.
  • Memory compaction and conflict detection.
  • Claude Code setup helper.
  • Opt-in Codex history import and selected local-file indexing.

Metadata

Release files for memory-forge-mcp 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for memory-forge-mcp 0.1.0
File Size Uploaded
memory_forge_mcp-0.1.0.tar.gz 61.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for memory-forge-mcp 0.1.0
File Interpreter ABI Platform
memory_forge_mcp-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 74.7 kB

Release files / memory_forge_mcp-0.1.0.tar.gz

Download URL memory_forge_mcp-0.1.0.tar.gz
Size 61.0 kB
Tags Source
SHA-256 checksum
How to use checksums
3e2056bd223445bed927d4dee4d803dab188a5cd4ebde725f30118fa028aa36d
BLAKE2b-256 checksum
How to use checksums
705883e28f6e7f8213f4ad8cbd1a3b6176b39a875cf516987f46d7b9ba736998
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / memory_forge_mcp-0.1.0-py3-none-any.whl

Download URL memory_forge_mcp-0.1.0-py3-none-any.whl
Size 13.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6689fbc5b65210813d12f7cf5c4609dc33a8d1a4646d13b4aeb2c4887cd9554a
BLAKE2b-256 checksum
How to use checksums
c358b0b337092e800f442df24068602861b27bf503a2cde59b6e493d9a1a69dd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.11 {"installer":{"name":"uv","version":"0.11.11","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page