CNEquity
China A-share data lake for AI agents: prices, fundamentals, flows and events, point-in-time.
Connector by rootSunc · GitHub account verified by the MCP Registry
Install
Works with Claude Code, Codex, VS Code, Cursor, Windsurf, Claude Desktop. Read the repository before you give any tool access to your data.
npx agentmarket install connector/rootsunc-cnequity
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: data-analysis, finance-accounting
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this server can do and what it asks for, from its tool list and install config. Checked Oct 25, 2026.
- Tools
- 5 read · 0 write · 0 delete · 1 not yet classified
- Secrets
- None asked for
- Install scripts
- None found
- Runs as
- Python package
Tools by what they do 6
Read from the source code; the running server may list different tools.
Read 5 · Look things up without changing anything.
query_barsquery_datasetquery_fundamentalsresolve_symbolrun_sql
Not yet classified 1 · We could not tell from the name and description.
describe_lake
Tools (6)
Read from the source code; the running server may differ. Descriptions are the server’s own words; hidden characters are shown as [U+…].
describe_lakeSTART HERE. Returns what this lake actually holds — every dataset with its coverage window, history mode and freshness — plus the query contract that makes an answer correct (adjustment, point-in-time, which series have no real history). Cheap, reads no data. Call it before answering anything factual about A-share data, and use its coverage_start/coverage_end to tell 'this lake has no such data' apart from 'this did not happen'. It also reports `live_mode` — when that is on, some answers come from the vendor rather than the lake and say so. Then pick a tool: resolve_symbol for names, query_bar…
query_barsDaily or intraday price bars. PRICES ARE STORED UNADJUSTED: pass adjust='hfq' for any comparison across time (returns, charts, drawdowns) or a split reads as a crash. Use adjust='qfq' when the levels must match what a quote screen shows today. Pass universe='all_a' for cross-sectional work to drop names that were not tradable that day. datasets: daily_bars, index_bars, minute_bars (1m), minute_bars_5m (5m), and minute_bars_15m / _30m / _60m when the user has derived them (each bar's `resampled_from` says whether 1m or 5m built it). Every response carries `origin`: 'lake' is stored and validate…
query_datasetRead any other dataset by date window and symbol — fund_flow, margin_trading, dragon_tiger, block_trades, northbound_holdings, share_unlock_schedule, corporate_actions, valuation_metrics, index_constituents and the rest. Call describe_lake for the full list and each one's coverage. Bars go through query_bars and financial statements through query_fundamentals. Results are paged with limit/offset and the response reports the true total and a truncated flag; for cross-sectional ranking use run_sql instead of paging.
query_fundamentalsFinancial statement items, point-in-time. `as_of` is REQUIRED and is what prevents look-ahead: only figures publicly announced on or before that date come back, and a restated figure returns the vintage that was current then. For a present-day view pass today's date; for a historical study pass the date being studied, never today. Results are paged with limit/offset. For prices use query_bars; for valuation ratios read valuation_metrics through query_dataset. Set pit_mode='strict' only to audit what the lake itself held on that date.
resolve_symbolLook up a symbol by company name or partial code — '茅台', 'maotai', '600519' all resolve to 600519.SH. Do this before any query when the user named a company rather than a code: a guessed suffix returns an empty result rather than an error. Delisted names are included and flagged with delist_date. Returns the canonical symbol, name and delist_date; several rows mean the fragment is ambiguous, so pick by name before querying.
run_sqlOne read-only DuckDB SELECT over every dataset, each exposed as a view under its own name. Use this for ranking, aggregation, percentiles and joins across datasets — computing them here is both correct and far cheaper than paging thousands of rows back and adding them up. `daily_bars_adj` is a ready-made view carrying hfq_open/high/low/close and open-lake qfq_* beside the raw columns; for a bounded historical qfq window use `daily_bars_qfq(start_date, end_date)` so the anchor matches that window. Prefer these over joining adj_factors yourself. Single SELECT only: no writes, DDL or multiple sta…
Signals
- Stars
- 841
- Forks
- 95
- Open issues
- 1
- Weekly downloads
- 851
- Last commit
- Oct 18, 2026 (10 days ago)
- Last release
- Oct 25, 2026 (3 days ago)
- Last package publish
- Oct 18, 2026 (10 days ago)
From GitHub (fetched Oct 24, 2026) and the package registry.
Details
- Registry name
io.github.rootSunc/cnequity- Version
- 0.20.0
- Auth
- No auth
- Packages
- pypi cnequity
- License
- Apache-2.0
- Repository
- github.com/rootSunc/CNEquity
- First seen
- Oct 24, 2026
- Last checked
- Oct 26, 2026
Cite this page
CNEquity MCP server. Agent Mart. https://agentmart.dev/connectors/rootsunc-cnequity (last updated 2026-10-26)