Akshare
БесплатноНе проверенMCP server that wraps AKShare's 1000+ financial data functions, enabling LLMs to query Chinese stock, macro, futures, fund, bond, option, forex, and alternative
Описание
MCP server that wraps AKShare's 1000+ financial data functions, enabling LLMs to query Chinese stock, macro, futures, fund, bond, option, forex, and alternative data through standardized tools.
README
akshare-mcp
MCP (Model Context Protocol) Server for AKShare Financial Data
Overview • Quick Start • Tools • Usage • Development • Architecture
Overview
akshare-mcp wraps AKShare — an open-source Chinese financial data library with 1000+ data functions — as a Model Context Protocol (MCP) server, enabling LLMs (Claude, etc.) to query Chinese financial data through standardized tool interfaces.
What you can query
| Category | Examples |
|---|---|
| Stocks | Real-time quotes, historical bars, financial statements, board/industry indices, fund flow, margin trading, IPO data, LHB |
| Macroeconomics | GDP, CPI, PMI, money supply, interest rates — China, US, EU, Japan, etc. |
| Futures | Real-time/daily bars, settlement prices, open interest, warehouse receipts, basis analysis |
| Funds | Mutual fund NAV, ETF quotes & holdings, fund manager info, performance rankings |
| Bonds | Convertible bonds, treasury yields, corporate bonds, repo rates, NAFMII data |
| Options | CFFEX index options, SSE/SZSE ETF options, commodity options, Greeks, margin |
| Forex & Commodities | Exchange rates, gold/silver spot, crude oil, carbon emissions, hog prices |
| Indices | CSI/Shenwan/global indices, industry indices, index constituents |
| Alternative Data | Weather, news sentiment, migration, box office, wealth rankings, game rankings |
Quick Start
Installation
pip install akshare-mcp
Note: AKShare requires Python ≥ 3.10 and uses the
numpy,pandas, andrequestspackages. These will be installed automatically.
Usage
Run the server:
akshare-mcp
You should see:
[akshare-mcp] Loaded 13 tools covering 1086 akshare functions
Integrating with Claude Desktop
Add to your claude_desktop_config.json:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"akshare": {
"command": "uvx",
"args": ["akshare-mcp"]
}
}
}
If uvx is not available, use pip directly:
{
"mcpServers": {
"akshare": {
"command": "python",
"args": ["-m", "akshare_mcp.server"]
}
}
}
Integration with other MCP clients
Any MCP-compatible client can connect via stdio. The server listens on stdin/stdout and responds to the standard list_tools / call_tool requests.
Tools
akshare-mcp groups its 1000+ data functions into 13 category tools plus a discovery tool:
Category Tools
| Tool | Functions | Category | Key Data |
|---|---|---|---|
akshare_stock_a |
226 | A股行情 | Real-time/historical quotes, IPO, LHB, technical indicators, market summaries |
akshare_stock_fundamental |
56 | A股基本面 | Financial statements, profit forecasts, ESG ratings, shareholders, dividends |
akshare_stock_hk_us |
36 | 港股美股 | HK/US stock profiles, financials, quotes, exchange info |
akshare_stock_board_flow |
38 | 板块/资金流向 | Concept & industry board indices, constituents, capital flow, north/south-bound connect |
akshare_stock_margin_other |
40 | 融资融券/其他 | Margin trading, block trades, stock pledging, suspension/resumption, chip distribution |
akshare_macro |
225 | 宏观经济 | China macro (GDP, CPI, PMI, M2, etc.), global macro (US, EU, JP, UK, AU, etc.) |
akshare_futures |
91 | 期货 | Futures quotes, holdings, warehouse receipts, settlement, COT reports |
akshare_fund |
88 | 基金 | Fund NAV, ETF quotes, manager profiles, performance rankings, AMAC stats |
akshare_bond |
46 | 债券 | Convertible bonds, treasury yields, corporate bonds, repo, NAFMII |
akshare_index |
91 | 指数 | CSI/Shenwan/global indices, sector analysis, index constituents |
akshare_option |
46 | 期权 | Index/ETF/commodity options, Greeks, margin, option chains |
akshare_fx_commodity |
40 | 外汇/商品 | Forex rates, energy, spot commodities, carbon emissions, crypto |
akshare_other |
63 | 其他数据 | Air quality, movies, games, news, wealth rankings, QDII, REITs |
Discovery Tool
| Tool | Purpose |
|---|---|
akshare_discover |
Search functions by keyword across all categories |
Common Tool Parameters
Every category tool accepts the same parameter interface:
| Parameter | Type | Required | Description |
|---|---|---|---|
method |
str |
Yes | The exact akshare function name to call (e.g. stock_zh_a_hist) |
params_json |
str |
No | JSON-encoded keyword arguments for the function (default: "{}") |
symbol |
str |
No | Convenience shortcut; forwarded as keyword argument |
start_date |
str |
No | Convenience shortcut (format: YYYYMMDD) |
end_date |
str |
No | Convenience shortcut (format: YYYYMMDD) |
period |
str |
No | Convenience shortcut (e.g. daily, weekly, monthly) |
adjust |
str |
No | Convenience shortcut for stock price adjustment (qfq, hfq) |
date |
str |
No | Convenience shortcut for single-date parameters |
Tip: Use
akshare_discoverfirst to find the rightmethodname, then call the parent tool withmethod=function_name.
Usage Examples
Query real-time A-share stock quotes
# Via akshare_discover:
# query="spot_em" → found in akshare_stock_a
# Then:
call_tool("akshare_stock_a", {
"method": "stock_zh_a_spot_em"
})
Query historical stock data
call_tool("akshare_stock_a", {
"method": "stock_zh_a_hist",
"symbol": "300693",
"period": "daily",
"start_date": "20250101",
"end_date": "20250708"
})
Query macroeconomic GDP data
call_tool("akshare_macro", {
"method": "macro_china_gdp_yearly"
})
Search for a function
call_tool("akshare_discover", {
"query": "gdp"
})
# Returns matching functions grouped by tool
Convertible bond market
call_tool("akshare_bond", {
"method": "bond_zh_hs_cov_spot"
})
Fund flow by stock
call_tool("akshare_stock_board_flow", {
"method": "stock_fund_flow_individual",
"symbol": "300693"
})
Development
Setup
git clone https://github.com/xiaozhozho/akshare-mcp.git
cd akshare-mcp
pip install -e ".[dev]"
Run tests
python -m pytest tests/ -v
51 tests covering:
- DataFrame serialization (NaN/NaT/inf handling, datetime conversion, truncation)
- CategoryDispatcher (function dispatch, parameter merging, error wrapping)
- Error handling (akshare exception hierarchy, decorator pattern)
- ToolRegistry (auto-discovery, function assignment, cross-tool search)
Project structure
akshare-mcp/
├── pyproject.toml # Build config (hatchling)
├── src/
│ └── akshare_mcp/
│ ├── server.py # FastMCP entry point
│ ├── tools/
│ │ ├── base.py # CategoryDispatcher base class
│ │ └── registry.py # ToolRegistry + auto discovery
│ └── utils/
│ ├── dataframe.py # DataFrame → JSON serialization
│ └── errors.py # Error handling & wrapping
└── tests/ # 51 pytest tests
How it works
- Auto-discovery:
ToolRegistryscans all public akshare callables at import time usinginspect.getfile(), determines each function's source module, and assigns it to the appropriate category tool - Dispatch: Each category tool accepts a
methodparameter. The dispatcher resolves the function, merges convenience params with JSON params, calls akshare viaasyncio.to_thread(), and serializes the resulting DataFrame - Error handling: All akshare exceptions (NetworkError, RateLimitError, InvalidParameterError, etc.) are caught and returned as structured error dicts — never raw exceptions
- Serialization: DataFrames are converted to JSON with column metadata, row count, truncation handling, and proper NaN/NaT/inf → null conversion
Configuration
| Environment Variable | Default | Description |
|---|---|---|
AKSHARE_MCP_MAX_ROWS |
500 |
Maximum rows returned per response |
Architecture
┌─────────────────────────────────────────────────┐
│ MCP Client │
│ (Claude Desktop, etc.) │
└──────────────┬──────────────────────┬────────────┘
│ list_tools │ call_tool
▼ ▼
┌─────────────────────────────────────────────────┐
│ FastMCP (stdio transport) │
├─────────────────────────────────────────────────┤
│ ToolRegistry (13 category dispatchers) │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ stock_a │ │ macro │ │ discover │ │
│ │ 226 funcs│ │ 225 funcs│ │ search + index │ │
│ └──────────┘ └──────────┘ └──────────────────┘ │
├─────────────────────────────────────────────────┤
│ CategoryDispatcher │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │ method → │ │ params → │ │ asyncio.to_thread│ │
│ │ func │ │ merge │ │ → akshare call │ │
│ └──────────┘ └──────────┘ └──────────────────┘ │
├─────────────────────────────────────────────────┤
│ Utils │
│ ┌──────────┐ ┌──────────┐ ┌──────────────────┐ │
│ │dataframe │ │ errors │ │ akshare library │ │
│ │serialize │ │ wrap │ │ ~1086 functions │ │
│ └──────────┘ └──────────┘ └──────────────────┘ │
└─────────────────────────────────────────────────┘
License
Apache License 2.0
See LICENSE for the full license text.
Related Projects
- AKShare — The underlying financial data library
- AKTools — HTTP API wrapper for AKShare
- MCP Python SDK — The MCP framework used
Установка Akshare
У этого сервера нет опубликованного пакета — он собирается из исходников. Открой репозиторий и следуй инструкции в README.
▸ github.com/xiaozhozho/akshare-mcpFAQ
Akshare MCP бесплатный?
Да, Akshare MCP бесплатный — установка в пару кликов через Unyly без оплаты.
Нужен ли API-ключ для Akshare?
Нет, Akshare работает без API-ключей и переменных окружения.
Akshare — hosted или self-hosted?
Доступен hosted-вариант: Unyly запускает сервер в облаке, локальная установка не обязательна.
Как установить Akshare в Claude Desktop, Claude Code или Cursor?
Открой Akshare на unyly.org, выбери вкладку своего клиента (Claude Desktop, Claude Code, Cursor) и нажми Install — конфиг сгенерируется автоматически, без правки JSON.
Похожие MCP
GitHub
PRs, issues, code search, CI status
автор: GitHubFilesystem
Secure file operations with configurable access controls.
Memory
Knowledge graph-based persistent memory system.
Template MCP Server
A CLI tool to create a new Model Context Protocol server project with TypeScript support, dual transport options, and an extensible structure
автор: mcpdotdirectCompare Akshare with
Не уверен что выбрать?
Найди свой стек за 60 секунд
Автор?
Embed-бейдж для README
Похожее
Все в категории development
