# stooq-mcp [日本語](README.ja.md) A Model Context Protocol (MCP) server written in Rust that fetches stock price data from [stooq.com](https://stooq.com). ## Demo https://github.com/user-attachments/assets/63b55175-80c3-42aa-a28a-bdb21c66169e ## Features - **Latest stock prices** - Get real-time stock price data - **Historical data** - Retrieve historical stock data with custom date ranges - **Multi-market support** - Access stocks from 5 major markets ## Supported Markets | Market Code | Country | |-------------|---------| | `jp` | Japan | | `us` | United States | | `uk` | United Kingdom | | `hk` | Hong Kong | | `de` | Germany | ## Installation ### Prerequisites - Rust 1.75+ - Cargo ### One-liner Install ```bash curl -fsSL https://raw.githubusercontent.com/hoqqun/stooq-mcp/main/install.sh | bash ``` This will install to `~/.stooq-mcp/`. To customize: ```bash STOOQ_MCP_DIR=/your/path curl -fsSL https://raw.githubusercontent.com/hoqqun/stooq-mcp/main/install.sh | bash ``` ### Quick Install ```bash git clone https://github.com/hoqqun/stooq-mcp.git cd stooq-mcp ./install.sh ``` The install script will: 1. Build the project 2. Register with Claude Code and/or Claude Desktop ### Manual Build ```bash cargo build --release ``` The binary will be located at `./target/release/stooq-mcp`. ## Usage ### Claude Code Register the MCP server with Claude Code: ```bash claude mcp add stooq-mcp /path/to/stooq-mcp/target/release/stooq-mcp ``` ### Claude Desktop Add the following to your Claude Desktop configuration file: **macOS**: `~/Library/Application Support/Claude/claude_desktop_config.json` **Windows**: `%APPDATA%\Claude\claude_desktop_config.json` **Linux**: `~/.config/Claude/claude_desktop_config.json` ```json { "mcpServers": { "stooq-mcp": { "command": "/path/to/stooq-mcp/target/release/stooq-mcp" } } } ``` ## Tools ### `get_stock_price` Fetches stock price data from stooq.com. #### Parameters | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | `ticker` | string | ✅ | Stock ticker symbol (e.g., `"7203"`, `"AAPL"`) | | `market` | string | ✅ | Market code: `jp`, `us`, `uk`, `hk`, `de` | | `start_date` | string | ❌ | Start date in `YYYYMMDD` format (e.g., `"20240101"`) | | `end_date` | string | ❌ | End date in `YYYYMMDD` format (e.g., `"20241231"`) | ## Examples ### Get latest stock price **Toyota Motor (Japan):** ``` Get the current stock price for Toyota (7203) in Japan market. ``` **Apple (US):** ``` Get the latest AAPL stock price from US market. ``` ### Get historical data **Sony (Japan) - 2024 full year:** ``` Get Sony (6758) stock price history from January 1, 2024 to December 31, 2024. ``` ### Response format **Latest data:** ```csv Symbol,Date,Time,Open,High,Low,Close,Volume 7203.JP,2024-12-27,16:00:00,2500,2520,2480,2510,1000000 ``` **Historical data:** ```csv Date,Open,High,Low,Close,Volume 2024-01-04,2450,2480,2440,2470,800000 2024-01-05,2470,2490,2460,2485,750000 ... ``` ## Tech Stack - **Rust** - Systems programming language - **[rmcp](https://crates.io/crates/rmcp)** - MCP server implementation - **[reqwest](https://crates.io/crates/reqwest)** - HTTP client - **[tokio](https://crates.io/crates/tokio)** - Async runtime ## Limitations > ⚠️ **Important Notice** - stooq.com is an **unofficial API** and may change without notice - **Daily rate limits** apply - excessive requests may be blocked - Intended for **personal use and learning purposes** only - Data accuracy is not guaranteed ## License MIT License - see [LICENSE](LICENSE) for details. ## Contributing Contributions are welcome! Please feel free to submit a Pull Request.