Mcp Server — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Mcp Server (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Ein Model Context Protocol (MCP) Server für Finanznachrichten, der echte Nachrichten von NewsAPI abruft und strukturierte, zusammengefasste Antworten liefert.
python3 -m venv .venv
source .venv/bin/activate
pip install -e .macOS/Linux-Spezifika:
python nicht existiert, nutze python3source für Bash/Zsh (nicht Windows PowerShell)cp .env.example .envÖffne .env und trage deine NewsAPI Credentials ein:
NEWS_API_KEY=dein_api_key_von_newsapi_orgNewsAPI Key besorgen (kostenlos mit täglichem Limit).
python mcp_server.pyErwartet einen MCP-Client, der über STDIO Anfragen sendet.
Führe die Handler-Funktionen direkt auf, ohne STDIO zu nutzen:
python test_handlers.pyNützlich für:
Starte den Server als Unterprozess und kommuniziere per JSON-RPC:
python stdio_client.pyBeispiele 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 --helpDer 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) |
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 Schaltertype=str erwartet einen Text-Stringdefault=None = wenn nicht angegeben, ist der Wert Nonemain() wird mit or ein Fallback-Wert gesetztPraktisch:
# Mit Argumenten
python stdio_client.py --search "Bitcoin" --country de
# Ohne Argumente
python stdio_client.py # nutzt alle DefaultsTypische 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%"
]
}
]
}Der Server implementiert 3 MCP-Tools:
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")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)Liste der verfügbaren Nachrichtenquellen.
Parameter:
language (optional): ISO 639-1 Codecountry (optional): ISO 3166-1 Codecategory (optional): Nachrichtenkategoriemcp_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# 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~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.