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.