Tools connects external MCP services to conversations. You enable MCP, register Streamable HTTP servers, sync their tools, edit how each tool appears, and cap how much work one message can trigger.
Where to find it#
Open Tools in the admin console. The page has three parts:
- Global MCP settings at the top.
- The MCP servers table.
- A per-server MCP tools sheet that opens when you click a tool count.
The global settings are hidden while Enable MCP tools is off. Users cannot select MCP tools until the switch is on, the server is On, the tool is Enabled, and the per-message limits allow it.
Turn MCP on and set limits#
- Turn on Enable MCP tools.
- Set Selectable tools per message. Default
32, maximum128. - Set Max LLM requests. Default
5, minimum2. This counts the first request and the final summary in one message. - Set Max MCP tool calls. Default
8. Failed calls count toward the limit. - Set MCP tool concurrency. Default
8. This is the limit per service instance. - Set MCP tool timeout. Default
10seconds. - Set MCP tool retries. Default
0. - Optionally edit MCP tool prompt to control when and how the model calls tools. Leave it empty to use the built-in default prompt.
- Click Save. The button appears only after a field changes.
Turning the switch off hides the server and tool lists. Existing server and tool records are kept.
Add an MCP server#
- Click Add above the server table.
- Fill in Server name.
- Choose Server status: On or Off.
- Enter Server URL, the MCP Streamable HTTP endpoint, for example
https://example.com/mcp. - Optionally enter Auth token. On create the placeholder is "Optional"; on edit it is "Leave empty to keep unchanged".
- Optionally enter Headers as JSON, for example
{"X-API-Key": "..."}. - Click Create. The dialog saves the server, then syncs its tools automatically.
Use Quick fill next to Headers to insert Signed user context, which adds:
json
If a header with the same name already exists with a different value, the preset is not applied and you see "Header already exists with a different value; nothing was changed".
Sync tools#
- Click the sync icon on a server row, or open the server's tools sheet and click Sync.
- If the server already has customized names or descriptions, pick how to handle them:
- Keep current content — keep names and descriptions while syncing other tool data.
- Use server content — sync the names and descriptions returned by the MCP server.
- Wait for "MCP tools synced".
Sync again whenever the external service adds, removes, or changes tools. Sync only reads the server's tool list and schema; it does not judge whether a tool is safe to expose.
Manage tools#
Open a server's tools sheet by clicking its tool count, for example 3/8 (enabled/total).
- Search by tool name or description.
- Filter by Status: All, Enabled, Disabled.
- Sort by Custom order, Name A-Z, Name Z-A, Status, Recently updated, or Oldest updated.
- Toggle a single tool with its Enabled switch.
- Select tools and use Enable or Disable for a bulk change. A confirmation dialog shows the selected count.
If a server has never been synced, the sheet shows "No tools. Sync first." A server sync failure is shown above the tool table as an error message.
Edit tool display and image routing#
- Click the pencil on a tool row.
- Edit Display name. This is what users see in the conversation tool selector. It can be up to 160 characters.
- Edit Description. Users read it to decide when to use the tool. It can be up to 4096 characters.
- Click Save.
For tools that accept image data, turn on Image attachment processing. The backend calls the tool first and the main model receives only the tool's text result. The fields are mapped manually from the tool schema; nothing is detected automatically.
| Field | What it does |
|---|---|
| Image data argument | The string argument in the schema that receives encoded image data. |
| Transfer format | Data URL (includes MIME type) or Raw Base64. Match the tool contract. |
| Also pass the user's request | Sends the current user input to the tool as well. Use it for vision tools that need analysis instructions. |
| User request argument | The string argument that receives the user input. |
The save button stays disabled until every required schema argument is mapped to the image argument or the user request argument. Unmapped required arguments are listed as "Unmapped required arguments: {names}". If the schema has no string argument, you see "This tool schema has no string argument for image data, so this capability cannot be enabled."
Click the schema icon to open Tool schema and read the input parameter JSON Schema. You can copy it from the dialog.
Reorder the conversation selector#
- Click Order above the server table.
- Drag servers in the MCP servers list to change their order.
- Select a server and drag tools in the Tools list to change their order within that server.
- Click Save. The tool sort resets to Custom order after saving.
Reference#
Global settings#
| Setting | Default | Limit | Setting key |
|---|---|---|---|
| Enable MCP tools | Off | — | mcp.mcp_enable |
| MCP tool prompt | Built-in prompt | Text | mcp.mcp_tool_prompt |
| Selectable tools per message | 32 | Max 128 | mcp.mcp_max_selected_tools_per_message |
| Max LLM requests | 5 | Min 2 | mcp.mcp_max_llm_calls_per_run |
| Max MCP tool calls | 8 | — | mcp.mcp_max_tool_calls_per_run |
| MCP tool concurrency | 8 | — | mcp.mcp_max_concurrent_calls |
| MCP tool timeout | 10 s | — | mcp.mcp_tool_timeout_seconds |
| MCP tool retries | 0 | — | mcp.mcp_tool_retry_count |
Server URLs, auth tokens, headers, and tool schemas are service and tool records, not these global mcp.* settings.
Server fields#
| Field | Required | Notes |
|---|---|---|
| Server name | Yes | Shown in the server table and the tool sheet title. |
| Server status | Yes | On exposes the server's tools; Off hides them. |
| Server URL | Yes | MCP Streamable HTTP endpoint. |
| Auth token | No | Write-only. Leave empty on edit to keep the current token. |
| Headers | No | JSON object. Must parse, or you get "Headers JSON is invalid". |
Troubleshooting#
| What you see | What to check |
|---|---|
| Users cannot pick any MCP tool | Enable MCP tools is off, the server is Off, or no tool is Enabled. |
| "No tools. Sync first." | Run Sync on the server. |
| "Failed to sync MCP tools" | The server URL or auth token is wrong, or the server is unreachable. Check the server's last error in the tools sheet. |
| "Headers JSON is invalid" | Fix the Headers JSON syntax. |
| "Failed to save MCP server" | Server name and Server URL are required. |
| Tools disappear after sync | The external server no longer returns them. Confirm on the server side. |
| "MCP tool pricing saved" but billing looks unchanged | Tool pricing lives on the Billing page, and only applies outside self-use mode. See Billing. |
Related#
- Billing for per-call MCP tool pricing.
- Capabilities & pass-through for native tool behavior.
- Logs for tool call events and failures.