Sponsored by Deepsite.site

Telegram AI Assistant Bot

Created By
shettysaish208 months ago
Telegram AI Assistant Bot that responds to user messages using multiple MCP Servers
Content

Telegram AI Assistant Bot

Overview

The Telegram AI Assistant Bot is a reasoning-driven AI agent, named Cortex-R, designed to interact with users via Telegram. It uses multiple Model Context Protocol (MCP) servers to perform various tasks such as web searches, document processing, mathematical calculations, and Google services integration (e.g., Gmail and Google Sheets). The bot employs both stdio and sse transport protocols to communicate with these MCP servers.

Features

  • Telegram Integration: The bot interacts with users through Telegram, responding to their queries and tasks.
  • Multi-MCP Server Support: Utilizes multiple MCP servers for diverse functionalities.
    • Gmail integration for email management.
    • Google Sheets integration for spreadsheet operations.
    • Web search capabilities using DuckDuckGo.
    • Document processing and semantic search.
    • Mathematical calculations.
  • Dynamic Tool Discovery: Automatically discovers tools from MCP servers during initialization.
  • Customizable Agent Strategy: Supports different strategies like conservative, retry-once, and explore-all.
  • Memory Management: Retrieves and stores memory items to enhance task-solving capabilities.
  • Configurable Persona: Allows customization of tone, verbosity, and behavior.

Architecture

The bot is built using the following components:

1. Telegram Bot Integration

The bot is implemented in telegram_agent.py using the python-telegram-bot library. It handles user messages and commands such as /start and /help. User queries are processed by the Cortex-R agent.

2. Core Components

  • Agent Loop (core/loop.py): Manages the main execution loop of the agent, including perception, planning, and tool execution.
  • Session Management (core/session.py): Handles communication with multiple MCP servers using stdio and sse transport protocols.
  • Strategy (core/strategy.py): Implements planning strategies for decision-making.

3. MCP Servers

The bot interacts with the following MCP servers:

  • Gmail Server (gmail_server.py): Manages email operations such as sending, reading, and trashing emails.
  • Google Sheets Server (mcp_gdrive_server.py): Handles spreadsheet operations like creating, updating, and sharing Google Sheets.
  • Web Search Server (mcp_server_3.py): Performs web searches using DuckDuckGo and fetches webpage content.
  • Document Processing Server (mcp_server_2.py): Processes documents for semantic search and indexing.
  • Math Server (mcp_server_1.py): Performs mathematical calculations.

4. Configuration

  • Profiles (config/profiles.yaml): Defines agent settings, including strategy, memory configuration, and MCP server details.
  • Models (config/models.json): Specifies the models used for text generation and embeddings.
  • Environment Variables (.env): Stores sensitive information like API keys and file paths.

Workflow

  1. Initialization:

    • The bot loads MCP server configurations from profiles.yaml.
    • Initializes the MultiMCP dispatcher to discover tools from all configured MCP servers.
  2. User Interaction:

    • Users interact with the bot via Telegram.
    • The bot processes user messages and determines the required tools to fulfill the task.
  3. Task Execution:

    • The agent uses perception to understand the user query.
    • Plans the next action using the defined strategy.
    • Executes the required tool from the appropriate MCP server.
    • Retrieves results and responds to the user.
  4. Memory Management:

    • Stores tool outputs and user queries as memory items.
    • Retrieves relevant memories to assist in task-solving.

Configuration

Environment Variables

Set the following variables in the .env file:

  • GEMINI_API_KEY: API key for the Gemini model.
  • SERVICE_ACCOUNT_PATH: Path to the Google service account JSON file.
  • DRIVE_FOLDER_ID: Google Drive folder ID for storing files.
  • CREDENTIALS_PATH: Path to the OAuth client credentials file.
  • TOKEN_PATH: Path to the token file for Google APIs.

MCP Server Configuration

Define MCP servers in config/profiles.yaml:

