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.

TgPay Merchant API

REMOTE · APP.TGPAYCRYPTO.COM · SCANNED SEP 20

Accept crypto payments via the TgPay Merchant API — invoices, subscriptions, webhooks.

+4 this week 66 Trust /100
Trust breakdown (7 categories)

How this component scores in each security and reliability category. Every signal is checked automatically against the live server, and we only credit what we can confirm. How we score → Why this is hard to score →

Endpoint Security63
Transport & Reachability100
Schema Quality & AI Usability47
  • 0% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Fail
  • AI-judged instruction clarity (good).Pass
  • Tool/resource definitions use about 1457 tokens (~56/item across 26 items; 20 tools + 6 resources), lean.Pass
  • Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management39
  • Stability check failed: schema churn in the 13 days we've observed: 1 tool removals, 0 breaking changes, 0 auth/transport breaks, 0 additions. See how to fix → Fail
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 Safety100
  • No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
  • All 2 tool(s) whose name or description implies an irreversible operation declare an MCP destructiveHint annotation.Pass
  • An AI judge read all 22 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities60
  • Spec-recency check failed: implements MCP spec 2025-06-18; the latest is 2026-07-28. See how to fix → Fail
Install

How do I install the TgPay Merchant API MCP server?

TgPay Merchant API is a hosted endpoint at https://app.tgpaycrypto.com/mcp, so there is nothing to install locally. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.

remote · app.tgpaycrypto.com

# add to Claude Code
claude mcp add --transport http com-tgpaybot-merchant-api 'https://app.tgpaycrypto.com/mcp'
// .cursor/mcp.json
{
  "mcpServers": {
    "com-tgpaybot-merchant-api": {
      "url": "https://app.tgpaycrypto.com/mcp"
    }
  }
}
// .vscode/mcp.json
{
  "servers": {
    "com-tgpaybot-merchant-api": {
      "type": "http",
      "url": "https://app.tgpaycrypto.com/mcp"
    }
  }
}
# ~/.codex/config.toml
[mcp_servers.com-tgpaybot-merchant-api]
url = "https://app.tgpaycrypto.com/mcp"
// opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "com-tgpaybot-merchant-api": {
      "type": "remote",
      "url": "https://app.tgpaycrypto.com/mcp",
      "enabled": true
    }
  }
}
# add to OpenClaw
openclaw mcp add com-tgpaybot-merchant-api --url 'https://app.tgpaycrypto.com/mcp' --transport streamable-http
# ~/.hermes/config.yaml
mcp_servers:
  com-tgpaybot-merchant-api:
    url: "https://app.tgpaycrypto.com/mcp"
// ~/.netclaw/config/netclaw.json
{
  "McpServers": {
    "com-tgpaybot-merchant-api": {
      "Transport": "http",
      "Url": "https://app.tgpaycrypto.com/mcp"
    }
  }
}
# add to Vellum
assistant mcp add com-tgpaybot-merchant-api -t streamable-http -u 'https://app.tgpaycrypto.com/mcp'
// mcp.json
{
  "mcpServers": {
    "com-tgpaybot-merchant-api": {
      "type": "http",
      "url": "https://app.tgpaycrypto.com/mcp"
    }
  }
}

The mcpServers block is a cross-client convention. Remote transports vary, so check your client's docs.

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.

  • 20 Sept 26 +1
    • Server version: fb6f07c9 → d0ee41ae functional
  • 19 Sept 26 0
    • Server version: 573bdd8f → fb6f07c9 functional
  • 18 Sept 26 +1

    No change was recorded against any check on this day. Stability & Change Management went from 29 to 32.

  • 17 Sept 26 0
    • Server version: 6706b389 → 573bdd8f functional
  • 16 Sept 26 +1
    • Server version: 66d6cabb → 6706b389 functional
  • 15 Sept 26 0
    • Server version: 367e837f → 66d6cabb functional
  • 14 Sept 26 +1
    • Server version: e27cef20 → 367e837f functional
  • 13 Sept 26 +2
    • Stability: 0.17 → fail security
    • Tool “refundInvoice” was removed security
    • HSTS header: fail → pass security
    • Server version: 6fe4f6e4 → e27cef20 functional
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 20 Sept 2026 · Probed https://app.tgpaycrypto.com/mcp

TLS valid

Negotiated TLS 1.3 with TLS_AES_128_GCM_SHA256 .

