使用说明
电报聊天数据库MCP服务器
MCP服务器为Claude Code支持的Telegram机器人提供对话上下文管理。
概述
此MCP服务器使Claude Code能够管理Telegram机器人交互的对话历史,将消息存储在SQLite中,并检索智能、上下文感知响应的上下文。
特征
- 存储消息:保存带有时间戳的用户和机器人消息
- 检索上下文:获取上下文感知响应的最近对话历史记录
- 会话管理:每日会话隔离
chat_id_YYYYMMDD格式 - 自动清理:从旧会话中删除邮件
- 数据库统计信息:监控使用情况和存储
工具
1. store_message
在对话历史记录中存储消息(用户或机器人)。
参数:
chat_id(整数):电报聊天IDsession_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(整数):电报聊天IDsession_id(string):会话IDlimit(整数,可选):要返回的最大消息数(默认值: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
交易实验室生态系统的一部分
