# Connect an agent — checked 2026-10-28

Use the endpoint in [operator metadata](service.json). The operator configures a stable public MCP origin during packaging. Do not execute unresolved source-template values or substitute a private development tunnel. These recipes configure the **agent client**, not a relay setting in the phone app. Complete App Jam account sign-in in the browser and approve the displayed builder scopes. OAuth credentials stay with the client; do not paste tokens into chat or static Authorization headers. After adding a server, follow any client reload/restart instruction and resume this request once the tools are available; never pretend configuration alone authenticated the account.

## Codex

After the operator resolves the public endpoint:

```bash
codex mcp add oneapp --url https://oneapp-prototype.vercel.app/mcp
codex mcp login oneapp --scopes catalog:read,packages:read,publish,grants:manage,home:write,notify
codex mcp list
```

Use the client’s OAuth discovery rather than supplying a client secret. If already configured, inspect the existing server instead of blindly adding a duplicate. Codex desktop can add a Streamable HTTP server through its MCP settings and authenticate there; local Codex clients share host configuration. [Official Codex MCP documentation](https://learn.chatgpt.com/docs/extend/mcp), [CLI reference](https://learn.chatgpt.com/docs/developer-commands#codex-mcp).

## Claude Code

```bash
claude mcp add --transport http oneapp https://oneapp-prototype.vercel.app/mcp
claude mcp login oneapp
claude mcp get oneapp
```

Alternatively, run `/mcp` inside an interactive Claude Code session and authenticate the server. Sign in before starting an unattended run. The server's normal consent page shows the requested builder scopes. [Official Claude Code MCP documentation](https://code.claude.com/docs/en/mcp#authenticate-with-remote-mcp-servers).

These commands are documented connection recipes, not evidence that the deployed service has completed authentication in either client. Provider client policies, workspace restrictions, and network reachability still apply. If automatic registration/discovery fails, report the error to the operator; do not ask the person for administrator credentials. GrokBot compatibility has not been established. Other clients must be verified for remote MCP and OAuth support individually.

## Discovery fallbacks

Use the tools and resources actually exposed in this session. If documentation describes something missing, refresh/reconnect the existing MCP connection using the client's supported controls and rediscover its catalog; a client may retain an older list. Keep the existing account authorization unless the client reports it expired. Missing tools alone do not justify deleting the connection or requesting new credentials.

- Authoring: read `oneapp://authoring` when resource access is available, otherwise call `get_authoring_guide` if advertised. If neither is exposed, read `artifacts.authoring` from the service metadata or [the public guide](https://oneapp-prototype.vercel.app/authoring.md).
- Schema/examples: use advertised discovery tools; otherwise read `artifacts.packageSchema` and `artifacts.examples` from the metadata. Public documentation does not expose the user's private catalog or grant publish access.
- Preflight: call `validate_experience` only if advertised. Otherwise validate locally against the published schema, verify asset hashes and package limits, and report that server preflight was unavailable. Publishing remains subject to server and device validation; do not invent a successful preflight result.
- Existing app source: use `read_experience_package` only if discovered and authorized with packages:read; follow [source handoff](source-handoff.md). Missing tools alone still do not justify removing an authorization. A new source permission needs normal consent, while an old phone needs a real host update.

An independently tested client successfully completed OAuth, publication and offline iPhone handoff on 2026-10-28. Its product/version was not captured, so this does not establish compatibility with every GrokBot, Claude Code or Codex configuration.
