Skip to main content
AllMCPs
BrowseBestCategoriesStackCompareToolsGuidesBlog Log in Submit MCP

Stay in the loop

Get new MCP servers and top picks in your inbox.

AllMCPs

The open directory for discovering and installing Model Context Protocol servers.

Explore

  • Browse servers
  • Best MCP servers
  • Categories
  • MCP clients
  • Agent prompts
  • Stack Builder
  • Compare servers
  • Tags index
  • Submit a server
  • Pricing

Learn

  • Guides hub
  • What is MCP?
  • Install guide
  • Troubleshooting
  • Security
  • Blog
  • Blog RSS

Tools

  • All tools
  • Config generator
  • Config validator
  • MCP playground
  • OpenAPI β†’ MCP
  • Badge generator

For agents

  • API docs
  • Trust & traffic
  • llms.txt β†— (opens in a new tab)
  • Catalog JSON β†— (opens in a new tab)
  • Remote MCP β†— (opens in a new tab)

Company

  • About
  • Contact
  • X (@AllMCPs) β†— (opens in a new tab)
  • GitHub β†— (opens in a new tab)
  • Terms
  • Privacy
AllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on BuildlistAllMCPs VerifiedAllMCPs VerifiedFeatured on Nick LaunchesFeatured on Nick LaunchesLaunch Llama NewsletterLaunch Llama NewsletterVerified DR - allmcps.comVerified DR - allmcps.comFeatured on SaaSGrowFeatured on SaaSGrowFeatured on Twelve ToolsFeatured on Twelve ToolsFeatured on Saaspa.geFeatured on Saaspa.geFeatured on Findly.toolsFeatured on Findly.toolsFeatured on Startup FameFeatured on Startup FameFeatured on LaunchKiwiFeatured on LaunchKiwiFeatured on ScrollLaunchFeatured on ScrollLaunchFeatured on DailyPingsFeatured on DailyPingsFazier badgeFazier badgeFeatured on NewTool.siteFeatured on NewTool.siteFeatured on saasfame.comFeatured on saasfame.comDR Checker - Domain RatingDR Checker - Domain RatingListed on Turbo0Listed on Turbo0Launched on LaunchBoard - Product Launch PlatformLaunched on LaunchBoard - Product Launch PlatformList on SimilarlabsList on Similarlabshttps://codetrendy.comhttps://codetrendy.comListed on DevTool.ioFeatured on BuildlistFeatured on Buildlist
Β© 2026 Jackalope Digital LLC. All rights reserved.
  1. Home
  2. πŸ’» Developer Tools
  3. German Newsfeed MCP Server
G
Health: Not checked yetWe have not completed a health check for this listing yet.Last checked 8/11/2026, 12:03:32 AM

German Newsfeed MCP Server

Enrichment pendingWe haven’t run our AI enrichment pass on this listing yet, so the overview, use cases, and FAQ below may be sparse or missing. We work through the catalog over time β€” check back soon.
View Repository

MCP server for the public news API of tagesschau.de, including regional news from ARD broadcasters

Quick Install

Automated & IDE Setup

Copy the AI prompt to install this server into Claude Code, Cursor, or another agent β€” or use 1-click editor setup below.

Add to CursorAdd to VS Code
Manual Client & Custom JSON ConfigExpand JSON β–Ύ

Install Config Generator

Choose your client
claude_desktop_config.json
{
  "mcpServers": {
    "german-newsfeed-mcp-server": {
      "command": "npx",
      "args": [
        "-y",
        "german-newsfeed-mcp-server"
      ]
    }
  }
}

πŸ’‘ Paste into ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows)

Install Directory Badge Claim listing AlternativesπŸ’» More in Developer Tools

Documentation Overview

German Newsfeed MCP Server

pylint tests python license

Disclaimer: This is a private, unofficial project. It is not an ARD product and is neither operated nor endorsed by ARD, ARD-aktuell, or NDR. It is developed independently of the author's professional employment. "ARD" and "tagesschau" are trademarks of their respective owners and are named here solely to describe the API being accessed.

This project merely connects the public API to an MCP-capable AI assistant. ARD-aktuell is responsible for the API itself, its operation, and its content; this project cannot provide information on any of those. Please raise any concerns about this project, in particular from rights holders, as a GitHub issue. Substantiated concerns will be addressed promptly.

In thirty seconds

This Model Context Protocol (MCP) server connects your AI assistant (Claude Desktop and others) to the public news API of tagesschau.de: current headlines, category and regional news, and full-text search, locally via stdio, no API key required.

