Skip to content

smelt.mcp

Tier: Host — Available in every runtime, including headless mode.

Config-time MCP server registration. Unknown fields raise errors.

smelt.mcp.list

fun(): table

Snapshot every declared MCP server. Each row is { name, config, status, tool_count } where status is { kind = "disabled"|"connecting"|"connected"|"error", since_ms?, error?, at_ms? }. Lifecycle reads are sync — safe to call from a status renderer or keymap.

smelt.mcp.register

fun(name: string, cfg: smelt.mcp.Config): smelt.Reg

Types: smelt.mcp.Config, smelt.Reg

Declare an MCP server named name. See smelt.mcp.Config. Returns a Reg whose :remove() drops the desired-state entry; the next /reload reconciles it away.

smelt.mcp.status

fun(name: string): string?

Return the lifecycle status for server name: "disabled", "connecting", "connected", or "error". Returns nil when no server with that name is declared.

smelt.mcp.tools

fun(server: string?): table

Snapshot every discovered MCP tool. Each row is { server, name, qualified_name, description, schema }. When server is provided, only that server's tools are returned; otherwise tools from every connected server.