Skip to main content

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.

URIContent
tgcloud://docs/project-structuretgcloud/ layout, handlers, endpoints, lib, schema.js. Project imports are relative paths with .js. Mini App static hosting
tgcloud://docs/cliCLI reference: commands, --dry-run / --safe / --yes / --local, upgrade, webhook
tgcloud://docs/sdk-dbsdk/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-apisdk/api: full Bot API, BotApiError, InputFile
tgcloud://docs/sdk-fetchsdk/fetch: HTTP client, body helpers, 32 MB cap
tgcloud://docs/limitsDocumented 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.