Client setup
Frigg supports stdio and stateful streamable HTTP. Use loopback HTTP for normal work so clients and subagents share one long-running local runtime.
Choose a transport
Section titled “Choose a transport”| Workflow | Transport |
|---|---|
| One local client owns the Frigg process and no second client or subagent shares it | Stdio |
| Multiple clients, subagents, long-running work, or built-in watch freshness | HTTP |
Stdio starts one Frigg process per client configuration. Its default runtime profile has watch disabled. HTTP keeps repository registration, caches, session state, and watch coordination in one service.
Shared HTTP service
Section titled “Shared HTTP service”Start Frigg:
frigg serveThe default MCP endpoint is:
http://127.0.0.1:37444/mcpAdd it through supported client CLIs:
claude mcp add --transport http frigg http://127.0.0.1:37444/mcpcodex mcp add frigg --url http://127.0.0.1:37444/mcpFor JSON-based clients:
{ "mcpServers": { "frigg": { "transport": "streamable_http", "url": "http://127.0.0.1:37444/mcp" } }}The service may start without repository roots. Clients can adopt repositories later with workspace. To preload initialized repositories, repeat --workspace-root:
frigg serve \ --workspace-root /absolute/path/to/repo-a \ --workspace-root /absolute/path/to/repo-bManual stdio setup
Section titled “Manual stdio setup”Use stdio only when one client should launch and own Frigg directly. Initialize or index the repository before the client starts Frigg:
{ "mcpServers": { "frigg": { "command": "frigg", "args": ["--workspace-root", "/absolute/path/to/repo"] } }}Do not put frigg serve in a stdio configuration. With no subcommand and no --mcp-http-port, frigg speaks MCP over stdio and reserves stdout for protocol messages.
Remote HTTP
Section titled “Remote HTTP”Loopback HTTP needs no token. A non-loopback bind requires explicit remote permission and a nonblank bearer token:
frigg serve \ --mcp-http-host 0.0.0.0 \ --allow-remote-http \ --mcp-http-auth-token <TOKEN>You may provide the token through FRIGG_MCP_HTTP_AUTH_TOKEN. There are no FRIGG_MCP_HTTP_HOST, FRIGG_MCP_HTTP_PORT, or FRIGG_ALLOW_REMOTE_HTTP environment variables.
Frigg applies bearer authentication to both /mcp and /stats/routing. When the bind address identifies a specific host, it also validates Host and Origin authorities. Remote HTTP resolves watch-mode=auto to disabled; pass --watch-mode on only when that remote service should watch adopted repositories.
Managed project configuration
Section titled “Managed project configuration”frigg adopt writes HTTP MCP entries and managed agent instructions. It preserves a hand-written stdio entry unless you explicitly replace a diverged Frigg entry with --force.
See Project adoption for targets, policies, skill installation, drift checks, and uninstall behavior.
Verify the connection
Section titled “Verify the connection”- Reload the MCP client after changing its configuration.
- Confirm Frigg appears in the client’s live tool list.
- Call
workspaceand inspect the session default, adopted repositories, runtime tasks, and freshness state. - If needed, call
workspacewith an absolute repository path.
Source Anchors
Section titled “Source Anchors”../frigg/README.md../frigg/crates/cli/src/cli_args.rs../frigg/crates/cli/src/cli_dispatch.rs../frigg/crates/cli/src/http_runtime.rs../frigg/crates/cli/src/settings/runtime_profile.rs../frigg/crates/cli/src/settings/watch.rs../frigg/crates/cli/src/cli_runtime/commands/adopt/json_merge.rs