Subject Issuer Valid from Valid until Key Signature Serial
CN=tgpaycrypto.com CN=WE1,O=Google Trust Services,C=US 7 Sept 2026 6 Dec 2026 ECDSA 256 ECDSA-SHA256 8597273705683081139f2f7c9f98f72a
SANs: tgpaycrypto.com, *.tgpaycrypto.com
CN=WE1,O=Google Trust Services,C=US (CA) CN=GTS Root R4,O=Google Trust Services LLC,C=US 13 Dec 2023 20 Feb 2029 ECDSA 256 ECDSA-SHA384 7ff31977972c224a76155d13b6d685e3
CN=GTS Root R4,O=Google Trust Services LLC,C=US (CA) CN=GlobalSign Root CA,OU=Root CA,O=GlobalSign nv-sa,C=BE 15 Nov 2023 28 Jan 2028 ECDSA 384 SHA256-RSA 7fe530bf331343bedd821610493d8a1b

Background: What to check on a remote MCP endpoint →

DNSSEC insecure

Validation of app.tgpaycrypto.com. Not signed

Zone DS Keys Algorithms Outcome
. trust_anchor 20326, 38696 8, 8 Verified
com. present 19718 13 Verified
tgpaycrypto.com. absent Unsigned (proven) parent-signed NSEC/NSEC3 proves an unsigned delegation
Authentication No authorisation required

The endpoint answered without asking for a token. Anyone who knows the URL can reach it.

Result No authorisation required
HTTP status 200
Header Value
strict-transport-security max-age=63072000; includeSubDomains
content-security-policy frame-ancestors 'self' https://web.telegram.org
x-content-type-options nosniff
referrer-policy no-referrer

Background: How OAuth 2.1 works in the 2026 MCP spec →

Transports 2 probes
Transport URL Outcome Status Location
streamable-http https://app.tgpaycrypto.com/mcp Verified 200
http (plaintext) http://app.tgpaycrypto.com/mcp HTTPS enforced 301 https://app.tgpaycrypto.com/mcp
MCP tools · 20 exposed · ~1,330 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
archiveSubscriptionPlan ~34

Stop new signups for a plan (live subscriptions keep renewing).

NameTypeReqDescription
plan_idintegeryesThe plan to archive.

No output schema declared.

No examples provided.

cancelSubscription ~30

Stop future charges for one subscription (paid time runs out).

NameTypeReqDescription
subscription_idintegeryesThe subscription.

No output schema declared.

No examples provided.

connect ~104

Start token issuance WITHOUT the Mini App UI: creates a merchant-app request and returns a t.me approve link plus a poll_secret. Show the link to the human — they approve with one button in the @tgpaycryptobot bot — then call connect_status with the poll_secret. Use only when no API token is configured yet.

NameTypeReqDescription
app_namestringyesMerchant app name shown to the approving human, 1-64 chars (e.g. the project/bot name).

No output schema declared.

No examples provided.

connect_status ~120

