Configure Memory

Bring user-chosen project context and preferences into your AI tools. A persistent, searchable memory profile with OAuth, imports and explicit saves.

Hosted MCP Server

npx add-mcp 'https://mcp.configure.dev/'

Installs into Claude Code, Codex, Cursor and more

Documentation

Configure lets your agent know a user from the first message. The user brings what ChatGPT, Claude, Gemini, or Grok knows about them, and can connect apps such as Gmail and Calendar. Your agent reads that profile, and what it learns goes back into it. The user approves every app and can revoke access at any time.

TIP

Fastest path: paste Read https://configure.dev/skill.md and add Configure to this project. into your coding agent. See Skills.

How it works

The examples on this site use Remy, the research assistant in Smry, and Nova Sandbrook, the test user in every Configure sandbox.

1. The user clicks the chip

Smry's home page with the chip circled in red: it reads Connect, followed by the Claude, ChatGPT, Gemini, and Grok marks

The chip sits under the composer. One click takes the user to Configure.

2. The user brings their context on Configure's page

They import memories from an assistant or connect an app, confirm their phone number with a code, and see what came in. Finishing approves your app.

Configure's import screen titled Remy uses Configure to connect your apps and AI assistants, with ChatGPT, Claude, Gemini, and Grok cards to import, a list of apps to connect starting with Gmail and Google Calendar, and Continue greyed out

Import an assistant or connect an app.

Configure's receipt reading You're all set, with a row per imported assistant and connected app, and a button to return to Remy

After the phone code: what came in, and a button back to your app.

3. The user comes back, and your agent knows them

Remy's answer, headed From your linked Configure profile, listing Nova Sandbrook's name, occupation, location, projects, schedule, diet, tools, and travel preferences

Nova's first chat with Remy. Remy answers from her Configure profile.

Remy has never talked to Nova before. It knows her work, schedule, diet, and tools because she brought them with her.

Try it yourself. That link opens Configure's page as a user sees it.

The code

Your server makes every call. The Quickstart puts each line in place.

import { Configure } from "configure";
const configure = new Configure({ apiKey: process.env.CONFIGURE_API_KEY, agent: process.env.CONFIGURE_AGENT });
const profile = configure.profile({ externalId: user.id });   // one handle per user, keyed by your id

const { connect_url } = await profile.connect({ returnUrl });  // 1. the chip's route redirects the user here
const read = await profile.read({ sections: ["identity", "preferences", "summary"] });   // 3. read.profile.format() goes in the system prompt
await profile.commit({ messages: turnMessages });              // 3. save each turn to the profile
const session = await profile.mcpSession();                    // 3. optional: the Configure tools for the model

Choose your path

Quickstart Every step, end to end, for an app with its own server.Skills Paste one message into Claude Code, Cursor, or Codex and it builds the Quickstart for you.Onboarding The chip in an onboarding step, and a welcome screen that shows what the user brought.Components Configure's own buttons, which open Configure's page inside yours.Connect over MCP Connect an app you already use, or connect from your own server.Message agents SMS or voice, where a link replaces the chip.

For coding agents

If you are an AI agent adding Configure for a developer, follow the Quickstart from top to bottom. It covers the chip, the redirect to the connect_url from profile.connect(), and the return route. Add .md to any page URL for plain markdown, and read /llms.txt for the full index. From the server, inject the profile on the first turn of each session, refresh it once a day, and commit every turn. Then give the model the configure_* tools over MCP. Never build a Configure link yourself. Only profile.connect() mints one.