Skip to main content
Glama

Telegram MCP Server

by chigwell
#!/usr/bin/env python3 """ Telegram Session String Generator This script generates a session string that can be used for Telegram authentication with the Telegram MCP server. The session string allows for portable authentication without storing session files. Usage: python session_string_generator.py Requirements: - telethon - python-dotenv """ import os from telethon.sync import TelegramClient from telethon.sessions import StringSession from dotenv import load_dotenv import sys # Load environment variables from .env file load_dotenv() API_ID = os.getenv("TELEGRAM_API_ID") API_HASH = os.getenv("TELEGRAM_API_HASH") if not API_ID or not API_HASH: print("Error: TELEGRAM_API_ID and TELEGRAM_API_HASH must be set in .env file") print("Create an .env file with your credentials from https://my.telegram.org/apps") sys.exit(1) # Convert API_ID to integer try: API_ID = int(API_ID) except ValueError: print("Error: TELEGRAM_API_ID must be an integer") sys.exit(1) print("\n----- Telegram Session String Generator -----\n") print("This script will generate a session string for your Telegram account.") print( "You will be asked to enter your phone number and the verification code sent to your Telegram app." ) print("The generated session string can be added to your .env file.") print( "\nYour credentials will NOT be stored on any server and are only used for local authentication.\n" ) try: # Connect to Telegram and generate the session string with TelegramClient(StringSession(), API_ID, API_HASH) as client: # The client.session.save() function from StringSession returns the session string session_string = StringSession.save(client.session) print("\nAuthentication successful!") print("\n----- Your Session String -----") print(f"\n{session_string}\n") print("Add this to your .env file as:") print(f"TELEGRAM_SESSION_STRING={session_string}") print("\nIMPORTANT: Keep this string private and never share it with anyone!") # Optional: auto-update the .env file choice = input( "\nWould you like to automatically update your .env file with this session string? (y/N): " ) if choice.lower() == "y": try: # Read the current .env file with open(".env", "r") as file: env_contents = file.readlines() # Update or add the SESSION_STRING line session_string_line_found = False for i, line in enumerate(env_contents): if line.startswith("TELEGRAM_SESSION_STRING="): env_contents[i] = f"TELEGRAM_SESSION_STRING={session_string}\n" session_string_line_found = True break if not session_string_line_found: env_contents.append(f"TELEGRAM_SESSION_STRING={session_string}\n") # Write back to the .env file with open(".env", "w") as file: file.writelines(env_contents) print("\n.env file updated successfully!") except Exception as e: print(f"\nError updating .env file: {e}") print("Please manually add the session string to your .env file.") except Exception as e: print(f"\nError: {e}") print("Failed to generate session string. Please try again.") sys.exit(1)

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/chigwell/telegram-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server