io.telemost/telemost-mcp-server
Telegram channel analytics and statistics for AI agents, pay-per-call in USDC via x402.
Open source Repository Open in the app JSON README (API)
About
Telegram channel analytics and statistics for AI agents, pay-per-call in USDC via x402.
Details
- Kind
- MCP servers
- Topic
- Finance & crypto
- Publisher
- io.telemost
- Origin
- official
- Category
- ferramentas
- Transport
- http
- Version
- 0.2.2
- Stars
- 1
- Last push
- 2026-07-13T07:47:29Z
- Repository state
- ativo
- Language
- JavaScript
- License
- MIT
- Added
- 2026-08-29 04:01:46
- Updated
- 2026-08-29 04:01:46
- Origin id
io.telemost/telemost-mcp-server
README
# telemost-mcp-server
Pay-per-call **Telegram analytics** as MCP tools. Your agent pays per call in **USDC** via the
[x402](https://x402.org) 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_catalog`** tool (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](https://www.x402scan.com/resources) 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`](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:**
```json
{
"mcpServers": {
"telemost": {
"command": "npx",
"args": ["-y", "telemost-mcp-server"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_BASE_WALLET_KEY",
"MAX_PAYMENT_USDC": "2.5",
"SESSION_MAX_USDC": "10"
}
}
}
}
```
**Windows** — if a bare `npx` command fails to start, wrap it with `cmd /c`:
```json
{
"mcpServers": {
"telemost": {
"command": "cmd",
"args": ["/c", "npx", "-y", "telemost-mcp-server"],
"env": {
"EVM_PRIVATE_KEY": "0xYOUR_BASE_WALLET_KEY",
"MAX_PAYMENT_USDC": "2.5",
"SESSION_MAX_USDC": "10"
}
}
}
}
```
### Claude Code
```bash
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](https://modelcontextprotocol.io/docs/develop/connect-local-servers),
[Claude Desktop configuration](https://claude.com/docs/third-party/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:
```ts
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:
```json
{ "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 | `2.5` | Per-call price ceiling (USD); the default covers every price in the catalog. 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.
- `region` hint (`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`](https://api.telemost.io/status).
- Use `MAX_PAYMENT_USDC` / `SESSION_MAX_USDC` to 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` (or `SVM_PRIVATE_KEY`) and check `MAX_PAYMENT_USDC`.
- **Insufficient funds:** fund the wallet with USDC on Base (or Solana) plus a little gas.
- **Wrong network:** set `EVM_NETWORK` / `SVM_NETWORK` to a network you funded.
- **`npx` won't launch (Windows):** use the `cmd /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_catalog` or read `/v1/catalog`.
## Funding & safety
- Use a **dedicated wallet with a small balance** — this key can spend up to `SESSION_MAX_USDC` per 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
```bash
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](https://www.x402scan.com/resources) · Catalog: `https://api.telemost.io/v1/catalog`
## License
MIT