Skip to content

Secrets

The Secrets section of Settings holds tokens that your tools need, each stored under a name. You write the value once, and everywhere it is needed you write the name instead.

This exists because of what the alternative looks like. An HTTP tool needs an Authorization header; an MCP server needs a GITHUB_TOKEN in its environment. Without a place to put a secret, the only way to send one was to type it into the tool’s own row — where it sits in the clear for anyone in the workspace who can open that skill.

A secret’s name is upper case, digits and underscores, starting with a letter: STRIPE_TOKEN, GITHUB_TOKEN, INTERNAL_API_KEY. That shape is not decoration — the name is written inside a template, next to {'{{body.…}}'} and {'{{campo}}'}, and a convention you cannot confuse with a data field is what makes a header readable at a glance.

  1. Open Settings and go to Secrets.

  2. Give it a name, paste the value, and (optionally) a line saying what it is for. A workspace with fifteen secrets and no notes is a workspace where nobody dares delete any of them.

  3. Reference it wherever it is needed, as {'{{secret.STRIPE_TOKEN}}'}.

PlaceExample
An HTTP tool’s headerAuthorization: Bearer {'{{secret.STRIPE_TOKEN}}'}
An HTTP tool’s URLhttps://api.example.com/v1/{'{{secret.TENANT}}'}/orders
An HTTP tool’s body template{'{"signature": "{{secret.WEBHOOK_SIGNING_KEY}}"}'}
An MCP server’s environmentGITHUB_TOKEN = {'{{secret.GITHUB_TOKEN}}'}

Read a value back. There is no screen and no API route that returns it. What the list shows is the name and the last four characters, which is enough to tell two secrets apart and not enough to use one. If you lose a value, you replace it.

Send one somewhere of your choosing, if you are not an admin. Naming a secret is how it gets used, and what uses it is a thing you write: an HTTP tool inside a skill, or an MCP server’s environment. Whoever writes one of those picks where the value goes. So in a team workspace, writing a skill or registering an MCP server takes an admin — the same bar as writing the secret itself. Reading them does not: what is stored is the name.

Secrets follow the active workspace, and resolve exactly the way provider API keys do: a team run uses the team’s secret, falling back to the personal secret of whoever started the run. Team secrets can only be written by team admins.