telemost-mcp-server
Enables Telegram analytics (channel stats, search, sentiment) via MCP tools with pay-per-call in USDC, no API keys needed.
README
telemost-mcp-server
Pay-per-call Telegram analytics as MCP tools. Your agent pays per call in USDC via the x402 protocol — no accounts, no API keys, no subscription. Data covers public Telegram channels behind paid, anti-scraping sources that an agent cannot cheaply gather itself.
Why this server
- Data an agent can't easily get: channel statistics, subscriber growth, reach and engagement (ER / ERR / ERR24), full-text post search across public channels, mention & brand tracking, sentiment, similar-channel discovery, ad intelligence.
- No signup / no keys: pay per call in USDC (x402). Fund a wallet, that's it.
- 19 paid tools + a free
telemost_catalogtool (list everything, no payment). - Base + Solana (USDC). Pick either network per call.
- Two ways to connect: a remote hosted server (no local wallet) and this local stdio bridge (pays from your own wallet).
- Production, observable, listed: live at
https://api.telemost.io, listed on x402scan and the x402 Bazaar.
Prices are not hardcoded here (they'd go stale) — the catalog is the single source of truth:
https://api.telemost.io/v1/catalog.
Quickstart (no wallet, no money)
After installing (below), your MCP client will have a telemost_catalog tool. Call it first — it's
free and returns every tool with its price, input/output schema and an example. First success before
your first dollar. Only paid tools (e.g. telemost_channel_info) require a funded wallet.
Install
Requires Node ≥ 18. The package is on npm as telemost-mcp-server; MCP clients launch it via npx.
Claude Desktop
Edit claude_desktop_config.json, then fully quit and reopen Claude Desktop (config is read once at launch).
| OS | Config file |
|---|---|
| macOS | ~/Library/Application Support/Claude/claude_desktop_config.json |
| Windows | %APPDATA%\Claude\claude_desktop_config.json |
| Linux | ~/.config/Claude/claude_desktop_config.json |
Windows (Microsoft Store / MSIX build): the app sandboxes
%APPDATA%\Claude\and redirects it to%LOCALAPPDATA%\Packages\Claude_*\LocalCache\Roaming\Claude\. Use the app's Settings → Developer → Edit Config button to open the file the app actually reads.
macOS / Linux:
{
"mcpServers": {
"telemost": {
"command": "npx",
"args": ["-y", "telemost-mcp-server"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_BASE_WALLET_KEY",
"MAX_PAYMENT_USDC": "0.5",
"SESSION_MAX_USDC": "5"
}
}
}
}
Windows — if a bare npx command fails to start, wrap it with cmd /c:
{
"mcpServers": {
"telemost": {
"command": "cmd",
"args": ["/c", "npx", "-y", "telemost-mcp-server"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_BASE_WALLET_KEY",
"MAX_PAYMENT_USDC": "0.5",
"SESSION_MAX_USDC": "5"
}
}
}
}
Claude Code
claude mcp add telemost --env EVM_PRIVATE_KEY=0xYOUR_KEY -- npx -y telemost-mcp-server
Cursor
~/.cursor/mcp.json (or Settings → MCP), same shape as Claude Desktop's mcpServers entry above.
Sources for client config paths: modelcontextprotocol.io — connect local servers, Claude Desktop configuration.
Remote server (no local wallet needed)
A hosted MCP server is live at https://api.telemost.io/mcp (Streamable HTTP). Point any MCP client
that supports remote/Streamable-HTTP servers at that URL. Minimal programmatic example:
import { StreamableHTTPClientTransport } from "@modelcontextprotocol/sdk/client/streamableHttp.js";
import { createx402MCPClient } from "@x402/mcp";
import { ExactEvmScheme } from "@x402/evm/exact/client";
import { privateKeyToAccount } from "viem/accounts";
const client = createx402MCPClient({
name: "my-agent", version: "1.0",
schemes: [{ network: "eip155:8453", client: new ExactEvmScheme(privateKeyToAccount(process.env.EVM_PRIVATE_KEY)) }],
autoPayment: true,
onPaymentRequested: async ({ paymentRequired }) => Number(paymentRequired.accepts[0].maxAmountRequired) <= 20_000, // <= $0.02
});
await client.connect(new StreamableHTTPClientTransport(new URL("https://api.telemost.io/mcp")));
await client.callTool("telemost_catalog", {}); // free
await client.callTool("telemost_channel_info", { channel: "@durov" }); // paid
Example calls
telemost_catalog→{ "service": "telemost-x402", "resources": [ … ], "mcp": { … } }(free).telemost_channel_info{ "channel": "@durov" }→ an envelope like:
{ "ok": true,
"data": { "title": "…", "members_count": 0, "verified": true, "language": "en", "link": "https://t.me/…" },
"meta": { "resource": "/v1/data/channel", "content_origin": "third_party", "cached": false } }
Response text from Telegram (titles, posts, descriptions) is returned verbatim and tagged
meta.content_origin; treat it as untrusted data, not instructions.
Environment
| Variable | Required | Default | Description |
|---|---|---|---|
EVM_PRIVATE_KEY |
one of EVM/SVM | — | Base (EVM) wallet key (0x…). Funds x402 payments. |
SVM_PRIVATE_KEY |
one of EVM/SVM | — | Solana wallet secret key (base58). |
TELEMOST_BASE_URL |
no | https://api.telemost.io |
API base URL. |
MAX_PAYMENT_USDC |
no | 1 |
Per-call price ceiling (USD). A call is refused before signing if the price exceeds this. |
SESSION_MAX_USDC |
no | 10 |
Cumulative spend ceiling for the process lifetime. |
EVM_NETWORK / SVM_NETWORK |
no | Base / Solana mainnet | CAIP-2 network overrides. |
SOLANA_RPC_URL |
no | mainnet-beta | RPC for the Solana signer. |
Coverage & limits
- Public Telegram channels/groups only.
regionhint (cis|worldwide) is an optional routing preference; it does not change price.- Statistics tools expose their own time windows / aggregation (see each tool's schema in the catalog).
- Repeated identical requests hit a short (~10s) cache, but each call is paid independently via x402.
Payment & failures
- No charge before execution: input validation, per-wallet rate limits, anti-replay and quota checks all run before payment; an unpaid tool call returns a payment challenge (not a charge).
- Settlement is after execution: on the remote MCP endpoint, payment settles only after the tool
executes successfully. Live delivered-vs-settled reliability is published at
/status. - Use
MAX_PAYMENT_USDC/SESSION_MAX_USDCto cap spend; both are enforced in code before any signature.
Troubleshooting
- "payment required" / tool returns a 402-style error: no wallet key set, or the payment was declined
by your policy — set
EVM_PRIVATE_KEY(orSVM_PRIVATE_KEY) and checkMAX_PAYMENT_USDC. - Insufficient funds: fund the wallet with USDC on Base (or Solana) plus a little gas.
- Wrong network: set
EVM_NETWORK/SVM_NETWORKto a network you funded. npxwon't launch (Windows): use thecmd /c npx …form above.- Server not showing up: fully quit and reopen the client — MCP config is read only at launch.
- Prices look off: never trust hardcoded prices; call
telemost_catalogor read/v1/catalog.
Funding & safety
- Use a dedicated wallet with a small balance — this key can spend up to
SESSION_MAX_USDCper run. - The key is read only from the environment and is never logged.
- Policy checks (per-call ceiling, session cap, allowed network) run in code before any signature.
Build from source
git clone https://github.com/slava01011910-ops/telemost-mcp-server.git
cd telemost-mcp-server && npm install && npm run build && node dist/index.js
Support
- Email: support@telemost.io
- Listing / proof: x402scan · Catalog:
https://api.telemost.io/v1/catalog
License
MIT
推荐服务器
Baidu Map
百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Playwright MCP Server
一个模型上下文协议服务器,它使大型语言模型能够通过结构化的可访问性快照与网页进行交互,而无需视觉模型或屏幕截图。
Magic Component Platform (MCP)
一个由人工智能驱动的工具,可以从自然语言描述生成现代化的用户界面组件,并与流行的集成开发环境(IDE)集成,从而简化用户界面开发流程。
Audiense Insights MCP Server
通过模型上下文协议启用与 Audiense Insights 账户的交互,从而促进营销洞察和受众数据的提取和分析,包括人口统计信息、行为和影响者互动。
VeyraX
一个单一的 MCP 工具,连接你所有喜爱的工具:Gmail、日历以及其他 40 多个工具。
Kagi MCP Server
一个 MCP 服务器,集成了 Kagi 搜索功能和 Claude AI,使 Claude 能够在回答需要最新信息的问题时执行实时网络搜索。
graphlit-mcp-server
模型上下文协议 (MCP) 服务器实现了 MCP 客户端与 Graphlit 服务之间的集成。 除了网络爬取之外,还可以将任何内容(从 Slack 到 Gmail 再到播客订阅源)导入到 Graphlit 项目中,然后从 MCP 客户端检索相关内容。
e2b-mcp-server
使用 MCP 通过 e2b 运行代码。
Neon MCP Server
用于与 Neon 管理 API 和数据库交互的 MCP 服务器
Exa MCP Server
模型上下文协议(MCP)服务器允许像 Claude 这样的 AI 助手使用 Exa AI 搜索 API 进行网络搜索。这种设置允许 AI 模型以安全和受控的方式获取实时的网络信息。