Content
<div align="center">
# Tool List
<img src="https://img.shields.io/badge/A%20Share%20Data-MCP%20Tool-E6162D?style=for-the-badge&logo=data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjI0IiBoZWlnaHQ9IjI0IiB2aWV3Qm94PSIwIDAgMjQgMjQiPg0KPHBhdGggZmlsbD0iI2ZmZiIgZD0iTTggMTAuOGMwIDAgMC44LTEuNSAyLjQtMS41IDEuNyAwIDIuOCAxLjUgNC44IDEuNSAxLjcgMCAyLjgtMC42IDIuOC0wLjZ2LTIuMmMwIDAtMS4xIDEuMS0yLjggMS4xLTIgMC0zLjEtMS41LTQuOC0xLjUtMS42IDAtMi40IDAuOS0yLjQgMC45djIuM3pNOCAxNC44YzAgMCAwLjgtMS41IDIuNC0xLjUgMS43IDAgMi44IDEuNSA0LjggMS41IDEuNyAwIDIuOC0wLjYgMi44LTAuNnYtMi4yYzAgMC0xLjEgMS4xLTIuOCAxLjEtMiAwLTMuMS0xLjUtNC44LTEuNS0xLjYgMC0yLjQgMC45LTIuNCAwLjl2Mi4zeiI+PC9wYXRoPg0KPC9zdmc+">
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://github.com/astral-sh/uv)
[](https://github.com/model-context-protocol/mcp-spec)
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,15,20,24&height=200§ion=header&text=A%20Share%20MCP&fontSize=80&fontAlignY=35&desc=Based%20on%20Model%20Context%20Protocol%20(MCP)&descAlignY=60&animation=fadeIn" />
</div>
A share MCP.
This project is an MCP server focused on the A-share market, providing various query functions such as stock basic information, historical K-line data, financial indicators, macroeconomic data, etc. In theory, it can answer any question about the A-share market, whether it's about the market as a whole or a specific stock.
<div align="center">
<img src="https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png" width="100%">
</div>
## Project Structure
```
a_share_mcp/
│
├── mcp_server.py # Main server entry file
├── pyproject.toml # Project dependency configuration
├── README.md # Project description document
│
├── src/ # Source code directory
│ ├── __init__.py
│ ├── baostock_data_source.py # Baostock data source implementation
│ ├── data_source_interface.py # Data source interface definition
│ ├── utils.py # General utility functions
│ │
│ ├── formatting/ # Data formatting module
│ │ ├── __init__.py
│ │ └── markdown_formatter.py # Markdown formatting tool
│ │
│ └── tools/ # MCP tool module
│ ├── __init__.py
│ ├── base.py # Basic tool functions
│ ├── stock_market.py # Stock market data tool
│ ├── financial_reports.py # Financial report tool
│ ├── indices.py # Index related tool
│ ├── market_overview.py # Market overview tool
│ ├── macroeconomic.py # Macroeconomic data tool
│ ├── date_utils.py # Date tool
│ └── analysis.py # Analysis tool
│
└── resource/ # Resource files
└── img/ # Image resources
├── img_1.png # CherryStudio configuration example
└── img_2.png # CherryStudio configuration example
```
<div align="center">
<img src="https://raw.githubusercontent.com/andreasbm/readme/master/assets/lines/rainbow.png" width="100%">
</div>
## Features
<div align="center">
<table>
<tr>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/stocks-growth.png" width="30px"/><br><b>Stock Basic Data</b></td>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/line-chart.png" width="30px"/><br><b>Historical Market Data</b></td>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/bonds.png" width="30px"/><br><b>Financial Statement Data</b></td>
</tr>
<tr>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/economic-improvement.png" width="30px"/><br><b>Macroeconomic Data</b></td>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/statistics.png" width="30px"/><br><b>Index Constituents</b></td>
<td align="center"><img src="https://img.icons8.com/fluency/48/null/fine-print.png" width="30px"/><br><b>Data Analysis Report</b></td>
</tr>
</table>
</div>
## Prerequisites
1. **Python Environment**: Python 3.10+
2. **Dependency Management**: Use `uv` package manager to install dependencies
3. **Data Source**: Based on Baostock data source, no paid account required. Thanks to Baostock.
4. Note: This project was developed in a Windows environment.
## Data Update Time
> The following is Baostock's official data update time, please note the time point when querying the latest data [Baostock Official Website](http://baostock.com/baostock/index.php/%E9%A6%96%E9%A1%B5)
**Daily Data Update Time:**
- Current trading day 17:30, complete day K-line data entry
- Current trading day 18:00, complete adjustment factor data entry
- Second natural day 11:00, complete minute K-line data entry
- Second natural day 1:30, complete previous trading day "other financial report data" entry
- Saturday 17:30, complete weekly data entry
**Weekly Data Update Time:**
- Every Monday afternoon, complete SSE 50 constituents, SZSE 300 constituents, CSI 500 constituents information data entry
> So, on the trading day, if it's before 17:30, you can't get today's data.
## Installation
To start the A-share MCP server, follow these steps:
```bash
# 1. Create a virtual environment (only create, no packages installed)
uv venv
# 2. Activate the virtual environment
# Windows
.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activate
# 3. Install all dependencies (must be executed in the activated virtual environment)
uv sync
```
## Usage: Configure the Server in the MCP Client
In the MCP client that supports MCP (such as VS Code plugin, CherryStudio, etc.), you need to configure how to start this server. **Recommended to use `uv`**.
### Method 1: Use JSON Configuration for IDEs (e.g., Cursor, VSCode, Trae, etc.)
For clients that require editing JSON files to configure the MCP server, you need to find the corresponding MCP configuration and add a new entry to the `mcpServers` object.
**JSON Configuration Example (replace with your actual absolute path):**
```json
{
"mcpServers": {
"a-share-mcp": {
"command": "uv", // or uv.exe's absolute path, e.g., "C:\\path\\to\\uv.exe"
"args": [
"--directory",
"C:\\Users\\YourName\\Projects\\a_share_mcp", // replace with your project root directory absolute path
"run",
"python",
"mcp_server.py"
],
"transport": "stdio"
// "workingDirectory": "C:\\Users\\YourName\\Projects\\a_share_mcp", // may not be necessary after using uv --directory
}
// ... other servers ...
}
}
```
**Notes:**
- **`command`**: Ensure the `uv` command or `uv.exe`'s absolute path is valid and executable.
- **`args`**: Ensure the parameter list is complete and in the correct order.
- **Path escaping**: Paths need to be written as double backslashes `\\`.
> This is specific to Windows. If on macOS or Linux, paths use forward slashes `/` as directory separators, so no escaping is needed.
- **`workingDirectory`**: Although `uv --directory` should solve the working directory issue, if the client still reports `ModuleNotFoundError`, try explicitly setting this to the project root directory's absolute path.
### Method 2: Use CherryStudio
In CherryStudio's MCP server configuration interface, fill in as follows:
- **Name**: `a-share-mcp` (or custom)
- **Description**: `Local A-share MCP Server` (or custom)
- **Type**: Select **Standard Input/Output (stdio)**
- **Command**: `uv` (or fill in uv.exe's absolute path)
- **Package Management Source**: Default
- **Arguments**:
1. First argument: `--directory`
2. Second argument: `C:\\Users\\YourName\\Projects\\a_share_mcp`
3. Third argument: `run`
4. Fourth argument: `python`
5. Fifth argument: `mcp_server.py`
- _Ensure all arguments are separated by newlines._
- **Environment Variables**: (usually leave blank)
> Tricks:
> Sometimes after filling in the parameters in CherryStudio and clicking the switch button, there is no response. Just click any button on the left directory, jump out of the MCP settings interface, and then go back to the MCP settings interface to find that MCP has been configured successfully.
**CherryStudio Usage Example:**
In theory, you can ask any question about A-shares :)


**Important Note:**
- Ensure the **`command`** field's `uv` or its absolute path is valid and executable.
- Ensure the **`arguments`** field has the five parameters filled in correctly and in order.
## Tool List
The MCP server currently provides **41** tools, covering comprehensive data on stocks, financial reports, macroeconomics, and date analysis. Here is the complete list:
<div align="center">
<details>
<summary><b>🔍 Expand to view all tools</b></summary>
<br>
<table>
<tr>
<th>🏛️ Stock Market Data (Stock)</th>
<th>📊 Financial Statement Data (Finance)</th>
</tr>
<tr valign="top">
<td>
<ul>
<li><code>get_historical_k_data</code> (Historical K-line)</li>
<li><code>get_stock_basic_info</code> (Basic Information)</li>
<li><code>get_dividend_data</code> (Dividend Distribution)</li>
<li><code>get_adjust_factor_data</code> (Adjustment Factor)</li>
</ul>
</td>
<td>
<ul>
<li><code>get_profit_data</code> (Profitability)</li>
<li><code>get_operation_data</code> (Operational Capacity)</li>
<li><code>get_growth_data</code> (Growth Ability)</li>
<li><code>get_balance_data</code> (Balance Sheet)</li>
<li><code>get_cash_flow_data</code> (Cash Flow)</li>
<li><code>get_dupont_data</code> (DuPont Analysis)</li>
<li><code>get_performance_express_report</code> (Performance Express Report)</li>
<li><code>get_forecast_report</code> (Performance Forecast)</li>
<li><code>get_fina_indicator</code> (Financial Indicator Summary)</li>
</ul>
</td>
</tr>
<tr>
<th>🔎 Market & Index (Market & Index)</th>
<th>🌐 Macro & Others (Macro & Utils)</th>
</tr>
<tr valign="top">
<td>
<ul>
<li><code>get_trade_dates</code> (Trading Calendar)</li>
<li><code>get_all_stock</code> (Full Market Securities)</li>
<li><code>search_stocks</code> (Stock Search)</li>
<li><code>get_suspensions</code> (Suspension Information)</li>
<li><code>get_stock_industry</code> (Industry Classification)</li>
<li><code>get_index_constituents</code> (Index Constituents)</li>
<li><code>get_sz50_stocks</code> (SSE 50)</li>
<li><code>get_hs300_stocks</code> (HS 300)</li>
<li><code>get_zz500_stocks</code> (CSI 500)</li>
<li><code>list_industries</code> (Industry List)</li>
<li><code>get_industry_members</code> (Industry Stocks)</li>
</ul>
</td>
<td>
<ul>
<li><code>get_deposit_rate_data</code> (Deposit Rate)</li>
<li><code>get_loan_rate_data</code> (Loan Rate)</li>
<li><code>get_required_reserve_ratio_data</code> (Reserve Requirement Ratio)</li>
<li><code>get_money_supply_data_month</code> (Money Supply Monthly)</li>
<li><code>get_money_supply_data_year</code> (Money Supply Yearly)</li>
<li><code>get_latest_trading_date</code> (Latest Trading Date)</li>
<li><code>get_market_analysis_timeframe</code> (Intelligent Analysis Period)</li>
<li><code>is_trading_day</code> (Is Trading Day)</li>
<li><code>previous_trading_day</code> (Previous Trading Day)</li>
<li><code>next_trading_day</code> (Next Trading Day)</li>
<li><code>get_last_n_trading_days</code> (Last N Trading Days)</li>
<li><code>get_recent_trading_range</code> (Recent Trading Range)</li>
<li><code>get_month_end_trading_dates</code> (Month-end Trading Dates)</li>
<li><code>get_stock_analysis</code> (Generate Analysis Report)</li>
<li><code>normalize_stock_code</code> (Code Standardization)</li>
<li><code>normalize_index_code</code> (Index Code Standardization)</li>
<li><code>list_tool_constants</code> (Constant Query)</li>
</ul>
</td>
</tr>
</table>
</details>
</div>
## Contribution Guide
Feel free to submit issues or pull requests to help improve the project. Please review existing issues and documentation before contributing.
## ☕️ Buy the Author a Coffee
If this project has been helpful to you, consider buying me a coffee ❤️
<img src="resource/img/ali.png" alt="Alipay QR Code" width="300"/>
## License
This project is licensed under the MIT License - see the LICENSE file for details.
<div align="center">
<img src="https://capsule-render.vercel.app/api?type=waving&color=gradient&customColorList=12,15,20,24§ion=footer&height=100&animation=fadeIn" />
</div>
## Update Overview (2025-12-25)
This update adds a new **Financial Indicator Summary Tool**, which aggregates six categories of financial data into a single, convenient query interface.
### 🆕 New Tool
- **Financial Indicator Summary**: `get_fina_indicator` Obtain six categories of financial indicators (profitability, operational capacity, growth ability, debt-paying ability, cash flow, and DuPont analysis) with quarterly merged data.
Connection Info
You Might Also Like
markitdown
MarkItDown-MCP is a lightweight server for converting URIs to Markdown.
Filesystem
Node.js MCP Server for filesystem operations with dynamic access control.
TrendRadar
TrendRadar: Your hotspot assistant for real news in just 30 seconds.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.
mempalace
The highest-scoring AI memory system ever benchmarked. And it's free.
antigravity-awesome-skills
The Ultimate Collection of 130+ Agentic Skills for Claude...