Octri

Customizing tools

An agent chooses a tool from its name and description, and fills it in from its input schema. Nothing else about your API reaches it before the call. So those are what you'll want to tune, and you can change them for agents without touching your spec, your docs or your SDKs.

Select a tool in MCP Studio and open Customize for agents. Changes are drafts until you publish.

What you can change

Tool nametextdefault: the SDK method name

What agents call it: letters, digits, _ and -, up to 64 characters, which fits MCP's name rules.

Descriptiontextdefault: the text from your docs

What an agent reads, up to 4,000 characters. Keep it short: a tool list is read on every turn. Empty keeps your docs' text.

Inputsper fielddefault: the agent fills each one

Whether the agent fills each field, never sees it, or has it fixed. See below.

Tagslistdefault: none

Up to 10, comma separated, each lowercase letters, digits and -, up to 32 characters. Tool groups take everything carrying one of their tags.

The tool keeps your settings if you rename the endpoint, or rename the method in SDK Studio.

Inputs

Each input has three states.

StateWhat it meansUse it for
Agent fills itThe agent sees the field and supplies it. You can rewrite what it reads about the fieldThe default
HiddenLeft out of the tool, so your API gets no value for it. Optional fields onlyRarely used filters that clutter the schema
Pinned valueSent on every call, and the agent never sees itFixing an account, a region or an API version

A pinned value can't be overridden by the agent, because the server sends it after the agent's own arguments. It's applied on the hosted server, and built into your packages.

A pinned value isn't a secret store

Pins are published with your tool list and built into packages you ship. Don't pin a credential. For credentials, use sign-in or installations.

Example

Say POST /invoices takes account_id, currency and customer, and this server only serves one account.

FieldStateWhy
account_idPinned to acct_123The agent shouldn't be able to choose an account
currencyAgent fills it, with the description "ISO 4217 code, such as USD"The default description didn't say which format
customerAgent fills it
internal_refHiddenAgents have no use for it

Writing a good description

Agents pick the wrong tool far more often because of a vague description than because of a missing feature.

Say what it does and when to choose it over a similar tool.

Put the most important thing first, since some clients cut descriptions short.

Name what it returns, if it isn't obvious.

Keep it to plain text. Agents don't need formatting, and each word costs context on every turn.

text
Bad:  POST /invoices
Bad:  Creates an invoice.
Good: Create a draft invoice for a customer. Use send_invoice afterwards to
      email it. Returns the invoice with its ID.

The quality score checks these for you, and can suggest a rewrite.

What agents see

What agents see shows the tool as an agent will receive it, with your changes applied. To see whether agents really choose and fill it correctly, add it to a test run.

Marking how a tool behaves

Two more settings on the tool tell clients what it does.

SettingWhat it does
When an agent calls itRuns on its own, asks first, or off. See permissions and limits
Only adds dataTells clients this write never deletes or overwrites anything

Not everything needs customizing

Customizing a tool leaves your docs as they are. If a description is wrong for humans as well, fix it in API Studio instead, so everything improves at once.