us_stock_mcp_server
If you are the rightful owner of us_stock_mcp_server and would like to certify it and/or have it hosted online, please leave a comment on the right or send an email to henry@mcphub.com.
A Model Context Protocol (MCP) server designed for accessing and updating US stock historical price data.
US Stock Data MCP Server
A Model Context Protocol (MCP) server designed for accessing and updating US stock historical price data.
Features
- Local Data Storage: Store stock data in CSV format locally for quick access
- Automatic Updates: Support for automatic stock data updates from Yahoo Finance
- Safe Data Writing: Use temporary files to ensure atomic and secure data writing
- Flexible Time Range: Customizable start date for data updates
Installation
- Ensure Python 3.x is installed
- Clone this repository
- Install dependencies:
pip install -r requirements.txt
Usage
1. Start the Server
python server.py
The default data storage path after server startup is: ~/Library/Application Support/us-market-data/data
You can customize the data storage path using the US_STOCK_DATA_DIR
environment variable.
2. Available Features
MCP Tools
-
get_local_stock_data
- Function: Retrieve local stock historical data
- Parameters:
symbol
: Stock symbol, e.g., 'AAPL', 'MSFT'
-
update_stock_data
- Function: Update stock data
- Parameters:
symbol
: Stock symbol, e.g., 'AAPL', 'MSFT'start_date
: Start date in YYYY-MM-DD format, defaults to 2015-01-01
MCP Resources
- Resource URI:
usstock://{symbol}/historical
- Function: Provide local US stock historical price data
- Parameters:
symbol
: Stock symbol
Data Format
The stored stock data includes the following fields:
- Date: Trading date
- Open: Opening price
- High: Highest price
- Low: Lowest price
- Close: Closing price
- Volume: Trading volume
Dependencies
- mcp: MCP protocol implementation
- pandas: Data processing and analysis
- yfinance: Yahoo Finance data retrieval
- pydantic: Data validation and settings management
Notes
- Duplicate data is automatically handled during updates, keeping the latest records
- A 5-second delay is implemented between update operations to avoid frequent API requests
- All data operations include error handling to ensure service stability