Skip to content
verify mcp Beta VerifyMCP is currently in beta. If you notice any issues, get in touch and we’ll put it right.

tgcloud — Telegram serverless bots

OCI · GHCR.IO/SDAMARKETING/TGCLOUD-MCP · 2 COMPONENTS

MCP server for Telegram serverless bots: lifecycle, deploys, migrations, webhooks via tgcloud CLI

43 Trust /100

Last scanned (20 hours ago)

Scores higher than 62% of OCI servers

Category CI/CD and DevOps

Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →

Supply Chain Security0
  • No malware scan is available for this kind of package: the supply-chain vendors we use do not cover it. This is a permanent gap in our coverage, not a finding about the package.Unverified
  • Known CVEs could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
  • Install-script risk not yet assessed.Unverified
  • Dependency health could not be checked: this artifact ships no SBOM or dependency manifest, so there is no dependency list to read.Unverified
Provenance & Transparency48
  • Source repository is publicly reachable at the declared URL. View diagnostics → Pass
  • Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
  • Clear OSI-approved license (MIT).Pass
  • Actively maintained (last published 0 days ago).Pass
  • Publishes a security disclosure policy (SECURITY.md).Pass
Schema Quality & AI Usability86
  • 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
  • AI-judged instruction clarity (excellent).Pass
  • Tool/resource definitions use about 2203 tokens (~100/item across 22 items; 16 tools + 6 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management7
  • Stability observed for 2 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
  • 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
  • 100% of tool parameters carry a description.Pass
Tool Safety75
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • 0 of 1 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation; "deploy" implies "deploy" and declares no destructiveHint at all, which the MCP spec reads as destructive by default. See how to fix → Fail
  • An AI judge read all 17 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
  • Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass

Unverified: 1 category

A category scored 0 because we could not verify it: a data source with nothing on this package, evidence we could not reach, or a check we could not run. We only credit what we can confirm.

Changelog

Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.

  • 16 Oct 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 3 to 7. That category is still filling its 30-day observation window: 1 days of observed history at the previous scan, 2 at this one. The score rises as the window fills, whether or not the server changes.

  • 15 Oct 26 −1
    • Tool safety: pass → unverified ▼ security
    • Stability: Stability not yet verified: we do not have a sandbox capture of the MCP schema this version of the package serves yet. security
    • Schema quality: 1759 → 2203 ▼ functional
    • Capabilities: pass → unverified ▼ functional
    • Schema quality: 100 → unverified ▼ functional
    • Tool coverage: 100 → unverified ▼ functional
    • Stability: unverified → 0.03 ▲ functional
    • Destructive annotations: pass → 0 functional
    • Package version: 0.2.1 → 0.3.3 functional
    • Package version: 0.2.1 → 0.3.2 functional
  • 14 Oct 26 +33
    • Injection markers: unverified → pass ▲ security
    • First check of Judged manipulation: pass security
    • Stability: Stability not yet verified: not enough scan history yet (needs a 30-day window). security
    • MCP protocol: unverified → pass ▲ functional
    • Schema quality: unverified → 100 ▲ functional
    • Tool coverage: unverified → 100 ▲ functional
    • First check of Schema quality: fail functional
    • First check of Schema quality: excellent functional
    • First check of Destructive annotations: pass functional
    • First check of Schema quality: pass functional
    • First check of Tool coverage: 100 functional
  • 12 Oct 26 10

    First indexed and scored.

Diagnostics

Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.

Captured 16 Oct 2026 · Analysed oci/ghcr.io/sdamarketing/tgcloud-mcp@0.3.3

Provenance No attestation

The registry publishes no build provenance for this version, so there is nothing to verify.

Result No attestation
Ecosystem oci
Reason No attestation published

Background: How many MCP packages publish verified provenance →

MCP tools · 16 exposed · ~1,987 tokens

The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →

Tool Tokens
add_module ~171

Scaffolds a module with `tgcloud add <target>` (tgcloud/ layout). handlers/<type> is one flat update handler (message, edited_message, callback_query, inline_query, chosen_inline_result, shipping_query, pre_checkout_query, poll, poll_answer, my_chat_member, chat_member, chat_join_request, message_reaction, channel_post, …). endpoints/<name> is a Mini App function (POST /api/<name>; identifier, not starting with a digit). lib/<path> is shared code and may be nested. Existing files are never overwritten.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)
targetstringyesModule path, for example handlers/callback_query, endpoints/getProfile, or lib/cart