Example: asked "Was sind die aktuellen Schlagzeilen?", the assistant answers with the current top stories from tagesschau.de, each with title, date, summary, and a link to the article.

Language:

  • πŸ‡©πŸ‡ͺ Deutsch
  • πŸ‡¬πŸ‡§ English

Table of Contents
  1. What is this?
  2. Data Source and Terms of Use
  3. Features
  4. Project Structure
  5. Quick Start Local (Claude Desktop)
  6. Remote / Docker Deployment
  7. Configuration Reference
  8. Available Tools
  9. Available Resources
  10. Development Guide
  11. Running the Tests
  12. Makefile Reference
  13. Troubleshooting
  14. When it stops working
  15. License & Acknowledgements

What is this?

This MCP server connects the public news API of tagesschau.de to your AI assistant (Claude, Open Claw, etc.).

Once connected, your AI can answer questions like:

  • "Was sind die aktuellen Schlagzeilen?"
  • "Zeig mir die neuesten Wirtschaftsnachrichten."
  • "Suche nach Artikeln ΓΌber Ukraine."
  • "Welche Regionalnachrichten gibt es aus Bayern?"

For details on the API and its terms, see Data Source and Terms of Use. No API key required.


Data Source and Terms of Use

This server calls the publicly accessible endpoint www.tagesschau.de/api2u/, operated by ARD-aktuell. The delivered content originates from the ARD broadcasters, remains subject to their rights and to the terms of use of tagesschau.de: https://www.tagesschau.de/nutzungsbedingungen/

