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.
MCP + REST · one key
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
claude mcp add --transport http vellarin https://hub.vellarin.ai/api/hub/mcp --header "Authorization: Bearer <key>"{
"mcpServers": {
"vellarin": {
"url": "https://hub.vellarin.ai/api/hub/mcp",
"headers": {
"Authorization": "Bearer ${env:VELLARIN_HUB_KEY}"
}
}
}
}[mcp_servers.vellarin]
url = "https://hub.vellarin.ai/api/hub/mcp"
bearer_token_env_var = "VELLARIN_HUB_KEY"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": {}}'Your team signs in to each app once. Agents never see a token: they call the endpoint, and Hub talks to the app.
and 1,726 more in the catalog · Browse apps →
What you get
Auth, approvals, limits and a record of everything, solved once on our side of the wire instead of in every agent you write.
Streamable HTTP with plain JSON responses. initialize, tools/list, tools/call. Add it to Claude Code, Cursor or Codex with one line.
List tools, call one, check an approval, read usage. Four routes for anything that does not speak MCP.
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.
Reads run at once. Anything that sends, creates, changes, deletes or pays waits for the owner, then runs exactly once.
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.
At the cap the answer is 429 with the reset time. No wallet, no overage, no surprise at the end of the month.
App, action, read or write, outcome and time for each call. No arguments and no results are stored.
GET /v1/usage answers how much of the month and of each key's caps is used, so your agent can pace itself.
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.
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.
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.
An API reference written to be pasted into a prompt, and an llms.txt with the endpoints, limits and client setup.
Approvals
The same rule for every client, because it lives on our side of the wire and not in the agent's settings.
Send an email, post a message, create an invoice. The call answers at once: "waiting for approval", with an approval id. Nothing was sent.
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.
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
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
Hub is its own plan on your workspace. It does not change your Vellarin Agents plan.
USD 0
USD 19 a month
or USD 180 a year (USD 15 a month)
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
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.
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.
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.
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.
Not in this version. A workspace connects its own accounts for its own agents. Multi-tenant use is not offered yet.
Yes. The same tools, approvals and caps are available over a small REST API with the same key.
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.
No. Memory holds plain text that the workspace owner can read. Keep API keys and passwords in your own secret manager.
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>"