Skip to main content

cablegram-mcp

Raw dispatches from tech, AI and Chinese/Russian sources — filtered by date, never ranked.

A cablegram was the unedited message that arrived over the submarine cables, before an editor turned it into a story. This server is the cable: it brings the dispatches. Your model is the editor.

The point is the cable, not the news. A launch discussed in Chinese or Russian today reaches English-language coverage days later, filtered through whoever decided it was worth translating — and often it never arrives at all. Nineteen sources in three languages, read directly, put a reader in California in the same week as a reader in Shanghai or Moscow.

Headlines are never translated. Each dispatch carries its language, and the model reading it has more context for that than any translation step would. It also means the same story is kept in every language that carried it: OpenAI titles a post "Pacing model development in an era of cyber-critical capabilities" while a Russian channel titles the same URL "OpenAI stopped RL for two weeks on its latest models". Both are stored against the same id, and either can be searched.

A full day of all nineteen costs a few thousand tokens. Six hours of them, grouped by source with the cuts declared, is around 700.

CABLEGRAM v0.1 | 2026-08-30T09:09Z..2026-08-30T14:09Z | 11 items | 19/19 sources
CUT   habr=2/4  hn=2/159  kr36=2/3   (newest kept)
COLS  id hh:mm title    times UTC | body: wire_read(ids=[...])
---

## cls zh early,finance 1/1
-- 08-30
e60e27faa7fc 10:04 AI数据中心扩张“限制性因素”浮现 马斯克:SpaceX正铸造燃气轮机叶片

## data_secrets ru telegram 1/1
-- 08-30
a50d137e3147 10:49 Агенты OpenAI одну за одной автономно создали три цивилизации

## hn en community,searchable 2/159
-- 08-30
2929f114895f 14:06 METR and Redwood Offer Postmortem of the HuggingFace Hack (thezvi.wordpress.com)
7901d3fb4e1c 14:04 Google removed the URLs. Only for the people who resell them (scraping.club)

Five hours of nineteen sources, verbatim. CUT says what was left out and how much there was; 19/19 is how many answered.

Status

v0.1 — the nineteen sources work; the tool API may still move. All nineteen sources have an adapter and were verified against the live endpoints: eleven RSS feeds, Hacker News through its search index, a signed Chinese financial API, and six public Telegram channels.

Two of them are worth knowing about before you rely on them:

  • cls.cn is reverse-engineered. An undocumented internal API with a signed request. It holds 3.34 days at most and cannot page backwards, so a gap in polling is permanent. wire_sources marks it fragile.
  • Telegram is HTML with no contract. The public preview view can change without a version number to notice it by.

Both are declared in the output rather than explained afterwards.

Install

Requires Python 3.12+.

git clone https://github.com/levongabrielyan/cablegram-mcp
cd cablegram-mcp
uv sync

Register it with an MCP client — for Claude Code:

claude mcp add cablegram --scope user -- \
  /path/to/cablegram-mcp/.venv/bin/python -m cablegram.cli serve

Then fill the archive, and keep filling it:

cablegram poll          # once, now
cablegram sources       # what it knows about

Feeds expose a window of days, so put cablegram poll on a timer — an hour nobody polls is an hour no endpoint will serve again. A systemd user unit is in deploy/.

The four tools

Tool Question
wire_latest What did the sources publish in the last N hours?
wire_read Give me the stored text of these ids
wire_search When did this term start appearing?
wire_sources What exists, and what is currently broken?

All four are read-only and return plain text. The same information as JSON with indent costs roughly six times the tokens and truncates.

The local archive

RSS feeds expose only their last few dozen entries; last week is unrecoverable. So everything fetched is stored in a SQLite file under your platform's data directory (~/.local/share/cablegram/archive.db on Linux; override with CABLEGRAM_DB).

It is created on first run and grows by a few megabytes a year. Nothing is uploaded anywhere, and no seed database ships with this repository — the server fetches on your behalf and does not redistribute anyone's content.

wire_search only reads what this archive holds, which starts the day you first ran it. Zero hits means "not in what we can search", never "nobody is talking about it", and the output says so on every reply.

Design

docs/design.md covers why the identity of an item is a pure function of its URL, why a failure is a value rather than an exception, why the full-text index needs a trigram tokenizer for Chinese to work at all, and what this server deliberately does not do.

Notes

Only public endpoints are used: no credentials, no authentication bypass, no scraping behind a login. Conditional requests (ETag, If-Modified-Since) mean an unchanged feed is not re-downloaded. Intended for personal research — respect each source's terms of service.

Licence

MIT. Built by Levon Gabrielyan.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cablegram_mcp-0.1.0.tar.gz (140.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cablegram_mcp-0.1.0-py3-none-any.whl (56.1 kB view details)

Uploaded Python 3

File details

Details for the file cablegram_mcp-0.1.0.tar.gz.

File metadata

  • Download URL: cablegram_mcp-0.1.0.tar.gz
  • Upload date:
  • Size: 140.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cablegram_mcp-0.1.0.tar.gz
Algorithm Hash digest
SHA256 27f6a20165427169a1767a7f714eece3aa0f25d00b99f152c56741d4e78a8dbe
MD5 7a62b3e862991747285146d5588af18c
BLAKE2b-256 3aeb47d129b6d30d7f01aa01416a2da8c3e3c5857e0fd6597de013c9cee42a15

See more details on using hashes here.

Provenance

The following attestation bundles were made for cablegram_mcp-0.1.0.tar.gz:

Publisher: publish.yml on levongabrielyan/cablegram-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file cablegram_mcp-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: cablegram_mcp-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 56.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for cablegram_mcp-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 de2a6f6a2edb609d74c67158f90b57efdde43fcb84f0157bb5ca500a03ae11e0
MD5 88759bbdf768187686d3eb3f4700824d
BLAKE2b-256 9affce0845cc3de1c5c285c9e84e78e2f2198cd869d26ee6b334297a0f850526

See more details on using hashes here.

Provenance

The following attestation bundles were made for cablegram_mcp-0.1.0-py3-none-any.whl:

Publisher: publish.yml on levongabrielyan/cablegram-mcp

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

0.1.1

2 files

This release

0.1.0 This release

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page