Local-first MCP server and Kotlin/JVM CLI for indexing private Telegram chats and searching them with hybrid full-text + semantic retrieval.
{
"mcpServers": {
"telegram-private-search": {
"command": "<see-readme>",
"args": []
}
}
}No install config available. Check the server's README for setup instructions.
Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
Local-first MCP server and Kotlin/JVM CLI for indexing private Telegram chats and searching them with hybrid full-text + semantic retrieval.
Is it safe?
No package registry to scan.
No authentication — any process on your machine can connect.
License not specified.
Is it maintained?
Last commit 1 days ago. 1 stars.
Will it work with my client?
Transport: stdio. Works with Claude Desktop, Cursor, Claude Code, and most MCP clients.
No automated test available for this server. Check the GitHub README for setup instructions.
No known vulnerabilities.
This server is missing a description. Tools and install config are also missing.If you've used it, help the community.
Add informationHave you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Persistent memory using a knowledge graph
Privacy-first. MCP is the protocol for tool access. We're the virtualization layer for context.
Pre-build reality check. Scans GitHub, HN, npm, PyPI, Product Hunt — returns 0-100 signal.
Monitor browser logs directly from Cursor and other MCP compatible IDEs.
MCP Security Weekly
Get CVE alerts and security updates for Telegram Private Search and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
Turn your Telegram history into searchable memory for you and your AI tools.
telegram-private-search is a local-first Kotlin/JVM tool and MCP server that turns years of private Telegram chats into a structured, searchable knowledge source.
It is built for a very specific feeling: you know a conversation happened, you remember what it meant, but you do not remember the exact wording well enough to find it with normal search.
With this project, your assistant can stop guessing and start querying your local Telegram archive directly.
cp .env.example .env
./gradlew test
./gradlew run --console=plain --args='index --limit-per-chat 500'
./gradlew run --args='mcp'
Then connect an MCP-compatible client to the server and query your Telegram history in natural language.
Your Telegram history often contains:
This project turns that messy, memory-shaped information into something an MCP-compatible client can actually use.
Instead of scrolling through years of chats and trying random keywords, you can ask higher-level questions such as:
It indexes your private Telegram chats into a local SQLite database, then combines local keyword search, recency-aware ranking, and thread expansion so vague, memory-shaped queries still have a good chance of finding the right message.
This project exposes your Telegram search index through an MCP server over stdio.
That means an AI tool that supports MCP can call into this server as a capability instead of you manually copying text around. In practice, this lets your assistant search your local Telegram history as a structured tool, returning relevant messages and context when you ask questions in natural language.
Think of it as a bridge between:
Without MCP, this project is already useful as a CLI search tool.
With MCP, it becomes part of a larger assistant workflow. Your client can treat Telegram search as a real tool call instead of a manual side task. That makes it possible to:
Telegram account
|
v
TDLight client
|
v
Message ingestion
|
v
Local SQLite index (Room)
|
+--> keyword search
|
+--> local lexical retrieval
|
v
Ranking and result shaping
|
+--> CLI search
|
+--> MCP server over stdio
|
v
MCP-compatible assistant or client
In short: Telegram messages come in, a local index is built, local retrieval finds relevant results, and the MCP server exposes that capability to tools that can speak MCP.
People rarely remember the exact words used in a chat. They remember intent, context, and fragments: