GitHub - DLHellMe/telegram-mcp-server: Powerfull Telegram MCP for Claude Desktop to scrape and analyze Telegram content. (original) (raw)

Telegram MCP Server

A powerful MCP (Model Context Protocol) server that enables Claude to interact with Telegram channels and groups. This server provides both web scraping and direct API access to Telegram content.

🚀 Features

Version 0.3.0 - Dual Mode Operation

Web Scraping Mode 🌐

📋 Prerequisites

🛠️ Installation

  1. Clone this repository:

git clone https://github.com/DLHellMe/telegram-mcp-server.git cd telegram-mcp-server

  1. Install dependencies:
  2. Copy the example environment file:
  3. Edit .env and add your configuration:
    • For API mode: Add your TELEGRAM_API_ID and TELEGRAM_API_HASH
    • For web scraping: Default settings work out of the box
  4. Build the project:

🔧 Configuration

Getting Telegram API Credentials

  1. Go to https://my.telegram.org
  2. Log in with your phone number
  3. Click "API development tools"
  4. Create a new application
  5. Copy your api_id and api_hash to the .env file

Claude Desktop Configuration

Add this to your Claude Desktop config file:

Windows: %APPDATA%\Claude\claude_desktop_config.json
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Linux: ~/.config/Claude/claude_desktop_config.json

{ "mcpServers": { "telegram-scraper": { "command": "node", "args": ["/absolute/path/to/telegram-mcp-server/dist/index.js"], "env": { "TELEGRAM_API_ID": "your_api_id", "TELEGRAM_API_HASH": "your_api_hash" } } } }

📖 Usage

After configuration, restart Claude Desktop. The Telegram tools will be available in Claude.

API Mode Tools

  1. telegram_api_login - Authenticate with Telegram (first time only)
Use telegram_api_login to connect to Telegram  
  1. api_scrape_channel - Scrape channel posts (unlimited by default)
Use api_scrape_channel with url="https://t.me/channelname"  

Or with a limit:

Use api_scrape_channel with url="https://t.me/channelname" and max_posts=50  
  1. api_search_channel - Search within a channel
Use api_search_channel with url="https://t.me/channelname" and query="keyword"  

Web Scraping Tools

  1. scrape_channel - Scrape public channels
Use scrape_channel with url="https://t.me/channelname"  
  1. telegram_login - Login for restricted content
Use telegram_login with phone="+1234567890"  

🔒 Data Storage

Session data and cookies are stored in platform-specific directories:

You can override this with the TELEGRAM_DATA_PATH environment variable.

🛡️ Security Notes

📝 Development

Run in development mode

npm run dev

Build the project

npm run build

Watch for changes

npm run watch

🤝 Contributing

Contributions are welcome! Please:

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📄 License

MIT License - see LICENSE file for details

🙏 Acknowledgments

Built with:

⚠️ Disclaimer

This tool is for educational and research purposes. Please respect Telegram's Terms of Service and the privacy of channel members. Always obtain permission before scraping private channels.

🐛 Troubleshooting

API Mode Issues

Web Scraping Issues

📞 Support