The API is not officially documented. Community documentation is available at bund.dev (https://tagesschau.api.bund.dev). bund.dev is a civil-society documentation project, neither the operator of the API nor a rights holder of the content. Its documentation served as a reference for this project but does not grant any usage rights.

Applicable limits: at most 60 requests per hour, and no republication of the content except for offerings under a CC licence (https://tagesschau.de/creativecommons). Compliance is the responsibility of whoever operates a given instance.

The robots.txt of tagesschau.de additionally declares an express reservation of rights under Section 44b(3) of the German Copyright Act (as of 2026-05-19): text and data mining and the automated use of the content for training or fine-tuning AI models are prohibited without written consent. Expressly exempt is automated access for the sole purpose of retrieval-augmented generation (RAG) or grounding, provided the technical directives of the robots.txt are complied with and the content remains attributed to its original source. This server falls under that exemption: it passes content to the assistant exclusively together with source links. The retrieved content must not be used to train AI models.


Features

πŸ—žοΈ Live newsFetches breaking news, categorised news, and regional news in real time
πŸ” Full-text searchSearch across all available articles
πŸ“Ί Live streamsList all available channels and HLS stream URLs
⏱️ Rate limiterLocal token bucket honouring the API's 60/h limit
πŸš€ Dual transportstdio for local Claude Desktop; streamable-http for remote / Docker
🐳 Docker-readyMulti-stage image, non-root user, health-check, resource limits
βœ… 181 tests160 unit tests + 21 live integration tests
πŸ› οΈ Makefilemake test, make lint, make docker-build and more
πŸ”’ No secretsPublic API, no API keys

Project Structure

Code
german-newsfeed-mcp/
β”œβ”€β”€ src/
β”‚   └── german_newsfeed_mcp/
β”‚       β”œβ”€β”€ __init__.py      # Package metadata
β”‚       β”œβ”€β”€ config.py        # Environment-driven configuration
β”‚       β”œβ”€β”€ client.py        # Async HTTP client (httpx) + error handling
β”‚       β”œβ”€β”€ rate_limiter.py  # Token-bucket rate limiter
β”‚       β”œβ”€β”€ validators.py    # Domain constants + validation helpers
β”‚       β”œβ”€β”€ formatters.py    # Markdown rendering of news items & channels
β”‚       β”œβ”€β”€ tools.py         # MCP tool business logic
β”‚       β”œβ”€β”€ resources.py     # MCP resource business logic
β”‚       └── server.py        # Composition root: FastMCP + run() entry-point
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ conftest.py          # Shared fixtures & mock payloads
β”‚   β”œβ”€β”€ test_client.py       # Client unit + live integration tests
β”‚   β”œβ”€β”€ test_rate_limiter.py # Rate-limiter unit tests
β”‚   β”œβ”€β”€ test_formatters.py   # Formatter unit tests (pure functions)
β”‚   β”œβ”€β”€ test_tools.py        # Tool unit + live integration tests
β”‚   └── test_resources.py    # Resource unit + live integration tests
β”œβ”€β”€ main.py                  # Thin entry-point (calls server.run())
β”œβ”€β”€ pyproject.toml           # Project metadata, deps, pytest & pylint config
β”œβ”€β”€ uv.lock                  # Locked dependency graph (commit this!)
β”œβ”€β”€ Dockerfile               # Multi-stage production image
β”œβ”€β”€ docker-compose.yml       # One-command remote deployment
β”œβ”€β”€ .env.example             # Configuration template
β”œβ”€β”€ Makefile                 # Developer shortcuts (test, lint, docker, clean)
β”œβ”€β”€ CHANGELOG.md             # Version history
β”œβ”€β”€ CONTRIBUTING.md          # How to contribute
└── README.md                # German version of this file

Quick Start Local (Claude Desktop)

Also applicable to other AI assistants, edit their respective config instead. This mode uses stdio transport; the server is launched as a child process. No port is needed.

Prerequisites

  • macOS / Linux / Windows (WSL2)
  • Python 3.12+
  • uv: curl -LsSf https://astral.sh/uv/install.sh | sh
  • Claude Desktop

Step 1: Clone and install

bash
git clone https://github.com/Jakolo121/german-newsfeed-mcp.git
cd german-newsfeed-mcp
uv sync

Step 2: Verify it works

server.ts
uv run python -c "from german_newsfeed_mcp.server import mcp; print('OK!', mcp.name)"
# Expected: OK! German Newsfeed MCP

Step 3: Connect Claude Desktop

Open your Claude Desktop config file:

OSPath
macOS~/Library/Application Support/Claude/claude_desktop_config.json
Windows%APPDATA%\Claude\claude_desktop_config.json
Linux~/.config/Claude/claude_desktop_config.json

Add the following entry (adjust the path to your clone):

json
    "german-newsfeed": {
      "command": "uv",
      "args": [
        "--directory",
        "/absolute/path/to/german-newsfeed-mcp",
        "run",
        "german-newsfeed-mcp"
      ]
    },

Step 4: Restart Claude Desktop

Quit and reopen the application, or reload its MCP servers, depending on the application.

Step 5: Try it!

Ask your assistant:

"Was sind die aktuellen Nachrichten?"


Remote / Docker Deployment

Self-hosting for your own or team-internal use. The recommended default is stdio (see Quick Start); the streamable-http transport is an option you choose deliberately.

Security note: The HTTP transport has no authentication. Do not expose it publicly without an authentication layer in front (e.g. a reverse proxy). The Compose setup therefore deliberately binds the port to 127.0.0.1 only. Whoever makes an instance reachable for third parties becomes the responsible operator under the terms of use.

Rate limiter limitations: stateless_http=True refers to MCP sessions, not to the rate limiter. The token bucket is process-local in-memory state. Two limitations follow:

  1. Multiple replicas against the same upstream API multiply the request budget.
  2. A container restart resets the bucket to full. Combined with restart: unless-stopped and a crash loop, this can exceed the limit. Watch the logs.

(The legacy sse transport is still supported.)

Prerequisites

  • Docker 24+
  • Docker Compose v2+

Step 1: Create your .env file

bash
cp .env.example .env
# Edit .env if you want a different port or log level

Step 2: Build and start

Terminal
docker compose up --build -d

Or:

bash
make docker-build
make docker-run

The server starts at http://localhost:8000.

Step 3: Verify health

Terminal
docker compose logs german-newsfeed-mcp
docker compose ps

Or:

bash
make docker-logs

Step 4: Connect Claude Desktop (Streamable HTTP)

json
    "german-newsfeed": {
      "command": "npx",
      "args": ["mcp-remote", "http://localhost:8000/mcp"]
    },

For external servers: put an authentication layer in front first (see the security note above), then adjust the loopback binding in docker-compose.yml and replace localhost with your proxy's address.

Stop / Update

Terminal
docker compose down
docker compose up --build -d

Configuration Reference

All settings are read from environment variables (or a .env file).

VariableDefaultDescription
TRANSPORTstdiostdio or streamable-http (sse legacy)
HOST0.0.0.0Bind address (HTTP transports only)
PORT4200HTTP port (HTTP transports only)
LOG_LEVELINFODEBUG, INFO, WARNING, ERROR
RATE_LIMIT_PER_HOUR60Local request budget per hour towards the upstream API
USER_AGENT_CONTACTβ€”Optional: contact info in the User-Agent header; omitted when unset

The defaults apply when running directly (uv run german-newsfeed-mcp). The Compose setup overrides them: it sets HOST=0.0.0.0 and PORT=8000 (see docker-compose.yml).


Available Tools

These tools are callable by your AI assistant.

get_latest_news

Get the top stories.

ParameterTypeDefaultDescription
limitint10Max items to return

get_news_by_ressort

Filter news by category.

ParameterTypeDefaultDescription
ressortstrβ€”inland ausland wirtschaft sport video investigativ wissen
limitint10Max items to return

Ressort strings are automatically normalised to lowercase: "Inland", "INLAND" and "inland" are all equivalent.


get_regional_news

News from a specific German state.

ParameterTypeDefaultDescription
region_idintβ€”1=BW Β· 2=BY Β· 3=BE Β· 4=BB Β· 5=HB Β· 6=HH Β· 7=HE Β· 8=MV Β· 9=NI Β· 10=NW Β· 11=RP Β· 12=SL Β· 13=SN Β· 14=ST Β· 15=SH Β· 16=TH
ressortstrNoneOptional category filter
limitint10Max items to return

search_news

Full-text search across all available articles.

ParameterTypeDefaultDescription
search_textstrβ€”Search query
page_sizeint10Results per page (max 30)
result_pageint0Page offset (0-based)

get_channels

List all live channels with stream URLs.

(No parameters)


Available Resources

Resources are addressable URIs that MCP clients can read directly.

URIDescription
news://tagesschau/homepageHomepage top stories
news://tagesschau/news/{ressort}News by category
news://tagesschau/regional/{region_id}Regional news by state ID
news://tagesschau/search/{search_text}Search results
news://tagesschau/channelsAvailable channels & streams

Development Guide

Setup

bash
git clone https://github.com/Jakolo121/german-newsfeed-mcp.git
cd german-newsfeed-mcp
uv sync --extra dev

Start the server:

bash
uv run german-newsfeed-mcp

Or:

bash
make run

Code organisation (SOLID)

Each module has exactly one responsibility:

ModuleResponsibility
config.pyRead & expose env vars
client.pyHTTP requests + error handling
rate_limiter.pyLocal request budget (token bucket)
validators.pyDomain constants (VALID_RESSORTS) + input validation
formatters.pyTurn raw API dicts into Markdown
tools.pyValidate inputs, call client, call formatter
resources.pySame as tools but for MCP resources
server.pyComposition root: assemble FastMCP, register handlers, start

Adding a new tool

  1. Add a tool_<name>() async function in tools.py
  2. Register it with @mcp.tool() in server.py
  3. Write unit + integration tests in tests/test_tools.py

Running the Tests

Unit tests (no internet required, fast)

bash
uv run pytest -m "not integration"     # run all unit tests
uv run pytest -m "not integration" -v  # verbose output
uv run pytest tests/test_formatters.py # single file

Or:

bash
make test

Live integration tests (requires internet)

bash
uv run pytest -m integration           # all live tests
uv run pytest -m integration -v        # verbose

Full suite

bash
uv run pytest

Or:

bash
make test-all

Quality gate (lint + tests)

bash
uv run pylint src/german_newsfeed_mcp/
uv run pytest

Or:

bash
make check

Expected results

Code
160 passed            ← unit tests (no network)
 21 selected          ← integration tests (live API)

Makefile Reference

bash
make test          # fast unit tests (no network, ~0.3 s)
make test-all      # unit + live integration tests
make lint          # pylint
make check         # lint + unit tests β€” use as CI gate
make run           # start server in stdio mode (Claude Desktop)
make run-http      # start server in streamable-http mode
make docker-build  # build Docker image
make docker-run    # docker compose up -d
make docker-stop   # docker compose down
make docker-logs   # tail docker compose logs
make clean         # remove __pycache__, .pytest_cache, dist, etc.

Troubleshooting

Claude Desktop shows no MCP tools

  1. Check that the claude_desktop_config.json path is absolute
  2. Run uv run python main.py in the terminal, it should start without errors
  3. Fully quit and reopen Claude Desktop (Cmd+Q, not just close window)

Docker container exits immediately

Terminal
docker compose logs german-newsfeed-mcp

Or:

bash
make docker-logs

Common causes: wrong TRANSPORT value (must be streamable-http in Docker), port already in use.

API timeouts

The upstream API occasionally rate-limits certain endpoints. This is normal, the server returns a descriptive error message rather than crashing. Retry after a few seconds.

Rate-limit errors

If the server reports "Rate limit exceeded", the local request budget (RATE_LIMIT_PER_HOUR, default 60/h) is exhausted. No request was sent upstream. Try again later.

Import errors in tests

bash
uv sync --extra dev     # ensure dev deps are installed
uv run pytest           # always run via uv, not bare pytest

When it stops working

The upstream API is not officially documented and can change without notice. You can tell by the tools suddenly returning empty lists or error messages although tagesschau.de is reachable, and by the live integration tests failing (uv run pytest tests/ -m integration).

All endpoints are defined in a single place: ENDPOINTS in src/german_newsfeed_mcp/client.py. API changes can be tracked there.

The CI job upstream-check (.github/workflows/ci.yml) runs exactly these live tests weekly against the real API and fails loudly when the response format no longer matches.


License & Acknowledgements

Apache License 2.0.

The delivered news items are content of the ARD broadcasters, subject to their rights and the terms of use of tagesschau.de, see Data Source and Terms of Use.

Thanks to AndreasFischer1985, the bund.dev community for documenting the API and above all to the journalists at the ARD broadcasters, whose work this project merely passes along.

Related MCP Servers

View all in Developer Tools View all alternatives
  • Claude Task Master logoClaude Task Master

    AI-powered task management system for AI-driven development. Features PRD parsing, task expansion, multi-provider support (Claude, OpenAI, Gemini, Perplexity, xAI), and selective tool loading for optimized context usage.

    πŸ’» Developer Tools7 views
    Compare vs Claude Task Master β†’
  • G
    Graphql

    Turn any GraphQL API into MCP tools. Zero config, zero code.

    πŸ’» Developer Tools0 views
    Compare vs Graphql β†’
  • A
    Ai Netcafe

    Compare LLM cost & latency on one prompt, translate PDF keeping layout, cited research, make PPTX

    πŸ’» Developer Tools0 views
    Compare vs Ai Netcafe β†’
  • Shadcn Ui Mcp Server logoShadcn Ui Mcp Server

    MCP server that gives AI assistants seamless access to shadcn/ui v4 components, blocks, demos, and metadata.

    πŸ’» Developer Tools2 views
    Compare vs Shadcn Ui Mcp Server β†’

Frequently Asked Questions about German Newsfeed MCP Server

Add the following block to your claude_desktop_config.json under mcpServers: "mcpServers": { "german-newsfeed-mcp-server": { "command": "npx", "args": ["-y", "German Newsfeed MCP Server"] } }

AllMCPs Directory Badge

Full Badge Customizer

Showcase your server listing on GitHub or your project documentation. Embed this dynamic SVG badge to highlight official listing status and live engagement.

Badge Style:
Live Dynamic SVG PreviewGerman Newsfeed MCP Server AllMCPs Directory Badge
Markdown (GitHub README)
[![AllMCPs](https://allmcps.com/api/badge/german-newsfeed-mcp-server?style=directory)](https://allmcps.com/mcp/german-newsfeed-mcp-server)
HTML Embed
<a href="https://allmcps.com/mcp/german-newsfeed-mcp-server"><img src="https://allmcps.com/api/badge/german-newsfeed-mcp-server?style=directory" alt="German Newsfeed MCP Server on AllMCPs" /></a>

Technical Specs & Signals

CategoryπŸ’»Developer Tools
More technical detailsExpand β–Ύ
TransportSTDIO
RuntimeNode.js
Views0
Unique ViewsTotal visits recorded for this listing page on AllMCPs.
Installs0
Installs & Copy ActionsTotal times users copied install commands or configuration snippets for this server.
27Quality signal: Emerging Β· 27/100How this signal is calculated β–Ύ
Server availabilityNot measured

Not scored for repo-hosted servers β€” we can't reach the running server, only its GitHub page. Hosted MCP endpoints are health-checked live.

Verified ownership8/20
Documentation & tools11/30
Adoption & activity1/15
Community engagement0/10

A guidance signal from public completeness & health data β€” not a user rating. New listings start lower and rise as they add docs, get verified, and grow adoption. Signals we can't observe for a listing are skipped, not counted against it.

β˜… Spotlight Slot

Feature Your MCP Server

Get maximum visibility for your server across our directory, search results, and detail pages.

Spotlight Your Server

Own this project?

This directory is pre-filled from public sources. Claim via GitHub README, site badge, or DNS TXT to get the verified badge and attach your website.

Free dofollow backlink: after claiming, verify your product site and place a dofollow AllMCPs badge β€” we recheck it stays live.

Claim & get free dofollow

Share & Embed

Add our SVG badge (dark/light directory styles) or embeddable widget to your site.

Explore more

More in πŸ’» Developer Tools β†’Best MCP servers for Developers β†’Alternatives to German Newsfeed MCP Server β†’Install in Claude DesktopInstall in CursorInstall in VS Code