# Install and connect Panda Auto for this AI agent This is the public installation guide. The user supplies the exact tenant MCP endpoint, a site alias and a ten-minute setup code copied from that tenant's Back Office. Public files contain no tenant credentials. Do not send the code to the documentation site. ## 1. Check this agent's environment Use this procedure only when the agent can install a local skill, run Python 3.9 or newer, store a private configuration file, and reach HTTPS endpoints. It connects to Panda's remote MCP through the skill's Python connector; it does not register a native MCP server in the agent's settings. OAuth is not required. Choose the agent you are actually running, not an agent mentioned in the user's business request: - `--agent codex`: `~/.agents/skills/panda-auto` - `--agent claude`: `~/.claude/skills/panda-auto` (Claude Code) - `--agent cursor`: `~/.cursor/skills/panda-auto` - `--agent gemini`: `~/.gemini/skills/panda-auto` (Gemini CLI) - For another skill-capable agent, use `--skill-dir ABSOLUTE_DIRECTORY` for the exact Panda skill folder that this agent loads. Do not guess a host's configuration schema or claim registration just because files were downloaded. Windows uses the current user's protected filesystem ACL; macOS/Linux use private owner permissions. Do not bypass a private-storage check or request elevated privileges to force installation. A hosted AI chat may have different skill or connector import controls and may not retain local files. If this environment cannot execute the connector or retain credentials, explain that limitation and use the ZIP/manual MCP connection available in Back Office. Use the site alias copied by Back Office. Before adding a site, inspect an existing installation's `scripts/panda.py sites` output, which contains aliases and endpoints but no tokens. A different endpoint must have a distinct alias. An alias collision is not permission to replace a connection; choose another lowercase alias (letters, digits, underscores and hyphens, up to 64 characters, starting with a letter or digit). Do not guess the tenant endpoint from its marketing domain. ## 2. Download and verify the published release Release: **1.0.0** Installer URL: https://document.mini-panda.com/ai/releases/1.0.0/install.py Installer SHA-256: `61f4825ef4d1c93901f603c0ca2f61d89ba6eafe8de255f75f6067ebc8c48f82` Manifest URL: https://document.mini-panda.com/ai/releases/1.0.0/manifest.json Manifest SHA-256: `77120401bb24ba16fc84cb957882c475e6c2dd886c1d83f98713cf0d51612dc7` Download the installer over HTTPS to a local temporary file. Verify its complete bytes against the installer SHA-256 above before executing it. Read the downloaded script as needed. Do not pipe a remote download directly to a shell or Python. Do not execute an HTML error page or a redirect target. The installer requires the pinned manifest hash and checks every installed file's hash and size before loading it. For example, after saving the verified file as `install.py`, verify it using Python's standard library: ```python from pathlib import Path import hashlib assert hashlib.sha256(Path("install.py").read_bytes()).hexdigest() == "61f4825ef4d1c93901f603c0ca2f61d89ba6eafe8de255f75f6067ebc8c48f82" ``` The package includes only the generic skill and connector. It never asks for an admin password or a permanent API token. ## 3. Install and exchange the short-lived code Use the copied alias and exact HTTPS endpoint in this command, replacing the example values. Select the actual agent or use `--skill-dir` instead of `--agent`. ```text python3 install.py --agent codex --site panda-example --endpoint https://api.example.com/api/mcp --manifest-sha256 77120401bb24ba16fc84cb957882c475e6c2dd886c1d83f98713cf0d51612dc7 --code-stdin ``` On Windows use `python` or `py -3` if that is the installed interpreter. Provide the copied setup code through the child process's stdin using your execution tool's input channel. Never put the code in command arguments, a URL, shell history or a generated source file. Without `--code-stdin`, the installer uses a hidden interactive prompt so the user can enter it directly. Do not print or repeat the code in your final reply. The installer generates a permanent random credential locally and saves a private pending record **before** exchanging the code. The server stores only credential hashes. The default private configuration is `~/.config/panda-auto/config.json`; use `--config ABSOLUTE_FILE` only when a different durable private location is needed. Keep the same config for all sites in one installation. Never place it inside the public skill, a repository, a shared folder or a disposable hosted workspace that is presented as a persistent connection. The installer performs discovery only: it does not message players, upload images, change balances or call business tools. A setup code is usable once and expires after ten minutes; the resulting connection has the permissions and separate token expiry chosen in Back Office. ## 4. Verify and report the actual result Only report a working connection when the installer returns `status: CONNECTED` and `connected: true`. Its `nativeMcpRegistered: false` means the installed skill uses the Python MCP connector, not a native server entry in the host's settings. Read the installed `SKILL.md`, reload the agent's skills or start a new session when the host requires it, then run: ```text python3 /ABSOLUTE/SKILL/DIRECTORY/scripts/panda.py --site panda-example sync ``` Confirm the endpoint and available tool count without displaying credentials or player data. Do not call a business tool merely to test installation. If the host has not loaded the skill yet, say files and connection are ready and that skill reload is still required; do not claim the current session already has the skill. For normal work, follow the installed skill and live server instructions. Discover capabilities at the start of each task and describe a tool before using it. Compatible new tools become available through discovery without downloading the skill again. New permissions still require an authorized operator to update the connection in Back Office. A future transport or connector contract change may require a client upgrade. ## Interrupted setup and existing connections - If the request times out or the installer stops, keep the private pending record. Run the same verified installer with the same target, alias, endpoint, config and manifest hash, replacing `--code-stdin` with `--resume`. This checks status using the saved credential; it does not exchange again. - If the installer reports that exchange is still pending, an explicit `--resume --retry-exchange` makes one more attempt with the same saved credential. Never generate a fresh credential just to retry an unknown outcome. - If status is unavailable, first reconcile the named connection in Back Office and revoke any token that may have been issued. Only after that reconciliation, create a fresh code and run with `--reset-unavailable --backoffice-reconciled --code-stdin`. The previous pending record is archived privately. Do not add these flags automatically to silence an error. - Do not use `--replace-site` unless the user intends to replace that particular site's existing connection. Other sites are preserved, and the old connection remains selected until the new one passes discovery. Revoke the superseded token in Back Office once replacement is verified. - If the installed managed files were locally edited or a different private configuration is already selected, stop and explain the conflict. Do not overwrite user edits or switch a shared installation to another config without resolving existing sites. - A used code cannot be reused to add another agent. Create a new code for each agent connection. Revoke pending codes or ordinary tokens through Back Office when no longer needed. Do not request broad permissions as an installation shortcut. Sending promotional text or images requires the appropriate granted tools and the user's approval of the recipients and content during the business task; installation itself does not authorize a send.