workbench

One endpoint. Every tool your agent needs.

A self-hosted MCP server that holds a separate OAuth connection per user per provider and exposes 195 tools across 16 integrations through 9 meta-tools. Your tokens never leave your box.

docker run -p 3001:3001 -v workbench-data:/app/data ghcr.io/amarthaid/workbench Read the docs

16 integrations · 195 tools · 9 meta-tools

For the agent

Three meta-tools, any integration.

For you

Connect once. Revoke any time.

The Apps page listing every integration with its tool count
An agent asking for access to Google Sheets, with Approve and Cancel
Google Sheets connected — the success card with a link back to the dashboard

Constant context

The agent sees nine tools whether one integration is connected or all 16. Everything else is reached by name.

How meta-tools work →

Per-user OAuth

One token per person per provider, injected server-side. The agent never holds a credential.

The request path →

Yours to run

SQLite or PostgreSQL, tokens encrypted at rest with AES-256-GCM, one container.

Deploy →

Open source

16 integrations today. Yours next.

custom-plugins/acme-wiki/
├── manifest.ts
└── tools/index.ts

// manifest.ts
export default {
  name: "acme-wiki",
  displayName: "Acme Wiki",
  description: "Internal wiki — pages and search.",
  logo: "logo.svg",
  auth: { type: "apikey", header: "X-Api-Key" },
  proxy: { baseUrl: "https://wiki.acme.example" },
};

No fork.

Drop a folder into custom-plugins/; the server loads it on restart and the portal lists it beside the built-ins.

Keep it or share it.

Private to your instance by default. Open a pull request when others would use it and it ships in the next release.

Same rules as ours.

A manifest, a tools file, one of four auth modes — the built-in integrations are written exactly the same way.

Build a plugin →

For teams

Set it up once. The whole org connects.

One setup per provider.

Client ID and secret live on the instance. Nobody hands out API keys or pastes secrets into an agent config.

Everyone brings their own account.

Each person connects with one click; tokens are per-user, encrypted at rest, and the agent never sees them.

One audit trail.

Every tool call is logged with who, which agent, which integration, and the outcome — the Activity page is the record.

Easy to govern.

Revoke a person's connection or an agent's access in one place; it stops everywhere at once.

Deploy for your team →

Your agent already knows what to do. Give it the tools.

docker run -p 3001:3001 -v workbench-data:/app/data ghcr.io/amarthaid/workbench

GitHub · Documentation · MIT