# Set up TinyCloud

Keep your personal records, such as weight, workouts, goals and todos, in your own TinyCloud storage. Use the same link in any AI agent: one that can install and run the TinyCloud CLI, such as Claude Code, Codex, OpenCode, Cursor, OpenClaw or Hermes, or one that supports remote MCP, such as ChatGPT, Claude, Grok, Perplexity, Gemini or Meta Muse.

**Paste this into your app or agent:**

> Set up TinyCloud using https://preview-tc1544-step1.tinycloud-agents.pages.dev/connect

**For the assistant:** keep the owner's original request and continue it in this conversation. If you can install and run the TinyCloud CLI, use it: that's the preferred route. Otherwise, if you support remote MCP, connect the hosted server below. For an MCP agent, a link to this page alone is a setup request; give that app's steps without asking what the owner wants to do. Do not ask the owner to choose a different link or file format.

## Agents that can run the CLI (preferred)

**Any agent that can install and run the TinyCloud CLI**, on the owner's computer or in its own workspace (for example Claude Code, Codex, OpenCode, Cursor, OpenClaw or Hermes): fetch [/onboarding](https://preview-tc1544-step1.tinycloud-agents.pages.dev/onboarding) yourself and follow it. It signs the owner in once, then sends you to the guide for their request. Do not ask the owner to paste another URL or repeat their request.

