Write your agent with the Cursor SDK and deploy it with Encore. It runs as a service in your own cloud account, with its database, queues, schedules and secrets provisioned for it. Start from a working on-call agent in one click.
Write the agent with the Cursor SDK. Encore runs it and everything it needs in your AWS or GCP account.
The agent loop runs inside your service with Agent.create. Its tools are your own typed APIs, and its conversations are stored in your database.
Runs the agent as a service, wires up its Postgres, Pub/Sub, cron and secrets, and deploys it on every push. Each tool call shows up in tracing.
The agent, its data and its secrets live in your own account. Only model calls leave it, to Cursor.
The agent loop runs inside your service with Agent.create. Its tools are your own typed APIs, and its conversations are stored in your database.
Runs the agent as a service, wires up its Postgres, Pub/Sub, cron and secrets, and deploys it on every push. Each tool call shows up in tracing.
The agent, its data and its secrets live in your own account. Only model calls leave it, to Cursor.
Build the agent like any other backend service, deploy it to your own account, and let your systems put it to work.
The agent loop runs inside an Encore service. Its tools are typed calls to your other services, so it can do what your APIs do and nothing else. Run it locally with encore run, with a real database and Pub/Sub, before you deploy anything.
// Encore provisions these in your cloud.const db = new SQLDatabase("agent", { migrations: "./migrations" });const cursorApiKey = secret("CursorApiKey");const agent = await Agent.create({apiKey: cursorApiKey(),model: { id: "composer-2.5" },// Only your tools: no shell, no filesystem.tools: ["mcp"],local: {cwd: WORKSPACE,// Conversations stored in that database.store: postgresAgentStore,customTools: {recent_deploys: {description: "List recent deploys for a service.",execute: ({ service }) =>incidents.deploys({ service }),},},},});
Connect your AWS or GCP account and Encore provisions everything the agent declares in code, from its databases and Pub/Sub topics to its secrets. Nothing to configure by hand, and every git push redeploys it.
An agent doesn't have to wait for a prompt. Subscribe it to a Pub/Sub topic and it runs when an event lands, or give it a cron job and it runs on a schedule. Every run is stored in your database and streamed to your UI, and each tool call shows up in tracing.