Finance Database MCP Server
OFFICIAL SERVERScreen and look up 300,000+ equities, ETFs, indices, currency pairs and crypto by classification
Read-only MCP access to a self-built local Parquet lake of China A-share market and company data
By rootSunc (individual) Python Local · stdio Finance and paymentsDatabases
47 popularity score ★ 973 ↓ 3.3k/mo
Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.
pip install cnequity
cne init --profile democlaude mcp add cnequity -- cne mcp --config '<ABSOLUTE_PATH_TO_CONFIG>'{
"mcpServers": {
"cnequity": {
"command": "cne",
"args": [
"mcp",
"--config",
"<ABSOLUTE_PATH_TO_CONFIG>"
]
}
}
}{
"mcpServers": {
"cnequity": {
"command": "cne",
"args": [
"mcp",
"--config",
"<ABSOLUTE_PATH_TO_CONFIG>"
]
}
}
}{
"servers": {
"cnequity": {
"type": "stdio",
"command": "cne",
"args": [
"mcp",
"--config",
"<ABSOLUTE_PATH_TO_CONFIG>"
]
}
}
}[mcp_servers.cnequity]
command = "cne"
args = ["mcp", "--config", "<ABSOLUTE_PATH_TO_CONFIG>"]gemini mcp add --scope user cnequity cne -- mcp --config '<ABSOLUTE_PATH_TO_CONFIG>'CNEquity is a Python toolkit that collects China market data from public sources (Tongdaxin protocol, Eastmoney, Sina, Baostock, CNINFO, the exchanges and others) into a Parquet data lake on your own disk. Its `cne mcp` command exposes that lake to an assistant over stdio, so questions about daily prices, adjustment factors, financial statements, valuation, fund flows, index membership, announcements and delisted stocks are answered from the stored history rather than a live quote feed.
The server has six tools, cut by the shape of the question rather than by dataset: one describes what the lake holds, one maps names to codes (delisted names included), three read bars, statement items and any other dataset, and one runs a single read-only DuckDB SELECT. Research rules are put into the responses: price queries without an adjustment mode carry a warning, and fundamentals queries refuse to run without an explicit `as_of` date so later restatements do not leak into historical answers.
Every response reports total, returned and truncated counts. In v0.16.0's tools.py a query returns 200 rows by default and at most 2000 with `limit`, with `offset` for paging. An optional `--live` mode answers symbol lookups and unadjusted daily bars straight from the sources without a lake, capped at 50 symbols and 800 days per call; every other tool refuses in that mode. A `--http` mode serves Streamable HTTP on 127.0.0.1:8788 for clients that only take a URL, such as ChatGPT through a tunnel.
| Runtime | Python 3.10+ |
|---|
Python 3.10 or later on macOS, Linux or Windows, with the cnequity package installed so the `cne` command is on the PATH. A lake must be built first (`cne init`, or `cne init --profile demo` for a small trial; a full three-year build can take hours), and its config file passed by absolute path. No account or token is needed for the base sources; some supplementary sources need your own credentials.
The MCP server only reads; collection and daily updates are done separately with `cne init` and `cne run daily`. It refuses to start when the lake's curated folder holds no Parquet files. Queries return 200 rows by default, up to 2000 with `limit`. In `--live` mode only `resolve_symbol` and unadjusted daily bars work, and delisted stocks are not found. Minute bars, ticks, futures and options are off by default. The project is 0.x and its docs track main, so the PyPI release may lag them. No backtesting, signals or order placement. Data is under the upstream sources' own terms; public source availability and history depth change.
Suits quantitative researchers and analysts who want an assistant to answer historical China A-share questions (multi-year valuation percentiles, point-in-time fundamentals, behaviour of delisted stocks) from data they hold and can audit, and who are willing to build and maintain a local lake. Because it is local and read-only, it does not touch brokerage accounts. Someone who only needs an occasional latest quote will find building a lake heavy; the README suggests calling a data API directly in that case, and compares the project with AKShare and Tushare.
describe_lakeresolve_symbolquery_barsquery_fundamentalsquery_datasetrun_sql