MCP + REST · one key

The tool layer for AI agents.

Point Claude Code, Cursor, Codex or your own agent at one address with one key. It gets the apps your team connected. Anything that writes waits for your approval, caps are hard, and every call is on the record.

Free to start. No card.

Works withClaude CodeCursorCodexAny MCP clientREST

Terminal
claude mcp add --transport http vellarin https://hub.vellarin.ai/api/hub/mcp --header "Authorization: Bearer <key>"
~/.cursor/mcp.json (or .cursor/mcp.json in a project)
{
  "mcpServers": {
    "vellarin": {
      "url": "https://hub.vellarin.ai/api/hub/mcp",
      "headers": {
        "Authorization": "Bearer ${env:VELLARIN_HUB_KEY}"
      }
    }
  }
}
~/.codex/config.toml
[mcp_servers.vellarin]
url = "https://hub.vellarin.ai/api/hub/mcp"
bearer_token_env_var = "VELLARIN_HUB_KEY"
REST
curl https://hub.vellarin.ai/api/hub/v1/tools \
  -H "Authorization: Bearer <key>"

curl -X POST https://hub.vellarin.ai/api/hub/v1/tools/<tool_name>/call \
  -H "Authorization: Bearer <key>" \
  -H "Content-Type: application/json" \
  -d '{"arguments": {}}'
1,738
apps in the catalog
1 URL
one endpoint, one key per agent
60/min
calls per key, hard caps on top
0
app credentials inside your agent

Every app your agent needs, behind one endpoint

Your team signs in to each app once. Agents never see a token: they call the endpoint, and Hub talks to the app.

  • Gmail
  • Google Calendar
  • Google Sheets
  • Google Drive
  • Outlook / Microsoft 365
  • WhatsApp Business
  • Slack
  • QuickBooks
  • Stripe
  • HubSpot
  • Shopify
  • Notion

and 1,726 more in the catalog · Browse apps →

What you get

Built for people who ship agents

Auth, approvals, limits and a record of everything, solved once on our side of the wire instead of in every agent you write.

One MCP endpoint

Streamable HTTP with plain JSON responses. initialize, tools/list, tools/call. Add it to Claude Code, Cursor or Codex with one line.

REST with the same key

List tools, call one, check an approval, read usage. Four routes for anything that does not speak MCP.

Managed app sign-in

Connect an app with its normal sign-in page. Tokens stay server-side and are refreshed for you. Nothing to paste into a config file.

Human approval on writes

Reads run at once. Anything that sends, creates, changes, deletes or pays waits for the owner, then runs exactly once.

A key per agent, scoped

Name each key, limit it to some apps, give it its own daily and monthly cap. Revoke it and it stops on the next request.

Hard caps, never a bill

At the cap the answer is 429 with the reset time. No wallet, no overage, no surprise at the end of the month.

A record of every call

App, action, read or write, outcome and time for each call. No arguments and no results are stored.

Usage you can query

GET /v1/usage answers how much of the month and of each key's caps is used, so your agent can pace itself.

Shared memory

A key-value store your agents read and write through the same endpoint, so what one run learned is there for the next. Optional expiry per key.

A run log with tokens and cost

Your agent logs each step, model call and error. Hub adds up tokens, cost, time and failures per run, and you see them in the console.

Eval results in one place

Record a score or pass/fail per case from your agent or your CI. Hub answers the pass rate per suite and for the last run.

Docs your agent can read

An API reference written to be pasted into a prompt, and an llms.txt with the endpoints, limits and client setup.

Approvals

How approvals work

The same rule for every client, because it lives on our side of the wire and not in the agent's settings.

  1. 1

    Your agent calls a write action

    Send an email, post a message, create an invoice. The call answers at once: "waiting for approval", with an approval id. Nothing was sent.

  2. 2

    The owner decides

    The request shows on the Developers page and the team home, labelled "From your own agent" with the key's name, and the owner gets an email. Approve or reject in one click.

  3. 3

    The agent checks and runs it

    The agent polls vellarin_approval_status (or GET /v1/approvals/{id}). Once approved it calls the same action with the same arguments, and it runs once. A second identical call asks again.

