VNStock MCP Server
Server Configuration
Describes the environment variables required to run the server.
| Name | Required | Description | Default |
|---|---|---|---|
No arguments | |||
Instructions
Guidance the server publishes about itself, which clients place ahead of the tool catalog so the model reads it before choosing anything.
This server publishes no instructions, or was last inspected before Glama recorded them.
Capabilities
Features and capabilities supported by this server
Protocol revision2025-11-25
| Capability | Details |
|---|---|
| tools | {
"listChanged": true
} |
| logging | {} |
| prompts | {
"listChanged": false
} |
| resources | {
"subscribe": false,
"listChanged": false
} |
| extensions | {
"io.modelcontextprotocol/ui": {}
} |
| experimental | {} |
Tools
Functions exposed to the LLM to take actions
| Name | Description |
|---|---|
| list_all_icb_industriesB | 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_detailsB | 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_overviewC | 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_newsA | 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_eventsC | 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_shareholdersC | 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_officersB | 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_subsidiariesA | 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_reportsB | 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_dividendsB | 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_dealsB | 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_summaryC | 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_statsB | 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_groupsB | 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_groupC | 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_industryA | 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_symbolsB | 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_detailedB | 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_statementsB | Get income statements of a company from stock market
Args: |
| get_balance_sheetsC | 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_flowsA | 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_ratiosB | 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_reportB | 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_fundsA | 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_fundA | 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_reportB | 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_holdingA | 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_holdingB | 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_holdingB | 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_priceB | 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_rateB | 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_indicatorsB | Get quote price with indicators of a symbol from stock market. Indicators can be specified with or without parameters:
|
| get_quote_history_priceB | 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_priceC | 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_depthA | 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_boardB | 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 |
Prompts
Interactive templates invoked by user choice
| Name | Description |
|---|---|
No prompts | |
Resources
Contextual data attached and managed by the client
| Name | Description |
|---|---|
| _list_available_indicators | List all available indicators. Returns list of dicts with name, description, parameters, output_columns, and usage. |
| _get_available_indicators_detailed | Get list of all available indicators with detailed information. Returns list of dicts with name, description, parameters, output_columns, and usage. |
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/MaoBui2907/vnstock-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server