Skip to main content
Glama
README.md
# zdf-mcp ๐Ÿ“บ

mcp-name: io.github.mohammad-abbasi-sh/zdf-mcp

Unofficial **read-only** MCP server for **[zdfheute.de](https://www.zdfheute.de)** โ€” ZDF heute news from zdfheute.de (free, no key, no login): latest headlines, news by topic, keyword search and full article text. No key, no login.

> Built by Mohammad Abbasi as part of the "Germany MCP factory". Not affiliated with zdfheute.de.

## For AI agents

Add to your MCP client config (stdio):

```json
{
  "mcpServers": {
    "zdf": {
      "command": "uvx",
      "args": ["zdf-mcp==0.1.0"]
    }
  }
}
```

Or run locally: `python -m zdf_mcp.server` (needs `mcp<2`, `httpx`).

## Tools

| Tool | Description |
|------|-------------|
| `zdf_headlines` | Latest headlines from the ZDF heute RSS feed โ€” `limit` 1..50 |
| `zdf_news_by_topic` | News by topic โ€” `topic`: politik, sport, wissen, kultur; `limit` 1..50 |
| `zdf_search_news` | Keyword search over the latest headlines โ€” `query`, `limit` 1..50 |
| `zdf_get_article` | Full article text โ€” `article` (zdfheute.de URL or slug) |
| `zdf_health` | Reachability probe (ok / blocked / error) โ€” one polite request |

## Development

```bash
python3 -m venv .venv && .venv/bin/pip install "mcp<2" httpx pytest
.venv/bin/pip install -e .
.venv/bin/python -m pytest tests/ -q
```

## License

MIT

---

Built by [Mohammad Abbasi](https://github.com/mohammad-abbasi-sh) โ€” [Almanibama](https://almanibama.ir) ยท [mabbasi.ir](https://mabbasi.ir)

TDQS

A3.7/5.0

Scored across 5 tools

Disambiguation4/5

Each tool has a distinct role: listing headlines, topic filtering, keyword search, article fetch, and a health probe. The only mild overlap is between zdf_headlines and zdf_search_news, but the descriptions clearly explain that search operates over the same latest-headlines feed, making the boundary understandable.

Naming Consistency3/5

The zdf_ prefix is applied uniformly, which is good, but the suffixes mix conventions: verb_noun (search_news, get_article) versus bare nouns (headlines, health) and a noun phrase (news_by_topic). It remains readable, but the pattern is not predictable enough to be called consistent.

Tool Count5/5

Five tools is well-scoped for a news-reading server, and each one earns its place: discovery via headlines/topic/search, retrieval via get_article, and diagnostics via health. Nothing feels redundant or missing at the surface level.

Completeness4/5

The read-only lifecycle (browse, filter, search, fetch full text, connectivity check) is covered, which fits the stated scope. Minor gaps exist: only three topics are exposed (politik, wissen, kultur) and there is no way to page beyond the RSS window, though agents can work around these.

Maintenance

ActivityMaintained
ResponsivenessNo recent community issues