Skip to main content
Glama
agentladle

mcp-hkexnews

by agentladle

AgentLadle MCP HKEXnews

英語 | 中文

🇨🇳/🇭🇰 クラウドホスト型MCP。A株・香港上場企業(過去3年間の年次報告書および最新の中間報告書)に対応。詳細 | APIキーを取得

HKEXnewsの香港上場企業の公告を検索・ダウンロード・解析・全文検索するためのツールを提供するMCP (Model Context Protocol)サーバーです。

AIアシスタント(Claude、Cursorなど)が、6つの構造化されたツールを通じてHKEXnewsの公告データにアクセスできるようにします。公告の検出からページ内のキーワード検索まで対応します。

対象範囲 (v0.1): 完全な定期報告書PDF(t1=40000 に該当する年次報告書/中間報告書/四半期報告書およびESG報告書)を除く公告および開示情報。業績公告(最終/中間/四半期業績)は含まれます。

機能

  • 6つのMCPツールでHKEXnewsの公告データにアクセス:状態駆動型の取得(直接検索し、必要な場合のみダウンロード/解析にフォールバック)

  • PyMuPDFによるPDF文書解析 — 物理ページをページ分割JSONとして抽出

  • TF+位置ブーストスコアリングによるローカルキーワード検索。外部検索依存ゼロ

  • 冪等性 — ダウンロード済み/解析済みファイルは自動的にスキップ

  • 設定不要のインストール — MCPクライアントに1行追加するだけで、クローンや手動設定は不要

  • 純Python、クロスプラットフォーム(Windows / macOS / Linux)

Related MCP server: sfc-data-mcp

前提条件

注: uvをインストールした後、ターミナルとMCPクライアント(例: Cherry Studio)を再起動して、uvコマンドが認識されるようにしてください。

クイックスタート

MCPクライアント設定(Claude Desktop、Cursorなど)に追加します:

{
  "mcpServers": {
    "mcp-hkexnews": {
      "command": "uvx",
      "args": ["agentladle-mcp-hkexnews"]
    }
  }
}

これだけです。uvxがPyPIからパッケージとその依存関係を自動的にダウンロードします。クローンも手動インストールもパス設定も不要です。

代替: pipインストール

環境を自分で管理したい場合は:

pip install agentladle-mcp-hkexnews

その後、以下のように設定します:

{
  "mcpServers": {
    "mcp-hkexnews": {
      "command": "agentladle-mcp-hkexnews"
    }
  }
}

代替: ソースから実行(ローカル開発)

リポジトリをクローンして直接実行します:

git clone https://github.com/agentladle/mcp-hkexnews.git

その後、MCPクライアントを設定します:

{
  "mcpServers": {
    "mcp-hkexnews": {
      "command": "uv",
      "args": ["run", "--directory", "/path/to/mcp-hkexnews", "agentladle-mcp-hkexnews"]
    }
  }
}

/path/to/mcp-hkexnews をクローンしたリポジトリの実際のパスに置き換えてください。

データフロー

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)

ツール

#

ツール

説明

1

list_hkexnews_announcements

企業の利用可能なHKEXnews公告を発見

2

download_hkexnews_announcement

公告PDFをダウンロード(HTMLフォールバック付き)。冪等

3

parse_hkexnews_announcement

PyMuPDFを使用してPDF/HTMLをページ分割JSONに解析

4

keyword_search

TF関連性スコアリングによる全文キーワード検索

5

get_announcement_pages

ページ番号範囲で公告コンテンツを読み取り

6

lookup_stock_code

診断用: 解決失敗時に stock_code→stockId マッピングを調べる

ツール1: list_hkexnews_announcements

企業の利用可能なHKEXnews公告を一覧表示します。ユーザーが正確な日付/タイトルを指定していない場合、またはあいまいな一致によりダウンロード試行が失敗した場合にのみ、このツールを使用してください。完全な定期報告書PDF(t1=40000 に該当する年次/中間/四半期報告書およびESG報告書)は除外されます。

パラメータ

必須

説明

stock_code

string

5桁の香港株式コード、例: "00700"

category

string

HKEXのt1/t2コードまたは階層名、例: "Inside Information""13500""20000"。省略すると対象全カテゴリーを一覧表示

start_date

string

開始日 YYYY-MM-DD

end_date

string

