CNINFO A-Share Announcement MCP
v0.1.0Local MCP service running via uvx to access CNINFO announcement data through structured tools, including list queries, PDF/HTML download & parsing, and full-text keyword search. v0.1 covers announcements only — periodic reports (annual/interim/quarterly) are out of scope. No API Key required.
§ Quickstart
Add the following to your MCP client configuration (Cursor, Claude Desktop, etc.):
Settings (top right) → Cursor Settings → Features → MCP → Add New MCP Server. Set to command, type uvx.
MCP Client Configuration
{
"mcpServers": {
"mcp-cninfo": {
"command": "uvx",
"args": [
"agentladle-mcp-cninfo"
]
}
}
}Config file locations
- Please ensure Python uv tool is installed.
§ Tools Reference
6 tools
list_cninfo_announcements
Discover available CNINFO announcements (periodic reports excluded by default)
| Parameter | Type | Required | Description |
|---|---|---|---|
| stock_code | string | ✓ | 6-digit stock code, e.g. "000001" |
| category | string | — | Category key, short code, or label, e.g. "董事会" |
| start_date | string | — | Start date YYYY-MM-DD |
| end_date | string | — | End date YYYY-MM-DD |
| title_keyword | string | — | Title keyword |
| limit | number | — | Max results, default 10 |
download_cninfo_announcement
Download announcement PDF (HTML fallback); idempotent
| Parameter | Type | Required | Description |
|---|---|---|---|
| stock_code | string | ✓ | 6-digit stock code |
| announce_date | string | — | Announcement date YYYY-MM-DD |
| title_keyword | string | — | Title substring |
| category | string | — | Category filter |
| announcement_id | string | — | CNINFO announcement ID |
| local_key | string | — | Bundle key from list results |
parse_cninfo_announcement
Parse downloaded PDF/HTML into page-by-page JSON
| Parameter | Type | Required | Description |
|---|---|---|---|
| local_key | string | ✓ | Bundle key, e.g. "000001_DSH_2026-07-02_8b1ad607" |
keyword_search
Full-text keyword search with TF relevance scoring
| Parameter | Type | Required | Description |
|---|---|---|---|
| local_key | string | ✓ | Bundle key |
| keywords | string[] | ✓ | 1–5 keywords |
| match_mode | string | — | "ANY" (default) or "ALL" |
| max_results | number | — | Max results, default 5 |
get_announcement_pages
Read announcement content by page range
| Parameter | Type | Required | Description |
|---|---|---|---|
| local_key | string | ✓ | Bundle key |
| start_page | number | ✓ | Start page (1-based) |
| page_count | number | — | Page count, default 3 |
lookup_stock_code
Diagnostic: look up stock code → orgId mapping
| Parameter | Type | Required | Description |
|---|---|---|---|
| stock_code | string | ✓ | 6-digit stock code |
| refresh | boolean | — | Force refresh mapping |
§ Examples
Once configured, you can ask the AI directly:
Fast Full-text Search (Cached)
Search for buyback content in Ping An Bank's latest announcement.
When cache exists, call keyword_search directly with keywords like "buyback" to extract highlighted snippets.
Download and Analyze from Scratch
What does Ping An Bank's latest announcement say?
Call list_cninfo_announcements → download → parse → keyword_search (EAFP: search first, download/parse on miss).
Stock Code Mapping Diagnosis
Check whether the orgId mapping for 000001 on CNINFO is valid.
When list/download returns Stock code not found, call lookup_stock_code (optionally refresh=true) to diagnose.
LadleAgent