Skip to main content
Glama
kimhjort

aria-mcp-news-dr

by kimhjort
README.md
# 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.