終了日 YYYY-MM-DD

title_keyword

string

タイトルのキーワードフィルター

limit

int

返す最大公告数、デフォルト10、最大50

ツール2: download_hkexnews_announcement

www1.hkexnews.hkから特定のHKEXnews公告をダウンロードします。利用可能な場合は list_hkexnews_announcementslocal_key を優先してください。冪等です。

パラメータ

必須

説明

stock_code

string

5桁の香港株式コード、例: "00700"

release_date

string

発行日 YYYY-MM-DDlocal_key 指定時は任意)

title_keyword

string

同日の公告を曖昧性排除するためのタイトル部分文字列

category

string

任意のカテゴリーフィルター

news_id

string

既知の場合のHKEXnews NEWS_ID

local_key

string

一覧結果の正確なローカルバンドルキー

ツール3: parse_hkexnews_announcement

ダウンロードした公告PDF/HTMLをページ分割JSONに解析します。PDFの物理ページテキスト抽出にはPyMuPDFを使用します。

パラメータ

必須

説明

local_key

string

一覧/ダウンロードで返されたバンドルキー、例: "00700_13500_2026-03-15_a1b2c3d4"

ツール4: keyword_search

全ページにわたる全文キーワード検索。結果はTF+位置ブーストスコアでランク付けされます。

パラメータ

必須

説明

local_key

string

バンドルキー

keywords

string[]

1〜5個の検索キーワード

match_mode

string

"ANY"(デフォルト、いずれかのキーワードが一致)/ "ALL"(すべて一致)

max_results

int

返す最大結果数、デフォルト5、最大50

ツール5: get_announcement_pages

ページ番号範囲で完全なページコンテンツを読み取ります。

パラメータ

必須

説明

local_key

string

バンドルキー

start_page

int

開始ページ番号(1始まり)

page_count

int

返すページ数、デフォルト3、最大5

ツール6: lookup_stock_code

診断ツール: stock_code→stockIdマッピングを調べます。download_hkexnews_announcement / list_hkexnews_announcementsStock code not found を返した場合にのみ使用してください。セッションの失敗コードキャッシュをバイパスします。

パラメータ

必須

説明

stock_code

string

5桁の香港株式コード、例: "00700"

refresh

bool

HKEX企業マッピングの再ダウンロードを強制(デフォルト: false

設定

初回実行時に、デフォルト設定ファイルが ~/.agentladle/mcp-hkexnews/config.yaml に作成されます:

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: 7

データディレクトリ構造

~/.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
        └── ...

ファイル命名規則: {STOCK_CODE}_{T2_CODE}_{RELEASE_DATE}_{ID_HASH}

使用例

ツールは**EAFP(Easier to Ask for Forgiveness than Permission、許可を求めるより許しを請う方が易しい)**アプローチで設計されています。AIアシスタントは直接データの取得を試み、エラーに依存してダウンロードをトリガーする必要があります。

シナリオA: ファイルがローカルに既に存在する(最短経路)

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.

シナリオB: ファイルが存在しない(フォールバックがトリガー)

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.

技術スタック

コンポーネント

選択

目的

MCPフレームワーク

mcp (FastMCP)

stdioトランスポートを使用するMCPサーバー

HTTPクライアント

httpx

HKEXnews APIリクエストおよびファイルダウンロード

PDF解析

pymupdf + beautifulsoup4

PDFページテキスト抽出; HTMLフォールバック

検索

Python組み込み

TF+位置ブーストスコアリング

設定

pyyaml

YAML設定ファイル

証券リスト

openpyxl

HKEX ListOfSecurities.xlsx の解析

プロジェクト構造

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 helpers

ライセンス

MIT

Install Server
A
license - permissive license
A
quality
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.

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    MCP server for Japan's TDnet (Timely Disclosure network). Search and retrieve timely disclosure documents from listed companies on Japanese stock exchanges.
    5
    Apache 2.0
  • F
    license
    Not graded
    quality
    D
    maintenance
    MCP 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.
  • A
    license
    Not graded
    quality
    B
    maintenance
    MCP server for analyzing SEC filings (10-K, 10-Q, 8-K) with industry-aware financial extraction and BERT-based NLP.
    1
    MIT

View all related MCP servers

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.

View all MCP Connectors

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/agentladle/mcp-hkexnews'

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