MCPcopy Index your code
hub / github.com/chaindead/telegram-mcp

github.com/chaindead/telegram-mcp @v0.2.1

Chat with this repo
repository ↗ · DeepWiki ↗ · release v0.2.1 ↗ · + Follow
51 symbols 157 edges 14 files 7 documented · 14%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

License: MIT Visitors

Telegram MCP server

The server is a bridge between the Telegram API and the AI assistants and is based on the Model Context Protocol.

[!IMPORTANT] Ensure that you have read and understood the Telegram API Terms of Service before using this server. Any misuse of the Telegram API may result in the suspension of your account.

Table of Contents

What is MCP?

The Model Context Protocol (MCP) is a system that lets AI apps, like Claude Desktop or Cursor, connect to external tools and data sources. It gives a clear and safe way for AI assistants to work with local services and APIs while keeping the user in control.

What does this server do?

Capabilities

  • [x] Get current account information (tool: tg_me)
  • [x] List dialogs with optional unread filter (tool: tg_dialogs)
  • [x] Mark dialog as read (tool: tg_read)
  • [x] Retrieve messages from specific dialog (tool: tg_dialog)
  • [x] Send draft messages to any dialog (tool: tg_send)

Prompt examples

Here are some example prompts you can use with AI assistants:

Message Management

  • "Check for any unread important messages in my Telegram"
  • "Summarize all my unread Telegram messages"
  • "Read and analyze my unread messages, prepare draft responses where needed"
  • "Check non-critical unread messages and give me a brief overview"

Organization

  • "Analyze my Telegram dialogs and suggest a folder structure"
  • "Help me categorize my Telegram chats by importance"
  • "Find all work-related conversations and suggest how to organize them"

Communication

  • "Monitor specific chat for updates about [topic]"
  • "Draft a polite response to the last message in [chat]"
  • "Check if there are any unanswered questions in my chats"

Installation

Homebrew

You can install a binary release on macOS/Linux using brew:

# Install
brew install chaindead/tap/telegram-mcp

# Update
brew upgrade chaindead/tap/telegram-mcp

NPX

You can run the latest version directly using npx (supports macOS, Linux, and Windows):

npx -y @chaindead/telegram-mcp

When using NPX, modify the standard commands and configuration as follows:

npx -y @chaindead/telegram-mcp auth ...
{
  "mcpServers": {
    "telegram": {
      "command": "npx",
      "args": ["-y", "@chaindead/telegram-mcp"],
      "env": {
        "TG_APP_ID": "<your-api-id>",
        "TG_API_HASH": "<your-api-hash>"
      }
    }
  }
}

For complete setup instructions, see Authorization and Client Configuration.

From Releases

MacOS

Note: The commands below install to /usr/local/bin. To install elsewhere, replace /usr/local/bin with your preferred directory in your PATH.

First, download the archive for your architecture:

# For Intel Mac (x86_64)
curl -L -o telegram-mcp.tar.gz https://github.com/chaindead/telegram-mcp/releases/latest/download/telegram-mcp_Darwin_x86_64.tar.gz

# For Apple Silicon (M1/M2)
curl -L -o telegram-mcp.tar.gz https://github.com/chaindead/telegram-mcp/releases/latest/download/telegram-mcp_Darwin_arm64.tar.gz

Then install the binary:

# Extract the binary
sudo tar xzf telegram-mcp.tar.gz -C /usr/local/bin

# Make it executable
sudo chmod +x /usr/local/bin/telegram-mcp

# Clean up
rm telegram-mcp.tar.gz

Linux

Note: The commands below install to /usr/local/bin. To install elsewhere, replace /usr/local/bin with your preferred directory in your PATH.

First, download the archive for your architecture:

# For x86_64 (64-bit)
curl -L -o telegram-mcp.tar.gz https://github.com/chaindead/telegram-mcp/releases/latest/download/telegram-mcp_Linux_x86_64.tar.gz