mcp_servers:
  - id: gmail
    type: stdio
    script: gmail_server.py
    cwd: <path-to-server>
  - id: gdrive
    type: stdio
    script: mcp_gdrive_server.py
    cwd: <path-to-server>
  - id: math
    type: sse
    script: mcp_server_1.py
    url: http://localhost:8000/sse
    cwd: <path-to-server>
  - id: documents
    type: stdio
    script: mcp_server_2.py
    cwd: <path-to-server>
  - id: websearch
    type: stdio
    script: mcp_server_3.py
    cwd: <path-to-server>

Installation

  1. Clone the repository:
    git clone <repository-url>
    cd <repository-folder>
    
  2. Sync dependencies using uv:
    uv sync
    
  3. Set up environment variables in .env.
  4. Start the Telegram bot:
    uv run telegram_agent.py
    

Usage

  • Start the bot on Telegram using the /start command.
  • Send queries or tasks to the bot, such as:
    • "Find the current F1 standings and share them in a Google Sheet."
    • "Send an email to example@gmail.com with the subject 'Meeting Update'."

Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository.
  2. Create a new branch for your feature or bug fix.
  3. Submit a pull request with a detailed description of your changes.

License

This project is licensed under the MIT License. See the LICENSE file for details.

Recommend Servers
TraeBuild with Free GPT-4.1 & Claude 3.7. Fully MCP-Ready.
AiimagemultistyleA Model Context Protocol (MCP) server for image generation and manipulation using fal.ai's Stable Diffusion model.
DeepChatYour AI Partner on Desktop
Amap Maps高德地图官方 MCP Server
MCP AdvisorMCP Advisor & Installation - Use the right MCP server for your needs
ChatWiseThe second fastest AI chatbot™
TimeA Model Context Protocol server that provides time and timezone conversion capabilities. This server enables LLMs to get current time information and perform timezone conversions using IANA timezone names, with automatic system timezone detection.
Zhipu Web SearchZhipu Web Search MCP Server is a search engine specifically designed for large models. It integrates four search engines, allowing users to flexibly compare and switch between them. Building upon the web crawling and ranking capabilities of traditional search engines, it enhances intent recognition capabilities, returning results more suitable for large model processing (such as webpage titles, URLs, summaries, site names, site icons, etc.). This helps AI applications achieve "dynamic knowledge acquisition" and "precise scenario adaptation" capabilities.
WindsurfThe new purpose-built IDE to harness magic
Visual Studio Code - Open Source ("Code - OSS")Visual Studio Code
Tavily Mcp
Baidu Map百度地图核心API现已全面兼容MCP协议,是国内首家兼容MCP协议的地图服务商。
Serper MCP ServerA Serper MCP Server
EdgeOne Pages MCPAn MCP service designed for deploying HTML content to EdgeOne Pages and obtaining an accessible public URL.
Context7Context7 MCP Server -- Up-to-date code documentation for LLMs and AI code editors
Jina AI MCP ToolsA Model Context Protocol (MCP) server that integrates with Jina AI Search Foundation APIs.
Howtocook Mcp基于Anduin2017 / HowToCook (程序员在家做饭指南)的mcp server,帮你推荐菜谱、规划膳食,解决“今天吃什么“的世纪难题; Based on Anduin2017/HowToCook (Programmer's Guide to Cooking at Home), MCP Server helps you recommend recipes, plan meals, and solve the century old problem of "what to eat today"
MiniMax MCPOfficial MiniMax Model Context Protocol (MCP) server that enables interaction with powerful Text to Speech, image generation and video generation APIs.
BlenderBlenderMCP connects Blender to Claude AI through the Model Context Protocol (MCP), allowing Claude to directly interact with and control Blender. This integration enables prompt assisted 3D modeling, scene creation, and manipulation.
CursorThe AI Code Editor
Playwright McpPlaywright MCP server