Skip to main content
Glama
nheimm

Finance News MCP Server

by nheimm

Finance News MCP Server

Ein Model Context Protocol (MCP) Server für Finanznachrichten, der echte Nachrichten von NewsAPI abruft und strukturierte, zusammengefasste Antworten liefert.

Features

  • 🔍 Nachrichtensuche: Volltextsuche über Finanznachrichten

  • 📰 Top Headlines: Aktuelle Schlagzeilen nach Land und Kategorie

  • 📡 Quellenverzeichnis: Liste der verfügbaren News-Quellen

  • 📊 Strukturierte Output: JSON mit Bullet-Points und Zusammenfassungen


Related MCP server: News Analysis Agent MCP Server

Schnellstart

1. Virtualenv + Abhängigkeiten

python3 -m venv .venv
source .venv/bin/activate
pip install -e .

macOS/Linux-Spezifika:

  • Falls python nicht existiert, nutze python3

  • source für Bash/Zsh (nicht Windows PowerShell)

2. .env Datei erstellen

cp .env.example .env

Öffne .env und trage deine NewsAPI Credentials ein:

NEWS_API_KEY=dein_api_key_von_newsapi_org

NewsAPI Key besorgen (kostenlos mit täglichem Limit).

3. Server starten

python mcp_server.py

Erwartet einen MCP-Client, der über STDIO Anfragen sendet.


Testing & Debugging

Option A: Direkt die Handler testen

Führe die Handler-Funktionen direkt auf, ohne STDIO zu nutzen:

python test_handlers.py

Nützlich für:

  • Schnelle Funktionstests

  • Debugging ohne External-Dependencies

  • API-Antworten prüfen

Option B: Mit dem STDIO-Client testen

Starte den Server als Unterprozess und kommuniziere per JSON-RPC:

python stdio_client.py

Beispiele mit verschiedenen Parametern:

# Standard-Ausführung (Apple earnings, US, englisch, 3 Ergebnisse)
python stdio_client.py

# Andere Suchanfrage
python stdio_client.py --search "Tesla stock"

# Mit Land und Sprache
python stdio_client.py --search "Fed interest rate" --country gb --language de

# Mehr Ergebnisse
python stdio_client.py --country us --page-size 10

# Deutsche Quellen
python stdio_client.py --language de --country de

# Bitcoin News aus Großbritannien
python stdio_client.py --search "Bitcoin" --country gb

# Hilfe anzeigen
python stdio_client.py --help

STDIO Client Parameter

Der stdio_client.py akzeptiert folgende Argumente:

Parameter

Typ

Default

Beispiel

Beschreibung

--search

text

"Apple earnings"

--search "Tesla"

Suchanfrage für Finanznachrichten

--country

text

"us"

--country gb

Ländercode (ISO 3166-1 alpha-2) für Headlines

--language

text

"en"

--language de

Sprachcode (ISO 639-1) für Quellen

--page-size

integer

3

--page-size 10

Anzahl Ergebnisse (1-50)

Wie der Parser funktioniert

Der argparse.ArgumentParser in stdio_client.py verarbeitet Kommandozeilen-Argumente:

parser.add_argument("--search", type=str, default=None, 
                    help='Search query for finance news')

Das bedeutet:

  • --search ist der Schalter

  • type=str erwartet einen Text-String

  • default=None = wenn nicht angegeben, ist der Wert None

  • In main() wird mit or ein Fallback-Wert gesetzt

Praktisch:

# Mit Argumenten
python stdio_client.py --search "Bitcoin" --country de

# Ohne Argumente
python stdio_client.py  # nutzt alle Defaults

Response-Struktur

Typische Antwort bei search_finance_news:

{
  "metadata": {
    "query": "Apple earnings",
    "language": "en",
    "sort_by": "publishedAt",
    "total_results": 5
  },
  "articles": [
    {
      "title": "Apple Q2 Earnings Beat Expectations",
      "source": "Bloomberg",
      "url": "https://...",
      "published_at": "2026-05-30T14:00:00Z",
      "summary": "• Apple beat earnings estimates\n• Revenue up 12% YoY\n• Services segment grew 15%",
      "key_points": [
        "Apple beat earnings estimates",
        "Revenue up 12% YoY",
        "Services segment grew 15%"
      ]
    }
  ]
}

Tools

Der Server implementiert 3 MCP-Tools:

1. search_finance_news

Volltextsuche über Finanznachrichten.

Parameter:

  • query (erforderlich): Suchanfrage, z.B. "Apple earnings", "Fed rate", "Bitcoin"

  • language (optional): ISO 639-1 Code (default: "en")

  • page_size (optional): 1-50 (default: 5)

  • sort_by (optional): "relevancy", "popularity", "publishedAt" (default: "publishedAt")

2. get_top_finance_headlines

Aktuelle Top-Headlines nach Land/Kategorie.

Parameter:

  • country (optional): ISO 3166-1 alpha-2 Code, z.B. "us", "gb", "de"

  • category (optional): "business", "technology", etc. (default: "business")

  • page_size (optional): 1-50 (default: 5)

3. get_finance_sources

Liste der verfügbaren Nachrichtenquellen.

Parameter:

  • language (optional): ISO 639-1 Code

  • country (optional): ISO 3166-1 Code

  • category (optional): Nachrichtenkategorie


Projektstruktur

mcp_server/
├── mcp_server.py          # MCP Server (Haupt-Einstiegspunkt)
├── stdio_client.py        # Test-Client mit Kommandozeilen-Args
├── test_handlers.py       # Direkte Handler-Tests (ohne STDIO)
├── test_news_api.py       # Debug-Skript für NewsAPI
├── news_client.py         # NewsAPI HTTP-Client
├── models.py              # Pydantic Modelle für Validierung
├── summarizer.py          # Artikel→Bullet-Points Transformation
├── config.py              # Konfiguration (Env Vars)
├── pyproject.toml         # Package-Metadaten & Dependencies
├── .env.example           # Beispiel Env-Datei
└── README.md              # Diese Datei

Beispiel-Kommandos

# Nachrichten zu Tesla suchen
python stdio_client.py --search "Tesla" --page-size 5

# Top Headlines Großbritannien
python stdio_client.py --country gb --page-size 10

# Fed & Zinsen (mit Deutsche Quellen)
python stdio_client.py --search "Federal Reserve" --language de

# Kryptowährungen weltweit
python stdio_client.py --search "Bitcoin crypto" --page-size 15

# Test aller Tools auf einmal
python stdio_client.py

Lizenz & Credits

F
license - not found
-
quality - not tested
C
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/nheimm/mcp-server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server