get_server_info
Gateway Info
Report this live gateway's version, transport, and hard limits. Reads nothing.
無需輸入參數。

com.ascent-partners由 ascent-partners.com 發布官方發布者v2.4.3更新於 Nov 4, 2026
Live HKEx (Hong Kong Stock Exchange) regulatory filings for AI agents.
發布方自己的服務:Coso Mcp
以唯讀方式存取港交所即時申報文件:依日期區間搜尋、瀏覽分類統計,並下載文件擷取內文與表格。
Web executable,透過 Streamable HTTP。 遠端服務在工作區中設定後即可從網頁執行環境執行。
把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。
閱讀 https://sourceweft.com/mcp/com.ascent-partners%2Fhkex-filings/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。把它新增到你客戶端的 mcpServers 設定中。
{
"mcpServers": {
"hkex-filings": {
"type": "http",
"url": "https://hkex-listco-updates.ascent-partners.com/api/mcp"
}
}
}An open-source scraper for 25+ years of HKEx regulatory filings — into any of nine databases, with full-text extraction, graph linking, and a read-only MCP server for AI agents.
[HKEx Filing Scraper — one scraper, many databases]
[CI] [MCP Registry] [Glama MCP] [GitHub Release] [PyPI] [Python 3.10+] [Docs] [MCP] [Ruff] [License: MIT]
The US has EDGAR full-text search. Japan has EDINET. Hong Kong has a search form that returns one page at a time. There is no bulk, machine-readable, full-text corpus of HKEx filings. This builds one.
An open-source Python tool that scrapes 25+ years of Hong Kong Stock Exchange (HKEx) regulatory filings and ingests them into any combination of nine databases — with full-text and table extraction, chunk-level coverage, optional graph linking, and a read-only MCP server so AI agents can query the corpus or the live site.
It speaks the undocumented HKEx JSON API directly, which is faster and more resilient than driving a browser.
Databases — nine first-class destinations, in documented popularity order (see the support matrix):
AI clients — any MCP-capable agent; ready-made configuration for Claude, ChatGPT, Cursor, VS Code/Copilot, Gemini CLI, opencode, Manus, and Perplexity.
Available on — PyPI · Glama · MCP Registry · hosted gateway.
[Example: install, scrape filings into SQLite, then query the hosted MCP gateway from an AI agent]
POST, Streamable HTTP, no API key:
Four read-only tools: get_server_info, search_filings (a window of at most 31 days, with
optional stock-code, title, document-type, category, and stock-name filters),
list_filing_facets (browse what a window contains), and get_filing (downloads one
document and extracts its text and tables).
[Two ways to reach HKEx filings from an AI agent: the hosted MCP gateway or the local stdio server]
Point a client at it — for example opencode:
Then ask:
Ready-made configuration for Claude, ChatGPT, Cursor, VS Code/Copilot, Gemini CLI, opencode,
Manus, and Perplexity is in AI agent support — and for a stored corpus,
the stdio MCP server exposes a wider tool catalog and is published on
Glama. The gateway is listed
in the official MCP Registry as
com.ascent-partners/hkex-filings.
Featured on Glama — the read-only stdio MCP server is also published on Glama, where Glama scans the built server and scores tool-definition quality (currently 4.7/5).
Fastest path: no install — use the hosted gateway at
https://hkex-listco-updates.ascent-partners.com/api/mcp (Streamable HTTP), or install and run
locally:
Optional extras: excel, postgres, mysql, duckdb, mongodb, clickhouse, neo4j,
mcp, pdf, all, dev.
DATABASE_TARGET is an ordered, comma-separated list of sink ids; the order decides which
sink serves reads. To start with no server:
hkex-scraper runs the full pipeline (metadata + documents + graph); hkex-scraper --full-history covers everything since April 1999. The schema is created automatically.
Full install options and per-sink settings are in Getting started.
Every sink is a first-class destination; rows are in documented popularity order. The full matrix — licenses, capability differences, per-engine notes — is in Database sinks.
¹ Source-available, not OSI-approved — labeled exceptions per ADR 0003.
Valid sink ids, in documented order: postgres, mysql, sqlite, mongodb, mariadb, neo4j, clickhouse, duckdb, surrealdb. Set one variable and the same run feeds every sink:
Four ways to get HKEx filings, and what each one costs you.
If you need licensed, redistributable, SLA-backed data, buy the feed. If you need a complete local corpus for research, compliance, or RAG, this replaces the pipeline you would otherwise write yourself.
filingId.has_filing and references_filing edges when
COMPANY_TABLE is set.Deeper detail: Architecture · ADR 0002.
exchange_filing and scrape_coverage are SCHEMAFULL; has_filing /
references_filing are the graph edges written by graph.py.
--coverage-report / --parity-report / --verify.requests + beautifulsoup4; drivers and document
extraction are extras with graceful fallbacks.examples/)Tests are pure unit tests; SQLite and DuckDB contract tests run in-process, and integration tests that need a server are skipped unless that sink is configured. See Testing.
CI and deployment run through the APG workbench pipeline.
The deploy smoke check probes the public hostname through the balancer, not a local port.
See CONTRIBUTING.md; report security issues per SECURITY.md. Ideas and questions are welcome in Discussions.
Built by Ascent Partners.
If this saves you time, a ⭐ on GitHub helps others find it.
Up-to-date HKEx Filing Scraper documentation is indexed on Context7, so coding agents can pull it into context on demand. With the Context7 MCP server or ctx7 CLI installed, name the library in your prompt:
MIT — see LICENSE. That covers this project's code only; optional dependencies
carry their own licenses, notably the pdf extra (PyMuPDF / pymupdf4llm), which is
AGPL-3.0 and deliberately excluded from .[all]. See
docs/legal.md.
Data & Terms of Use: this is a research tool for the undocumented HKEx JSON API, and it is not affiliated with or endorsed by HKEx. Commercial redistribution of HKEx data may require a licensed HKEx feed; see docs/legal.md.
來源:README.md,提交 75b7d61
Gateway Info
Report this live gateway's version, transport, and hard limits. Reads nothing.
無需輸入參數。
Search HKEx Filings
Search live HKEx filings in a date window (at most 31 days). ``from_date``/``to_date`` accept YYYY-MM-DD or DD/MM/YYYY. All filters are optional and combine with AND semantics: ``stock_code`` matches exactly (e.g. ``01461`` or ``1461``); ``title_query``, ``category`` and ``stock_name`` are case-insensitive substrings (e.g. category ``Dividend``); ``document_type`` matches the file type exactly (e.g. ``PDF`` or ``HTML``). Filters are applied to the fetched window, so widen ``max_results`` to catch rarer matches. ``max_results`` caps the number of filings fetched and returned (hard cap 200). Returns the matching filings — each carrying ``fileType``, ``sizeText``, ``category`` and ``newsId`` metadata — plus the HKEx-reported total for the window. Use list_filing_facets first to see which categories, types and codes exist in a window.
to_date必填categoryfrom_date必填stock_codestock_namemax_resultstitle_querydocument_typeBrowse Filing Facets
Browse what filings exist in a date window (at most 31 days) without downloading. ``from_date``/``to_date`` accept YYYY-MM-DD or DD/MM/YYYY. Returns counts of the categories (headline categories), document types, and stock codes present in the window, each sorted by frequency and capped at 50 values, plus the distinct counts. Optionally narrow to one ``stock_code``. Use this to discover valid filter values before calling search_filings; it fetches the window once and extracts no document text.
to_date必填from_date必填stock_codemax_resultsRead HKEx Filing
Download one HKEx document by its URL and read, page through, or search its text. ``link`` must be an HKEx document URL from search_filings (host ``www1.hkexnews.hk``); any other host is rejected. With ``extract=True`` (default) the response includes up to 30 ``tables`` and a window of extracted ``document_text``: ``max_chars`` characters starting at ``offset``. Long reports return ``next_offset``; call again with it to read the next window. Pass ``query`` to search the whole document instead: the response then lists up to 20 case-insensitive matches with their offsets and surrounding text, plus ``match_count`` — use a match offset to read that part. Set ``extract=False`` for size and content type only.
link必填queryoffsetextractmax_chars已滿足適用檢查項的 100%
該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

