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