mcp-communicator-telegram
Enables communication with users through Telegram, including asking questions, sending notifications, sharing files, and creating project archives via a bot.
README
MCP Communicator (Telegram)
An MCP server that enables communication with users through Telegram. This server provides tools to interact with users via a Telegram bot, including asking questions, sending notifications, sharing files, and creating project archives.
Installation
Via npm (global)
npm install -g mcp-communicator-telegram
Via npx (on-demand)
npx mcptelegram
To get your Telegram chat ID:
npx mcptelegram-chatid
Features
- Ask questions to users through Telegram
- Send notifications to users (no response required)
- Send files to users via Telegram
- Create and send project zip files (respecting .gitignore)
- Receive responses asynchronously (waits indefinitely for response)
- Support for reply-based message tracking
- Secure chat ID validation
- Error handling and logging
Prerequisites
- Node.js (v14 or higher)
- A Telegram bot token (obtained from @BotFather)
- Your Telegram chat ID (can be obtained using the included utility)
Installation
- Clone the repository:
git clone https://github.com/qpd-v/mcp-communicator-telegram.git
cd mcp-communicator-telegram
- Install dependencies:
npm install
-
Create a Telegram bot:
- Open Telegram and search for @BotFather
- Send
/newbotand follow the instructions - Save the bot token you receive
-
Get your chat ID:
- Copy
.env.exampleto.env - Add your bot token to the
.envfile:TELEGRAM_TOKEN=your_bot_token_here - Run the chat ID utility:
npm run build node build/get-chat-id.js - Send any message to your bot
- Copy the chat ID that appears in the console
- Add the chat ID to your
.envfile:TELEGRAM_TOKEN=your_bot_token_here CHAT_ID=your_chat_id_here
- Copy
Configuration
Add the server to your MCP settings file (usually located at %APPDATA%\Code\User\globalStorage\rooveterinaryinc.roo-cline\settings\cline_mcp_settings.json on Windows):
{
"mcpServers": {
"mcp-communicator-telegram": {
"command": "node",
"args": ["path/to/mcp-communicator-telegram/build/index.js"],
"env": {
"TELEGRAM_TOKEN": "your_bot_token_here",
"CHAT_ID": "your_chat_id_here"
}
}
}
}
Available Tools
ask_user
Asks a question to the user via Telegram and waits for their response.
Input Schema:
{
"type": "object",
"properties": {
"question": {
"type": "string",
"description": "The question to ask the user"
}
},
"required": ["question"]
}
Example usage:
const response = await use_mcp_tool({
server_name: "mcp-communicator-telegram",
tool_name: "ask_user",
arguments: {
question: "What is your favorite color?"
}
});
notify_user
Sends a notification message to the user via Telegram (no response required).
Input Schema:
{
"type": "object",
"properties": {
"message": {
"type": "string",
"description": "The message to send to the user"
}
},
"required": ["message"]
}
Example usage:
await use_mcp_tool({
server_name: "mcp-communicator-telegram",
tool_name: "notify_user",
arguments: {
message: "Task completed successfully!"
}
});
send_file
Sends a file to the user via Telegram.
Input Schema:
{
"type": "object",
"properties": {
"filePath": {
"type": "string",
"description": "The path to the file to send"
}
},
"required": ["filePath"]
}
Example usage:
await use_mcp_tool({
server_name: "mcp-communicator-telegram",
tool_name: "send_file",
arguments: {
filePath: "path/to/file.txt"
}
});
zip_project
Creates a zip file of a project directory (respecting .gitignore patterns) and sends it to the user via Telegram.
Input Schema:
{
"type": "object",
"properties": {
"directory": {
"type": "string",
"description": "Directory to zip (defaults to current working directory)"
}
},
"required": []
}
Example usage with default directory (current working directory):
await use_mcp_tool({
server_name: "mcp-communicator-telegram",
tool_name: "zip_project",
arguments: {}
});
Example usage with specific directory:
await use_mcp_tool({
server_name: "mcp-communicator-telegram",
tool_name: "zip_project",
arguments: {
directory: "/path/to/your/project"
}
});
Features:
- Creates a zip file named
[project-name]-project.zipbased on the directory name - Can zip any specified directory or the current working directory
- Respects .gitignore patterns
- Maintains correct file paths in the archive
- Automatically cleans up the zip file after sending
- Handles files up to 2GB in size
Development
Build the project:
npm run build
Run in development mode:
npm run dev
Watch for changes:
npm run watch
Clean build directory:
npm run clean
Security
- The server only responds to messages from the configured chat ID
- Environment variables are used for sensitive configuration
- Message IDs are used to track question/answer pairs
- The bot ignores messages without proper context
License
ISC
Author
qpd-v
Version
0.2.1 # Major version bump for new features: notify_user, send_file, and zip_project tools
Recommended Servers
playwright-mcp
A Model Context Protocol server that enables LLMs to interact with web pages through structured accessibility snapshots without requiring vision models or screenshots.
Magic Component Platform (MCP)
An AI-powered tool that generates modern UI components from natural language descriptions, integrating with popular IDEs to streamline UI development workflow.
Audiense Insights MCP Server
Enables interaction with Audiense Insights accounts via the Model Context Protocol, facilitating the extraction and analysis of marketing insights and audience data including demographics, behavior, and influencer engagement.
VeyraX MCP
Single MCP tool to connect all your favorite tools: Gmail, Calendar and 40 more.
graphlit-mcp-server
The Model Context Protocol (MCP) Server enables integration between MCP clients and the Graphlit service. Ingest anything from Slack to Gmail to podcast feeds, in addition to web crawling, into a Graphlit project - and then retrieve relevant contents from the MCP client.
Kagi MCP Server
An MCP server that integrates Kagi search capabilities with Claude AI, enabling Claude to perform real-time web searches when answering questions that require up-to-date information.
E2B
Using MCP to run code via e2b.
Neon Database
MCP server for interacting with Neon Management API and databases
Exa Search
A Model Context Protocol (MCP) server lets AI assistants like Claude use the Exa AI Search API for web searches. This setup allows AI models to get real-time web information in a safe and controlled way.
Qdrant Server
This repository is an example of how to create a MCP server for Qdrant, a vector search engine.