Skip to main content
Glama
AgentLadle MCP AKShare

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 format

  • Normalized 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_thread async wrapping

  • outputSchema: Each tool returns a typed ToolResponse dataclass with structured output schema

  • Tool annotations: readOnlyHint, idempotentHint, openWorldHint on all tools

  • Scope-based loading: Load a subset of tools via AKSHARE_MCP_SCOPES env var (e.g. market,quote)

  • AI workflow hints: Each response includes a hint field guiding the next logical step

  • Chinese 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

Note: After installing uv, restart your terminal and MCP client (e.g. Claude Desktop, Cursor) to ensure the uv command 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-akshare

Then 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.git

Then 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

market

string

โœ…

CN / HK / US

start

string

โœ…

Start date YYYY-MM-DD

end

string

โœ…

End date YYYY-MM-DD

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

market

string

โœ…

CN / HK / US

board

string

โŒ

A-share board: main/chinext/star/bse (default: all)

count

int

โŒ

Max results (default 100, max 1000)

offset

int

โŒ

Pagination offset (default 0)

Tool 4: get_exchange_rate

Get major currency exchange rates.

Parameter

Type

Required

Description

base

string

โŒ

Base currency (default CNY)

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

symbol

string

โœ…

Security symbol (e.g. 000001.SZ, AAPL.US, 000300.INDEX)

asset_class

string

โŒ

stock/index/fund/futures (inferred from suffix if omitted)

period

string

โŒ

1m/5m/15m/30m/60m/day/week/month (default day)

start

string

โŒ

Start date YYYY-MM-DD

end

string

โŒ

End date YYYY-MM-DD

adjust

string

โŒ

none/qfq/hfq (default none)

count

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

symbols

string[]

โœ…

List of security symbols

Tool 7: get_intraday

Get intraday time-share data.

Parameter

Type

Required

Description

symbol

string

โœ…

Security symbol

date

string

โŒ

Date YYYY-MM-DD (default: today)

Tool 8: get_depth

Get order book (bid/ask depth).

Parameter

Type

Required

Description

symbol

string

โœ…

Security symbol

Tool 9: get_trades

Get recent trade ticks.

Parameter

Type

Required

Description

symbol

string

โœ…

Security symbol

count

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

symbol

string

โœ…

Stock symbol

period

string

โŒ

1d/3d/5d/10d (default 1d)

Tool 11: get_northbound_flow

Get northbound/southbound capital flow (Stock Connect).

Parameter

Type

Required

Description

direction

string

โŒ

north/south (default north)

scope

string

โŒ

market/stock (default market)

symbol

string

โŒ

Individual stock (when scope=stock)

start

string

โŒ

Start date YYYY-MM-DD

end

string

โŒ

End date YYYY-MM-DD

Tool 12: get_margin_trading

Get margin trading data (financing + short selling).

Parameter

Type

Required

Description

symbol

string

โŒ

Stock symbol (empty = market aggregate)

start

string

โŒ

Start date YYYY-MM-DD

end

string

โŒ

End date YYYY-MM-DD

Tool 13: get_block_trade

Get block trade (ๅคงๅฎ—ไบคๆ˜“) records.

Parameter

Type

Required

Description

symbol

string

โŒ

Stock symbol (empty = all market)

start

string

โŒ

Start date YYYY-MM-DD

end

string

โŒ

End date YYYY-MM-DD

Scope: fundamentals (8 tools)

#

Tool

Key Parameters

14

get_company

symbol

15

get_financial_statement

symbol, kind (IS/BS/CF/ALL), report, count

16

get_financial_report_latest

symbol

17

get_financial_metrics

symbol, count

18

get_valuation

symbol

19

get_valuation_history

symbol, metric (pe/pb/ps), start, end

20

get_dividend

symbol

21

get_business_segments

symbol, by (product/region)

Scope: shareholders (5 tools)

#

Tool

Key Parameters

22

get_shareholder_top

symbol, holder_type, count

23

get_shareholder_count

symbol

24

get_institutional_holding

symbol, report_date

25

get_insider_trading

symbol

26

get_restricted_release

symbol, start, end

Scope: content (4 tools)

#

Tool

Key Parameters

27

get_news

symbol, count

28

get_news_search

keyword, count

29

get_filings

symbol, count

30

get_research_report

symbol, count

Scope: sector (4 tools)

#

Tool

Key Parameters

31

get_index_constituent

symbol (e.g. 000300.INDEX)

32

get_sector_quote

sector_type (industry/concept), sector_name

33

get_sector_constituent

sector_type, sector_name (Chinese)

34

get_industry_rank

sector_type, count

Scope: sentiment (6 tools)

#

Tool

Key Parameters

35

get_limit_up_pool

date

36

get_limit_down_pool

date

37

get_dragon_tiger_list

start, end, symbol

38

get_hot_rank

market, rank_type, count

39

get_market_anomaly

anomaly_type (rocket/dive/large_buy/large_sell), count

40

get_market_summary

market

Scope: ipo (2 tools)

#

Tool

Key Parameters

41

get_ipo_calendar

market (CN/HK)

42

get_ipo_detail

symbol

Scope: macro (4 tools)

#

Tool

Key Parameters

43

list_macro_indicators

keyword, country, count

44

get_macro_data

