MCP Servers

Boitata connects to MCP servers using the official rmcp client.

Each server's tools are discovered at startup and exposed to the agent, namespaced as <server>_<tool>, and called through the same agent loop as built-in tools. So MCP tool calls show up in the audit log just like built-in ones. A server that fails to start is logged and skipped, so one broken server can't abort a run.

Transports

The transport is inferred from which field you set on a [[mcp_servers]] block:

FieldTransport
commandstdio: the server is spawned as a subprocess
urlStreamable HTTP: connect to a remote server

Set exactly one of the two per server.

Configuring a server

stdio (subprocess)

[[mcp_servers]]
name    = "filesystem"
command = "npx"
args    = ["-y", "@modelcontextprotocol/server-filesystem", "/tmp"]

[[mcp_servers]]
name    = "git"
command = "uvx"
args    = ["mcp-server-git"]
env     = { GIT_AUTHOR_NAME = "boitata" }

remote (Streamable HTTP)

[[mcp_servers]]
name       = "remote"
url        = "https://mcp.example.com/mcp"
auth_token = "your-token"          # sent as `Authorization: Bearer <token>`
headers    = { X-Workspace = "acme" }   # optional extra headers

On startup you'll see a line like MCP server \filesystem` connected: 12 tool(s). Credentials (auth_token) live in the git-ignored boitata.tomland are never logged;McpServerConfigredacts them in itsDebug` output.

Resources

When a server advertises the MCP resources capability, Boitata also registers two tools per server so the agent can gather context on demand:

ToolPurpose
<server>_list_resourcesReturns the available resource URIs, names, and descriptions
<server>_read_resourceReads one resource by URI

These count toward the tool total reported at startup and, like all tool calls, appear in the audit log.

See the configuration reference for the full field list.