Skip to content

A toolbox is a set of tools that an AI client can use, bound to the connections that run them. A template is a reusable tool list with no connections. You design a template once, share it, and each person turns it into their own toolbox.

A small, well-named toolbox gives better results than a large one. An AI client choosing between six clearly named tools decides better than one sorting through two hundred.

Where to find it: Toolboxes in the sidebar. The page has three tabs: Toolboxes, Templates and Synthetic tools.

The three kinds

Kind Where you find it What it is
Template Toolboxes → Templates A reusable definition: tools, locked-in values and default values, with no connections. A teammate stamps (copies) it to make their own toolbox.
Toolbox Toolboxes → Toolboxes The set of tools an AI client reaches. It is bound to connections. You make one from a template, from scratch, or Elaichi makes it for you (system toolboxes).
Synthetic tool Toolboxes → Synthetic tools A multi-step tool that you add to a template or a toolbox like any other tool.

Elaichi also keeps two kinds of system toolbox for you:

System toolbox What it holds
Global toolbox ("All tools") Every tool you can currently reach.
Connection toolbox ("{connection} tools") Every tool for one Active connection.

System toolboxes are read-only. You can use their tools, but you cannot edit their entries or delete them.

AI clients reach toolboxes, not templates

An AI client reaches toolboxes over your organization's single MCP endpoint. A template is only a recipe. A toolbox, stamped from a template or built by hand, is what offers tools to the client. Elaichi creates nothing per toolbox. The OAuth grant, not the address, decides which organization the client reaches and whose access it runs as.

Template → stamp → toolbox → MCP
flowchart TD
  Template["Template<br/>tools, locked-in and default values<br/>no connections"] -->|"stamp (use)"| Toolbox["Toolbox<br/>your copy, connections bound"]
  Conn["Active connection"] -->|"automatic"| Dynamic["Connection toolbox<br/>read-only"]
  Toolbox --> MCP["Organization's MCP endpoint"]
  Dynamic --> MCP
  MCP --> Client["AI client"]

In words: a template becomes a toolbox when someone stamps it. Each active connection also gets a read-only connection toolbox automatically. Both kinds of toolbox are served to AI clients through the one MCP endpoint.

Sharing levels

Templates and toolboxes use the same three sharing levels. The Use level means something different on each. You share from the Manage access button on the template or toolbox.

Level On a template On a toolbox
View See the template and its tools. See the toolbox's details and tool list.
Use (default) Stamp a toolbox from the template. Run the toolbox's tools over its bound connections, through the MCP endpoint.
Edit Change the template's tools and settings. Change the toolbox's entries and settings.

You can share with a member, a team, or everyone at your organization. A person with only View cannot stamp a template or run a toolbox.

Sharing a template never shares credentials, because a template has none.

Sharing a toolbox at Use delegates running it. The person you share with does not need their own access to the connections behind it. They run exactly this toolbox's tools, with its locked-in values, over the connections an editor pinned in. The editor who pinned a connection is that entry's delegator. If the delegator later loses access to the connection, that entry stops working for everyone who uses the toolbox. The share screen lists the connections a person will run through before you confirm, so check any private connections or connections owned by someone else.

Customize a tool

Open Edit tool on a template entry or on a toolbox entry to change what AI clients see and how calls run.

Setting Effect
Name and Description What the AI client sees. Leave them empty to use the catalog's wording.
Enabled A disabled entry stays on the screen but is not offered over MCP.
Locked-in values Fixed values that Elaichi hides from the tool's advertised schema and fills in on every call. The AI client cannot see or change them. The API calls these frozen_params.
Default values Used when the client leaves a parameter out. The client can still override them.
Input schema override Replaces the advertised JSON Schema. You can copy or reset the catalog's schema.

At call time, a locked-in value beats the client's argument, and the client's argument beats a default value.

A template entry never names a connection. The connection is filled in when someone stamps the template (see How the pieces fit).

Several accounts, one tool

If you connect two accounts of the same product, such as two Notion workspaces or two Salesforce organizations, Elaichi still offers one tool. The account is an argument, not part of the tool name.

Situation What the AI client sees
One account backs the tool The tool keeps its plain name. Its description starts with the account name, such as [Work Notion].
Several accounts back the tool The tool gains a required connection argument. The choices are the account names. There is no default.
A call skips connection, or names an account that does not back the tool Elaichi refuses the call. The error lists the real choices and tells the client to ask you when your request did not say.

Elaichi never picks a default account and never falls back to the last account you connected.

Accounts with the same name

When two accounts of one product share a name, Elaichi adds a short piece of each connection id to both names, such as Notion (a1b2c3) and Notion (d4e5f6). Names that differ only by capital letters or spacing (Work Notion and work notion) count as the same name.

The added piece is as short as it can be while still telling the accounts apart. Elaichi never numbers accounts 1 and 2, because a number would move to a different account when you add or remove an unrelated one.

Elaichi works out the labels for each tool separately. If two accounts back get_page but only one backs create_page, then get_page offers Notion (a1b2c3) and Notion (d4e5f6), while create_page offers a plain Notion. Both are correct at the same time. An AI client should copy the value from the tool it is calling.

Example: two Notion workspaces

You connect two Notion workspaces, and both are named "Notion". The AI client sees one get_page tool with a required connection argument set to "Notion (a1b2c3)" or "Notion (d4e5f6)".

If the client looks up a page without naming a workspace, the call returns:

connection is required. This tool reaches 2 connected accounts — pass exactly one of: "Notion (a1b2c3)", "Notion (d4e5f6)". If the user's request does not say which account, ask them; do not pick one for them.

A well-behaved client asks you which workspace and calls again. If you later delete one workspace, get_page keeps its name and drops the connection argument. A client that still names the deleted workspace is refused. It is never quietly pointed at the remaining one.

When tools stay separate

Pinning an entry to a specific connection (see Connection binding) does not keep tools apart. Two entries for the same tool, pinned to two different accounts, still merge into one tool with a connection argument.

Tools stay separate in these cases:

  • The entries differ in the call itself. Entries for the same tool that set different locked-in values, default values, overrides or schemas stay separate tools. Merging them would let one entry's fixed values apply to another account's call.
  • The product has its own connection parameter. A few products use that name in their own API. Their tools stay one per account, so the product's parameter keeps working.

Locked values in a tool description

A tool with locked-in values tells AI clients about the lock in its description. The note (frozen: folder_id=HR) sits between the account label and the tool's own text. If a value is too long, too complex or unsafe to print, the note shortens it to folder_id=…, which still shows that the lock exists.

The locked parameter is not in the tool's schema. If a client sends a value for it anyway, Elaichi overrides the value and does not return an error.

When you add the same tool several times with different locked-in values, Elaichi puts the value in each copy's name, such as names that end _hr and _legal. It does this only when every value is short plain text that does not look like an id. For long values, ids, lists and objects, Elaichi adds a short generated code instead.

Warning

The name test is about the shape of a value, not about secrecy. A short readable value such as an email address goes into the tool name. Client apps cache tool names and write them to logs. Do not lock in a private value and expect the name to hide it.

A well-behaved client picks the variant whose note matches your words. It asks you when none does. It tells you, instead of running the tool, when you ask for a value the tool is locked away from. It describes results as scoped, for example "contacts from the HR folder", and not as everything.

What restrictions cannot do

Restrictions apply to a connector and a tool, not to an account. You cannot allow a tool on one Notion workspace and block it on another. A restriction applies to every account behind that tool.

Needs connection

An entry with no connection pinned shows the status Needs connection. This happens when someone skips the connection while stamping a template, or adds a tool directly to a toolbox. An entry can have one of four statuses: Ready, Needs connection, Tool unavailable and Disabled.

A Needs connection entry offers nothing over MCP. It stays visible in the console so you can finish setting it up.

To fix it, pick a connection for the entry. If you have not connected the product yet, connect it first. The tool then appears to AI clients automatically. You do not restart anything.

An entry that used to work can fall back to Needs connection. This happens when the person who pinned the connection (its delegator) loses access to it. The entry stops working for everyone who runs the toolbox until someone with Edit access pins a connection again.

How the pieces fit

  1. Connect accounts. Elaichi creates a connection toolbox for each active connection, listed under Toolboxes.
  2. Optionally, build a template, tune its entries, and share it at View, Use or Edit.
  3. People with Use access stamp their own toolbox from the template. They name it and choose a connection for each entry.
  4. Point an AI client at your organization's MCP endpoint. It reaches every toolbox you can use, yours or delegated to you. You mint nothing per toolbox.
  5. Optionally, add synthetic tools to a template or a toolbox.

What to know

  • Tools that a restriction blocks never appear to AI clients, even if a template includes them.
  • Renaming a tool changes the name only inside that template or toolbox. The product itself is not changed.
  • A template's entries are copied, not linked. Editing a template later does not change toolboxes already stamped from it.
Permission What it allows
template:create and toolbox:create Build a template or a toolbox.
template:share and toolbox:share Share a template or a toolbox.
template:manage and toolbox:manage Edit or delete a template or toolbox you own or hold an Edit share on.