--- title: Connect Agents description: Connect Froglet to Claude Code, Codex, OpenClaw, and other MCP hosts. ---
Agent setup

Connect agents to a real local or self-hosted Froglet node.

The npm MCP package is local/actionable-first. Use `llms.txt` for the no-install hosted proof; use MCP when the agent needs provider/runtime access, token files, payment rails, or service publication.

## No-Clone Agent Bootstrap For a user who wants a local Froglet node, start with the bootstrap: ```bash curl -fsSL https://froglet.dev/agent | bash ``` The bootstrap installs the signed node, starts provider/runtime from published images, and writes an MCP config backed by the published `froglet-mcp` image. After that, the agent should use MCP actions for everything else. Use Codex instead of Claude Code: ```bash FROGLET_AGENT_TARGET=codex curl -fsSL https://froglet.dev/agent | bash ``` OpenClaw no-clone setup is not the default today because OpenClaw still loads a repo-local plugin folder. Use the MCP path above for normal users and source mode only for OpenClaw plugin development. ## MCP From npm Use the published MCP package when the agent should operate an existing local or self-hosted Froglet node: ```bash npx froglet-mcp ``` That command starts an MCP stdio server. It defaults to `FROGLET_PROFILE=local`, `FROGLET_PROVIDER_URL=http://127.0.0.1:8080`, and `FROGLET_RUNTIME_URL=http://127.0.0.1:8081`. In that profile the agent should call: - `status` first, to verify provider/runtime reachability and report missing token files or local services plainly - `plan_install` if the local node is missing and the target agent, footprint, role, payment rail, network, marketplace, or first use case is still ambiguous. If it returns `decision_required`, ask the user to pick a payment rail and recommend `none` for the first free demo - `get_install_guide` only after the install profile is confirmed - `plan_use_case` after local health is verified and before implementing the user's first consumer, provider, evidence, payments, batch, or GPU workflow - service, settlement, marketplace, and publication actions only after the local node is reachable The hosted proof is intentionally separate. It lives at `https://froglet.dev/llms.txt` and covers only public free `demo.*` services. Paid rails, persistent identity, custom service publication, long-running jobs, batch, and GPU workloads are local/self-hosted concerns. If you are packaging Froglet into an agent host rather than adding one MCP server manually, use [Plugin Distribution](/learn/plugin-distribution/) for the MCP Registry, Codex, Claude Code, OpenClaw, and NemoClaw order. For MCP client config, use the package as the stdio command: ```json { "mcpServers": { "froglet": { "type": "stdio", "command": "npx", "args": ["-y", "froglet-mcp"], "env": { "FROGLET_PROFILE": "local", "FROGLET_PROVIDER_URL": "http://127.0.0.1:8080", "FROGLET_RUNTIME_URL": "http://127.0.0.1:8081", "FROGLET_PROVIDER_AUTH_TOKEN_PATH": "data/runtime/froglet-control.token", "FROGLET_RUNTIME_AUTH_TOKEN_PATH": "data/runtime/auth.token" } } } } ``` For Codex-style TOML: ```toml [mcp_servers.froglet] command = "npx" args = ["-y", "froglet-mcp"] [mcp_servers.froglet.env] FROGLET_PROFILE = "local" FROGLET_PROVIDER_URL = "http://127.0.0.1:8080" FROGLET_RUNTIME_URL = "http://127.0.0.1:8081" FROGLET_PROVIDER_AUTH_TOKEN_PATH = "data/runtime/froglet-control.token" FROGLET_RUNTIME_AUTH_TOKEN_PATH = "data/runtime/auth.token" ``` ## Local config from the repo These helper commands are repo-local and are kept for contributors. The normal user path is `/agent`, not a clone. Clone only when you are developing Froglet, testing the OpenClaw plugin, or editing checked-in examples: ```bash git clone https://github.com/armanas/froglet.git ``` ## Generate a config ```bash cd froglet && ./scripts/setup-agent.sh --target claude-code cd froglet && ./scripts/setup-agent.sh --target codex cd froglet && ./scripts/setup-agent.sh --target openclaw ``` Optional override: ```bash cd froglet && ./scripts/setup-agent.sh --target codex --out /tmp/froglet-codex.toml ``` ## Default outputs | Target | Default output | What it configures | |-------|----------------|--------------------| | `claude-code` | `.mcp.json` | Project-local MCP server for Claude Code | | `codex` | `.codex/config.toml` | Project-local MCP server for Codex | | `openclaw` | `.froglet/openclaw.config.json` | OpenClaw plugin config with the checked-in Froglet plugin | ## Default values The helper writes local-profile values unless you override them with environment variables: - `FROGLET_PROFILE=local` - `FROGLET_PROVIDER_URL=http://127.0.0.1:8080` - `FROGLET_RUNTIME_URL=http://127.0.0.1:8081` - `FROGLET_PROVIDER_AUTH_TOKEN_PATH=/data/runtime/froglet-control.token` - `FROGLET_RUNTIME_AUTH_TOKEN_PATH=/data/runtime/auth.token` When you run the local stack with Docker Compose, start it with `FROGLET_HOST_READABLE_CONTROL_TOKEN=true` so the provider token path above is actually readable from the host. The direct `froglet-node` path does not need that opt-in. ## Activation - **Claude Code**: restart Claude Code in the repo so it reloads `.mcp.json`. - **Codex**: start Codex from the repo so it picks up `.codex/config.toml`. - **OpenClaw**: use the generated config file directly and verify it with: ```bash node integrations/openclaw/froglet/scripts/doctor.mjs \ --config .froglet/openclaw.config.json \ --target openclaw ``` ## Checked-in MCP examples The repo also ships checked-in MCP examples for: - Claude Desktop - Cursor - Codex - Docker-backed MCP Those live under `integrations/mcp/froglet/examples/` and are covered by test. ## Local npm profile If you prefer the published package but already have a local Froglet node, point the MCP server at local provider/runtime URLs and token files: ```bash FROGLET_PROFILE=local \ FROGLET_PROVIDER_URL=http://127.0.0.1:8080 \ FROGLET_RUNTIME_URL=http://127.0.0.1:8081 \ FROGLET_PROVIDER_AUTH_TOKEN_PATH=/absolute/path/to/froglet/data/runtime/froglet-control.token \ FROGLET_RUNTIME_AUTH_TOKEN_PATH=/absolute/path/to/froglet/data/runtime/auth.token \ npx froglet-mcp ``` ## Marketplace Registration Use MCP wrappers instead of ad hoc HTTP when an agent is setting up discovery: - `marketplace_register` for public HTTPS or Tor registration - `marketplace_domain_claim` and `marketplace_domain_complete` for `*.providers.froglet.dev` Tor registration is allowed only through `registration_transport=tor` and a provider-advertised `http://.onion` origin. General `provider_url` overrides still reject onion URLs so an LLM cannot silently route normal invocations through arbitrary Tor endpoints. ## Next step After the agent config exists, move to [Payment Rails](/learn/payment-rails/).