Skip to main content
Glama
agentladle

mcp-hkexnews

by agentladle

AgentLadle MCP HKEXnews

English | 中文

🇨🇳/🇭🇰 Облачный MCP для A-акций и гонконгских листинговых компаний (годовые отчёты за последние 3 года и последние промежуточные отчёты). Подробнее | Получить API-ключ

Сервер MCP (Model Context Protocol), предоставляющий инструменты для обнаружения, загрузки, разбора и поиска объявлений гонконгских листинговых компаний с HKEXnews.

Он позволяет AI-ассистентам (Claude, Cursor и т.д.) получать доступ к данным объявлений HKEXnews через 6 структурированных инструментов — от обнаружения доступных объявлений до поиска по ключевым словам на их страницах.

Область применения (v0.1): Объявления и раскрытия, за исключением полных PDF-отчётов (годовых / промежуточных / квартальных отчётов и отчётов ESG в рамках t1=40000). Объявления о результатах (годовых / промежуточных / квартальных) включены.

Возможности

  • 6 инструментов MCP для данных объявлений HKEXnews: управляемый состоянием поиск (поиск напрямую, загрузка/разбор только при необходимости)

  • Разбор PDF-документов с помощью PyMuPDF — извлечение физических страниц в JSON с разбивкой по страницам

  • Локальный поиск по ключевым словам с оценкой TF + позиционного усиления, без внешних зависимостей поиска

  • Идемпотентность — уже загруженные/разобранные файлы автоматически пропускаются

  • Установка без настройки — одна строка для добавления в ваш MCP-клиент, не требуется клонирование или ручная настройка

  • Чистый 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 install

Если вы предпочитаете управлять окружением самостоятельно:

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

Разбор PDF/HTML в JSON с разбивкой по страницам с помощью PyMuPDF

4

keyword_search

Полнотекстовый поиск по ключевым словам с оценкой релевантности TF

5

get_announcement_pages

Чтение содержимого объявления по диапазону номеров страниц

6

lookup_stock_code

Диагностика: поиск соответствия stock_code→stockId при сбое разрешения

Инструмент 1: list_hkexnews_announcements

Перечисляет доступные объявления HKEXnews для компании. Используйте этот инструмент ТОЛЬКО когда точная дата/название не указаны пользователем, или когда попытка загрузки не удалась из-за неоднозначного совпадения. Исключает полные PDF-отчёты (годовые / промежуточные / квартальные отчёты и отчёты ESG в рамках t1=40000).

Параметр

Тип

Обязательный

Описание

stock_code

string

5-значный код акции Гонконга, например "00700"

category

string

Код t1/t2 HKEX или название уровня, например "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

Загружает конкретное объявление HKEXnews с www1.hkexnews.hk. Предпочитайте local_key из list_hkexnews_announcements, если он доступен. Идемпотентно.

Параметр

Тип

Обязательный

Описание

stock_code

string

5-значный код акции Гонконга, например "00700"

release_date

string

Дата выпуска YYYY-MM-DD (необязательно, если указан local_key)

title_keyword

string

Подстрока названия для устранения неоднозначности объявлений за один день

category

string

Необязательный фильтр по категории

news_id

string

NEWS_ID HKEXnews, если известен

local_key

string

Точный локальный ключ пакета из результатов списка

Инструмент 3: parse_hkexnews_announcement

Разбирает загруженный PDF/HTML объявления в JSON с разбивкой по страницам. Использует PyMuPDF для извлечения текста с физических страниц PDF.

Параметр

Тип

Обязательный

Описание

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_announcements возвращает Stock 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)

MCP-сервер с транспортом stdio

HTTP-клиент

httpx

Запросы к API HKEXnews и загрузка файлов

Разбор 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