Components
- Local MCP server: exposes the tools implemented by the installed build using the MCP transport supported by the client.
- Local host/control center: provides local controls for workspaces, service state, and available connection settings.
- Workspace manager: maps tool requests to authorized project roots and applies path validation.
- Security layer: enforces the permissions implemented by the release, including protected paths and command policies.
- Optional tunnel: forwards network traffic to a configured local service when a remote client needs access.
- AI client: sends MCP initialization, tool-list and tool-call requests; the client decides what context to send to its model.
Request flow
- The client connects to the configured local or remote MCP endpoint.
- The MCP server negotiates protocol capabilities and lists available tools.
- A user request may result in one or more tool calls.
- The local host validates the tool and its arguments against the configured workspace and permissions.
- The tool returns a result or a structured error to the client.
- The developer reviews code changes, test results, and Git diffs.
Deployment model
The public SFI Agent website distributes documentation and installer scripts. The actual coding tools should run on the user's own workstation. A Cloudflare Tunnel or ngrok can provide remote reachability, but should forward only the necessary endpoint. Do not confuse the marketing site's health status with the status of a user's local workstation.
Implementation and testing checklist
- Confirm
initializereturns a supported negotiated protocol version. - Confirm
tools/listreports the tools actually implemented. - Confirm
tools/callreturns valid MCP results and errors. - Test the exact transport and headers required by the target AI client.
- Test auth failures, malformed requests, timeouts, disconnects, and server restart.
- Verify path traversal, secret-file denial, and command policy enforcement.
- Test through the real tunnel and hostname, not only localhost.
- Do not advertise a feature or operating system as supported until verified in the released build.