---
title: "How to Add Long-Term Memory to ChatGPT"
description: "Every documented way to add long term memory to ChatGPT: native memory and its limits, projects, custom GPTs, MCP apps in developer mode, and the API."
canonical: https://past.dev/blog/add-long-term-memory-to-chatgpt
date: 2026-09-03
category: Research
authors: The past.dev team
---
# How to Add Long-Term Memory to ChatGPT

ChatGPT already maintains [long-term memory](/glossary/long-term-memory) on its own: an automatically updated synthesis of your chats, uploaded files, and connected apps, surfaced as an editable memory summary ([Memory FAQ](https://help.openai.com/en/articles/8590148-memory-faq)). The ways to add long term memory to ChatGPT beyond that are narrower than most guides claim, and several changed during 2026. As of September 2026, OpenAI documents four levers: memory controls, projects, custom GPTs, and MCP-based apps in developer mode. This guide takes them in order of officialness, with OpenAI's page linked for each claim, and finishes with the line between what an end user can extend and what requires building on the API.

## What ChatGPT remembers on its own

When memory is enabled, ChatGPT automatically remembers "useful context from your chats, files, and connected apps," with controls under Settings > Personalization > Memory ([Memory FAQ](https://help.openai.com/en/articles/8590148-memory-faq)). What it remembers appears in a memory summary you can edit by typing corrections or highlighting text, and the FAQ is explicit that the summary "will not include everything that ChatGPT remembers." Deletion follows from that design: to fully remove a detail, OpenAI says to delete every source it appears in, including past chats, files, and connected apps. A "Delete and turn off memory" control exists on the web, Temporary Chats neither use nor create memories, and a legacy saved memories mode remains available from Settings > Memory. The full mechanics, including the older saved memories system, are in our teardown: [how ChatGPT's memory works](/blog/chatgpt-memory).

The ceiling follows from the same design. The write path into memory is usage: chats, files, connected apps. There is no documented way to hand ChatGPT a structured store of facts, and the FAQ describes memory as "a continually updated synthesis" rather than a record you can query or audit in full.

## Projects and project-only memory

Projects give recurring work a container: grouped chats, uploaded files, and instructions that override your global custom instructions inside the project ([Projects in ChatGPT](https://help.openai.com/en/articles/10169521-projects-in-chatgpt)). They are available on all free and paid plans, and the article lists file caps by plan: 5 on Free, 25 on Plus and Go, 40 on Pro, and 40 on Business, Enterprise, and Edu. Each project has a memory setting under Project settings: Default memory lets project chats reference your saved memories, while Project-only memory isolates the project in both directions, and shared projects are locked to project-only ([same article](https://help.openai.com/en/articles/10169521-projects-in-chatgpt)). Project memory also requires the personal memory toggles ("Reference saved memories," plus "Reference chat history" outside Enterprise).

As an extension path, a project is the curated option: what it durably knows is what you upload to it, and project-only memory trades reach for containment.

## Custom GPTs: packaged knowledge with a plan gate

A custom GPT combines instructions, uploaded knowledge files, and capabilities into a purpose-built ChatGPT ([GPTs in ChatGPT](https://help.openai.com/en/articles/8554407-gpts-in-chatgpt)). Knowledge supports up to 20 files at up to 512 MB each, described in the docs as source material the GPT draws on during a conversation ([Creating and editing GPTs](https://help.openai.com/en/articles/8554397-creating-and-editing-gpts)). The 2026 change is the gate: new GPT creation and publishing are unavailable on personal accounts, including Free, Go, Plus, and Pro, so building one now requires a Business, Enterprise, or Edu workspace ([GPTs in ChatGPT](https://help.openai.com/en/articles/8554407-gpts-in-chatgpt)). Chats created with a GPT also cannot be moved into a project ([Projects in ChatGPT](https://help.openai.com/en/articles/10169521-projects-in-chatgpt)). For an individual, GPTs are now a way to use packaged knowledge rather than to build it.

## Add memory to ChatGPT with an MCP server

Apps in ChatGPT are built on the Model Context Protocol, and OpenAI documents how organizations connect their own MCP servers ([Apps in ChatGPT](https://help.openai.com/en/articles/11487775-connectors-in-chatgpt)). The availability line deserves quoting because it keeps moving: "Full MCP (Model Context Protocol) support, including modify/write actions, is rolling out in beta to ChatGPT Business, Enterprise, and Edu plans," on the web only ([Developer mode and MCP apps in ChatGPT](https://help.openai.com/en/articles/12584461-developer-mode-and-mcp-apps-in-chatgpt)). The same page states that Pro users can connect MCP servers with read and fetch permissions in developer mode; it names no path for Plus or Free as of September 2026. ChatGPT connects only to remote MCP servers, and a server on a private machine goes through OpenAI's Secure MCP Tunnel.

The documented flow in a workspace: an admin enables developer mode (Settings > Apps > Advanced Settings once access is granted), then Workspace settings > Apps > Create, where you provide the MCP server endpoint and authentication, run Scan Tools, and select Create; the app sits in Drafts until an admin publishes it. OpenAI's caution sits in the same article: "Connecting to unsafe or untrusted MCP servers may increase exposure to security risks (including prompt injection)," and it tells builders to connect only servers they trust.

Pointed at a memory server, that flow gives ChatGPT recall tools it can call mid-chat. The reference [memory server from the Model Context Protocol project](https://github.com/modelcontextprotocol/servers/tree/main/src/memory) is one shape: a knowledge graph of entities, relations, and observations persisted to a local file, which needs hosting or a tunnel before ChatGPT can reach it. past.dev's workspace MCP server is another, described as exactly what it is: a remote server that serves recall over the memory a past.dev workspace already holds, to signed-in members of that workspace. It lets ChatGPT query facts your team ingested into past.dev, dated and sourced. It does nothing for a personal account with no workspace behind it, and it does not alter ChatGPT's own memory.

## What an end user cannot extend

The memory system itself is closed. App settings are documented as separate from Memory settings ([Apps in ChatGPT](https://help.openai.com/en/articles/11487775-connectors-in-chatgpt)), MCP apps are web-only, and personal Plus and Free accounts have no documented custom-app path. No setting changes how the memory summary is built or where it is stored.

Builders get the opposite arrangement. The API keeps no state between calls: "each text generation request is independent and stateless," and continuity comes from what you send, whether raw history, the Conversations API, or previous_response_id ([Conversation state](https://developers.openai.com/api/docs/guides/conversation-state)). Durable [cross-session memory](/glossary/cross-session-memory) is therefore an infrastructure choice you make yourself, in agent frameworks like the [OpenAI Agents SDK](/integrations/openai-agents-sdk) or directly against the API.

## If you are building your own assistant

That boundary is the builder bridge: you cannot give ChatGPT a real memory backend, but you can give one to the assistant you build. past.dev is a memory API for that layer: POST /api/v1/ingest takes raw text with its original timestamp in a content field, entity resolution links mentions of the same person across sources, and stored facts carry event time, validity windows, and supersession links. POST /api/v1/recall takes a query and returns ranked, dated evidence with sources and one of four statuses: Supported, Conflicted, NoKnownSupport, or UnknownBecauseDegraded. It runs managed or self-hosted in your own Postgres; start with the [quickstart](/docs/memory-api/quickstart) and read [the benchmarks](/benchmarks) for how recall is measured.
