> ## Documentation index
> Fetch the complete documentation index at: https://tgcloud.docs7.io/llms.txt
> Ask it with GET https://tgcloud.docs7.io/ask?q=<keywords or question>. Short keywords rank best.
> Use these to discover all available pages before exploring further.

# Resources

> Built-in platform docs at tgcloud://docs/*

# Resources

The server exposes the platform reference as MCP resources. The agent reads
them without a tool call. The text is English, the same language as
core.telegram.org/bots/serverless, so it can be checked against that page.

| URI | Content |
|---|---|
| `tgcloud://docs/project-structure` | `tgcloud/` layout, handlers, endpoints, lib, schema.js. Project imports are relative paths **with** `.js`. Mini App static hosting |
| `tgcloud://docs/cli` | CLI reference: commands, `--dry-run` / `--safe` / `--yes` / `--local`, upgrade, webhook |
| `tgcloud://docs/sdk-db` | `sdk/db`: column types (`text`, `integer`, `real`, `numeric`, `blob`, `boolean`, `json`) and modes, query builder, raw SQL, no foreign keys, drops via `.deprecated` |
| `tgcloud://docs/sdk-api` | `sdk/api`: full Bot API, `BotApiError`, `InputFile` |
| `tgcloud://docs/sdk-fetch` | `sdk/fetch`: HTTP client, body helpers, 32 MB cap |
| `tgcloud://docs/limits` | Documented limits, and the quotas that are not published |

Inside a scaffolded project, read `AGENTS.md` and `docs/tgcloud-sdk.md` first.
Those files match the CLI that created the project. The resources are the
fallback when you are not inside one.

Source of truth in the repo: `resources/docs/*.md`. `npm run docs:check`
checks that every file is registered, that the two skill copies match, and
that every English page has ru, zh, ar, de, and fr siblings.

## Platform limits

`tgcloud://docs/limits` collects the published limits: 50 MB per Bot API upload
(10 MB for photos), 20 MB per `getFile` download, and 32 MB per `fetch`
response body. `console` output is shown by `tgcloud run` and has no published
size cap.

Runtime quotas — memory, CPU, the wall-time timeout of a handler or endpoint,
call rate, database size — are **not published**. Do not assume numbers.
`run_handler` reports the elapsed time of a run: measure the path you have, keep
handlers short, and move heavy work off the update path and out through `fetch`.
For the values, ask in @BotFather → the bot → Serverless, or the platform's
official channels.

The same resource lists the capabilities the runtime does **not** provide — no
database transactions or atomic batch, no custom incoming HTTP endpoints
(the platform owns the webhook), no secrets store or environment variables, and
no scheduled jobs — with the supported alternative for each.
