mcp-hkexnews
AgentLadle MCP HKEXnews
Englisch | 中文
🇨🇳/🇭🇰 Cloud-gehosteter MCP für A-Aktien- und HK-notierte Unternehmen (letzte 3 Jahre Jahres- und neueste Zwischenberichte). Mehr erfahren | API-Schlüssel erhalten
Ein MCP (Model Context Protocol)-Server, der Werkzeuge zum Entdecken, Herunterladen, Parsen und Durchsuchen von Ankündigungen Hongkong-notierter Unternehmen von HKEXnews bereitstellt.
Er ermöglicht KI-Assistenten (Claude, Cursor usw.) den Zugriff auf HKEXnews-Ankündigungsdaten über 6 strukturierte Werkzeuge – vom Entdecken verfügbarer Ankündigungen bis zur Stichwortsuche in deren Seiten.
Umfang (v0.1): Ankündigungen und Offenlegungen außer vollständigen periodischen Berichts-PDFs (Jahres-/Zwischen-/Quartalsbericht und ESG-Bericht unter
t1=40000). Leistungsankündigungen (Final-/Zwischen-/Quartalsergebnisse) sind enthalten.
Funktionen
6 MCP-Werkzeuge für HKEXnews-Ankündigungsdaten: zustandsgesteuerter Abruf (direkt suchen, nur bei Bedarf auf Download/Parse zurückgreifen)
PDF-Dokumentanalyse mit PyMuPDF – physische Seitenextraktion in seitenaufgeteiltes JSON
Lokale Stichwortsuche mit TF- und Positions-Boost-Bewertung, keine externen Suchabhängigkeiten
Idempotent – bereits heruntergeladene/geparste Dateien werden automatisch übersprungen
Null-Konfigurationsinstallation – eine Zeile zum Hinzufügen zum MCP-Client, kein Klonen oder manuelles Setup erforderlich
Reines Python, plattformübergreifend (Windows / macOS / Linux)
Related MCP server: sfc-data-mcp
Voraussetzungen
Python 3.10+ — Python herunterladen
uv — uv installieren
Hinweis: Starten Sie nach der Installation von uv Ihr Terminal und den MCP-Client (z. B. Cherry Studio) neu, um sicherzustellen, dass der Befehl
uverkannt wird.
Schnellstart
Fügen Sie Folgendes zu Ihrer MCP-Client-Konfiguration hinzu (Claude Desktop, Cursor usw.):
{
"mcpServers": {
"mcp-hkexnews": {
"command": "uvx",
"args": ["agentladle-mcp-hkexnews"]
}
}
}Das war's. uvx lädt das Paket und seine Abhängigkeiten automatisch von PyPI herunter – kein Klonen, keine manuelle Installation, keine Pfadkonfiguration.
Alternative: pip install
Wenn Sie die Umgebung lieber selbst verwalten:
pip install agentladle-mcp-hkexnewsDann konfigurieren:
{
"mcpServers": {
"mcp-hkexnews": {
"command": "agentladle-mcp-hkexnews"
}
}
}Alternative: Aus dem Quellcode ausführen (lokale Entwicklung)
Repository klonen und direkt ausführen:
git clone https://github.com/agentladle/mcp-hkexnews.gitDann konfigurieren Sie Ihren MCP-Client:
{
"mcpServers": {
"mcp-hkexnews": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-hkexnews", "agentladle-mcp-hkexnews"]
}
}
}Ersetzen Sie /path/to/mcp-hkexnews durch den tatsächlichen Pfad zum geklonten Repository.
Datenfluss
HKEXnews API Local Files (~/.agentladle/mcp-hkexnews/data/)
────────────── ──────────────────────────────
activestock_sehk_e.json ──→ companies.json (stock_code→stockId mapping)
ListOfSecurities.xlsx ──→ │
tierone/tiertwo JSON ──→ tiers.json (headline category mapping)
│
titleSearchServlet.do ──→ pdf/{LOCAL_KEY}/ (Tool 2: primary PDF/HTML + manifest)
│
PyMuPDF parsing ──→ json/*.json (Tool 3: parse, page-split)
│
Local TF search ──→ search results (Tool 4: keyword search)
Page range read ──→ page content (Tool 5: read pages)Werkzeuge
# | Werkzeug | Beschreibung |
1 |
| Verfügbare HKEXnews-Ankündigungen für ein Unternehmen entdecken |
2 |
| Ankündigungs-PDF herunterladen (HTML-Fallback); idempotent |
3 |
| PDF/HTML in seitenaufgeteiltes JSON mit PyMuPDF parsen |
4 |
| Volltext-Stichwortsuche mit TF-Relevanzbewertung |
5 |
| Ankündigungsinhalt nach Seitennummernbereich lesen |
6 |
| Diagnose: stock_code→stockId-Zuordnung nachschlagen, wenn die Auflösung fehlschlägt |
Werkzeug 1: list_hkexnews_announcements
Verfügbare HKEXnews-Ankündigungen für ein Unternehmen auflisten. Verwenden Sie dieses Werkzeug NUR, wenn das genaue Datum/der genaue Titel vom Benutzer nicht angegeben ist oder wenn ein Downloadversuch aufgrund einer mehrdeutigen Übereinstimmung fehlschlägt. Schließt vollständige periodische Berichts-PDFs aus (Jahres-/Zwischen-/Quartalsbericht und ESG-Bericht unter t1=40000).
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | 5-stelliger HK-Aktiencode, z. B. |
| string | ❌ | HKEX-t1/t2-Code oder Ebenenname, z. B. |
| string | ❌ | Startdatum |
| string | ❌ | Enddatum |
| string | ❌ | Titel-Stichwortfilter |
| int | ❌ | Maximale Anzahl zurückzugebender Ankündigungen, Standard 10, max. 50 |
Werkzeug 2: download_hkexnews_announcement
Eine bestimmte HKEXnews-Ankündigung von www1.hkexnews.hk herunterladen. Bevorzugen Sie local_key aus list_hkexnews_announcements, wenn verfügbar. Idempotent.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | 5-stelliger HK-Aktiencode, z. B. |
| string | ❌ | Veröffentlichungsdatum |
| string | ❌ | Titel-Teilstring zur Disambiguierung gleichnamiger Ankündigungen |
| string | ❌ | Optionaler Kategoriefilter |
| string | ❌ | HKEXnews NEWS_ID, falls bekannt |
| string | ❌ | Exakter lokaler Bundle-Schlüssel aus Listenergebnissen |
Werkzeug 3: parse_hkexnews_announcement
Eine heruntergeladene Ankündigungs-PDF/HTML in seitenaufgeteiltes JSON parsen. Verwendet PyMuPDF für die physische Seitentextextraktion von PDFs.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | Bundle-Schlüssel, der von Liste/Download zurückgegeben wird, z. B. |
Werkzeug 4: keyword_search
Volltext-Stichwortsuche über alle Seiten. Ergebnisse nach TF- und Positions-Boost-Bewertung sortiert.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | Bundle-Schlüssel |
| string[] | ✅ | 1–5 Suchstichwörter |
| string | ❌ |
|
| int | ❌ | Maximale Anzahl zurückzugebender Ergebnisse, Standard 5, max. 50 |
Werkzeug 5: get_announcement_pages
Vollständigen Seiteninhalt nach Seitennummernbereich lesen.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | Bundle-Schlüssel |
| int | ✅ | Startseitennummer (1-basiert) |
| int | ❌ | Anzahl der zurückzugebenden Seiten, Standard 3, max. 5 |
Werkzeug 6: lookup_stock_code
Diagnosewerkzeug: stock_code→stockId-Zuordnung nachschlagen. Nur verwenden, wenn download_hkexnews_announcement / list_hkexnews_announcements Stock code not found zurückgibt. Umgeht den Cache für fehlgeschlagene Codes der Sitzung.
Parameter | Typ | Erforderlich | Beschreibung |
| string | ✅ | 5-stelliger HK-Aktiencode, z. B. |
| bool | ❌ | Erneutes Herunterladen der HK-Unternehmenszuordnungen erzwingen (Standard: |
Konfiguration
Beim ersten Start wird eine Standardkonfigurationsdatei unter ~/.agentladle/mcp-hkexnews/config.yaml erstellt:
paths:
data_dir: "~/.agentladle/mcp-hkexnews/data"
pdf_dir: "~/.agentladle/mcp-hkexnews/data/pdf"
json_dir: "~/.agentladle/mcp-hkexnews/data/json"
download:
delay_between_requests: 0.3
min_file_size: 500
list_row_range: 100
list_max_pages: 5
company:
cache_ttl_days: 7
tiers:
cache_ttl_days: 7Datenverzeichnisstruktur
~/.agentladle/mcp-hkexnews/
├── config.yaml # Configuration (auto-created)
└── data/
├── companies.json # stock_code→stockId mapping (auto-downloaded & cached)
├── tiers.json # HKEX headline category mapping (auto-downloaded & cached)
├── pdf/ # Downloaded announcement bundles
│ ├── 00700_13500_2026-03-15_a1b2c3d4/
│ │ ├── primary.pdf
│ │ └── manifest.json
│ └── ...
└── json/ # Parsed page-split JSON
├── 00700_13500_2026-03-15_a1b2c3d4.json
└── ...Dateibenennungskonvention: {STOCK_CODE}_{T2_CODE}_{RELEASE_DATE}_{ID_HASH}
Beispielverwendung
Die Werkzeuge sind mit einem EAFP (Easier to Ask for Forgiveness than Permission)-Ansatz konzipiert. KI-Assistenten sollten versuchen, Daten direkt abzurufen und sich auf Fehler verlassen, um Downloads auszulösen.
Szenario A: Datei bereits lokal vorhanden (kürzester Weg)
User: "Search 00700 inside information for buyback"
1. keyword_search(local_key="00700_50100_2026-07-09_a1b2c3d4", keywords=["buyback", "repurchase"])
→ Returns page snippets matching the keywords immediately.Szenario B: Datei fehlt (Fallback ausgelöst)
User: "What did Tencent announce in its latest inside information?"
1. list_hkexnews_announcements(stock_code="00700", category="Inside Information", limit=3)
→ Returns local_key / release_date / title.
2. keyword_search(local_key="...", keywords=["inside information"])
→ Error: File not found.
3. download_hkexnews_announcement(stock_code="00700", local_key="...")
→ Downloads PDF to ~/.agentladle/mcp-hkexnews/data/pdf/
4. parse_hkexnews_announcement(local_key="...")
→ Parses into JSON.
5. keyword_search(local_key="...", keywords=["inside information"])
→ Retries search and returns data.Technologie-Stack
Komponente | Wahl | Zweck |
MCP-Framework |
| MCP-Server mit stdio-Transport |
HTTP-Client |
| HKEXnews-API-Anfragen & Dateidownloads |
PDF-Analyse |
| PDF-Seitentextextraktion; HTML-Fallback |
Suche | Python-eingebaut | TF- und Positions-Boost-Bewertung |
Konfiguration |
| YAML-Konfigurationsdatei |
Wertpapierliste |
| HKEX ListOfSecurities.xlsx parsen |
Projektstruktur
src/mcp_hkexnews/
├── __init__.py
├── server.py # MCP Server entry point
├── config.py # Config loading (~/.agentladle/mcp-hkexnews/config.yaml, singleton cached)
├── models.py # Data models
├── categories.py # Announcement category blacklist
├── response.py # Unified JSON responses
├── instances.py # Service singletons
├── tools/
│ ├── list_announcements.py # Tool 1: list_hkexnews_announcements
│ ├── download.py # Tool 2: download_hkexnews_announcement
│ ├── parse.py # Tool 3: parse_hkexnews_announcement
│ ├── search.py # Tool 4: keyword_search
│ ├── page.py # Tool 5: get_announcement_pages
│ └── lookup.py # Tool 6: lookup_stock_code
└── services/
├── company.py # HKEX activestock + ListOfSecurities + stock_code→stockId
├── tiers.py # HKEX tierone/tiertwo category cache
├── downloader.py # HKEXnews titleSearch + PDF download
├── parser.py # PDF/HTML→JSON parsing (PyMuPDF)
├── searcher.py # Local JSON search + TF scoring
└── keys.py # local_key helpersLizenz
MIT
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Servers
- AlicenseNot gradedqualityAmaintenanceMCP server for Japan's TDnet (Timely Disclosure network). Search and retrieve timely disclosure documents from listed companies on Japanese stock exchanges.5Apache 2.0
- FlicenseNot gradedqualityDmaintenanceMCP server that wraps SFC financial data API into 32 tools for comprehensive A-share market data, including real-time quotes, rankings, limit-up statistics, news, themes, financials, charts, research reports, and watchlists.
- AlicenseNot gradedqualityBmaintenanceMCP server for analyzing SEC filings (10-K, 10-Q, 8-K) with industry-aware financial extraction and BERT-based NLP.1MIT
- FlicenseNot gradedqualityCmaintenanceMCP server that searches and filters DART electronic disclosures for Korean companies, enabling AI agents to create investor briefing summaries.
Related MCP Connectors
Official Octoparse MCP server for template discovery, cloud tasks, and structured data export.
Markdown-first MCP server for Notion API with 8 composite tools and 39 actions.
All HasData scraping tools in one MCP server: Google, TikTok, Instagram, maps, e-commerce and more.
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
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/agentladle/mcp-hkexnews'
If you have feedback or need assistance with the MCP directory API, please join our Discord server