Agent infrastructure for tool execution.
Tools for the apps your users rely on, user-scoped authentication, and a governed path from the model's decision to the real action.
Chat
What your agent did
slack.get_channel_history6 channels readDonegmail.send_emailTo: youDonenotion.create_pageSaved to Daily notesDone
One session. The right tools at runtime.
Create a session for your user. Your agent discovers the right tool, asks the user to connect an app when needed, and executes inside the same governed runtime.
- Sessions are scoped to one user and a set of toolkits
- Dynamic mode exposes four meta-tools; static mode exposes a fixed list
- Works over REST, the SDKs or a single MCP URL
const session = await setu.sessions.create({
userId: "user_1",
toolkits: ["github", "slack", "gmail"],
});
// Hand session.mcpUrl to any MCP client, or call tools directly.
await setu.execute({
userId: "user_1",
action: "slack.post_message",
input: { channel: "#eng", text: "Deploy finished" },
});Authenticate the right user.
Setu handles OAuth, API keys, token refresh and account selection. Your users connect under your brand, and your model never sees a credential.
- Per-user connections with scope visibility
- Multiple accounts per toolkit, chosen explicitly
- Automatic refresh, with a reconnect link when a token lapses
Connect GitHub to your agent
Acme Assistant would like to act on your behalf.
Execute with a complete record.
Setu routes the call, returns the result and records what ran for which user. Teams can require approval before an action reaches an app.
- Typed errors a model can read and recover from
- Rate limits and quotas per key and per project
- Metadata-only logs, so payloads are never stored by default
| Action | Status | Latency |
|---|---|---|
github.create_issue | Succeeded | 412 ms |
slack.post_message | Succeeded | 188 ms |
linear.update_issue | Succeeded | 301 ms |
notion.create_page | Needs approval | waiting |
Browse the tools your agent can call.
Start with the apps your users already depend on. Add more without rebuilding the layer between your agent and each API.
Your first tool is the easy part.
The maintenance starts after the demo works. Setu is the repeated infrastructure underneath it, so your team ships the agent.
Build it yourself
- Register and review an OAuth app for every provider
- Store and refresh every user's credentials
- Translate every API into agent-ready schemas
- Track upstream changes and retry rules
- Build scoping, policy and audit logs
Build with Setu
- One session for your user
- Managed or custom-app authentication
- Agent-ready tools across the catalog
- Versioned actions and safe retries
- Governance and a log for every call
Ship the agent, not the plumbing.
Connect an app, hand your agent the tools, and watch it finish the job.