indicator_code, start, end

45

get_interest_rate

rate_type (lpr/shibor/libor), start, end

46

get_bond_yield_curve

country (CN/US), date

Scope: derivatives (8 tools)

#

Tool

Key Parameters

47*

get_fund_quote

symbols, fund_type (etf/open)

48*

get_fund_nav_history

symbol, start, end, count

49*

get_fund_holding

symbol, report_date

50

get_futures_quote

exchange (SHFE/DCE/CZCE/CFFEX/INE)

51

get_option_quote

exchange (SSE/SZSE)

52

get_convertible_bond_value

symbol

53

get_forex_quote

pairs

54

get_reits_quote

symbol

*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

AKSHARE_MCP_SCOPES

Comma-separated scopes to load (empty = all)

"" (all)

AKSHARE_MCP_GLOBAL_QPS

Global QPS limit

10

AKSHARE_MCP_PER_IF_QPS

Per-interface QPS limit

2

AKSHARE_MCP_TIMEOUT

Request timeout (seconds)

30

AKSHARE_MCP_MAX_RETRIES

Max retry attempts

1

AKSHARE_MCP_TTL_HISTORY

Cache TTL for historical data (seconds)

86400

AKSHARE_MCP_TTL_REALTIME

Cache TTL for real-time data (seconds)

10

Data Directory Structure

~/.agentladle/mcp-akshare/
โ”œโ”€โ”€ config.yaml                        # Configuration (auto-created)
โ””โ”€โ”€ data/                              # Data directory

Example 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[cli] (FastMCP)

MCP server with stdio/streamable-http transport

Data Source

akshare>=1.18.40

1086+ financial data interfaces (A-share, HK, US, macro, funds)

Config

pyyaml

YAML configuration file

Async

asyncio.to_thread

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

dataclasses

Structured outputSchema (no pydantic dependency)

Build

hatchling

PEP 621 standard build backend

Package Manager

uv

Fast dependency resolution + uv.lock

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 calls

License

MIT

Available Tools

54 tools
get_block_tradeA
Read-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_curveA
Read-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_segmentsA
Read-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_candlesticksA
Read-onlyIdempotent

Get candlestick (OHLCV) data for any asset class.

Directly invoke with symbol. If asset_class is omitted, inferred from suffix. <critical_rules>

  1. Symbol must be . (e.g. 000001.SZ, AAPL.US).

  2. 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_flowB
Read-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_companyA
Read-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_valueA
Read-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_depthA
Read-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_dividendA
Read-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_listA
Read-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_rateC
Read-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_filingsA
Read-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_metricsA
Read-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_latestB
Read-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_statementA
Read-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_quoteA
Read-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_holdingA
Read-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_nav_historyA
Read-onlyIdempotent

Get fund NAV history.

Directly invoke with fund symbol. get_fund_nav_history(symbol="510300.SH", count=30)

Args: symbol: Fund symbol (e.g. "510300.FUND") start: Start date YYYY-MM-DD end: End date YYYY-MM-DD count: Recent N days (default 100)

Inputs: symbol (required), end, count, start. Returns: data, hint, error, cached, +3 more

get_fund_quoteA
Read-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_quoteA
Read-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_rankB
Read-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_constituentA
Read-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_rankA
Read-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_tradingA
Read-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_holdingA
Read-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_rateA
Read-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_intradayA
Read-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_calendarA
Read-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_detailA
Read-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_poolA
Read-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_poolA
Read-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_dataA
Read-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_tradingA
Read-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_anomalyA
Read-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_statusA
Read-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_summaryA
Read-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_newsA
Read-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_northbound_flowA
Read-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_quoteA
Read-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_quoteA
Read-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_quoteA
Read-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_reportA
Read-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_releaseA
Read-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_constituentA
Read-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_quoteA
Read-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_listA
Read-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_shareholder_countB
Read-onlyIdempotent

Get shareholder count history.

Use to track retail vs institutional concentration trends. get_shareholder_count(symbol="000001.SZ")

Args: symbol: Security symbol

Inputs: symbol (required). Returns: data, hint, error, cached, +3 more

get_shareholder_topA
Read-onlyIdempotent

Get top 10 shareholders history.

Directly invoke with symbol. get_shareholder_top(symbol="000001.SZ", count=2)

Args: symbol: Security symbol holder_type: all/circulating (default all) count: Recent N report periods (default 4)

Inputs: symbol (required), count, holder_type. Returns: data, hint, error, cached, +3 more

get_tradesA
Read-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_daysA
Read-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_valuationA
Read-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_historyA
Read-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_indicatorsA
Read-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

    A3.8/5.0

    Scored across 54 tools

    Disambiguation4/5

    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.

    Naming Consistency5/5

    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.

    Tool Count3/5

    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.

    Completeness5/5

    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

    Related MCP Servers

    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables 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
      -
    • A
      license
      Not graded
      quality
      D
      maintenance
      Provides 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.
      5
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables querying and analysis of stock and cryptocurrency data, including market overviews, price history, news, and financial indicators, via akshare.
      18
      MIT
    • A
      license
      B
      quality
      D
      maintenance
      Enables AI assistants to access comprehensive Chinese financial market data including stocks, funds, futures, and economic indicators via AKShare.
      5
      5
      MIT