A professional MCP server providing real-time blockchain data access, comprehensive token analysis, and automated price alerts via Telegram. All tools utilize free APIs suitable for personal usage.
Crypto traders miss critical opportunities due to:
- Manual price monitoring across multiple DEXs
- Delayed whale movement notifications
- Scattered blockchain data sources
- Complex API integrations
Whalert provides a unified MCP server that:
- Automates price monitoring with 5-minute checks
- Delivers alerts when conditions trigger
- Simplifies blockchain data access through natural language tools
Result: Traders can focus on strategy while Whalert handles monitoring. Can be easily integrated to your OWN Agent to use for any other blockchain purposes you need it for. No matter if you are a Trader, Researcher, Portfolio Manager or anyone else!
Set a price alert for PEPE when it reaches $0.000001
The system will:
- Search for PEPE token
- Show you matching options
- Confirm your selection
- Monitor price every 5 minutes
- Send Telegram notification when target is reached
Analyze BTC/USDT on 1h timeframe
Show me the token balance for wallet 0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb
Show me recent whale transactions over $100,000
graph TB
subgraph Client["**AI Agent Layer**"]
A[MCP Client<br/>Roo Code / Cline / Claude]
end
subgraph Server["**Whalert MCP Server**"]
B[SSE Endpoint]
C[Tool Router]
D[Alert Engine]
E[Telegram Handler]
end
subgraph APIs["**External APIs**"]
F[Moralis<br/>Wallet & NFT Data]
G[DexCheck<br/>Whale Tracking]
H[Taapi<br/>Technical Analysis]
I[DEX Screener<br/>Token Prices]
end
subgraph Storage["**Persistent Layer**"]
J[Cloudflare<br/>Storage]
K[Telegram Bot<br/>Notifications]
end
A <-->|NullShot's MCP| B
B --> C
C -->|Token Data| F
C -->|Whale Txns| G
C -->|Indicators| H
C -->|Price Info| I
C <-->|Store/Retrieve| J
D -->|Check Alerts| J
D -->|Price Data| I
D -->|Send Alert| K
E <-->|Bot Commands| K
classDef clientStyle fill:#7B68EE,stroke:#5D4FB3,stroke-width:3px,color:#fff,font-weight:bold
classDef serverStyle fill:#4A90E2,stroke:#2E5C8A,stroke-width:2px,color:#fff
classDef apiStyle fill:#50C878,stroke:#3A9B5C,stroke-width:2px,color:#fff
classDef storageStyle fill:#FF6B6B,stroke:#CC5555,stroke-width:2px,color:#fff
class A clientStyle
class B,C,D,E serverStyle
class F,G,H,I apiStyle
class J,K storageStyle
| Tool | Description |
|---|---|
| tokenPriceAlert | Set up price alerts with Telegram notifications for specific tokens |
| tokenAnalyzer | Technical analysis using RSI, MACD, EMA, Bollinger Bands, and more |
| tokenSecurityChecker | Comprehensive security audit for token contracts (honeypot detection, ownership risks) |
| tokenSearchAndInfo | Search tokens by name/symbol and retrieve metadata (price, market cap, DEX info) |
| whaleTracker | Monitor large whale transactions across ETH and BSC chains |
| transactionTracker | Decode transaction hashes into human-readable format |
| getWalletTokenBalance | Check token holdings across multiple chains (ETH, Avalanche, BSC) |
| getWalletTokenTransactions | Retrieve recent transaction history for any wallet |
| getNFTByWallet | View NFT collections owned by a wallet address |
| getFearAndGreed | Get current crypto market sentiment index |
| API Key | Used By | Get It From |
|---|---|---|
MORALIS_API_KEY |
transactionTracker, getWalletTokenTransactions, getWalletTokenBalance, getNFTByWallet | moralis.io |
DEXCHECK_API_KEY |
whaleTracker | dexcheck.ai |
TAAPI_API_KEY |
tokenAnalyzer | taapi.io |
TGBOT_TOKEN |
tokenPriceAlert (Telegram notifications) | @BotFather on Telegram |
- Open Telegram and search for @BotFather
- Send
/newbotcommand - Follow the prompts to create your bot
- Copy the token provided (format:
123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11) - Get your Chat ID:
- Send
/startto the deployed bot (after setting webhook, etc.) - Copy the Chat ID number provided
- Send
Create a .dev.vars file in the project root:
MORALIS_API_KEY=your_moralis_key_here
DEXCHECK_API_KEY=your_dexcheck_key_here
TAAPI_API_KEY=your_taapi_key_here
TGBOT_TOKEN=your_telegram_bot_token_hereUse Wrangler secrets for secure storage:
npx wrangler secret put MORALIS_API_KEY
npx wrangler secret put DEXCHECK_API_KEY
npx wrangler secret put TAAPI_API_KEY
npx wrangler secret put TGBOT_TOKENnpx wrangler devnpx wrangler deployAfter deployment, note your worker URL (e.g., https://your-worker.workers.dev)
Set up the webhook so your bot can receive commands. Replace <YOUR_BOT_TOKEN> and <YOUR_WORKER_URL> with your actual values:
https://api.telegram.org/bot<YOUR_BOT_TOKEN>/setWebhook?url=<YOUR_WORKER_URL>/telegram-webhook
Example:
https://api.telegram.org/bot123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11/setWebhook?url=https://blockchain-mcp.workers.dev/telegram-webhook
Open this URL in your browser. You should see:
{"ok":true,"result":true,"description":"Webhook was set"}Send /start to your bot on Telegram. You should receive a welcome message with your Chat ID.
Add to your MCP settings configuration:
{
"mcpServers": {
"whalert": {
"type": "sse",
"url": "https://your-worker.workers.dev/sse",
"alwaysAllow": [
"tokenPriceAlert",
"confirmTokenAlert",
"cancelAlert",
"getWalletTokenTransactions",
"getWalletTokenBalance",
"transactionTracker",
"whaleTracker",
"tokenAnalyzer",
"tokenSecurityChecker",
"tokenSearchAndInfo",
"getFearAndGreed",
"getNFTByWallet"
],
"timeout": 300
}
}
}| Tool | Description | Parameters | Required | Default |
|---|---|---|---|---|
| tokenPriceAlert | Sets up price alerts with Telegram notifications for specific tokens | searchQuery - Token name, symbol, or contract addressalertType - Type: "price_above", "price_below", "percent_change"targetValue - Target price (USD) or percentagetelegramChatId - Your Telegram chat ID |
All required | - |
| confirmTokenAlert | Confirms and activates a price alert after token selection | tokenChoice - Token number (1-5) from listpairAddress - Pair address of chosen tokentokenAddress - Contract addresstokenSymbol - Token symboltokenName - Token namechainId - Blockchain networkcurrentPrice - Current USD pricealertType - Alert typetargetValue - Target valuetelegramChatId - Telegram chat ID |
All required | - |
| cancelAlert | Cancels an active price alert by its ID | alertId - Alert ID to canceltelegramChatId - Chat ID for confirmation |
All Required | - |
| tokenAnalyzer | Technical analysis using RSI, MACD, EMA, Bollinger Bands, etc. | symbol - Trading pair (e.g., BTC/USDT)interval - Timeframe: 1m, 5m, 15m, 30m, 1h, 2h, 4h, 12h, 1d, 1w |
All required | - |
| tokenSecurityChecker | Comprehensive security audit for token contracts | contractAddress - Token contract address (0x...)chainId - Chain ID (1=Ethereum, 56=BSC, etc.) |
contractAddress required |
chainId: 1 |
| tokenSearchAndInfo | Search tokens and retrieve metadata (price, market cap, DEX info) | searchQuery - Token name or symbol |
Required | - |
| whaleTracker | Monitor large whale transactions across ETH and BSC chains | minUsd - Minimum USD value for transactionspage - Page number for pagination |
None required | minUsd: 10000 page: 1 |
| transactionTracker | Decode transaction hashes into human-readable format | txHash - Transaction hash (starts with 0x)chain - Blockchain: eth, bsc, polygon, avalanche, fantom, arbitrum, optimism |
txHash required |
chain: eth |
| getWalletTokenBalance | Check token holdings across multiple chains | walletAddress - Wallet address (0x...)minValue - Minimum USD value to include |
walletAddress required |
minValue: 1 |
| getWalletTokenTransactions | Retrieve recent transaction history (last 5) for any wallet | walletAddress - Wallet address (0x...)chain - Chain: eth, avalanche, bsc (checks all if not provided) |
walletAddress required |
- |
| getNFTByWallet | View NFT collections owned by a wallet address | walletAddress - Wallet address (0x...)chain - Chain: eth, sepolia, polygon, bsc, arbitrum, base, optimism, avalanche, etc. |
All required | - |
| getFearAndGreed | Get current crypto market sentiment index (0-100 scale) | None | - | - |
| API | Monthly Limit |
|---|---|
| Moralis | 40,000 credits/day |
| DexCheck | 5,000 requests/month |
| Taapi | 5,000 requests/month |
| DEX Screener | Unlimited |
getWalletTokenBalance / getWalletTokenTransactions:
- Ethereum (eth)
- Avalanche (avalanche)
- Binance Smart Chain (bsc)
- Monad (monad)
getNFTByWallet:
- eth, sepolia, holesky, polygon, amoy, bsc, bsc testnet, arbitrum, base, base sepolia, optimism, linea, linea sepolia, avalanche, fantom, cronos, gnosis, gnosis testnet, chiliz, chiliz testnet, moonbeam, moonriver, moonbase, flow, flow-testnet, ronin, ronin-testnet, lisk, lisk-sepolia, pulse, sei, sei-testnet, monad
tokenSecurityChecker Chain IDs:
- 1 = Ethereum
- 56 = BSC
- 42161 = Arbitrum
- 137 = Polygon
- 324 = zkSync
- 59144 = Linea
- 8453 = Base
- 534352 = Scroll
- 10 = Optimism
- 43114 = Avalanche
- 250 = Fantom
- 25 = Cronos
- And more (see full list in documentation)
transactionTracker:
- eth, bsc, polygon, avalanche, fantom, arbitrum, optimism
whaleTracker:
- Ethereum (ETH)
- Binance Smart Chain (BSC)
| Command | Description |
|---|---|
/start |
Display welcome message and get your Chat ID |
/myalerts |
View all active price alerts with current prices |
/refresh |
Manually trigger alert check for all monitored tokens |
- Alerts are checked every 5 minutes via Cloudflare cron trigger
- Automatic notifications sent to Telegram when conditions are met
- Alerts are automatically removed after triggering
- Supports multiple alert types: price_above, price_below, percent_change
Built with Nullshot's TypeScript MCP Framework in ~100-200 Hours.