dw-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 Deutsche Welle news via DW's official sitemaps (no key, no login): latest headlines, keyword search over the latest headlines, latest articles, full article text and topic pages — in 31 languages (en, de, fa-ir, fa-af, ar, tr, ...). Persian is "fa-ir" (Iran) or "fa-af" (Afghanistan/Dari); plain "fa" is not a DW edition. NOTE: DW has no working RSS feeds any more — headlines come from the news sitemaps, and search covers only the latest ~50 headlines, not the full archive. 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 |
|---|---|
| dw_headlinesB | Latest DW headlines in one language. language: e.g. "en", "de", "fa-ir" (Iran Persian), "tr". limit: 1..50 (default 10). |
| 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). |
| dw_latest_articlesA | Latest DW articles in one language, newest first. language: e.g. "en", "de", "fa-ir". limit: 1..50 (default 10). |
| 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). |
| 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). |
| 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. |
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 6 tools
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.
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.
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.
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.