**After onboarding:** it routes personal records or health (meals, weight, workouts, todos) to [/apps](https://preview-tc1544-step1.tinycloud-agents.pages.dev/apps); API keys and other secrets to [/secrets](https://preview-tc1544-step1.tinycloud-agents.pages.dev/secrets); publishing or sharing a document or page to [/publish](https://preview-tc1544-step1.tinycloud-agents.pages.dev/publish); TinyChat meetings to [/chat](https://preview-tc1544-step1.tinycloud-agents.pages.dev/chat); Courier, threads with another person's agent, to [/courier](https://preview-tc1544-step1.tinycloud-agents.pages.dev/courier); anything else to [/setup](https://preview-tc1544-step1.tinycloud-agents.pages.dev/setup), which lists every ability.

Those guides are the authority for prerequisites, installation, permissions, sign-in, troubleshooting and cleanup. If you can run the CLI, don't use the MCP steps below. Where a guide asks for your client, use yours; any other agent uses `codex` (its skills go in `~/.agents/skills`).

**Agents that can't run the CLI but support remote MCP** (for example ChatGPT, Claude, Grok, Perplexity, Gemini or Meta Muse): use the steps below. Do not run the CLI setup in a temporary code sandbox. The hosted MCP has no meeting tools yet; meetings use the CLI route.

Jump to [ChatGPT](#chatgpt), [Claude](#claude), [Grok](#grok), [Perplexity](#perplexity), [Gemini](#gemini), [Meta Muse](#meta-muse), or [other MCP clients](#other-mcp-clients).

## ChatGPT

**For ChatGPT assistants:** if TinyCloud tools are not available yet, reply with only the four numbered steps below, in at most 120 words. No introduction, images, feature menu, plan or price caveats, extra sections, or closing questions. Do not send the owner back to this page to find the instructions. If the tools are already available, use them to continue the original request instead of repeating setup.

1. In a browser, open [ChatGPT Plugins](https://chatgpt.com/plugins) → **+ → Add custom MCP server**.
2. Enter **Name:** TinyCloud; **Description:** Personal records in TinyCloud; **Server URL:** `https://mcp.tinycloud.xyz/mcp`; **Authentication:** OAuth.
3. Review the warning, select **Create as a plugin**, sign in with OpenKey, and install it.
4. In a conversation, type **@**, select **TinyCloud**, and make your original request. For setup only, ask: **“What personal apps do I already have in TinyCloud?”**

**Troubleshooting only after a reported or observed blocker:** do not infer that an account cannot connect from its plan name, generic availability documentation, or TinyCloud's absence from the app directory. Do not run an eligibility preflight or recommend an upgrade or developer mode speculatively. A successful connection takes precedence over a contrary documentation assumption. If the option is missing or an action is rejected, address that specific UI state or error briefly; ask one targeted question only if needed to choose the next action. Once enabled, follow [Approve access and continue](#approve-access-and-continue) when the tools request approval, not as an extra initial setup section.

## Claude

Use the hosted MCP connector, not the local CLI. Its server URL is **`https://mcp.tinycloud.xyz/mcp`**, and its authentication is **OAuth** through OpenKey.

1. On Claude web or Desktop, open [Customize → Connectors](https://claude.ai/customize/connectors), then **+ Add → Add custom connector**.
2. Name it **TinyCloud**, enter **`https://mcp.tinycloud.xyz/mcp`**, and continue. Review the detected OAuth settings and choose to sign in with OpenKey.
3. Finish adding the connector. In your conversation, use **+ → Connectors** to enable TinyCloud, then make your original request.
4. Follow [Approve access and continue](#approve-access-and-continue) below. Once connected, you can also use it in Claude's mobile apps.

For a managed workspace, an owner or administrator may need to add the connector first. See [Claude's custom-connector instructions](https://support.claude.com/en/articles/11175166-getting-started-with-custom-connectors-using-remote-mcp).

If you want to approve record-writing tools once rather than on every call, find `tinycloud_apps_write` in the connector's tool permissions and choose **Always allow**. Only do this if you trust it to write records without per-call confirmation. This does not replace the OpenKey access approval.

## Grok

Use the hosted MCP connector, not the local CLI. Its server URL is **`https://mcp.tinycloud.xyz/mcp`**, and its authentication is **OAuth** through OpenKey.

1. In a browser, open [grok.com/connectors](https://grok.com/connectors), click **New Connector**, then select **Custom**.
2. Enter **`https://mcp.tinycloud.xyz/mcp`** and complete the authentication Grok asks for by signing in with OpenKey.
3. In a conversation, make your original request. Grok makes the connector's tools available in your conversations.
4. Follow [Approve access and continue](#approve-access-and-continue) below.

On Grok Business or Enterprise, a team admin must add the connector first. See [xAI's connector instructions](https://docs.x.ai/grok/connectors).

## Perplexity

Use the hosted MCP connector, not the local CLI. Its server URL is **`https://mcp.tinycloud.xyz/mcp`**, and its authentication is **OAuth** through OpenKey.

1. On Perplexity, open **Account settings → Connectors**, click **+ Custom connector**, and select **Remote**.
2. Enter **Name:** TinyCloud; **MCP Server URL:** `https://mcp.tinycloud.xyz/mcp`; **Authentication:** OAuth; **Transport:** Streamable HTTP. No client ID or secret is needed: TinyCloud registers the client itself.
3. Check the acknowledgement box and click **Add**. Then click the TinyCloud connector card, sign in with OpenKey, and enable it.
4. Make your original request, then follow [Approve access and continue](#approve-access-and-continue) below.

In an Enterprise organization, an admin may need to allow members to add custom connectors. See [Perplexity's custom-connector instructions](https://www.perplexity.ai/help-center/en/articles/13915507-adding-custom-remote-connectors).

## Gemini

Use the hosted MCP connector as a Gemini custom app, not the local CLI. Its server URL is **`https://mcp.tinycloud.xyz/mcp`**, and its authentication is **OAuth** through OpenKey.

1. On a computer, open [gemini.google.com](https://gemini.google.com), then **Settings → Connected Apps**.
2. Under **Custom apps**, choose **Add a custom app** and enter **`https://mcp.tinycloud.xyz/mcp`**. TinyCloud supports dynamic client registration, so leave the credentials under **Advanced features** empty.
3. Click **Next**, follow the on-screen instructions, and sign in with OpenKey.
4. In a chat, enter **@**, select the TinyCloud app, and make your original request. Then follow [Approve access and continue](#approve-access-and-continue) below. Once connected, it also works in the Gemini mobile app.

If **Custom apps** is missing: Google offers it to personal Google Accounts, 18 or over and in the US, with Keep Activity on. See [Google's custom-app instructions](https://support.google.com/gemini/answer/17209137).

## Meta Muse

Use Muse's native custom connector to the hosted MCP server, not the local TinyCloud CLI. The single setup prompt at the top of this page is enough to start; the owner still signs in and approves access themselves. Meta doesn't review custom connectors.

**For Muse:** perform this setup from the owner's original request. Do not ask them to send a second “create a connector” prompt, repeat their task, or choose an integration method. Do not stop after writing connector files.

1. **Reuse a working connection.** If a TinyCloud connector already exists, start with the live checks in step 4 and reuse it if they succeed. Do not disconnect a working connector just to repeat setup.
2. **Create the connector when needed.** Use **Streamable HTTP**, set both the server URL and OAuth `resource` to **`https://mcp.tinycloud.xyz/mcp`**, and request OAuth **scopes `tinycloud:mcp offline_access`**. Discover OpenKey's authorization and registration endpoints from the server's OAuth metadata and use Muse's native OAuth flow. Request `offline_access` on the **first** sign-in so OpenKey can issue a refresh credential, not just a short-lived access token. Retain both scopes and the resource in the saved connector configuration and reconnect instructions. The owner does not need to create a client ID or secret.
3. **Pause only for the owner’s sign-in and consent.** Show the actual native Connect card or fresh authorization link returned by Muse's setup tool. The owner opens it, signs in with OpenKey and approves; do not approve on their behalf or invent an authorization URL. Resume this same task when completion is observable. If Muse cannot observe completion, ask only for confirmation that approval is finished—not another setup request.
4. **Verify the connection with tools.** Run MCP `tools/list` and `tinycloud_connect`. An “Added” or “Connected” card, saved configuration, or remembered success is not proof. If a tool returns an OpenKey approval link, follow [Approve access and continue](#approve-access-and-continue) and resume the same operation after approval. A successful first call does not by itself verify token refresh.
5. **Finish the original task.** Keep the reusable connector and personal-record instructions in Muse's normal persistent setup, using the instructions returned by the hosted tools. Call `tinycloud_apps_context` and continue the owner's request. For setup only, follow the [setup-only record recipe](#setup-only-requests-in-chat-apps) through those tools, after the required approvals, and read the record back before reporting it saved. Connection verification alone is not a successful record read or write.

**Recovery only after an observed authentication failure:** a missing access-token surrogate means Muse has no credential for that connector; an authenticated HTTP 401 means the credential was rejected, not proof that it expired. If a stale connection's card only says “Added” without fresh authorization, do not keep sending the same link. With the owner's approval, disconnect **only TinyCloud** in **Settings → Connectors → Connected → Tinycloud → Disconnect**, then obtain a fresh native OAuth sign-in with both scopes and the resource above and verify it with tools. Resetting OAuth does not require deleting connector files, skills or personal records.

Never ask the owner to paste a password, API key, access token or refresh token into chat. OAuth credentials belong in Muse's secure credential flow, not connector source, prompts or memory. If native OAuth cannot connect, report the actual blocker; do not substitute a key or the coding-agent setup. See [Meta's connector help](https://www.meta.com/help/artificial-intelligence/1687253048996149/).

## Other MCP clients

If your app supports remote MCP over HTTP with OAuth, add **`https://mcp.tinycloud.xyz/mcp`**, choose **OAuth**, and sign in with OpenKey. Enable the connection for your conversation, then make your request. Mobile support depends on the app.

If the agent supports neither the CLI nor remote MCP, reading this page cannot add that capability. Say so and tell the owner to use an agent that supports one of them. Do not suggest installing a CLI in a temporary chat sandbox as a substitute.

## Approve access and continue

With TinyCloud enabled, make your original request, or ask: **“What personal apps do I already have in TinyCloud?”** The assistant will show the actual OpenKey connect or personal-record access link returned by a TinyCloud tool. Open it yourself, review the requested access, approve, then return to the conversation and tell the assistant to continue.

**For chat assistants:** use the connected TinyCloud personal-app tools and the instructions they return. If the tools are not available yet, give the relevant connection steps above; do not claim setup is complete. Never ask the owner to paste a password, private key or access token into chat. For setup-only requests, follow the [default-record recipe](#setup-only-requests-in-chat-apps) below, but perform the reads and writes through the connected tools, not the CLI. Read the saved record back before reporting success.

A brand-new account's storage can take a minute or two to finish setting up after the first approval. If a tool reports `SPACE_NOT_HOSTED`, tell the owner it is still being set up and retry with backoff for about two minutes. Do not ask for another or broader sign-in to fix it.

If a tool, or the CLI in a coding agent, reports `STORAGE_QUOTA_EXCEEDED` or `STORAGE_LIMIT_REACHED`, nothing was saved. Tell the owner their TinyCloud storage is full, their records are still readable, and they can upgrade at https://account.tinycloud.xyz/storage. Do not retry.

To disconnect a chat app, remove or disconnect TinyCloud in that app's plugin or connector settings. Disconnecting does not delete your stored records. Local CLI cleanup remains in the original [coding-agent guide's Undo section](https://preview-tc1544-step1.tinycloud-agents.pages.dev/apps#undo).

### Setup-only requests in chat apps

This record recipe is for chat apps. Use the connected tools rather than CLI or skill-command references.

If the owner only asked for setup or named no record, save one default record without asking, after sign-in is approved (skill §4) and not before: app `todos`, kind `todo`, key `xyz.tinycloud.agent-data/todos/todo/open/try-my-personal-apps`, value `{"v":1,"at":"<UTC>","data":{"title":"Try my personal apps"},"by":<client>}`, where `<UTC>` is the clock's time from `date -u +%FT%TZ` (skill §1; run it again if it is more than 5 minutes old), never an estimate. If the `todos` app or its `todo` kind doesn't exist yet, write their catalog records first (skill §2 rule 2): `xyz.tinycloud.agent-data/catalog/todos` = `{"app":"todos","title":"Todos","about":"Things to do.","created":"<TODAY>","by":<client>}` and `xyz.tinycloud.agent-data/catalog/todos/todo` = `{"app":"todos","kind":"todo","about":"One record per thing to do.","shape":"item","states":["open","done"],"v":1,"fields":{"title":"text: what to do"}}`. Write commands are in skill §6. Get that key and its done twin `xyz.tinycloud.agent-data/todos/todo/done/try-my-personal-apps` first (skill §5), and skip saving if either exists, so a todo the owner already ticked off isn't saved again. Afterwards tell the owner the key, that “What’s on my todo list?” shows it, and that you'll delete it on request (the skill's `kv delete`, §6).
