Content
# aria-mcp-news-dr
A [Model Context Protocol (MCP)](https://modelcontextprotocol.io) server that exposes Danish news from DR (Danmarks Radio) to AI assistants via free public RSS feeds. Built for [ARIA](https://github.com/kimhjort/aria) and shareable with the community.
**Fully keyless** — DR's RSS feeds are open and require no API key.
## Data Source
| Source | What | Attribution |
|---|---|---|
| [DR (Danmarks Radio)](https://www.dr.dk) | National and regional Danish news via RSS | DR — Danmarks Radio (dr.dk). Feeds are for personal use. |
## Install & Run
```bash
npx aria-mcp-news-dr
```
Or install globally:
```bash
npm install -g aria-mcp-news-dr
aria-mcp-news-dr
```
Requires Node.js 20 or later.
## Tools
### `list_feeds`
Returns all available DR RSS feed names and their Danish descriptions — both national/topical feeds and regional feeds.
**Parameters:** None
**Returns:**
```json
{
"national": [
{ "name": "senestenyt", "description": "Seneste nyt (latest news)" },
{ "name": "indland", "description": "Indland (domestic news)" }
],
"regional": [
{ "name": "kbh", "description": "DR København (Copenhagen region)" }
],
"totalFeeds": 16
}
```
---
### `get_news`
Fetch the latest news items from a DR RSS feed.
**Parameters:**
| Name | Type | Required | Description |
|---|---|---|---|
| `feed` | string | No | DR feed slug (default: `senestenyt`). Use `list_feeds` to see all options. |
| `limit` | number | No | Max items to return (default 10, max 50). |
**Returns:** Array of news items:
```json
[
{
"title": "Statsministeren holder pressemøde om ny aftale",
"link": "https://www.dr.dk/nyheder/politik/...",
"summary": "Statsministeren har indkaldt til et pressemøde og vil præsentere en ny aftale om klimaet.",
"published": "2024-06-01T08:00:00.000Z",
"categories": ["Politik", "Klima"]
}
]
```
Fields: `title`, `link`, `summary` (HTML stripped), `published` (ISO 8601), `categories` (optional).
---
### `search_news`
Fetch a DR RSS feed and return only items whose title or summary contains the search query (case-insensitive).
**Parameters:**
| Name | Type | Required | Description |
|---|---|---|---|
| `query` | string | **Yes** | Search term to filter by. |
| `feed` | string | No | DR feed slug (default: `senestenyt`). |
| `limit` | number | No | Max matching items to return (default 10, max 50). |
**Returns:**
```json
{
"query": "klima",
"feed": "senestenyt",
"matchCount": 3,
"items": [...]
}
```
## Available Feeds
### National / topical
| Slug | Description |
|---|---|
| `senestenyt` | Seneste nyt (latest news) |
| `indland` | Indland (domestic news) |
| `udland` | Udland (international news) |
| `penge` | Penge (business & money) |
| `politik` | Politik (politics) |
| `sporten` | Sporten (sports) |
| `senestesport` | Seneste sport (latest sports news) |
### Regional
| Slug | Description |
|---|---|
| `kbh` | DR København (Copenhagen region) |
| `sjaelland` | DR Sjælland (Zealand region) |
| `fyn` | DR Fyn (Funen region) |
| `syd` | DR Syd (Southern Jutland) |
| `trekanten` | DR Trekanten (Triangle region) |
| `oestjylland` | DR Østjylland (East Jutland / Aarhus) |
| `bornholm` | DR Bornholm (Bornholm island) |
## ARIA MCP Config
Add to your ARIA credentials / MCP config to use with ARIA:
```json
{
"Name": "DR Nyheder",
"Command": "npx",
"Args": ["-y", "aria-mcp-news-dr"]
}
```
No environment variables required — all feeds are fully keyless.
## Development
```bash
git clone https://github.com/kimhjort/aria-mcp-news-dr
cd aria-mcp-news-dr
npm install
npm run build
npm test
```
## License
MIT — see [LICENSE](LICENSE).
News content is provided by DR (Danmarks Radio). Feeds are for personal use; see [dr.dk](https://www.dr.dk) for terms.