xby-vnstock
No description
- Stars
- 0
- Language
- TypeScript
- Created
- Aug 28, 2026
- Updated
- Aug 28, 2026
Introduction
xby-vnstock
DeepSeek Harness (DSH) 的插件:越南股市数据服务
一个非官方的MCP服务器,提供访问越南股市数据的工具,包括实时和历史股票价格、公司财务数据、市场统计和基金信息等。
功能
- set_xby_apikey — 在聊天中设置 API 密钥(自动持久化,重启有效)
- list_all_icb_industries — List all ICB industries from stock market Args: output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- list_all_companies_with_details — List all companies from stock market with details Args: output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_overview — Get company overview from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_news — Get company news from stock market Args: symbol: str page_size: int = 10 page: int = 0 output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_events — Get company events from stock market Args: symbol: str page_size: int = 10 page: int = 0 output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_shareholders — Get company shareholders from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_officers — Get company officers from stock market Args: symbol: str filter_by: Literal['working', "all", 'resigned'] = 'working' output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_subsidiaries — Get company subsidiaries from stock market Args: symbol: str filter_by: Literal["all", "subsidiary"] = "all" output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_reports — Get company reports from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_dividends — Get company dividends from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_insider_deals — Get company insider deals from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_ratio_summary — Get company ratio summary from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_company_trading_stats — Get company trading stats from stock market Args: symbol: str output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_all_symbol_groups — Get all symbol groups from stock market Args: output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_all_symbols_by_group — Get all symbols from stock market Args: group: str (group name to get symbols) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_all_symbols_by_industry — Get all symbols from stock market Args: industry: str = None (if None, return all symbols) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame or json
- get_all_symbols — Get all symbols from stock market Args: output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame or json
- get_all_symbols_detailed — Get all symbols detailed from stock market Args: output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_income_statements — Get income statements of a company from stock market
Args:
symbol: str (symbol of the company to get income statements) period: Literal['quarter', 'year'] = 'year' (period to get income statements) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame - get_balance_sheets — Get balance sheets of a company from stock market Args: symbol: str (symbol of the company to get balance sheets) period: Literal['quarter', 'year'] = 'year' (period to get balance sheets) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_cash_flows — Get cash flows of a company from stock market Args: symbol: str (symbol of the company to get cash flows) period: Literal['quarter', 'year'] = 'year' (period to get cash flows) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_finance_ratios — Get finance ratios of a company from stock market Args: symbol: str (symbol of the company to get finance ratios) period: Literal['quarter', 'year'] = 'year' (period to get finance ratios) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_raw_report — Get raw report of a company from stock market Args: symbol: str (symbol of the company to get raw report) period: Literal['quarter', 'year'] = 'year' (period to get raw report) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- list_all_funds — List all funds from stock market Args: fund_type: Literal['BALANCED', 'BOND', 'STOCK', None ] = None (if None, return funds in all types) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- search_fund — Search fund by name from stock market Args: keyword: str (partial match for fund name to search) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_fund_nav_report — Get nav report of a fund from stock market Args: symbol: str (symbol of the fund to get nav report) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_fund_top_holding — Get top holding of a fund from stock market Args: symbol: str (symbol of the fund to get top holding) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_fund_industry_holding — Get industry holding of a fund from stock market Args: symbol: str (symbol of the fund to get industry holding) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_fund_asset_holding — Get asset holding of a fund from stock market Args: symbol: str (symbol of the fund to get asset holding) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_gold_price — Get gold price from stock market Args: date: str = None (if None, return today's price. Format: YYYY-MM-DD) source: Literal['SJC', 'BTMC'] = 'SJC' (source to get gold price) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_exchange_rate — Get exchange rate of all currency pairs from stock market Args: date: str = None (if None, return today's price. Format: YYYY-MM-DD) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_quote_price_with_indicators — Get quote price with indicators of a symbol from stock market.
Indicators can be specified with or without parameters:
- Simple: "rsi", "macd", "stochastic"
- With params: "rsi(window=21)", "macd(fast=12, slow=26, signal=9)"
Args: symbol: str (symbol to get price) indicators: list[str] (list of indicators with optional parameters) Examples: - ["rsi", "macd"] - use default parameters - ["rsi(window=21)", "macd(fast=12, slow=26)"] - custom parameters - ["stochastic(k=14, d=3)", "cci(window=20)"] - mixed start_date: str (format: YYYY-MM-DD) end_date: str = None (end date to get price. None means today) interval: Literal['1m', '5m', '15m', '30m', '1H', '1D', '1W', '1M'] = '1D' (interval to get price) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame with OHLCV data and requested indicator columns
- get_quote_history_price — Get quote price history of a symbol from stock market Args: symbol: str (symbol to get history price) start_date: str (format: YYYY-MM-DD) end_date: str = None (end date to get history price. None means today) interval: Literal['1m', '5m', '15m', '30m', '1H', '1D', '1W', '1M'] = '1D' (interval to get history price) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_quote_intraday_price — Get quote intraday price from stock market Args: symbol: str (symbol to get intraday price) page_size: int = 500 (max: 100000) (number of rows to return) page: int = 1 (page number to get intraday price from) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_quote_price_depth — Get quote price depth from stock market Args: symbol: str (symbol to get price depth) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
- get_price_board — Get price board from stock market Args: symbols: list[str] (list of symbols to get price board) output_format: Literal['json', 'dataframe', 'toon'] = 'toon' (output format, 'toon' is optimized for AI) Returns: pd.DataFrame
安装
方式一:从 GitHub 直接安装(推荐)
# 格式: dsh plugin --profile <profile> add github:<owner>/<repo>
dsh plugin --profile web add github:xby_skill/xby-vnstock
方式二:从本地目录安装(开发模式)
# 仅用于本地开发调试
dsh plugin --profile web add /absolute/path/to/xby-vnstock
方式三:通过 cordis.patch.yml 开发调试
dsh web --profile web --patch /absolute/path/to/dsh-ocr-plugin/cordis.patch.yml
配置
获取 API 密钥
前往 小笨羊官网 注册并获取 API 密钥。