# For ARM64
curl -L -o telegram-mcp.tar.gz https://github.com/chaindead/telegram-mcp/releases/latest/download/telegram-mcp_Linux_arm64.tar.gz

Then install the binary:

# Extract the binary
sudo tar xzf telegram-mcp.tar.gz -C /usr/local/bin

# Make it executable
sudo chmod +x /usr/local/bin/telegram-mcp

# Clean up
rm telegram-mcp.tar.gz

Windows

Windows

  1. Download the latest release for your architecture:
  2. Windows x64
  3. Windows ARM64
  4. Extract the .zip file
  5. Add the extracted directory to your PATH or move telegram-mcp.exe to a directory in your PATH

From Source

Requirements: - Go 1.24 or later - GOBIN in PATH

go install github.com/chaindead/telegram-mcp@latest

Configuration

Authorization

Before you can use the server, you need to connect to the Telegram API.

  1. Get the API ID and hash from Telegram API
  2. Run the following command:

    Note: If you have 2FA enabled: add --password <2fa_password>

Note: If you want to override existing session: add --new

bash telegram-mcp auth --app-id <your-api-id> --api-hash <your-api-hash> --phone <your-phone-number>

📩 Enter the code you received from Telegram to connect to the API.

  1. Done! Please give this project a ⭐️ to support its development.

Client Configuration

Example of Configuring Claude Desktop to recognize the Telegram MCP server.

  1. Open the Claude Desktop configuration file:
    • in MacOS, the configuration file is located at ~/Library/Application Support/Claude/claude_desktop_config.json
    • in Windows, the configuration file is located at %APPDATA%\Claude\claude_desktop_config.json

Note: You can also find claude_desktop_config.json inside the settings of Claude Desktop app

  1. Add the server configuration

for Claude desktop: json { "mcpServers": { "telegram": { "command": "telegram-mcp", "env": { "TG_APP_ID": "<your-app-id>", "TG_API_HASH": "<your-api-hash>", "PATH": "<path_to_telegram-mcp_binary_dir>", "HOME": "<path_to_your_home_directory" } } } }

for Cursor: json { "mcpServers": { "telegram-mcp": { "command": "telegram-mcp", "env": { "TG_APP_ID": "<your-app-id>", "TG_API_HASH": "<your-api-hash>" } } } }

JSON Schema Version

Some MCP clients (e.g. VS Code) do not support JSON Schema Draft 2020-12 and will reject tools that use it. You can override the JSON Schema version by setting the --schema-version flag or the TG_SCHEMA_VERSION environment variable.

Common values: | Version | URL | |---------|-----| | Draft-07 (recommended for VS Code) | https://json-schema.org/draft-07/schema# | | Draft 2020-12 (default) | https://json-schema.org/draft/2020-12/schema |

Star History

Star History Chart

Core symbols most depended-on inside this repo

String
called by 13
internal/tg/dialogs_offset.go
Info
called by 12
internal/tg/dialogs.go
T
called by 6
internal/tg/client.go
getUsername
called by 4
internal/tg/helpers.go
getPeerID
called by 4
internal/tg/dialogs.go
getTitle
called by 3
internal/tg/helpers.go
GetHistory
called by 3
internal/tg/history.go
getInputPeerFromName
called by 3
internal/tg/history.go

Shape

Struct 18
Function 16
Method 16
TypeAlias 1

Languages

Go100%

Modules by API surface

internal/tg/dialogs.go14 symbols
internal/tg/history.go8 symbols
internal/tg/dialogs_offset.go5 symbols
internal/tg/helpers.go4 symbols
internal/tg/read.go3 symbols
internal/tg/me.go3 symbols
internal/tg/draft.go3 symbols
internal/tg/client.go3 symbols
cmd/test/unread.go3 symbols
serve.go1 symbols
main.go1 symbols
internal/tg/auth.go1 symbols

For agents

$ claude mcp add telegram-mcp \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page