Skip to main content
Glama

dw-mcp πŸ“°

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

Unofficial read-only MCP server for dw.com β€” Deutsche Welle news in 31 languages from DW's official sitemaps: latest headlines, keyword search over recent headlines, latest articles, full article text and topic pages. No key, no login. No key, no login.

Built by Mohammad Abbasi as part of the "Germany MCP factory". Not affiliated with dw.com.

For AI agents

Add to your MCP client config (stdio):

{
  "mcpServers": {
    "dw": {
      "command": "uvx",
      "args": ["dw-mcp==0.1.0"]
    }
  }
}

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

Related MCP server: trthaber-mcp

Tools

Tool

Description

dw_headlines

Latest DW headlines β€” language (e.g. "en", "de", "fa-ir"), limit 1..50

dw_search_news

Keyword search over the latest DW headlines β€” query, language, limit 1..50

dw_latest_articles

Latest DW articles by publication time β€” language, limit 1..50

dw_get_article

Full text of one DW article β€” url (a dw.com article link)

dw_topics

DW topic pages matching a word β€” query, language, limit 1..50

dw_health

Reachability probe (ok / blocked / error) β€” one polite request

Notes

  • All data comes from DW's official sitemaps (free, no key, no login).

  • DW has no working RSS feeds any more β€” every /rss/ path returns 404 (verified 2026-11-10) β€” and its site search is gone, so headlines come from the news sitemaps and dw_search_news filters the latest ~50 headlines (not the full archive).

  • Persian is two editions: fa-ir (Iran) and fa-af (Afghanistan/Dari); plain fa does not exist.

  • Article bodies are extracted from DW's server-rendered pages (JSON-LD headline/date + cleaned <p> text); live blogs and video pages may return little or no body text.

Tests: 22/22 green (15 offline + 7 live, 2026-11-10).

Development

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 β€” Almanibama Β· mabbasi.ir

Available Tools

6 tools
dw_get_articleA

Full text of one DW article. url: a dw.com article link, e.g. https://www.dw.com/en/.../a-12345678 (live blogs and video pages may return little or no body text).

Inputs: url (required). Returns: result

dw_headlinesB

Latest DW headlines in one language. language: e.g. "en", "de", "fa-ir" (Iran Persian), "tr". limit: 1..50 (default 10).

Inputs: limit, language. Returns: result

dw_healthA

Check whether dw.com 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.

Inputs: no named parameters. Returns: result

dw_latest_articlesA

Latest DW articles in one language, newest first. language: e.g. "en", "de", "fa-ir". limit: 1..50 (default 10).

Inputs: limit, language. Returns: result

dw_search_newsA

Keyword search over the LATEST DW headlines (the news sitemap holds roughly the last 50 β€” this is not a full-archive search). query: keyword or phrase. language: e.g. "en", "de", "fa-ir". limit: 1..50 (default 10).

Inputs: query (required), limit, language. Returns: result

dw_topicsA

DW topic pages matching a word (e.g. "bundesliga", "klima"). With no query, returns the most recently updated topics. language: e.g. "en", "de". limit: 1..50 (default 10).

Inputs: limit, query, language. Returns: result

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A3.7/5.0

    Scored across 6 tools

    Disambiguation4/5

    dw_get_article, dw_topics, and dw_health are clearly distinct, but dw_headlines, dw_latest_articles, and dw_search_news all return recent items in a language and differ mainly in source (news sitemap vs article feed vs keyword filter). The descriptions do draw those lines explicitly (search is limited to the ~50 sitemap items), so confusion is limited but not zero.

    Naming Consistency4/5

    All names share a dw_ prefix and snake_case with a predictable noun/verb structure (dw_get_article, dw_search_news, dw_latest_articles). dw_headlines, dw_topics, and dw_health omit the verb, which is a minor deviation rather than an inconsistency.

    Tool Count5/5

    Six tools is well-scoped for a news-reading server: listing, searching, fetching full text, browsing topics, and a connectivity probe. Each tool has a clear, non-redundant job with no filler.

    Completeness3/5

    The core read path (list headlines/articles β†’ fetch full article) is covered, but there are notable dead ends: dw_topics returns topic pages with no tool to list articles within a topic, and search is limited to the ~50-item sitemap with no date-range or archive option. A listing-by-topic or date-filtered search would round out the surface.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      B
      quality
      D
      maintenance
      Enables access to real-time news articles through search, topic headlines, full story coverage, and geo-based local news across multiple countries and languages using the Real Time News Data API.
      7
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables read-only retrieval of TRT Haber headlines by category, breaking news, full article text, keyword search over current listings, and the category list.
      6
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables read-only access to German news headlines, section and regional feeds, latest videos, keyword search, and full article text via official RSS feeds. No API key or login is required.
      7
      MIT
    • A
      license
      A
      quality
      B
      maintenance
      Enables read-only access to n-tv.de news from official RSS feeds, including headlines by section, market news, videos, keyword search, and full article text.
      6
      MIT