- The deployment declares which servers the agent connects to, by name and URL, with an optional tool allowlist.
- Credentials stay out of the declaration. Servers that need auth get it through secret references, never inline tokens.
Declare MCP servers on the deployment
Specify servers in themcp_servers array when creating or updating a deployment:
mcp_servers field reference
Each entry in the mcp_servers array defines one connection.
| Field | Description |
|---|---|
name | Required. A unique name for this server within the deployment. Surfaced as the origin prefix on tools and on tool_call events |
url | Required. The endpoint of the remote MCP server. Must be reachable from Herm’s infrastructure |
tools | Optional. Allowlist of tool names as reported by the server. Omit to expose every tool the server publishes |
- A deployment can declare up to 20 MCP servers. Server names must be unique within the array.
- On updates, the
mcp_serversarray is fully replaced.
Configure which MCP tools are available
By default, every tool the server publishes is exposed to the agent. To enable only specific tools, list them in the allowlist:MCP tool output handling
When an MCP tool returns very large output, it’s written to a file in the deployment’s workspace. The model receives a truncated preview with the file path and can read the full content from there.Authentication
Two separate questions, two mechanisms:- Your server authenticating the caller. Herm sends the deployment’s
customer_idwith every tool call, so your server can scope data access per customer without per-request tokens. - Herm authenticating to your server. If the server requires a credential, pass it as a secret reference on the deployment and reference the environment variable in your server configuration. Raw tokens never appear in the declaration, the sandbox, or logs.
Handle connection failures
Deployment creation does not validate MCP connectivity. If a server is unreachable or rejects its credential, the deployment still works and the agent runs without that server’s tools.| Signal | Meaning |
|---|---|
status: "unreachable" on List MCP servers | The server could not be reached at last attempt — surface this in your dashboard |
error event on the SSE stream with mcp_server | A tool call failed mid-run because the server was unreachable or rejected auth |
Tool calls on the event stream
Every MCP tool invocation appears on the SSE stream as atool_call followed by a tool_result, so your UI can narrate progress and your logs capture an audit trail:

