Install
openclaw skills install telebiz-mcp-skillAccess Telegram data via MCP using the telebiz-tt browser client. Lists chats, reads messages, searches, manages folders, and sends messages through an authenticated Telegram session.
openclaw skills install telebiz-mcp-skillMCP integration for Telegram via telebiz-tt browser client.
batchAddToFolder with multiple chatIds (known bug). Loop addChatToFolder sequentially.linkEntityToChat is unstable in our tests. We observed company failing with Validation error, and at one point organization succeeding — but later organization also failed. Treat linkEntityToChat as unreliable until upstream clarifies schema/feature flags.┌──────────────┐ ┌──────────────────┐ ┌─────────────────┐
│ Clawdbot │────▶│ MCP Server │────▶│ WebSocket Relay │
│ (mcporter) │ │ (stdio) │ │ (port 9716) │
└──────────────┘ └──────────────────┘ └────────┬────────┘
│
▼
┌─────────────────┐
│ Browser │
│ (telebiz-tt) │
│ [executor] │
└─────────────────┘
npm install -g @telebiz/telebiz-mcp
Go to https://telebiz.io and login with your Telegram account.
cd ~/clawd/skills/telebiz-mcp
./start-http.sh
This starts a persistent server that:
In telebiz.io: Settings → Agent → Local MCP
The status should show "Connected" once the server is running.
# Quick health check
cd ~/clawd/skills/telebiz-mcp
npm run health
# Should show:
# 📱 Telebiz MCP Status
# ────────────────────
# Relay: ✅ Running
# Executor: ✅ Connected
# Tools: 31 available
cd ~/clawd
mcporter call telebiz.listChats limit:5
# Check status
npm run health
# JSON output for automation
node dist/health.js --json
The monitor tracks state changes and can be used with cron:
# Check and alert on changes
npm run monitor
# Quiet mode - only output on state change
node dist/monitor.js --quiet
# JSON output
node dist/monitor.js --json
Exit codes:
0 = Healthy (relay up, executor connected)1 = Degraded (relay up, executor disconnected)2 = Down (relay not running)3 = State changed (for alerting)Add to crontab for periodic monitoring:
# Check every 5 minutes, alert on changes
*/5 * * * * cd ~/clawd/skills/telebiz-mcp && node dist/monitor.js --quiet >> /var/log/telebiz-monitor.log 2>&1
Add to HEARTBEAT.md for Clawdbot monitoring:
### Telebiz MCP (every 2h)
- [ ] Run: `cd ~/clawd/skills/telebiz-mcp && npm run health`
- [ ] If degraded/down: Alert Albert via Telegram
| Tool | Description |
|---|---|
listChats | List chats with filters (type, unread, archived, etc.) |
getChatInfo | Get detailed chat information |
getCurrentChat | Get currently open chat |
openChat | Navigate to a chat |
archiveChat | Archive a chat |
unarchiveChat | Unarchive a chat |
pinChat | Pin a chat |
unpinChat | Unpin a chat |
muteChat | Mute notifications |
unmuteChat | Unmute notifications |
deleteChat | Delete/leave chat ⚠️ |
| Tool | Description |
|---|---|
sendMessage | Send text message (markdown supported) |
forwardMessages | Forward messages between chats |
deleteMessages | Delete messages ⚠️ |
searchMessages | Search globally or in a chat |
getRecentMessages | Get message history |
markChatAsRead | Mark all messages as read |
| Tool | Description |
|---|---|
listFolders | List all chat folders |
createFolder | Create a new folder |
addChatToFolder | Add chat to folders |
removeChatFromFolder | Remove chat from folders |
deleteFolder | Delete a folder ⚠️ |
| Tool | Description |
|---|---|
getChatMembers | List group/channel members |
addChatMembers | Add users to group |
removeChatMember | Remove user from group |
createGroup | Create a new group |
| Tool | Description |
|---|---|
searchUsers | Search by name/username |
getUserInfo | Get user details |
| Tool | Description |
|---|---|
batchSendMessage | Send to multiple chats |
batchAddToFolder | Add multiple chats to folder |
batchArchive | Archive multiple chats |
mcporter call telebiz.listChats iAmLastSender=false hasUnread=true limit:20
mcporter call telebiz.listChats iAmLastSender=true lastMessageOlderThanDays:7 limit:20
mcporter call telebiz.searchMessages query="invoice" limit:20
mcporter call telebiz.searchMessages query="meeting" chatId=-1001234567890 limit:10
mcporter call telebiz.sendMessage chatId=-1001234567890 text="Hello from Clawdbot!"
mcporter call telebiz.getRecentMessages chatId=-1001234567890 limit:50
# Page 1 (newest 50)
mcporter call telebiz.getRecentMessages chatId=-1001234567890 limit:50 offset:0
# Page 2 (messages 51-100)
mcporter call telebiz.getRecentMessages chatId=-1001234567890 limit:50 offset:50
# List folders
mcporter call telebiz.listFolders
# Add chats to folder
mcporter call telebiz.batchAddToFolder chatIds='["-1001234","-1001235"]' folderId:5
The browser enforces rate limits to prevent Telegram flood protection:
(These values come from the Telebiz UI and are the effective limits we observed in practice.)
batchAddToFolder fails for multiple chatIdsObserved behavior:
batchAddToFolder(folderId, chatIds=[one]) works (or reports alreadyIncluded)batchAddToFolder(folderId, chatIds=[two or more]) fails with: "Error: Failed to update folder"Workaround: loop sequentially:
addChatToFolder(chatId=A, folderIds=[folderId])addChatToFolder(chatId=B, folderIds=[folderId])linkEntityToChat is unstable / schema mismatchObserved behavior (Feb 2026):
linkEntityToChat returns "Validation error" for entityType=deal, contact, and company.entityType="organization" successfully linked a HubSpot company to a chat — but later organization also returned "Validation error".Implication: this tool is either behind a feature flag, has changing server-side validation, or the published schema/enums don’t match what the backend expects.
Workaround:
createContact/createDeal/createCompany (these link to the chat at creation time).associateEntities to connect deal↔company/contact.linkEntityToChat until upstream provides a stable contract + better error messages.# Check if port is in use
ss -tlnp | grep 9716
# Kill existing process
pkill -f "relay.js"
# Start fresh
./start-relay.sh
npm run healthThe browser tab with telebiz-tt must be:
If Telegram session expires:
| Variable | Default | Description |
|---|---|---|
TELEBIZ_PORT | 9716 | Relay WebSocket port |
TELEBIZ_RELAY_URL | ws://localhost:9716 | Relay URL for MCP server |
TELEBIZ_STATE_FILE | ~/.telebiz-mcp-state.json | Monitor state file |
Located at ~/clawd/config/mcporter.json:
{
"mcpServers": {
"telebiz": {
"url": "http://localhost:9718/mcp"
}
}
}
Note: Use the HTTP URL (not stdio) to avoid spawning conflicts.