Quickstart

Two minutes, and nothing to install.

  1. Create your account and connect at least one app.
  2. Open Developers and create an agent key. You see it once: copy it.
  3. Add the server to your agent with one of the snippets below.

Claude Code · Terminal

claude mcp add --transport http vellarin https://hub.vellarin.ai/api/hub/mcp --header "Authorization: Bearer <key>"

Syntax checked against code.claude.com/docs/en/mcp

Cursor · ~/.cursor/mcp.json (or .cursor/mcp.json in a project)

{
  "mcpServers": {
    "vellarin": {
      "url": "https://hub.vellarin.ai/api/hub/mcp",
      "headers": {
        "Authorization": "Bearer ${env:VELLARIN_HUB_KEY}"
      }
    }
  }
}
export VELLARIN_HUB_KEY="<key>"

Syntax checked against cursor.com/docs/context/mcp

Codex · ~/.codex/config.toml

[mcp_servers.vellarin]
url = "https://hub.vellarin.ai/api/hub/mcp"
bearer_token_env_var = "VELLARIN_HUB_KEY"
export VELLARIN_HUB_KEY="<key>"

Syntax checked against developers.openai.com/codex/mcp

curl · REST

curl https://hub.vellarin.ai/api/hub/v1/tools \
  -H "Authorization: Bearer <key>"

curl -X POST https://hub.vellarin.ai/api/hub/v1/tools/<tool_name>/call \
  -H "Authorization: Bearer <key>" \
  -H "Content-Type: application/json" \
  -d '{"arguments": {}}'

Cursor and Codex read the key from an environment variable. Set it once: export VELLARIN_HUB_KEY="<key>"

Pricing

Limits per plan

Hub is its own plan on your workspace. It does not change your Vellarin Agents plan.

Hub Free

USD 0

  • 1 agent key
  • 500 calls a month
  • 60 calls a minute per key
  • Approvals for every write action
  • Full record of every call
Start free

Hub Team

USD 19 a month

or USD 180 a year (USD 15 a month)

  • 10 agent keys
  • 5,000 calls a month
  • 60 calls a minute per key
  • Approvals for every write action
  • Full record of every call
Upgrade to Team

14 days free · no card needed to start · cancel anytime

Over the cap the answer is 429 "upgrade or wait". There is no wallet, no top-up and no overage charge.

Questions

Questions

Which apps can my agent use?

The ones your workspace connected in Vellarin Agents, and only those. A key can be narrowed to some of them. We do not resell third-party paid APIs.

What counts as a call?

An action that reached the app: a read that worked, or an approved write that ran. Listing tools, checking an approval, a call waiting for approval and a read that failed are free.

What happens at the cap?

The call is refused before it runs, with HTTP 429 and the time the count starts again. You upgrade or wait. Nothing is ever billed past the cap.

Where do my app credentials live?

With the apps provider, on the server side. Your agent only holds the Vellarin key, and you can revoke that key at any moment: it stops on the next request.

Can I build a product for my own customers on it?

Not in this version. A workspace connects its own accounts for its own agents. Multi-tenant use is not offered yet.

Does it work without MCP?

Yes. The same tools, approvals and caps are available over a small REST API with the same key.

Do memory, the run log and eval results cost calls?

No. They never reach a third party, so they need no approval and are not counted as app calls. Each has its own allowance per plan.

Can I store secrets in the shared memory?

No. Memory holds plain text that the workspace owner can read. Keep API keys and passwords in your own secret manager.

Give your agent the keys, and keep the rules.

Create a key, paste one line, and your agent works with your team's apps under your approval.

claude mcp add --transport http vellarin https://hub.vellarin.ai/api/hub/mcp --header "Authorization: Bearer <key>"