com.ascent-partners官方發布者
一個開放的內控審查 MCP 伺服器,依 COSO 架構支援從範圍界定、風險評估到抽樣、測試、工作底稿與缺失報告的完整流程。

com.ascent-partners官方發布者
計算新創公司估值:14 個工具涵蓋 80 多個早期、產業與股權公式,可本機執行或使用託管端點。
com.ascent-partners官方發布者
透過 14 個工具、124+ 條教材公式計算無形資產評價,涵蓋智慧財產、技術、商譽、PPA 與減損。
com.ascent-partners官方發布者
金融估值 MCP 伺服器,提供 14 個 calculate_* 工具,涵蓋 DCF、WACC、選擇權、信用風險、精算與結構型商品,並附 IFRS/IVS 條款引用。
com.ascent-partners
一套規格驅動開發的 MCP 伺服器,引導助理完成從專案章程到可驗證、可追溯的規格與任務的八個階段。
https://hkex-listco-updates.ascent-partners.com/api/mcp{ "$schema": "https://opencode.ai/config.json", "mcp": { "hkex-live": { "type": "remote", "url": "https://hkex-listco-updates.ascent-partners.com/api/mcp" } }}Use hkex-live to list the filings published between 2026-09-01 and 2026-09-18,then summarise the interim report.pip install hkex-filing-scraper # core; SQLite needs no serverpip install "hkex-filing-scraper[all]" # Excel + dotenv + every driver + the MCP servercp .env.example .env # then set DATABASE_TARGET (below)hkex-scraper --metadata-only --limit 100DATABASE_TARGET=sqliteSQLITE_PATH=hkex.db# Order sets read precedence.DATABASE_TARGET=postgres,sqlitePOSTGRES_DSN=postgresql://user:password@localhost:5432/hkexSQLITE_PATH=hkex.dbflowchart LR A[HKEx JSON API] --> B[Phase 1: metadata] B --> C[Canonical record] C --> D{DATABASE_TARGET} D --> E[(PostgreSQL)] D --> F[(MySQL / MariaDB)] D --> G[(SQLite)] D --> H[(MongoDB)] D --> I[(Neo4j)] D --> J[(ClickHouse)] D --> K[(DuckDB)] D --> L[(SurrealDB)] B --> M[Graph linking] M --> D B --> N[Phase 2: download and extract] N --> CsequenceDiagram autonumber participant C as hkex-scraper participant J as HKEx site (JSF) participant A as HKEx JSON servlet C->>J: GET /search/titlesearch.xhtml J-->>C: HTML + javax.faces.ViewState C->>J: POST form (from/to dates + ViewState) C->>A: GET /search/titleSearchServlet.do (rowRange paging) A-->>C: JSON page of filings Note over C: generate_monthly_chunks() splits ranges > 1 month C->>C: dedupe on 16-char MD5 filingIderDiagram COMPANY ||--o{ EXCHANGE_FILING : has_filing EXCHANGE_FILING ||--o{ DOCUMENT : has_document EXCHANGE_FILING ||--o{ EXCHANGE_FILING : references_filing EXCHANGE_FILING ||--o{ SCRAPE_COVERAGE : chunk_of EXCHANGE_FILING { string filingId "16-char MD5" string stockCode string title datetime dateTime } DOCUMENT { text documentText array documentTables } SCRAPE_COVERAGE { int apiCount int ingestedCount int uniqueCount string runId }flowchart LR CANON["canonical record<br/>per filing / document / coverage / edge"] --> DISPATCH["dispatch to every configured sink"] DISPATCH --> S1["sink A"] DISPATCH --> S2["sink B"] DISPATCH --> SN["sink N"] S1 -.->|error| LOG["logged + counted<br/>never blocks the others"] READ["reads: pending filings · tickers · titles · coverage"] --> FIRST["first configured sink<br/>whose capabilities include reads"] DISPATCH --> EXIT["sink_exit_code()<br/>non-zero if any sink failed"]pip install -e ".[dev,all]"ruff check # lint (py310, line-length 100)ruff format --check # formattingpytest # unit tests (no DB or network required)use library /simonmak-ascent/hkex-filing-scraper for API and docs