tagesschau-mcp
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
Unofficial read-only MCP server for tagesschau.de — the news of the ARD, Germany's most-watched TV news — via its official RSS feeds (no key, no login). Headlines, news by section (Inland, Ausland, Wirtschaft, Sport, Kultur, Wissen, Investigativ), regional news for all 16 Bundesländer, latest videos and full article text. NOTE: tagesschau.de's JSON API (api2) is bot-walled from datacenter IPs (HTTP 403), so this server reads the official RSS feeds instead — same news, no wall — and article text from the NewsArticle JSON-LD on each article page. Search filters the fetched feeds client-side (the site search page is also walled). Built by Mohammad Abbasi (mohammad-abbasi-sh) — https://almanibama.ir · https://mabbasi.ir — Germany MCP factory.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": false
} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| tagesschau_headlinesA | Top headlines from tagesschau.de (alle Meldungen), newest first. limit: 1..50 (default 10). |
| tagesschau_news_by_sectionB | Newest news of one section, newest first. section: "inland", "ausland", "wirtschaft", "sport", "kultur", "wissen" or "investigativ". limit: 1..50 (default 10). |
| tagesschau_search_newsA | Search tagesschau.de news by keyword (title + description). query: free text, e.g. "Ukraine" or "Bundestag". limit: 1..50 (default 10). Searches the headlines feed plus all 7 section feeds client-side (the site search page is bot-walled), newest first, de-duplicated by link. |
| tagesschau_get_articleA | Full text of one tagesschau.de article: headline, description, publish date, author and the complete article body. url: a tagesschau.de article link, e.g. from tagesschau_headlines. |
| tagesschau_latest_videosA | Latest tagesschau.de videos ("Aktuelle Videos"), newest first. limit: 1..50 (default 10). |
| tagesschau_regional_newsA | Newest regional news of one Bundesland, newest first. region: e.g. "bayern", "berlin", "nordrhein-westfalen", "hamburg", "thueringen" (all 16 states; German names work too). limit: 1..50 (default 10). |
| tagesschau_healthA | Check whether tagesschau.de is reachable right now. Returns status ok (HTTP 200), blocked (HTTP 403/429 — bot wall or rate limit) or error, plus the HTTP status and the probed URL. One polite request; it does not fetch any listings. |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
No resources | |
TDQS
Scored across 7 tools
Each tool maps to a distinct retrieval mode: top headlines, a named section, a named region, keyword search, videos, full article fetch, and a reachability probe. The only mild overlap is between headlines, news_by_section and regional_news, but their required parameters (section, region) clearly separate them. The health tool's name is ambiguous by itself but its description disambiguates it as a probe, not a news source.
All tools share the tagesschau_ prefix and snake_case, which is highly predictable. However the pattern is noun-phrase based (headlines, latest_videos, regional_news) with one verb-first outlier (get_article) and a non-domain tool (health), so the verb convention isn't uniform.
Seven tools is well within the sweet spot and each one earns its place: four listing/slicing tools, one search, one full-text fetch, and one diagnostics probe. Nothing feels redundant or bloated.
The surface covers the natural news workflow end to end: discover via headlines/sections/regions/search/videos, then retrieve full text via get_article, with a health probe for failure diagnosis. Minor gaps exist—no date-range or archive filtering, no pagination beyond the limit parameter, and no way to list available sections/regions programmatically—but agents can work around these.