For HTTP deployments, the server provides a /health endpoint for monitoring server status and session statistics.
# Check server health and session statistics
curl -s https://your-domain.com/healthResponse includes:
- Server status
- Active session count and max limit
- Count of session files on disk
- Setup session count (web setup flow)
- Per-session statistics (token prefix, hours since access, connection status, last access)
Example response:
{
"status": "healthy",
"active_sessions": 3,
"max_sessions": 10,
"session_files": 3,
"setup_sessions": 1,
"sessions": [
{
"token_prefix": "AbCdEfGh...",
"hours_since_access": 0.25,
"is_connected": true,
"last_access": "Thu Jan 4 16:30:15 2025"
},
{
"token_prefix": "XyZ123Ab...",
"hours_since_access": 2.5,
"is_connected": false,
"last_access": "Thu Jan 4 14:15:30 2025"
}
]
}- Current count: Number of sessions currently in memory
- Max limit: Configurable via
MAX_ACTIVE_SESSIONSenvironment variable - LRU eviction: Oldest sessions disconnected when limit reached
- On disk count: Total number of session files in
~/.config/fast-mcp-telegram/ - Setup sessions: Temporary sessions created during web setup flow
- TTL cleanup: Setup sessions automatically cleaned up after 900 seconds
- Token prefix: First 8 characters of Bearer token for identification
- Hours since access: Time since last API call
- Connection status: Whether session is actively connected to Telegram
- Last access: Timestamp of most recent activity
# Check container status
docker compose ps
# View real-time logs
docker compose logs -f fast-mcp-telegram
# Check container health
docker inspect $(docker compose ps -q fast-mcp-telegram) | jq '.[0].State.Health'- Container health: Docker health check endpoint
- Application health:
/healthHTTP endpoint - MCP transport: MCP protocol health via client connection
- DEBUG: Detailed operation traces
- INFO: General operation information
- WARNING: Non-critical issues
- ERROR: Critical errors requiring attention
# Set log level via environment variable
LOG_LEVEL=INFO
# Or via Docker environment
docker compose up -d --env LOG_LEVEL=DEBUG- Container logs:
docker compose logs fast-mcp-telegram - File logs:
/app/logs/(if configured) - Console output: Standard output for containerized deployments
- Authentication: Bearer token extraction and validation
- Session creation: New session file creation
- API calls: Telegram API requests and responses
- Errors: Authentication failures, API errors, connection issues
- Health checks: Periodic health status updates
- Creation: New session created on first authentication
- Activation: Session loaded into memory on first use
- Usage: Session used for Telegram API calls
- Reauthorization: Expired sessions can be reauthorized via web interface or CLI
- Eviction: Session removed from memory when LRU limit reached
- Cleanup: Invalid sessions automatically deleted
When a session becomes unauthorized (expired login, password change, etc.), you can reauthorize it:
- Visit
https://your-domain.com/setup - Choose "Reauthorize Existing Session"
- Enter your existing Bearer token
- Confirm phone number and complete verification
- Session is reauthorized with the same token
# For HTTP_AUTH mode (with existing token)
fast-mcp-telegram-setup --overwrite --phone-number="+1234567890"
# For STDIO mode
SESSION_NAME=telegram fast-mcp-telegram-setup --overwrite --phone-number="+1234567890"- Health endpoint: Shows connection status per session
- API errors: Unauthorized sessions return authentication errors
- Logs: Check for "Session not authorized" messages
- Location:
~/.config/fast-mcp-telegram/ - Format:
{token}.sessionfor multi-user isolation - Permissions: Automatic permission management (1000:1000)
- Backup: Automatic backup before deployments
- Restore: Automatic restore after deployments
# Check session files on disk
ls -la ~/.config/fast-mcp-telegram/
# Monitor session creation/deletion
tail -f /var/log/telegram-sessions.log
# Check session permissions
find ~/.config/fast-mcp-telegram/ -type f -exec ls -la {} \;- Active sessions: Current in-memory session count
- API response times: Telegram API call latency
- Memory usage: Container memory consumption
- CPU usage: Container CPU utilization
- Network I/O: Data transfer rates
# Container resource usage
docker stats fast-mcp-telegram
# Memory usage
docker exec fast-mcp-telegram ps aux
# Network connections
docker exec fast-mcp-telegram netstat -an
# Disk usage
docker exec fast-mcp-telegram df -h- Session limits: Adjust
MAX_ACTIVE_SESSIONSbased on usage - Log levels: Use INFO/WARNING in production
- Resource limits: Set appropriate Docker resource limits
- Monitoring: Implement external monitoring for production
# Check Bearer token format (header-based auth)
curl -H "Authorization: Bearer YOUR_TOKEN" https://your-domain.com/health
# Alternative: Check URL-based auth (token in path)
curl https://your-domain.com/v1/url_auth/YOUR_TOKEN/mcp
# Verify session file exists
ls -la ~/.config/fast-mcp-telegram/
# Check logs for authentication errors
docker compose logs fast-mcp-telegram | grep -i authURL-Based Auth Note:
If using URL-based auth (token in path like /v1/url_auth/{token}/mcp/...), ensure your client sends requests to the correct URL format. The token will appear in server access logs.
# Check session file permissions
ls -la ~/.config/fast-mcp-telegram/
# Fix permissions if needed
chown -R 1000:1000 ~/.config/fast-mcp-telegram/
# Check session file integrity
file ~/.config/fast-mcp-telegram/*.session# Test basic connectivity
curl -s https://your-domain.com/health
# Check container status
docker compose ps
# Verify network connectivity
docker exec fast-mcp-telegram ping -c 3 api.telegram.org# Enable debug logging
docker compose up -d --env LOG_LEVEL=DEBUG
# Monitor debug output
docker compose logs -f fast-mcp-telegram
# Check specific operations
docker compose logs fast-mcp-telegram | grep "operation_name"# Check container health
docker inspect $(docker compose ps -q fast-mcp-telegram) | jq '.[0].State.Health'
# Restart container
docker compose restart fast-mcp-telegram
# Check health endpoint
curl -s https://your-domain.com/health- Monitor health endpoint: Check server status regularly
- Review logs: Look for errors and performance issues
- Clean up sessions: Remove unused session files
- Update dependencies: Keep packages up to date
- Backup sessions: Ensure session files are backed up
# List all session files
ls -la ~/.config/fast-mcp-telegram/
# Remove old/unused sessions (be careful!)
rm ~/.config/fast-mcp-telegram/old-token.session
# Check session age
find ~/.config/fast-mcp-telegram/ -name "*.session" -mtime +30# Check log file sizes
du -sh /var/log/telegram-*.log
# Rotate logs if needed
logrotate /etc/logrotate.d/telegram
# Clean old logs
find /var/log -name "telegram-*.log.*" -mtime +7 -delete- Failed logins: Monitor for authentication failures
- Token usage: Track Bearer token usage patterns
- Session creation: Monitor new session creation
- Suspicious activity: Look for unusual access patterns
# Check for failed authentication attempts
docker compose logs fast-mcp-telegram | grep -i "auth.*fail"
# Monitor token usage
docker compose logs fast-mcp-telegram | grep -i "bearer"
# Check for suspicious API calls
docker compose logs fast-mcp-telegram | grep -i "dangerous"- IP restrictions: Implement network-level access controls
- Rate limiting: Monitor and limit API call rates
- Token rotation: Regularly rotate Bearer tokens
- Session monitoring: Track session usage and access patterns
# Backup all sessions
tar -czf telegram-sessions-backup-$(date +%Y%m%d).tar.gz ~/.config/fast-mcp-telegram/
# Restore sessions
tar -xzf telegram-sessions-backup-20240104.tar.gz -C ~/# Backup configuration
cp .env .env.backup-$(date +%Y%m%d)
# Backup Docker Compose
cp docker-compose.yml docker-compose.yml.backup-$(date +%Y%m%d)- Restore sessions: Extract session files from backup
- Restore configuration: Copy environment and config files
- Restart services: Bring up containers with restored data
- Verify health: Check health endpoint and test functionality
- Monitor logs: Watch for any issues during recovery