AgentLadle MCP AKShare
AgentLadle MCP AKShare
English | ไธญๆ
๐จ๐ณ China A-Share Market โ Cloud-hosted MCP for annual financial reports (2023-2025). Read more | Get API Key
A MCP (Model Context Protocol) server that provides 46 financial data tools for AI assistants, covering A-share, HK, US markets, macroeconomics, funds, and derivatives โ powered by AKShare.
It enables AI assistants (Claude, Cursor, etc.) to access financial market data through 46 semantic tools โ from candlestick history to macro indicators, with unified symbol format, normalized output, and built-in caching/rate-limiting.
Features
46 MCP tools across 11 scopes: market, quote, flow, fundamentals, shareholders, content, sector, sentiment, IPO, macro, derivatives
Unified symbol format:
<code>.<market>(e.g.000001.SZ,00700.HK,AAPL.US) โ automatically converted to each AKShare function's required formatNormalized output: Chinese column names โ English snake_case with unit conversion (ไธๅ โๅ , ไบฟ่กโ่ก)
Built-in infrastructure: TTL cache (history 24h / realtime 10s), token-bucket rate limiter (10 QPS global), retry with fallback sources,
asyncio.to_threadasync wrappingoutputSchema: Each tool returns a typed
ToolResponsedataclass with structured output schemaTool annotations:
readOnlyHint,idempotentHint,openWorldHinton all toolsScope-based loading: Load a subset of tools via
AKSHARE_MCP_SCOPESenv var (e.g.market,quote)AI workflow hints: Each response includes a
hintfield guiding the next logical stepChinese keyword handling: AKShare's Chinese enum parameters (e.g.
ๅๅ่ต้) mapped to English (direction=north)Zero-config install โ one line to add to your MCP client, no clone or manual setup needed
Pure Python, cross-platform (Windows / macOS / Linux)
Related MCP server: smart-financial-mcp
Prerequisites
Python 3.10+ โ Download Python
uv โ Install uv
Note: After installing uv, restart your terminal and MCP client (e.g. Claude Desktop, Cursor) to ensure the
uvcommand is recognized.
Quick Start
Add to your MCP client configuration (Claude Desktop, Cursor, etc.):
{
"mcpServers": {
"mcp-akshare": {
"command": "uvx",
"args": ["agentladle-mcp-akshare"]
}
}
}That's it. uvx will automatically download the package and its dependencies from PyPI โ no clone, no manual install, no path configuration.
Optional: Scope filtering
To load only specific scopes (useful for clients with tool count limits):
{
"mcpServers": {
"mcp-akshare": {
"command": "uvx",
"args": ["agentladle-mcp-akshare"],
"env": {
"AKSHARE_MCP_SCOPES": "market,quote,fundamentals"
}
}
}
}Alternative: pip install
If you prefer managing the environment yourself:
pip install agentladle-mcp-akshareThen configure:
{
"mcpServers": {
"mcp-akshare": {
"command": "agentladle-mcp-akshare"
}
}
}Alternative: Run from source (local development)
Clone the repository and run directly:
git clone https://github.com/agentladle/mcp-akshare.gitThen configure your MCP client:
{
"mcpServers": {
"mcp-akshare": {
"command": "uv",
"args": ["run", "--directory", "/path/to/mcp-akshare", "agentladle-mcp-akshare"]
}
}
}Replace /path/to/mcp-akshare with the actual path to the cloned repository.
Data Flow
AKShare Library (1.18.40) MCP AKShare Server
โโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
stock_zh_a_hist() โโโ get_candlesticks()
stock_zh_a_spot_em() โโโ get_quote()
stock_financial_*() โโโ get_financial_statement/metrics()
stock_hsgt_hist_em() โโโ get_northbound_flow()
stock_zt_pool_em() โโโ get_limit_up_pool()
macro_china_gdp() โโโ get_macro_data()
fund_etf_hist_em() โโโ get_fund_nav_history()
โ
โโโ Symbol Normalizer (<code>.<market> โ func-specific format)
โโโ Param Normalizer (period/adjust/date/keyword enums)
โโโ Field Mapper (ไธญๆๅๅ โ English snake_case + unit conversion)
โโโ TTL Cache (history 24h / realtime 10s / fundamental 1h)
โโโ Rate Limiter (10 QPS global, 2 QPS per-interface)
โโโ Retry + Fallback (primary โ backup source)
โ
โผ
ToolResponse { status, data, hint, cached, source, updated_at }Tools
46 tools across 11 scopes. All tools are read-only with readOnlyHint=true.
Scope: market (4 tools)
Tool 1: get_trading_days
Get trading days for a market between dates.
Parameter | Type | Required | Description |
| string | โ |
|
| string | โ | Start date |
| string | โ | End date |
Tool 2: get_market_status
Get current trading status for all markets (CN/HK/US). No parameters.
Tool 3: get_security_list
List securities for a market.
Parameter | Type | Required | Description |
| string | โ |
|
| string | โ | A-share board: |
| int | โ | Max results (default 100, max 1000) |
| int | โ | Pagination offset (default 0) |
Tool 4: get_exchange_rate
Get major currency exchange rates.
Parameter | Type | Required | Description |
| string | โ | Base currency (default |
Scope: quote (5 tools)
Tool 5: get_candlesticks
Get candlestick (OHLCV) data for any asset class โ routes to the correct AKShare function based on asset_class ร period.
Parameter | Type | Required | Description |
| string | โ | Security symbol (e.g. |
| string | โ |
|
| string | โ |
|
| string | โ | Start date |
| string | โ | End date |
| string | โ |
|
| int | โ | Recent N bars (default 100, max 1000) |
Tool 6: get_quote
Get latest quote snapshot for one or more symbols.
Parameter | Type | Required | Description |
| string[] | โ | List of security symbols |
Tool 7: get_intraday
Get intraday time-share data.
Parameter | Type | Required | Description |
| string | โ | Security symbol |
| string | โ | Date |
Tool 8: get_depth
Get order book (bid/ask depth).
Parameter | Type | Required | Description |
| string | โ | Security symbol |
Tool 9: get_trades
Get recent trade ticks.
Parameter | Type | Required | Description |
| string | โ | Security symbol |
| int | โ | Number of trades (default 100, max 1000) |
Scope: flow (4 tools)
Tool 10: get_capital_flow
Get capital flow time series for a stock.
Parameter | Type | Required | Description |
| string | โ | Stock symbol |
| string | โ |
|
Tool 11: get_northbound_flow
Get northbound/southbound capital flow (Stock Connect).
Parameter | Type | Required | Description |
| string | โ |
|
| string | โ |
|
| string | โ | Individual stock (when |
| string | โ | Start date |
| string | โ | End date |
Tool 12: get_margin_trading
Get margin trading data (financing + short selling).
Parameter | Type | Required | Description |
| string | โ | Stock symbol (empty = market aggregate) |
| string | โ | Start date |
| string | โ | End date |
Tool 13: get_block_trade
Get block trade (ๅคงๅฎไบคๆ) records.
Parameter | Type | Required | Description |
| string | โ | Stock symbol (empty = all market) |
| string | โ | Start date |
| string | โ | End date |
Scope: fundamentals (8 tools)
# | Tool | Key Parameters |
14 |
|
|
15 |
|
|
16 |
|
|
17 |
|
|
18 |
|
|
19 |
|
|
20 |
|
|
21 |
|
|
Scope: shareholders (5 tools)
# | Tool | Key Parameters |
22 |
|
|
23 |
|
|
24 |
|
|
25 |
|
|
26 |
|
|
Scope: content (4 tools)
# | Tool | Key Parameters |
27 |
|
|
28 |
|
|
29 |
|
|
30 |
|
|
Scope: sector (4 tools)
# | Tool | Key Parameters |
31 |
|
|
32 |
|
|
33 |
|
|
34 |
|
|
Scope: sentiment (6 tools)
# | Tool | Key Parameters |
35 |
|
|
36 |
|
|
37 |
|
|
38 |
|
|
39 |
|
|
40 |
|
|
Scope: ipo (2 tools)
# | Tool | Key Parameters |
41 |
|
|
42 |
|
|
Scope: macro (4 tools)
# | Tool | Key Parameters |
43 |
|
|
44 |
|
|
45 |
|
|
46 |
|
|
Scope: derivatives (8 tools)
# | Tool | Key Parameters |
47* |
|
|
48* |
|
|
49* |
|
|
50 |
|
|
51 |
|
|
52 |
|
|
53 |
|
|
54 |
|
|
*Tools 47-49 cover fund data within the derivatives scope.
Configuration
On first run, a default config file is created at ~/.agentladle/mcp-akshare/config.yaml:
# MCP AKShare Server Configuration
cache:
ttl_history: 86400 # 24h โ historical daily data
ttl_realtime: 10 # 10s โ real-time quotes
ttl_fundamental: 3600 # 1h โ financial statements
ttl_calendar: 604800 # 7d โ trading calendar
ttl_company: 86400 # 1d โ company basic info
ttl_news: 300 # 5m โ news
max_size: 200 # max cached entries
ratelimit:
global_qps: 10 # global 10 QPS
per_interface_qps: 2 # per-interface 2 QPS
retry:
max_retries: 1
timeout: 30.0
retry_delay: 1.0
# Comma-separated scope list (empty = all scopes)
# Available: market,quote,flow,fundamentals,shareholders,content,sector,sentiment,ipo,macro,derivatives
scopes: []Environment Variables
Configuration can be overridden via environment variables (highest priority):
Variable | Description | Default |
| Comma-separated scopes to load (empty = all) |
|
| Global QPS limit |
|
| Per-interface QPS limit |
|
| Request timeout (seconds) |
|
| Max retry attempts |
|
| Cache TTL for historical data (seconds) |
|
| Cache TTL for real-time data (seconds) |
|
Data Directory Structure
~/.agentladle/mcp-akshare/
โโโ config.yaml # Configuration (auto-created)
โโโ data/ # Data directoryExample Usage
The tools are designed with an EAFP (Easier to Ask for Forgiveness than Permission) approach. AI assistants should directly invoke data retrieval tools and rely on the hint field for workflow guidance.
Scenario A: Get stock price history
User: "What's Apple's stock price trend over the last 30 days?"
1. get_candlesticks(symbol="AAPL.US", period="day", count=30)
โ Returns 30 daily OHLCV bars.
โ hint: "Use get_quote for real-time price, or get_financial_metrics for fundamentals."Scenario B: Fundamental analysis workflow
User: "Analyze Ping An Bank's fundamentals"
1. get_company(symbol="000001.SZ")
โ Returns company overview (industry, listing date, shares).
2. get_financial_metrics(symbol="000001.SZ", count=8)
โ Returns ROE, ROA, margins, debt ratio for 8 periods.
3. get_valuation(symbol="000001.SZ")
โ Returns current PE, PB, PS, dividend yield.
โ hint: "Use get_valuation_history for PE/PB trend."Scenario C: Discover valid symbols
User: "What stocks are in the CSI 300 index?"
1. get_index_constituent(symbol="000300.INDEX")
โ Returns 300 constituent stocks with weights.
2. get_candlesticks(symbol="600519.SH", count=10)
โ Get candlestick data for a specific constituent.Scenario D: Market sentiment
User: "How's the A-share market doing today?"
1. get_market_summary(market="CN")
โ Returns up/down/flat counts, limit-up/down counts, total turnover.
2. get_limit_up_pool()
โ Returns today's limit-up stocks with reasons.
โ hint: "Check consecutive_days for multi-day limit-ups."Tech Stack
Component | Choice | Purpose |
MCP Framework |
| MCP server with stdio/streamable-http transport |
Data Source |
| 1086+ financial data interfaces (A-share, HK, US, macro, funds) |
Config |
| YAML configuration file |
Async |
| Wrap sync akshare calls in async MCP handlers |
Cache | Built-in TTLCache | TTL + LRU eviction, per-category TTL |
Rate Limit | Built-in TokenBucket | Token bucket algorithm, global + per-interface |
Output Types |
| Structured outputSchema (no pydantic dependency) |
Build |
| PEP 621 standard build backend |
Package Manager |
| Fast dependency resolution + |
Project Structure
src/akshare_mcp/
โโโ __init__.py # Package version
โโโ __main__.py # python -m entry point
โโโ server.py # FastMCP init + tool registration + logging (stderr)
โโโ config.py # Config loading (~/.agentladle/mcp-akshare/config.yaml, singleton)
โโโ instances.py # Service singletons (lazy-loaded)
โโโ models.py # Internal data models (dataclass)
โโโ response.py # Response builders (success/error/skipped + hint)
โโโ scopes.py # 11 scope definitions + tool mapping
โโโ tools/ # Tool layer (thin: parameter validation + response wrapping)
โ โโโ market.py # scope: market (4 tools)
โ โโโ quote.py # scope: quote (5 tools)
โ โโโ flow.py # scope: flow (4 tools)
โ โโโ fundamental.py # scope: fundamentals (8 tools)
โ โโโ shareholder.py # scope: shareholders (5 tools)
โ โโโ news.py # scope: content (4 tools)
โ โโโ sector.py # scope: sector (4 tools)
โ โโโ sentiment.py # scope: sentiment (6 tools)
โ โโโ ipo.py # scope: ipo (2 tools)
โ โโโ macro.py # scope: macro (4 tools)
โ โโโ derivative.py # scope: derivatives (8 tools)
โโโ services/ # Business layer (thick: core logic)
โ โโโ base_service.py # Base class with config/retry accessors
โ โโโ market_service.py # Trading days, candlesticks, quotes, depth
โ โโโ fundamental_service.py # Financials, valuation, shareholders, IPO
โ โโโ flow_service.py # Capital flow, northbound, margin, block trade
โ โโโ news_service.py # News, filings, research reports
โ โโโ sentiment_service.py # Limit pools, dragon tiger, anomaly, summary
โ โโโ macro_service.py # Macro indicators, interest rates, bond yields
โ โโโ sector_service.py # Index constituents, sector quotes/rank
โ โโโ fund_service.py # Fund quote, NAV, holdings
โ โโโ derivative_service.py # Futures, options, bonds, forex, REITs
โ โโโ symbol_normalizer.py # Unified <code>.<market> โ function-specific format
โ โโโ param_normalizer.py # Period/adjust/date/keyword enum mapping
โ โโโ field_mapper.py # Chinese column โ English snake_case + unit conversion
โโโ output/ # OutputSchema types (Longbridge-style)
โ โโโ common.py # ToolResponse wrapper
โ โโโ market.py # TradingDayItem, SecurityItem, ...
โ โโโ quote.py # CandlestickItem, QuoteItem, DepthOutput, ...
โ โโโ flow.py # CapitalFlowItem, NorthboundFlowItem, ...
โ โโโ fundamental.py # CompanyInfo, FinancialMetricItem, ValuationData, ...
โ โโโ shareholder.py # ShareholderItem, InsiderTradeItem, ...
โ โโโ content.py # NewsItem, FilingItem, ResearchReportItem
โ โโโ sector.py # IndexConstituentItem, SectorQuoteItem, ...
โ โโโ sentiment.py # LimitPoolItem, DragonTigerItem, MarketSummary, ...
โ โโโ ipo.py # IPOCalendarItem, IPODetail
โ โโโ macro.py # MacroIndicatorItem, InterestRateItem, ...
โ โโโ derivatives.py # FundQuoteItem, FuturesQuoteItem, OptionQuoteItem, ...
โโโ infra/ # Infrastructure
โโโ cache.py # TTL cache with LRU eviction
โโโ ratelimit.py # Token bucket (global + per-interface)
โโโ retry.py # Retry with exponential backoff
โโโ async_wrap.py # asyncio.to_thread wrapper for sync callsLicense
MIT
Available Tools
54 toolsget_block_tradeARead-onlyIdempotent
Get block trade (ๅคงๅฎไบคๆ) records.
Leave symbol empty for all market block trades. get_block_trade(start="2026-07-01", end="2026-07-08")
Args: symbol: Stock symbol (optional) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: end, start, symbol. Returns: data, hint, error, cached, +3 more
get_bond_yield_curveARead-onlyIdempotent
Get treasury yield curve.
Directly invoke for bond yield data. get_bond_yield_curve(country="CN")
Args: country: CN/US (default CN) date: Date YYYY-MM-DD (default: latest)
Inputs: date, country. Returns: data, hint, error, cached, +3 more
get_business_segmentsARead-onlyIdempotent
Get business segment breakdown (revenue by product/region).
Use to understand revenue composition. get_business_segments(symbol="000001.SZ", by="product")
Args: symbol: Security symbol by: product/region (default product)
Inputs: symbol (required), by. Returns: data, hint, error, cached, +3 more
get_candlesticksARead-onlyIdempotent
Get candlestick (OHLCV) data for any asset class.
Directly invoke with symbol. If asset_class is omitted, inferred from suffix. <critical_rules>
Symbol must be . (e.g. 000001.SZ, AAPL.US).
If both start/end and count given, start/end takes precedence. </critical_rules>
Args: symbol: Security symbol (e.g. "000001.SZ", "00700.HK", "AAPL.US", "000300.INDEX") asset_class: stock/index/fund/futures; inferred from suffix if omitted period: 1m, 5m, 15m, 30m, 60m, day, week, month (default day) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD adjust: none/qfq/hfq (default none) count: Recent N bars (default 100, max 1000)
Inputs: symbol (required), end, count, start, +4 more. Returns: data, hint, error, cached, +3 more
get_capital_flowBRead-onlyIdempotent
Get capital flow time series for a stock.
Directly invoke with stock symbol. get_capital_flow(symbol="000001.SZ")
Args: symbol: Stock symbol (e.g. "000001.SZ") period: 1d/3d/5d/10d (default 1d)
Inputs: symbol (required), period. Returns: data, hint, error, cached, +3 more
get_companyARead-onlyIdempotent
Get company overview (name, industry, listing date, shares).
Directly invoke with symbol. get_company(symbol="000001.SZ")
Args: symbol: Security symbol (e.g. "000001.SZ", "AAPL.US")
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_convertible_bond_valueARead-onlyIdempotent
Get convertible bond value analysis (bond price, premium, YTM).
Directly invoke with convertible bond symbol. get_convertible_bond_value(symbol="113527.BOND")
Args: symbol: Convertible bond symbol (e.g. "113527.BOND")
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_depthARead-onlyIdempotent
Get order book (bid/ask depth) for a symbol.
Directly invoke for real-time bid/ask. get_depth(symbol="000001.SZ")
Args: symbol: Security symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_dividendARead-onlyIdempotent
Get dividend history for a stock.
Directly invoke with symbol. get_dividend(symbol="600519.SH")
Args: symbol: Security symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_dragon_tiger_listARead-onlyIdempotent
Get dragon-tiger list (้พ่ๆฆ โ major institutional trades).
Provide date range; optionally filter by symbol. get_dragon_tiger_list(start="2026-07-01", end="2026-07-08")
Args: start: Start date YYYY-MM-DD end: End date YYYY-MM-DD symbol: Filter by stock (optional)
Inputs: end, start, symbol. Returns: data, hint, error, cached, +3 more
get_exchange_rateCRead-onlyIdempotent
Get major currency exchange rates.
Directly invoke for FX rates. get_exchange_rate(base="CNY")
Args: base: Base currency (default CNY)
Inputs: base. Returns: data, hint, error, cached, +3 more
get_filingsARead-onlyIdempotent
Get company filings/announcements (ๅ ฌๅ).
Directly invoke with symbol for official company announcements. get_filings(symbol="000001.SZ", count=10)
Args: symbol: Security symbol count: Number of filings (default 20)
Inputs: symbol (required), count. Returns: data, hint, error, cached, +3 more
get_financial_metricsARead-onlyIdempotent
Get financial metrics time series (ROE, ROA, margins, debt ratio).
Use for fundamental analysis over multiple periods. get_financial_metrics(symbol="000001.SZ", count=8)
Args: symbol: Security symbol count: Recent N periods (default 10)
Inputs: symbol (required), count. Returns: data, hint, error, cached, +3 more
get_financial_report_latestBRead-onlyIdempotent
Get latest financial report summary (revenue, net profit, EPS, ROE).
Quick snapshot of latest quarterly/annual results. get_financial_report_latest(symbol="000001.SZ")
Args: symbol: Security symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_financial_statementARead-onlyIdempotent
Get financial statements (Income Statement / Balance Sheet / Cash Flow).
Use kind=ALL for all three statements, or IS/BS/CF individually. get_financial_statement(symbol="000001.SZ", kind="IS", count=4)
Args: symbol: Security symbol kind: IS/BS/CF/ALL (default ALL) report: annual/semi_annual/quarterly (default annual) count: Recent N periods (default 10)
Inputs: symbol (required), kind, count, report. Returns: data, hint, error, cached, +3 more
get_forex_quoteARead-onlyIdempotent
Get forex quote for major currency pairs.
Leave pairs empty for all major pairs. get_forex_quote(pairs=["USD/CNY", "EUR/CNY"])
Args: pairs: Currency pairs (optional; empty = all)
Inputs: pairs. Returns: data, hint, error, cached, +3 more
get_fund_holdingARead-onlyIdempotent
Get fund holdings (stocks held by the fund).
Use to see what stocks a fund holds. get_fund_holding(symbol="510300.FUND")
Args: symbol: Fund symbol report_date: Report period (optional)
Inputs: symbol (required), report_date. Returns: data, hint, error, cached, +3 more
get_fund_quoteARead-onlyIdempotent
Get fund/ETF quote.
Leave symbols empty for ETF overview; specify for specific funds. get_fund_quote(fund_type="etf")
Args: symbols: Fund codes (optional; empty = all ETFs) fund_type: etf/open (default etf)
Inputs: symbols, fund_type. Returns: data, hint, error, cached, +3 more
get_futures_quoteARead-onlyIdempotent
Get futures quote (SHFE, DCE, CZCE, CFFEX, INE).
Leave exchange empty for all; specify for a single exchange. get_futures_quote(exchange="SHFE")
Args: exchange: SHFE/DCE/CZCE/CFFEX/INE (optional)
Inputs: exchange. Returns: data, hint, error, cached, +3 more
get_hot_rankBRead-onlyIdempotent
Get hot stock ranking (็ญๅบฆๆฆ).
Use to find trending stocks. get_hot_rank(market="CN", count=10)
Args: market: CN/HK/US (default CN) rank_type: hot/search (default hot) count: Number of stocks (default 20)
Inputs: count, market, rank_type. Returns: data, hint, error, cached, +3 more
get_index_constituentARead-onlyIdempotent
Get index constituent stocks (e.g. CSI 300 constituents).
Provide index symbol like 000300.INDEX. get_index_constituent(symbol="000300.INDEX")
Args: symbol: Index symbol (e.g. "000300.INDEX")
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_industry_rankARead-onlyIdempotent
Get industry/concept ranking by change rate.
Use to find top/bottom performing sectors. get_industry_rank(sector_type="industry", count=10)
Args: sector_type: industry/concept (default industry) count: Number of sectors to rank (default 20)
Inputs: count, sector_type. Returns: data, hint, error, cached, +3 more
get_insider_tradingARead-onlyIdempotent
Get insider trading records (้ซ็ฎกๅขๅๆ).
Use to track management buying/selling. get_insider_trading(symbol="000001.SZ")
Args: symbol: Security symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_institutional_holdingARead-onlyIdempotent
Get institutional holdings for a stock.
Use to see which institutions hold the stock. get_institutional_holding(symbol="000001.SZ")
Args: symbol: Security symbol report_date: Report period (optional)
Inputs: symbol (required), report_date. Returns: data, hint, error, cached, +3 more
get_interest_rateARead-onlyIdempotent
Get interest rate data (LPR, SHIBOR, LIBOR).
Directly invoke with rate_type. get_interest_rate(rate_type="lpr", start="2023-01-01")
Args: rate_type: lpr/shibor/libor start: Start date YYYY-MM-DD (optional) end: End date YYYY-MM-DD (optional)
Inputs: rate_type (required), end, start. Returns: data, hint, error, cached, +3 more
get_intradayARead-onlyIdempotent
Get intraday time-share data for a symbol.
Directly invoke for intraday price ticks. get_intraday(symbol="000001.SZ", date="2026-07-08")
Args: symbol: Security symbol date: Date YYYY-MM-DD (default: today)
Inputs: symbol (required), date. Returns: data, hint, error, cached, +3 more
get_ipo_calendarARead-onlyIdempotent
Get IPO calendar (upcoming and recent IPOs).
Use to find newly listed or upcoming stocks. get_ipo_calendar(market="CN")
Args: market: CN/HK (default CN)
Inputs: market. Returns: data, hint, error, cached, +3 more
get_ipo_detailARead-onlyIdempotent
Get IPO detail for a symbol (issue price, PE, industry, sponsor).
Use after finding IPO from get_ipo_calendar. get_ipo_detail(symbol="301389.SZ")
Args: symbol: New stock symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_limit_down_poolARead-onlyIdempotent
Get limit-down stock pool (่ทๅๆฟ).
Leave date empty for today. get_limit_down_pool(date="2026-07-08")
Args: date: Date YYYY-MM-DD (default: today)
Inputs: date. Returns: data, hint, error, cached, +3 more
get_limit_up_poolARead-onlyIdempotent
Get limit-up stock pool (ๆถจๅๆฟ).
Leave date empty for today; specify for historical. get_limit_up_pool(date="2026-07-08")
Args: date: Date YYYY-MM-DD (default: today)
Inputs: date. Returns: data, hint, error, cached, +3 more
get_macro_dataARead-onlyIdempotent
Get macro indicator history (GDP, CPI, PMI, etc.).
First call list_macro_indicators to get indicator_code. <critical_rules>indicator_code must come from list_macro_indicators.</critical_rules> get_macro_data(indicator_code="gdp_cn", start="2020-01-01")
Args: indicator_code: From list_macro_indicators (e.g. "gdp_cn", "cpi_cn") start: Start date YYYY-MM-DD (optional) end: End date YYYY-MM-DD (optional)
Inputs: indicator_code (required), end, count, start, +1 more. Returns: data, hint, error, cached, +3 more
get_margin_tradingARead-onlyIdempotent
Get margin trading data (financing + short selling).
Leave symbol empty for market aggregate, or provide for individual stock. get_margin_trading(start="2026-07-01", end="2026-07-08")
Args: symbol: Stock symbol (optional; empty = market aggregate) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: end, start, symbol. Returns: data, hint, error, cached, +3 more
get_market_anomalyARead-onlyIdempotent
Get intraday anomaly alerts (ๅผๅจ).
Leave anomaly_type empty for all; specify for a single type. <critical_rules>anomaly_type: rocket/dive/large_buy/large_sell</critical_rules> get_market_anomaly(anomaly_type="rocket", count=20)
Args: anomaly_type: rocket/dive/large_buy/large_sell (default: all) count: Max results (default 50)
Inputs: count, anomaly_type. Returns: data, hint, error, cached, +3 more
get_market_statusARead-onlyIdempotent
Get current trading status for all markets (CN/HK/US).
Directly invoke to check if markets are open. get_market_status()
Inputs: no named parameters. Returns: data, hint, error, cached, +3 more
get_market_summaryARead-onlyIdempotent
Get market summary (up/down/flat counts, limit counts, total turnover).
Use for overall market breadth snapshot. get_market_summary(market="CN")
Args: market: CN/HK/US (default CN)
Inputs: market. Returns: data, hint, error, cached, +3 more
get_newsARead-onlyIdempotent
Get news for a symbol or market.
Provide symbol for stock news; leave empty for market headlines. get_news(symbol="000001.SZ", count=5)
Args: symbol: Stock symbol (optional; empty = market headlines) count: Number of articles (default 10)
Inputs: count, symbol. Returns: data, hint, error, cached, +3 more
get_news_searchBRead-onlyIdempotent
Search financial news by keyword.
Use English or Chinese keywords for financial news search. get_news_search(keyword="้ๆฏ", count=5)
Args: keyword: Search keyword count: Number of articles (default 10)
Inputs: keyword (required), count. Returns: data, hint, error, cached, +3 more
get_northbound_flowARead-onlyIdempotent
Get northbound/southbound capital flow (Stock Connect).
Use direction=north for northbound, south for southbound. <critical_rules>If scope=stock, symbol is required.</critical_rules> get_northbound_flow(direction="north", start="2026-01-01", end="2026-06-30")
Args: direction: north/south (default north) scope: market/stock (default market) symbol: Individual stock (when scope=stock) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: end, count, scope, start, +3 more. Returns: data, hint, error, cached, +3 more
get_option_quoteARead-onlyIdempotent
Get option quote (SSE, SZSE).
Leave exchange empty for all options. get_option_quote(exchange="SSE")
Args: exchange: SSE/SZSE (optional)
Inputs: exchange. Returns: data, hint, error, cached, +3 more
get_quoteARead-onlyIdempotent
Get latest quote snapshot for one or more symbols.
Directly invoke with symbol list. Returns real-time or latest close. <critical_rules>Symbols must be . format.</critical_rules> get_quote(symbols=["000001.SZ", "600519.SH", "AAPL.US"])
Args: symbols: List of security symbols
Inputs: symbols (required). Returns: data, hint, error, cached, +3 more
get_reits_quoteARead-onlyIdempotent
Get REITs quote.
Leave symbol empty for all REITs. get_reits_quote()
Args: symbol: REITs symbol (optional; empty = all)
Inputs: symbol. Returns: data, hint, error, cached, +3 more
get_research_reportARead-onlyIdempotent
Get analyst research reports for a stock.
Use for analyst ratings and target prices. get_research_report(symbol="000001.SZ", count=5)
Args: symbol: Security symbol count: Number of reports (default 10)
Inputs: symbol (required), count. Returns: data, hint, error, cached, +3 more
get_restricted_releaseARead-onlyIdempotent
Get restricted share release (่งฃ็ฆ) schedule.
Leave symbol empty for market-wide upcoming releases. get_restricted_release(start="2026-07-01", end="2026-12-31")
Args: symbol: Stock symbol (optional; empty = all market) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: end, start, symbol. Returns: data, hint, error, cached, +3 more
get_sector_constituentARead-onlyIdempotent
Get stocks within a sector.
sector_name must be Chinese (e.g. "ๅฐ้ๅฑ"). Use get_sector_quote to find names. <critical_rules>sector_name accepts Chinese names like "ๅฐ้ๅฑ", "็ฝ้ ".</critical_rules> get_sector_constituent(sector_type="industry", sector_name="ๅฐ้ๅฑ")
Args: sector_type: industry/concept sector_name: Sector name (Chinese, e.g. "ๅฐ้ๅฑ")
Inputs: sector_name (required), sector_type (required). Returns: data, hint, error, cached, +3 more
get_sector_quoteARead-onlyIdempotent
Get sector list and real-time quotes.
Leave sector_name empty for all sectors; specify for a single sector. get_sector_quote(sector_type="industry")
Args: sector_type: industry/concept sector_name: Sector name (optional; empty = all sectors)
Inputs: sector_type (required), sector_name. Returns: data, hint, error, cached, +3 more
get_security_listARead-onlyIdempotent
List securities for a market.
Use to discover valid symbol codes for a market. <critical_rules>market must be CN/HK/US. board: main/chinext/star/bse (CN only).</critical_rules> get_security_list(market="CN", count=50)
Args: market: Market code: CN / HK / US board: A-share board filter: main/chinext/star/bse (CN only, default all) count: Max results (default 100, max 1000) offset: Pagination offset (default 0)
Inputs: market (required), board, count, offset. Returns: data, hint, error, cached, +3 more
get_tradesARead-onlyIdempotent
Get recent trade ticks for a symbol.
Directly invoke for tick-level trade data. get_trades(symbol="000001.SZ", count=50)
Args: symbol: Security symbol count: Number of trades (default 100, max 1000)
Inputs: symbol (required), count. Returns: data, hint, error, cached, +3 more
get_trading_daysARead-onlyIdempotent
Get trading days for a market between dates.
Directly invoke with market and date range. <critical_rules>market must be CN/HK/US. Dates must be YYYY-MM-DD.</critical_rules> get_trading_days(market="CN", start="2026-01-01", end="2026-06-30")
Args: market: Market code: CN / HK / US start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: end (required), start (required), market (required). Returns: data, hint, error, cached, +3 more
get_valuationARead-onlyIdempotent
Get current valuation metrics (PE, PB, PS, dividend yield, market cap).
Directly invoke for current valuation snapshot. get_valuation(symbol="000001.SZ")
Args: symbol: Security symbol
Inputs: symbol (required). Returns: data, hint, error, cached, +3 more
get_valuation_historyARead-onlyIdempotent
Get valuation metric history (PE, PB, PS, dividend yield over time).
Use to check if current valuation is high/low historically. get_valuation_history(symbol="000001.SZ", metric="pe", start="2023-01-01")
Args: symbol: Security symbol metric: pe/pb/ps/dividend_yield (default pe) start: Start date YYYY-MM-DD end: End date YYYY-MM-DD
Inputs: symbol (required), end, start, metric. Returns: data, hint, error, cached, +3 more
list_macro_indicatorsARead-onlyIdempotent
List available macro indicators (GDP, CPI, PMI, etc.).
Use first to discover indicator_code, then pass to get_macro_data. list_macro_indicators(country="CN")
Args: keyword: Filter keyword (optional) country: CN/US/HK/JP/EU (optional) count: Max results (default 100)
Inputs: count, country, keyword. Returns: data, hint, error, cached, +3 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
TDQS
Scored across 54 tools
Most tools target distinct data types (block trades, yield curves, candlesticks, etc.), and overlapping areas like financial reports and holdings are differentiated by granularity. However, with 54 tools, some may be confused (e.g., get_fund_holding vs get_institutional_holding) despite clear descriptions.
All tool names follow a consistent verb_noun snake_case pattern (e.g., get_candlesticks, get_market_status). No mixing of styles or abbreviations, making the API highly predictable.
54 tools is high but justified for a comprehensive financial data API covering stocks, bonds, funds, macro, etc. However, some tools could be merged (e.g., multiple valuation tools), and the count slightly exceeds the typical well-scoped range.
The tool surface covers a wide range of financial data: market quotes, fundamentals, macro indicators, IPOs, filings, sector info, and more. There are no obvious gaps for the server's stated purpose of providing AKShare financial data.
Related MCP Connectors
China A-share data for AI agents: 57 read-only tools plus 6 tools for your own watchlist.
China A-share screening, filings, holdings, flows and calendars as agent tools.
China A-share market data over MCP: 22 tools for quotes, K-line, financials, money flow, top-trader boards, sectors, macro, convertible bonds and factor screening. Five tools need no API key, so you can connect and try it immediately.
Provide access to Chinese stock market data including historical prices, real-time data, news, andโฆ
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables real-time stock market analysis through AKShare API integration. Supports retrieving live stock prices, historical data, technical indicators (MA, MACD, RSI), market sentiment analysis, stock search, and financial news.5-
- AlicenseNot gradedqualityDmaintenanceProvides AI assistants with real-time and historical Chinese stock, ETF, index, and futures data via Tushare Pro API, enabling natural language queries for financial analysis and market monitoring.5MIT
- AlicenseAqualityDmaintenanceEnables querying and analysis of stock and cryptocurrency data, including market overviews, price history, news, and financial indicators, via akshare.18MIT
- AlicenseBqualityDmaintenanceEnables AI assistants to access comprehensive Chinese financial market data including stocks, funds, futures, and economic indicators via AKShare.55MIT