No output schema declared.

No examples provided.

create_project ~84

Scaffolds a serverless bot with `npm create @tgcloud/bot <name>` inside parent_dir. Needs Node.js 18+ and the npm registry. Does not overwrite existing files.

NameTypeReqDescription
namestringyesNew project directory name, for example my-bot
parent_dirstringyesAbsolute path of the directory that will contain the new project

No output schema declared.

No examples provided.

deploy ~127

Runs `npm run build` when package.json has a build script, then `tgcloud push`. Use this after front-end edits: a plain push uploads static.source as it sits on disk and never runs the bundler, so it would publish a stale dist. Does not migrate the database and never passes --force. skip_build=true pushes without building. If there is no build script, only push runs.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)
skip_buildboolean–true — skip npm run build and only push

No output schema declared.

No examples provided.

diff ~47

Line-by-line diff of the local project against the deployed snapshot (tgcloud diff). Offline.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

fetch ~53

Updates the local snapshot of what is deployed without touching working files (tgcloud fetch). Use it before resolving a revision conflict.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

init_project ~108

Scaffolds tgcloud into an existing directory (tgcloud init, offline): tgcloud/schema.js, handlers/, endpoints/, lib/, tgcloud.jsonc, AGENTS.md, docs/tgcloud-sdk.md. In a front-end project it detects the bundler, sets static.source, and adds an npm run deploy script (build, then push) without overwriting files you already have.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

login_bot ~159

Runs `tgcloud login` with a CLI access token (app<id>:<secret> from @BotFather → your bot → Serverless → CLI Access → Access token). This is NOT the Bot API token (123456:AA…). The CLI wants a TTY, so the token is written to stdin with TGCLOUD_ASSUME_TTY=1 and masked in every tool result. NEVER show the token to the user after this call. In CI, set TGCLOUD_TOKEN and skip login.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)
tokenstringyesCLI access token from @BotFather (Serverless → CLI Access), form app<id>:<secret>

No output schema declared.

No examples provided.

migrate ~253

Applies schema.js changes to the database (tgcloud migrate). push never does this. dry_run defaults to true (--dry-run): preview only. Applying (dry_run: false) requires confirm: true. apply "safe" passes --safe (auto-apply safe changes, skip warnings and manual steps). apply "yes" or omitting apply passes --yes (safe changes plus every warning, including .deprecated drops that delete data; manual type changes are still skipped). local: true diffs against the local schema.js instead of the deployed one (--local) and can be combined with either mode. Show the user the preview before applying. Warn when the preview contains a drop.

NameTypeReqDescription
applystring–When dry_run is false: "safe" → --safe, "yes" (default) → --yes
confirmboolean–Required confirm: true to apply migrations, including drops of .deprecated columns and tables
dry_runboolean–true (default) — preview only (--dry-run)
localboolean–Diff against local schema.js instead of the deployed schema (--local)
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

pull ~56

Makes the local project match the cloud: updates the snapshot and working files (tgcloud pull). Does not write the Mini App build folder.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

push ~224

Uploads changed modules in one atomic batch (tgcloud push). Without files, mirrors the whole local module set (deletions included) and, when tgcloud.jsonc names static.source, uploads that build folder exactly as it is on disk. push never runs the bundler — after front-end edits call deploy, or the previous build goes live. A targeted push never deletes other modules and leaves static files untouched unless the target is the build folder. push does not migrate the database; it only prints pending schema changes. Adding or removing a handler can leave the webhook out of sync — follow with webhook_sync. force=true skips the revision check and requires confirm: true.

NameTypeReqDescription
confirmboolean–Required confirm: true for destructive operations (the --force flag, reset, and similar)
filesarray–Specific files or directories to deploy; omit to deploy every change
forceboolean–Pass --force (dangerous, requires confirm: true)
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

reset ~91

DESTRUCTIVE: discards local module edits and restores the working tree from the last known cloud snapshot (tgcloud reset). Does not touch the Mini App build folder. Requires confirm: true.

NameTypeReqDescription
confirmboolean–Required confirm: true for destructive operations (the --force flag, reset, and similar)
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

run_handler ~200

Runs a handler or an endpoint on the platform using local files, without publishing them (tgcloud run). args is the payload (a Message for handlers/message, or the endpoint input) as a JSON5 object. ctx is the second argument (--ctx): the raw update for a handler, or initData for an endpoint, for example { initData: { user: { id: 1, first_name: "Ann" } } }. Returns the value, captured console logs, and elapsed time.

NameTypeReqDescription
argsstring–Handler payload or endpoint input as JSON5, for example '{ chat: { id: 1 }, text: "hi" }'
ctxstring–Second-argument context as JSON5 (passed as --ctx)
modulestringyesModule path, for example handlers/message or endpoints/getProfile
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

status ~76

Shows local changes against the deployed snapshot (tgcloud status). Offline. Also reports stray .js files inside tgcloud/ that will not deploy, Mini App static diffs, and a webhook that is out of sync with the deployed handlers.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

upgrade ~141

One-time move of schema.js, handlers/, and lib/ from the project root into tgcloud/ (tgcloud upgrade). Required before other commands on projects created before CLI 0.2.0. Keeps the bot link; nothing needs to be redeployed. dry_run defaults to true and only prints the planned moves. Applying (dry_run: false) requires confirm: true.

NameTypeReqDescription
confirmboolean–Required confirm: true when dry_run is false
dry_runboolean–true (default) — print planned moves only (--dry-run)
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

webhook_status ~85

Shows the platform-managed webhook (tgcloud webhook): URL, allowed_updates, pending update count, the last delivery error, and whether it is in sync with the deployed handlers. First step when a bot is silent. Deploying or removing a handler can leave it out of sync.

NameTypeReqDescription
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

webhook_sync ~112

Points the webhook at the platform and rebuilds allowed_updates from deployed handlers (tgcloud webhook sync). Call it after adding or removing a handler. drop_pending=true discards updates Telegram already queued — destructive, requires confirm: true.

NameTypeReqDescription
confirmboolean–Required confirm: true when drop_pending is true
drop_pendingboolean–Discard queued updates (--drop-pending, requires confirm: true)
project_dirstringyesAbsolute path to a tgcloud project directory (contains .tgcloud/)

No output schema declared.

No examples provided.

Install

How do I install the tgcloud — Telegram serverless bots MCP server?

tgcloud — Telegram serverless bots runs locally as a container image, launched with docker run --rm -i -e TGCLOUD_TOKEN ghcr.io/sdamarketing/tgcloud-mcp:0.3.3. Ready-made configuration for Claude, Cursor, VS Code, Codex and 3 more is on this page, copied from each client's own documentation.

oci · ghcr.io/sdamarketing/tgcloud-mcp

# add to Claude Code
claude mcp add sdamarketing-tgcloud-mcp -- docker run --rm -i -e TGCLOUD_TOKEN ghcr.io/sdamarketing/tgcloud-mcp:0.3.3

This image reads TGCLOUD_TOKEN. Set it in your client's env block for this server; docker run -e passes it through to the container.

Common questions

What is the tgcloud — Telegram serverless bots MCP server?

tgcloud — Telegram serverless bots is an MCP server listed in the public MCP registry as io.github.sdamarketing/tgcloud-mcp. MCP server for Telegram serverless bots: lifecycle, deploys, migrations, webhooks via tgcloud CLI. This page covers its container image (ghcr.io/sdamarketing/tgcloud-mcp).

Is the tgcloud — Telegram serverless bots MCP server safe to use?

tgcloud — Telegram serverless bots scores 43 out of 100 on VerifyMCP. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.

What tools does the tgcloud — Telegram serverless bots MCP server expose?

tgcloud — Telegram serverless bots exposes 16 tools: create_project, init_project, login_bot, add_module, upgrade, and 11 more. Their descriptions and schemas cost roughly 1,987 tokens of context every time the server is loaded.

Is the tgcloud — Telegram serverless bots MCP server still maintained?

tgcloud — Telegram serverless bots is still listed as active in the MCP registry. We last reached this channel on 16 October 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.

What licence is the tgcloud — Telegram serverless bots MCP server under?

tgcloud — Telegram serverless bots declares the MIT licence, which is OSI-approved. That covers the source only, and says nothing about the cost of any service it calls.