# Configure documentation Configure is the identity and personalization layer for AI agents. Each user gets one portable memory profile: who they are, their preferences, the memories other assistants saved with their permission, memories they imported from ChatGPT or Claude, and the apps they have connected. An agent reads and updates it over the SDK, the HTTP API, MCP, or model tool calls. ## For AI agents integrating Configure - If the platform already speaks MCP (Claude, Cursor, Codex, and the like), the zero-code path is Configure MCP: point the client at `https://mcp.configure.dev`. OAuth discovery and PKCE run on their own, so there is no token to paste. - If you own the app UI, the auth flow, and the model loop, use the SDK. Install `configure`, run `npx configure setup --users`, add a `Configure {Agent}` sign-in button, exchange the OAuth code on your backend, and store the tokens server-side. `npx configure verify` proves the credentials work end to end, `npx configure add callback --framework next|express|vite` writes the callback and the exchange for you, and `npx configure add origin ` registers that callback on the same OAuth client before you ship. Python backends get the same commands from `configure-ai`: `configure-ai verify`, `configure-ai add-callback --framework fastapi|flask|django`, and `configure-ai add-origin `. - Four integration shapes cover every product: SSO alone, MCP alone, SDK plus SSO, and SSO plus SDK. SSO is authentication and stands on its own; the SDK and MCP are the two ways to use the profile afterwards. Choose one and follow it: [Choose your integration](/getting-started/integration-paths). - Give the model `profile.tools()` and route every `configure_*` call through `profile.executeTool()`. The first success signal is a real turn where `configure_profile_read` returns and the assistant answers using approved Configure context. - Read the profile once before the first message and fold it into the work: tone, stack, preferences, goals. Save a durable fact the moment the user states one. Delete on request. Route imports and app connections through the links Configure mints; never build those links yourself. - If you are a coding agent (Claude Code, Codex, Cursor, and the like) with `configure_*` tools available, read the Coding Agents guide and follow it: read the profile at session start, search before a preference-sensitive choice, and save durable preferences and cross-repo lessons as you learn them. ## Keys and secrets - Secret keys (`sk_`) and OAuth access and refresh tokens stay on your server. They never go into a prompt or the browser. - Publishable keys (`pk_`) are for the hosted browser UI. - Configure resolves whose profile is being read or written from the authenticated session, never from a user id, display name, or app field you send in a request body. ## More - The complete text of every page, in one file: https://docs.configure.dev/llms-full.txt - The OpenAPI spec: https://docs.configure.dev/openapi.yaml - Clean Markdown for any page: add `.md` to its URL. ## Docs ### Overview - [Configure Docs](https://docs.configure.dev/index.md): Configure gives your agent a user-approved Memory Profile: identity, preferences, connected app context, imported memories, and memories written by other agents. Users connect with Configure OAuth or - [Troubleshooting](https://docs.configure.dev/troubleshooting.md): Headings are the literal string Configure emits: the SDK error message, the OAuth error_description, the JSON-RPC code, or the line the CLI writes to stderr. Search this page for what you see in your ### Getting Started - [Set up with your coding agent](https://docs.configure.dev/getting-started/agent-setup.md): Hand the Configure integration to the coding agent you already use (Claude Code, Codex, Cursor, Devin). The setup skill at [https://configure.dev/skill.md](https://configure.dev/skill.md) walks an age - [Get your credentials](https://docs.configure.dev/getting-started/credentials.md): Configure hands out five credentials. Every integration path uses some of them, and none of them requires installing anything to obtain. - [Installation](https://docs.configure.dev/getting-started/index.md): Connecting an MCP client for yourself (Claude, Cursor, etc.)? Skip the SDK: run npx configure setup and choose **For myself**, or paste https://mcp.configure.dev into your client; OAuth runs automatic - [Choose your integration](https://docs.configure.dev/getting-started/integration-paths.md): Four shapes cover every way a product adopts Configure. Pick the row that matches what you are building, then follow that one path. Each path is complete on its own: none of them is a prerequisite for - [Quick Start](https://docs.configure.dev/getting-started/quick-start.md): This path integrates Configure into an existing web agent. What you are building is [the loop](https://docs.configure.dev/getting-started/the-loop.md): a user signs in with Configure once, and from th - [Test mode (sandbox)](https://docs.configure.dev/getting-started/test-mode.md): Test mode is the Configure sandbox: a self-serve Configure account with a user already in it. One unauthenticated POST gives you a test key pair and a synthetic user whose profile is already full, so - [The loop](https://docs.configure.dev/getting-started/the-loop.md): Every Configure integration is the same story. A user signs in with Configure once. Your product now holds their portable context. From then on, your agent uses it **consistently**: it reads the profi ### Guides - [Adding Configure to your agent](https://docs.configure.dev/guides/adding-configure.md): How to add Configure to an AI agent or agent product: which tools to give the model, how to route and answer their calls, and the habits that make an agent use memory well. Every Configure call your a - [Moved: Files](https://docs.configure.dev/guides/agent-storage.md): This page merged into the [Files Reference](https://docs.configure.dev/reference/files.md), which covers every configure.files.* operation. For the default model tool set and forget semantics, read th - [Configure with the Vercel AI SDK](https://docs.configure.dev/guides/ai-sdk.md): This page takes a working AI SDK agent to a personalized turn. The user's own profile reaches the model, and what the turn learned is written back. - [Moved: Adding Configure to your agent](https://docs.configure.dev/guides/building-agents.md): This page moved. Read it at [Adding Configure to your agent](https://docs.configure.dev/guides/adding-configure.md). - [Coding agents](https://docs.configure.dev/guides/coding-agents.md): A memory layer for your coding agent, like CLAUDE.md. The difference is who it follows. CLAUDE.md belongs to the repo. Configure belongs to the user: their dev preferences, their cross-repo lessons, w - [Connectors](https://docs.configure.dev/guides/connected-tools.md): Connectors are external user accounts or data sources, such as Gmail, Outlook, Calendar, Drive, Notion, and Google Sheets, connected securely through Configure. Connector calls run through the Configu - [Connector repair](https://docs.configure.dev/guides/connector-repair.md): Connector tokens die. A user revokes access in their Google account, a grant expires, a provider drops a scope. When that happens, Configure failures describe their own fix: the response names the app - [Error Handling](https://docs.configure.dev/guides/error-handling.md): The TypeScript SDK throws ConfigureError for API, validation, permission, and network failures. - [Direct HTTP Guide](https://docs.configure.dev/guides/http-api.md): Most integrations should use MCP (https://mcp.configure.dev), the default path. Use the TypeScript SDK when you own the app's model loop, and direct HTTP only when neither fits. - [Message Agent SSO](https://docs.configure.dev/guides/message-agent-sso.md): Use sign-in.me when your agent lives in a message thread instead of a browser session. The agent sends one hosted link. Configure handles phone verification, connector setup, and consent securely on i - [Configure OAuth](https://docs.configure.dev/guides/oauth-sso.md): Use Configure OAuth when your app already has sign-in or account linking. Configure authenticates the user on accounts.configure.dev, redirects to your callback with an authorization code, and lets yo - [Profile seeding and import](https://docs.configure.dev/guides/profile-seeding.md): There are four ways a profile starts with useful context. - [Profiles and memory](https://docs.configure.dev/guides/profiles-and-memory.md): configure.profile(...) creates a per-user server object for reading and writing memory. - [Projects](https://docs.configure.dev/guides/projects.md): Stop copy and paste. When you switch agents mid-project today, you paste transcripts, restate decisions, and re-explain where you left off. A Configure project fixes that: any agent leaves the state o - [Python](https://docs.configure.dev/guides/python.md): The Python SDK mirrors the TypeScript surface: one client, a profile module for memory, a tools module for connectors, and the same errors. Every example on this page runs as written against a test-mo - [Server-Side Users](https://docs.configure.dev/guides/server-side-users.md): If your product already has a stable app-local user ID, Configure can create a developer-scoped profile without a user-present link flow. - [Get anything the user connected, securely](https://docs.configure.dev/guides/sso-context.md): After [SSO](https://docs.configure.dev/guides/sso-drop-in.md), you know what the user has connected (connections) and which assistants' memories they've imported (imports). This page shows the determi - [Configure OAuth](https://docs.configure.dev/guides/sso-drop-in.md): A sign in button, like Google's. The difference is what comes back. Google gives you an email. Configure gives you the email plus who the user is and what they have connected, so your product starts o - [Handling Tool Calls](https://docs.configure.dev/guides/tool-calling.md): If your runtime already speaks MCP, you do not need this loop. Remote clients paste https://mcp.configure.dev, and code connects to https://mcp.configure.dev/mcp; the configure_* tools appear natively - [Inline UI Components](https://docs.configure.dev/guides/ui-components.md): Use Configure hosted UI for consent, profile seeding, connector setup, and action approval: users grant and manage access securely on Configure-hosted surfaces. Use the server-side SDK for profile rea ### MCP - [Configure MCP Adapter](https://docs.configure.dev/mcp/adapter.md): Configure MCP lets MCP-compatible agents use Configure profile context, connected tools, and attributed memories without a direct SDK integration. - [Headless and scheduled agents](https://docs.configure.dev/mcp/headless.md): Use this when your agent has **no MCP OAuth client and no credential store of its own** (a cron job, a queue worker, a background agent in someone else's platform) and it has to still be authorized th - [Configure MCP](https://docs.configure.dev/mcp/index.md): Use Configure through MCP clients such as Codex, Claude, and Cursor. ### SDK & API Reference - [HTTP API Reference](https://docs.configure.dev/reference/api.md): Use the TypeScript SDK for most integrations. Use direct HTTP when your environment cannot use the SDK or you need to make the requests yourself. - [Auth Flows](https://docs.configure.dev/reference/auth.md): Server-side snippets on this page use a constructed client: - [Errors Reference](https://docs.configure.dev/reference/errors.md): SDK methods reject with ConfigureError for API, validation, permission, tool, timeout, and network failures. - [Files](https://docs.configure.dev/reference/files.md): Raw path-addressed file operations are advanced SDK methods exposed through configure.files.*. - [Configure Reference](https://docs.configure.dev/reference/index.md): Configure is the public TypeScript SDK client. - [Profile Reference](https://docs.configure.dev/reference/profile.md): Create a profile object after a user is linked or identified. configure is a constructed client; see [Configure Reference](https://docs.configure.dev/reference/index.md) for construction and identity - [Tool Definitions](https://docs.configure.dev/reference/tool-definitions.md): Configure exposes stable configure_* tool names to models. - [Connectors Reference](https://docs.configure.dev/reference/tools.md): Connectors are external accounts and data sources that a user links to Configure. Gmail, Outlook, Calendar, Drive, Notion, and Google Sheets are connectors. Model-callable functions are tools. profile - [Types Reference](https://docs.configure.dev/reference/types.md): The TypeScript SDK exports these public types from configure. ### Components - [Actions Component](https://docs.configure.dev/components/actions.md): Action components help your app collect user approval before running tools that change external state. - [Auth Components](https://docs.configure.dev/components/auth.md): **Production Integration** For production browser linking, use Configure.link() or Configure.personalizationButton() from https://configure.dev/js/configure.js. Raw components are available from impor - [Connection Components](https://docs.configure.dev/components/connections.md): **Production Integration** For production browser integration, use Configure.connections() and Configure.singleConnector() from https://configure.dev/js/configure.js. Raw components are available from - [Components](https://docs.configure.dev/components/index.md): Configure hosted UI covers user consent, account linking, connector status, profile editing, and action approval. These components are UI elements, not model tools. - [Memory & Export Components](https://docs.configure.dev/components/memory.md): **Production Integration** For production browser integration, use hosted Configure UI from https://configure.dev/js/configure.js. Raw components are available from import "configure/components" for l - [Component Showcase](https://docs.configure.dev/components/showcase.md): The live state harness for Configure web components is the Component Workbench at design/workbench.html. It renders production component states, including loading, connecting, connected, retry, import ### Examples - [Atlas Reference Agent](https://docs.configure.dev/examples/atlas.md): Atlas is Configure's native MCP test bed. It uses the same OAuth access token for the profile API and hosted MCP, then lets Anthropic run the MCP tool loop. - [Runnable quickstart agent](https://docs.configure.dev/examples/quickstart.md): A complete Configure agent you can run in about two minutes: hosted sign-in, a profile read at the start of every conversation, configure_* tool calls during the turn, a background commit after it, an For the complete text of every page in one file, read https://docs.configure.dev/llms-full.txt