Configure Docs
Configure personalizes your agent with user-approved context from other agents, app contexts, preferences, memories, and more. Users approve access through Configure Link, then your server reads and writes approved context over API, MCP, or tool calls.
Configure is live for select teams. You can install the SDK and read the integration docs today. Production credentials are issued after Launch Preview approval.
Most teams should start by integrating Configure into an existing agent. Build a new Configure agent only when you want the packaged chat shell.
Choose A Path
Integrate An Existing Agent
Use this when your product already has an agent, chat surface, or model loop.
- Run setup and choose For my users:
bash
npx configure setup- After approval, install the SDK:
bash
npm install configure- Add the hosted browser script and a Personalization entry or Link button.
- Listen for
configure:linkedand send the returnedtokento your backend. - On the backend, create
configure.profile({ token }). - Read the profile, pass
read.profile.format()into the model, exposeprofile.tools(), execute Configure tool calls withprofile.executeTool(), pass tool results back to the model for the final answer, and commit after the turn.
Build A New Agent
Use this only when you want a fresh Configure-backed chat shell.
bash
npx configure setup
npm install configure
cp -R node_modules/configure/template ./my-agentThen customize .env, public/brand.css, public/brand.js, and server.mjs.
Use MCP As An Adapter
Use this when the host agent already speaks MCP, or when a client asks for an MCP server URL instead of an SDK integration.
bash
npx configure setupChoose For myself for personal MCP. Choose For my users for developer MCP or SDK setup. Developer MCP requires Launch Preview approval. Personal MCP signs into your own Configure profile and does not require a developer API key. For hosted MCP clients, use https://mcp.configure.dev with a personal MCP bearer token. See Configure MCP for setup modes and Configure as an MCP adapter for developer-owned MCP details.
Read, Run, Commit
ts
import { Configure } from "configure";
const configure = new Configure({
apiKey: process.env.CONFIGURE_API_KEY,
agent: process.env.CONFIGURE_AGENT,
});
const profile = configure.profile({ token });
const read = await profile.read({
sections: ["identity", "preferences", "summary"],
});
const response = await model.run({
messages: [
{ role: "system", content: read.profile.format({ guidelines: true }) },
...messages,
],
tools: profile.tools(),
executeTool: profile.executeTool,
});
await profile.commit({
messages,
response,
memories: response.memoryCandidates,
});Default model tools:
configure_profile_readconfigure_profile_searchconfigure_profile_remember
Connector and action tools are opt-in per turn:
ts
const tools = profile.tools({
connectors: ["gmail", "calendar"],
actions: ["email.send"],
});Gmail, Calendar, Drive, and Notion are connectors. Model-callable functions are tools.
Key Boundaries
- Secret keys (
sk_) stay server-side. - Publishable keys (
pk_) are for browser Link and component surfaces. - The
configure:linkedtoken goes to your backend. Do not place it in the model prompt. - The model receives formatted profile context and Configure tool definitions.
- API keys resolve the acting agent for writes. Do not let request bodies, display names, or user input choose storage paths.