weixin-articles-mcp
weixin-articles-mcp
MCP-Server zum Lesen von WeChat (微信) Official Account-Artikeln mit nativer multimodaler Ausgabe — Bilder und Video-Keyframes werden als Inhaltsblöcke zurückgegeben, nicht als URLs.
Für den persönlichen/wissenschaftlichen Gebrauch. Dieses Tool liest nur öffentlich zugängliche Artikel-URLs und umgeht keinerlei Authentifizierungs- oder Anti-Bot-Maßnahmen. Siehe Haftungsausschluss vor der Verwendung.
Warum existiert dieses Tool?
Andere Tools, die WeChat-Artikel für LLMs lesen, geben eine Liste von Bild-URLs zurück — Ihr LLM muss darauf klicken, um sie tatsächlich zu sehen, was zusätzliche Roundtrips und Kontext kostet.
Dieser Server gibt die Bilder selbst zurück. Und die Video-Keyframes. Ihr LLM sieht, was Sie sehen, auf einen Schlag.
Tool | Artikeltext | Bilder | Videos |
| ✅ (oft durch Anti-Bot blockiert) | ❌ Nur URLs | ❌ |
Bestehende WeChat MCPs / Skills | ✅ | ❌ Nur URLs | ❌ |
weixin-articles-mcp | ✅ | ✅ Native Bildblöcke | ✅ Keyframes als Bildblöcke |
Related MCP server: WeChat Article Parser
Funktionen
📰 Zuverlässiges WeChat-Scraping — reines Python
httpxGET, kein Rust-Binary oder Headless-Browser erforderlich🖼️ Native Bildinhalte — PNG/JPG werden als MCP
Image-Blöcke zurückgegeben, GIFs gefiltert, auf 10 pro Artikel begrenzt🎬 Videoverarbeitung für alle drei Einbettungstypen:
WeChat Official Account native Videos (
<iframe data-mpvid="wxv_*">): mp4 aus Inline-JS extrahiert, 8 gleichmäßig verteilte Keyframes via ffmpegTencent Video (
v.qq.comiframes): yt-dlp + ffmpeg KeyframesWeChat Channels (视频号,
<mp-common-videosnap>): vollständige Metadaten über die öffentlichebatch_get_video_snapAPI (Dauer, Abmessungen, hochauflösendes Cover, vollständige Beschreibung, Like-Anzahl, Verifizierung des Herausgebers) + Cover-Bild. Der mp4-Stream ist hinter dem WeChat-Finder-Protokoll gesperrt — siehe Warum kein Channels mp4? unten
🕒 Wiederherstellung der Veröffentlichungszeit — extrahiert den Unix-Zeitstempel
var ct, den andere Parser übersehen🪶 Minimale Installation —
pip install+ optionalffmpegfür Videos; kein Chromium, kein Rust
Installation
# Core (article + images)
pip install weixin-articles-mcp
# With video keyframe support
pip install "weixin-articles-mcp[video]"
brew install ffmpeg # or apt install ffmpeg on LinuxKonfiguration
Claude Desktop / Claude Code
{
"mcpServers": {
"weixin-articles": {
"command": "weixin-articles-mcp"
}
}
}Cursor / Cline
Verwenden Sie dasselbe JSON und fügen Sie es in die MCP-Server-Konfiguration Ihres Clients ein.
Verwendung
Sobald es konfiguriert ist, fügen Sie einfach eine WeChat-Artikel-URL in Ihre Konversation ein:
Ihr LLM erhält:
Artikel-Metadaten (Titel, Account, Veröffentlichungszeit, Cover-URL)
Vollständigen Artikeltext in Markdown
Alle Inline-PNG/JPG-Bilder als native Bildinhaltsblöcke
Für jedes Video 8 Keyframe-Bilder
Tool-Referenz
read_article(url: str) -> list[content_block]
Gibt eine Liste von MCP-Inhaltsblöcken zurück:
[0]— Textblock: Metadaten + Artikeltext-Markdown[1..N]— Bildblöcke: Artikelbilder (max. 10, GIFs gefiltert)Für jedes Video (max. 3):
WeChat-nativ oder Tencent: ein Textmarker + 8 Keyframe-Bildblöcke
WeChat Channels: ein Textmarker (mit Dauer, Abmessungen, Like-Anzahl, Herausgeber, Beschreibung) + 1 hochauflösender Cover-Bildblock
Bei einem Fehler wird ein einzelner Textblock zurückgegeben, der mit Error: beginnt.
Roadmap
[x] WeChat-Artikelabruf mit Anti-Bot-Behandlung
[x] Native Bildinhaltsblöcke
[x] Extraktion von Keyframes für native WeChat Official Account-Videos
[x] Extraktion von Keyframes für Tencent Video
[x] Anreicherung von WeChat Channels (视频号)-Metadaten über öffentliche API
[ ] ASR-Untertitel via faster-whisper (für native + Tencent-Videos)
[ ] Volltextsuche über gelesene Artikel
[ ] Account-Abonnement / Benachrichtigungen für neue Artikel
Warum kein Channels mp4?
Kurze Antwort: WeChat Channels (视频号)-Videos in Artikeln legen absichtlich keinen herunterladbaren mp4-Stream für den öffentlichen Webzugriff offen. Das mp4 befindet sich innerhalb des WeChat-Finder-Protokolls, was (a) eine eingeloggte WeChat-Clientsitzung, (b) Finder-spezifische Verschlüsselung (die ersten 128 KB des mp4 sind mit einem festen Schlüssel XOR-verschlüsselt) und (c) das Abfangen des Streams vom WeChat PC-Client auf Netzwerkebene erfordert.
Jeder Open-Source WeChat Channels-Downloader, der existiert — ltaoo/wx_channels_download, qiye45/wechatVideoDownload, putyy/res-downloader, KingsleyYau/WeChatChannelsDownloader und andere — löst dies mit einem MITM HTTPS-Proxy + WeChat PC-Client + Root-CA-Installation. Dieses Modell ist grundlegend inkompatibel mit der Funktionsweise eines MCP-Servers (kein Client, keine Benutzerinteraktion, keine Admin-Installation).
Was wir stattdessen tun: Wir rufen die öffentliche batch_get_video_snap API von WeChat auf (kein Cookie oder Sitzung erforderlich), um Ihrem LLM das nächstbeste zu bieten — hochauflösendes Cover-Bild, vollständige Beschreibung, Dauer, Abmessungen, Like-Anzahl und Verifizierung des Herausgebers. Für die meisten Anwendungsfälle (Lesen und Zusammenfassen von Artikeln) reicht dies aus, um den Inhalt des Videos zu vermitteln.
Wenn Sie speziell die mp4-Datei benötigen, installieren Sie eines der oben genannten dedizierten Tools zusätzlich zu diesem MCP — sie ergänzen sich gegenseitig.
Architektur
src/weixin_articles_mcp/
├── server.py # FastMCP entrypoint, tool registration
├── fetcher.py # httpx GET with browser UA
├── parser.py # WeChat DOM extraction (BeautifulSoup + lxml)
├── markdown.py # HTML → Markdown (markdownify subclass)
└── media.py # Image download + video download/keyframe extractionMitwirken
Pull Requests sind willkommen. Wir suchen insbesondere Hilfe bei:
Behandlung von WeChat Channels (视频号)-URLs
Widerstandsfähigkeit gegenüber Vorlagenvarianten von weniger verbreiteten Herausgebern
Mehr Test-Fixtures (verschiedene Artikelstile)
Öffnen Sie ein Issue: https://github.com/jj-cheng25/weixin-articles-mcp/issues
Haftungsausschluss
Dieses Tool wird nur für persönliche, pädagogische und wissenschaftliche Zwecke bereitgestellt.
Was dieses Tool tut:
Liest öffentlich zugängliche WeChat-Artikel-URLs (
mp.weixin.qq.com/s/...) unter Verwendung eines Standard-Browser-User-Agents — denselben Inhalt, den jeder Benutzer mit einem Webbrowser sehen kannRuft nur öffentliche WeChat-API-Endpunkte auf, die leere Authentifizierungsfelder akzeptieren (d. h. von WeChat so konzipiert, dass sie ohne Login erreichbar sind)
Erzwingt ein standardmäßiges Mindestintervall von 1 Sekunde zwischen Anfragen, um zu verhindern, dass das Tool als hochvolumiger Crawler zweckentfremdet wird
Was dieses Tool nicht tut:
Cookies, Login-Sitzungen oder irgendeine Form von Benutzeranmeldeinformationen verwenden
Technische Schutzmaßnahmen, Anti-Bot-Maßnahmen oder verschlüsselte Streams umgehen (z. B. wird WeChat Channels mp4 absichtlich nicht unterstützt — siehe Warum kein Channels mp4?)
WeChats protokollbasierte Schutzmaßnahmen entschlüsseln, zurückentwickeln oder umgehen
Abgerufene Inhalte über die unmittelbare Antwort hinaus speichern, zwischenspeichern oder weiterverbreiten
Verantwortlichkeiten des Benutzers:
Respektieren Sie die Nutzungsbedingungen von WeChat, wenn Sie dieses Tool verwenden. Die persönliche/wissenschaftliche Nutzung öffentlich zugänglicher Artikel entspricht im Allgemeinen der Art und Weise, wie der Inhalt konsumiert werden soll; hochvolumiges Scraping oder kommerzielle Weiterverbreitung wahrscheinlich nicht.
Respektieren Sie das Urheberrecht der abgerufenen Inhalte. Der Artikelinhalt bleibt Eigentum seiner ursprünglichen Autoren und Herausgeber; dieses Tool ruft ihn lediglich ab und leitet ihn zur Inline-Verarbeitung an Ihr LLM weiter.
Überfluten Sie mp.weixin.qq.com nicht — halten Sie die Nutzung auf menschlichem Lesetempo. Das Standard-Ratenlimit ist konservativ eingestellt, aber Sie können es weiter verschärfen, indem Sie
WEIXIN_FETCH_INTERVAL_S=2.0(oder höher) in Ihrer Umgebung festlegen.
Die Autoren und Mitwirkenden dieses Projekts lehnen jegliche Haftung ab, die sich aus Missbrauch ergibt. Durch die Nutzung dieser Software akzeptieren Sie die volle Verantwortung dafür, sicherzustellen, dass Ihre Nutzung den geltenden Gesetzen und den Nutzungsbedingungen der Dienste, mit denen sie verbunden ist, entspricht.
Lizenz
MIT — siehe LICENSE.
Available Tools
1 toolread_articleA
Read a WeChat Official Account article (mp.weixin.qq.com/s/...) and return its content as a multimodal block list:
First text block: title, account, publish time, cover URL, video count, and the full article body in Markdown.
Image blocks: the article's PNG/JPG images (GIFs filtered out, capped at
returned as native image content so the LLM can see them directly.
Per-video groups: a text marker
video kind=... vid=... keyframes=Nfollowed by N evenly-spaced keyframe images (capped at 3 videos).
On failure the response is a single text block starting with "Error:".
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | A WeChat article URL, format: https://mp.weixin.qq.com/s/xxx |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description fully discloses behavior: return format (title, account, time, cover, video count, Markdown body), image handling (GIFs filtered, cap at 10), video keyframes (cap at 3), and error format (single text block starting with 'Error:'). This is comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is detailed but efficiently structured: a concise overview followed by a well-organized list of return components. Every sentence adds value, though slightly verbose due to thoroughness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has one parameter, no output schema, and no annotations, the description provides complete guidance: input format, full output structure with all edge cases (errors, caps, filtering). An agent can invoke it correctly without additional info.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema coverage and a single parameter 'url' already described in schema, the description adds only marginal value by repeating the URL format and specifying it's for WeChat account articles. Baseline meets expectation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool reads a WeChat Official Account article and returns its content as a multimodal block list. It specifies the URL format and details the output structure, leaving no ambiguity about the tool's function.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description does not explicitly provide when or when not to use this tool, nor does it mention alternatives (though none exist in context). Usage is implied but not formally guided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v0.1.0- First observed
read_article
TDQS
Scored across 1 tool
With only one tool, there is no ambiguity between tools. The single tool 'read_article' has a clear, distinct purpose.
The single tool name 'read_article' follows a clear verb_noun pattern. Consistency is not an issue with one tool.
One tool is appropriate for the narrow purpose of reading WeChat articles given a URL. While minimal, it matches the server's focused scope.
The tool reads articles thoroughly, but lacks any discovery or listing capabilities. For a server named 'weixin-articles-mcp', the absence of search or listing is a notable gap.
Maintenance
Related MCP Connectors
Read WeChat public account articles via MCP. 99.89% anti-scraping success, 50-87% token compression.
WeChat video and image posts, comments, users, transcripts, Official Account articles and stats.
Read any public web page as clean Markdown for LLMs, with its metadata. Paid per call, x402.
Multimodal video analysis MCP — transcription, vision, and OCR for any video URL.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables parsing and extracting content from WeChat public account articles using browser simulation, supporting multiple output formats (JSON, Markdown, HTML) and media resource extraction.-
- FlicenseNot gradedqualityDmaintenanceParses WeChat public account articles to extract metadata, content, and generate AI-powered summaries with semantic analysis, viewpoint extraction, and structure analysis capabilities.-
- AlicenseNot gradedqualityFmaintenanceEnables reading and extracting content from WeChat public account articles using browser automation, allowing AI models to analyze and summarize WeChat articles through natural language requests.457MIT
- FlicenseNot gradedqualityDmaintenanceExtracts title, author, and content (in Markdown format) from WeChat official account articles via URL, supporting both MCP stdio and HTTP server modes.1-