Poll a connect request. Returns pending | denied | expired, or — once approved — the app id and the API TOKEN (returned exactly once: save it to the project's .env immediately, never print it in logs). The token is SCOPED (read, invoices, subscriptions, webhooks) — it cannot move money out of the app; transfers/refunds/checks need the primary token the human holds in the Mini App. Poll every 3-5 seconds while pending.

NameTypeReqDescription
poll_secretstringyesThe poll_secret from the connect tool.

No output schema declared.

No examples provided.

createInvoice ~282

Create a one-off payment invoice; the payer opens result.mini_app_invoice_url. See the invoices doc.

NameTypeReqDescription
accepted_assetsstringFiat mode: comma-separated assets the payer may pay in.
allow_anonymousbooleanDefault true.
allow_commentsbooleanDefault true.
amountstringDecimal string in MAJOR units, e.g. "5" = 5 USDT. Never a float. Omit for an open-amount invoice.
assetstringAsset code (crypto mode).
currency_typestringcrypto (default) | fiat.
descriptionstringShown to the payer (≤1024).
expires_inintegerInvoice TTL in seconds.
fiatstringFiat code (fiat mode).
hidden_messagestringRevealed to the payer ONLY after payment (≤2048).
paid_btn_namestringviewItem | openChannel | openBot | callback.
paid_btn_urlstringURL for the paid button.
payloadstringOpaque data echoed back in the webhook (≤4096).
rate_lock_secondsintegerFiat mode: freeze crypto quotes for this long.
swap_tostringAuto-convert the received amount to this asset.

No output schema declared.

No examples provided.

createSubscriptionPlan ~113

Create an IMMUTABLE recurring-billing plan; send payers to result.mini_app_subscribe_url. See the subscriptions doc.

NameTypeReqDescription
amountstringyesDecimal string in MAJOR units, e.g. "5" = 5 USDT. Never a float. Charged per period.
assetstringyesAsset code, e.g. USDT.
namestringyesPlan name shown to payers (≤64).
period_daysintegeryesBilling period in days.

No output schema declared.

No examples provided.

deleteCheck ~31

Delete an unclaimed check (refunds the hold).

NameTypeReqDescription
check_idintegeryesThe check to delete.

No output schema declared.

No examples provided.

deleteInvoice ~25

Delete an unpaid invoice.

NameTypeReqDescription
invoice_idintegeryesThe invoice to delete.

No output schema declared.

No examples provided.

get_docs ~61

Read a TgPay Merchant API integration doc. START HERE before integrating: topics quickstart, invoices, subscriptions, transfers-checks, webhooks, errors.

NameTypeReqDescription
topicstringyesquickstart | invoices | subscriptions | transfers-checks | webhooks | errors

No output schema declared.

No examples provided.

getBalance ~19

Merchant app balance per asset (available + onhold).

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

getChecks ~67

List checks.

NameTypeReqDescription
assetstringFilter by asset code.
check_idsstringComma-separated ids.
countintegerPage size (default 100).
offsetintegerSkip this many.
statusstringactive | activated.

No output schema declared.

No examples provided.

getCurrencies ~22

Supported crypto assets (code/name/decimals) and fiats.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

getExchangeRates ~18

Current asset↔fiat display rates.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

getInvoices ~84

List invoices (newest first).

NameTypeReqDescription
assetstringFilter by asset code.
countintegerPage size (default 100).
fiatstringFilter by fiat code.
invoice_idsstringComma-separated ids.
offsetintegerSkip this many.
statusstringactive | paid | expired.

No output schema declared.

No examples provided.

getMe ~23

Verify the token: app id, name, webhook config, token scopes.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

getStats ~44

App volume/count stats for a period.

NameTypeReqDescription
end_atstringISO 8601 period end.
start_atstringISO 8601 period start.

No output schema declared.

No examples provided.

getSubscriptionPlans ~13

List subscription plans.

Input schema present but exposes no named parameters.

No output schema declared.

No examples provided.

getSubscriptions ~52

List subscriptions (subscribers).

NameTypeReqDescription
plan_idintegerFilter by plan.
statusstringactive | grace | cancelled | expired.
user_idintegerFilter by Telegram user id.

No output schema declared.

No examples provided.

getTransfers ~74

List app→user transfers.

NameTypeReqDescription
assetstringFilter by asset code.
countintegerPage size (default 100).
offsetintegerSkip this many.
spend_idstringFilter by idempotency key.
transfer_idsstringComma-separated ids.

No output schema declared.

No examples provided.

updateApp ~114

Update app name / webhook_url (https) / webhook_events opt-in list. Needs the 'webhooks' scope (the connect-issued token has it) or the primary token. See the webhooks doc for the event types and signature verification.

NameTypeReqDescription
namestringNew app name (1-64).
webhook_eventsarrayExtended event types to opt into (invoice_paid is always delivered); [] = invoice_paid-only.
webhook_urlstringhttps URL for webhook delivery; "" clears it.

No output schema declared.

No examples provided.

Common questions

What is the TgPay Merchant API MCP server?

TgPay Merchant API is an MCP server listed in the public MCP registry as com.tgpaybot/merchant-api. Accept crypto payments via the TgPay Merchant API, invoices, subscriptions, webhooks. This page covers its hosted endpoint (https://app.tgpaycrypto.com/mcp).

Is the TgPay Merchant API MCP server safe to use?

TgPay Merchant API scores 66 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 TgPay Merchant API MCP server expose?

TgPay Merchant API exposes 20 tools: get_docs, connect, connect_status, getMe, getBalance, and 15 more. Their descriptions and schemas cost roughly 1,330 tokens of context every time the server is loaded.

Does the TgPay Merchant API MCP server require authentication?

No. We connected to TgPay Merchant API without credentials and it answered, so anything it exposes is reachable by anyone who knows the address.

Is the TgPay Merchant API MCP server still maintained?

TgPay Merchant API is still listed as active in the MCP registry. We last reached this channel on 20 September 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.