Skip to main content
Glama
anhnd2102

VNStock Agent

by anhnd2102
README.md
# VNStock Agent

MCP server and CLI for Vietnamese stock market data. Integrates [vnstock](https://github.com/thinh-vu/vnstock) (hỗ trợ tác giả gốc thinh-vu) with AI tools via Model Context Protocol (MCP).

## Features

- **21 MCP tools** for AI assistants (Claude, GPT, etc.)
- **22 CLI commands** for terminal use
- **3 MCP transports**: stdio, SSE, Streamable HTTP
- Vietnamese stocks, forex, crypto, world indices, mutual funds
- Historical prices, financials, company info, trading data

## Quick Start

### Install

```bash
pip install vnstock-agent
```

Or from source:

```bash
git clone https://github.com/anhnd2102/vnstock-mcp.git
cd vnstock-mcp
pip install -e .
```

### Set API Key

```bash
export VNSTOCK_API_KEY=your_api_key_here
```

Get a free API key at [vnstocks.com/login](https://vnstocks.com/login).

## CLI Usage

```bash
# Stock history
vnstock-agent history VNM --start 2025-01-01 --end 2025-03-31

# Company overview
vnstock-agent overview FPT

# Financial statements
vnstock-agent balance-sheet VCB --period quarter
vnstock-agent income VCB --period annual
vnstock-agent cashflow VCB
vnstock-agent ratio VCB

# Market data
vnstock-agent symbols                    # All listed symbols
vnstock-agent group --group VN30         # VN30 stocks
vnstock-agent board "VNM,FPT,ACB,VCB"   # Price board
vnstock-agent industries                 # ICB industries

# Company details
vnstock-agent shareholders FPT
vnstock-agent officers FPT
vnstock-agent news FPT
vnstock-agent events FPT

# Intraday & depth
vnstock-agent intraday VNM --page-size 200

# Global markets
vnstock-agent fx EURUSD --start 2025-01-01
vnstock-agent crypto BTC --start 2025-01-01
vnstock-agent index DJI --start 2025-01-01

# Mutual funds
vnstock-agent funds

# JSON output
vnstock-agent --format json history VNM
```

## MCP Server

### stdio (for Claude Desktop, Cursor, etc.)

Add to your MCP client config:

```json
{
  "mcpServers": {
    "vnstock": {
      "command": "vnstock-mcp",
      "env": {
        "VNSTOCK_API_KEY": "your_api_key_here"
      }
    }
  }
}
```

### SSE Transport

```bash
VNSTOCK_MCP_TRANSPORT=sse VNSTOCK_MCP_PORT=8000 vnstock-mcp
```

### Streamable HTTP Transport

```bash
VNSTOCK_MCP_TRANSPORT=http VNSTOCK_MCP_PORT=8000 vnstock-mcp
```

Or via CLI:

```bash
vnstock-agent serve --transport sse --port 8000
vnstock-agent serve --transport http --port 8000
```

## MCP Tools

| Tool | Description |
|------|-------------|
| `stock_history` | Historical OHLCV price data |
| `stock_intraday` | Today's intraday trading data |
| `stock_price_depth` | Order book / bid-ask data |
| `company_overview` | Company overview info |
| `company_shareholders` | Major shareholders |
| `company_officers` | Management team |
| `company_news` | Company news |
| `company_events` | Dividends, AGM, etc. |
| `financial_balance_sheet` | Balance sheet |
| `financial_income_statement` | Income statement |
| `financial_cash_flow` | Cash flow statement |
| `financial_ratio` | P/E, P/B, ROE, ROA, etc. |
| `listing_all_symbols` | All listed symbols |
| `listing_symbols_by_group` | VN30, HNX30, etc. |
| `listing_symbols_by_exchange` | By exchange (HOSE, HNX, UPCOM) |
| `listing_industries` | ICB industry classification |
| `trading_price_board` | Real-time price board |
| `fx_history` | Forex historical data |
| `crypto_history` | Cryptocurrency data |
| `world_index_history` | World market indices |
| `fund_listing` | Mutual fund listing |

## Environment Variables

| Variable | Default | Description |
|----------|---------|-------------|
| `VNSTOCK_API_KEY` | (none) | VNStock API key |
| `VNSTOCK_SOURCE` | `VCI` | Default data source (VCI, KBS) |
| `VNSTOCK_MCP_TRANSPORT` | `stdio` | MCP transport (stdio, sse, http) |
| `VNSTOCK_MCP_HOST` | `0.0.0.0` | Server host |
| `VNSTOCK_MCP_PORT` | `8000` | Server port |

## Development

```bash
git clone https://github.com/anhnd2102/vnstock-mcp.git
cd vnstock-mcp
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"

# Run tests
pytest

# Lint
ruff check src/
```

## License

MIT

TDQS

B3.3/5.0

Scored across 21 tools

Disambiguation5/5

Each tool targets a distinct resource (stock, company, financial statement, listing, market data, fund) with a specific action. The prefixes stock_, company_, financial_, listing_, trading_, fx_, crypto_, world_index_, and fund_ cleanly separate domains with no overlapping purposes.

Naming Consistency4/5

The naming follows a consistent category_prefix + noun pattern (stock_history, company_overview, financial_ratio, listing_all_symbols). The intraday vs history distinction is slightly odd (temporal vs derivative terms) but broadly consistent. Minor deviations like trading_price_board vs the rest don't undermine readability.

Tool Count5/5

21 tools is on the upper boundary but the scope is genuinely broad: Vietnam stock market data (core), company fundamentals, financial statements, listing info, plus supplementary FX/crypto/world index/mutual fund data. Each tool maps to a distinct data category a Vietnam equity research agent would need.

Completeness4/5

The surface covers the full data stack for Vietnam equity research: market data (history, intraday, depth, price board), fundamentals (financial statements, ratios), company info (overview, shareholders, officers, news, events), and listings. Minor gaps include missing order/trade execution tools and no company_announcements separate from news, but these are not core to a data-provider role.

Maintenance

ActivityMaintained
ResponsivenessSyncing