Telegram聊天数据库管理服务

该服务为Telegram机器人提供对话上下文管理功能,包括消息存储、会话管理和自动清理等。

  • by locupleto
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 locupleto/mcp-telegram-chat-db

使用说明

电报聊天数据库MCP服务器

MCP服务器为Claude Code支持的Telegram机器人提供对话上下文管理。

概述

此MCP服务器使Claude Code能够管理Telegram机器人交互的对话历史,将消息存储在SQLite中,并检索智能、上下文感知响应的上下文。

特征

  • 存储消息:保存带有时间戳的用户和机器人消息
  • 检索上下文:获取上下文感知响应的最近对话历史记录
  • 会话管理:每日会话隔离 chat_id_YYYYMMDD 格式
  • 自动清理:从旧会话中删除邮件
  • 数据库统计信息:监控使用情况和存储

工具

1. store_message

在对话历史记录中存储消息(用户或机器人)。

参数:

  • chat_id (整数):电报聊天ID
  • session_id (string):会话ID(格式: chat_id_YYYYMMDD)
  • from_type (字符串): "user" 或 "bot"
  • message_text (string):消息内容

例子:

telegram-chat-db__store_message(
    chat_id=7282846061,
    session_id="7282846061_20251224",
    from_type="user",
    message_text="How's Apple doing?"
)

2. get_conversation_context

获取会话的最近对话历史记录。

参数:

  • chat_id (整数):电报聊天ID
  • session_id (string):会话ID
  • limit (整数,可选):要返回的最大消息数(默认值:20)

退货: 按时间顺序排列的带有时间戳的消息列表。

例子:

context = telegram-chat-db__get_conversation_context(
    chat_id=7282846061,
    session_id="7282846061_20251224",
    limit=20
)

3. cleanup_old_sessions

从超过指定日期的会话中删除邮件。

参数:

  • days_to_keep (整数,可选):保留天数(默认值:7)

例子:

telegram-chat-db__cleanup_old_sessions(days_to_keep=7)

4. get_database_status

获取数据库统计信息。

退货:

  • 邮件总数
  • 独特的会议
  • 独特的聊天
  • 按类型(用户/机器人)分类的消息
  • 日期范围
  • 数据库大小

例子:

status = telegram-chat-db__get_database_status()

数据库模式

CREATE TABLE messages (
    id INTEGER PRIMARY KEY AUTOINCREMENT,
    chat_id INTEGER NOT NULL,
    session_id TEXT NOT NULL,
    from_type TEXT NOT NULL CHECK(from_type IN ('user', 'bot')),
    message_text TEXT NOT NULL,
    timestamp DATETIME DEFAULT CURRENT_TIMESTAMP
);

CREATE INDEX idx_chat_session ON messages(chat_id, session_id);
CREATE INDEX idx_timestamp ON messages(timestamp);

配置

环境变量

TELEGRAM_CHAT_DB_PATH (可选):

  • 自定义数据库位置
  • 违约: ../../trading-lab/data/telegram/chat_history.db

MCP配置(.MCP.json)

{
  "mcpServers": {
    "telegram-chat-db": {
      "type": "stdio",
      "command": "/Volumes/Work/development/projects/git/mcp-telegram-chat-db/venv/bin/python3",
      "args": [
        "/Volumes/Work/development/projects/git/mcp-telegram-chat-db/telegram_chat_mcp_server.py"
      ],
      "env": {}
    }
  }
}

使用模式(Telegram Bot)

1.存储传入消息

telegram-chat-db__store_message(
    chat_id=chat_id,
    session_id=f"{chat_id}_{date}",
    from_type="user",
    message_text=user_message
)

2.获取上下文(如果需要)

context = telegram-chat-db__get_conversation_context(
    chat_id=chat_id,
    session_id=f"{chat_id}_{date}",
    limit=20
)

3.流程请求

使用上下文来理解后续问题并提供明智的回答。

4.店铺响应

telegram-chat-db__store_message(
    chat_id=chat_id,
    session_id=f"{chat_id}_{date}",
    from_type="bot",
    message_text=response_text
)

会话策略

会话ID格式: {chat_id}_{YYYYMMDD}

示例: 7282846061_20251224

优点:

  • 当天查询共享上下文
  • 第二天开始新鲜(自动清理)
  • 可预测的存储成本
  • 与交易日周期一致

维护

清理旧会话:

# Run weekly to remove sessions older than 7 days
telegram-chat-db__cleanup_old_sessions(days_to_keep=7)

监控数据库:

# Check size and usage
status = telegram-chat-db__get_database_status()

测试

# Install dependencies
source venv/bin/activate
pip install -r requirements.txt

# Run MCP server (connects via stdio)
./telegram_chat_mcp_server.py

整合

看 trading-lab/roles/TRADING_BOT.txt 用于与Claude Code的完整集成示例。

相关文件

  • 交易机器人工作流程: /Obsidian/Orchestration/Trading-Bot-Workflow.md
  • n8n安装指南: /Obsidian/Orchestration/n8n-claude-code-setup-guide.md

交易实验室生态系统的一部分