越南股市数据服务
一个非官方的MCP服务器,提供访问越南股市数据的工具,包括实时和历史股票价格、公司财务数据、市场统计和基金信息等。
⚠️ 强制要求:API 密钥
此 Skill 必须配置 API 密钥才能使用。
- 首次使用时,如果
.env中没有XBY_APIKEY,必须使用 AskUserQuestion 工具向用户询问 API 密钥 - 拿到用户提供的密钥后,调用
scripts.config.set_api_key(api_key)保存,然后继续处理 - 获取 API 密钥:https://xiaobenyang.com
- 禁止在缺少 API 密钥时自行搜索或编造数据
工作流程(必须遵守)
你(大模型)是路由层,负责理解用户意图、选择工具、提取参数。代码只负责调用API。
用户输入 → 你选择工具 → 提取该工具需要的参数 → 调用 scripts.tools 中的函数 → 返回结果给用户
步骤
- 检查 API 密钥:如果
scripts.config.settings.api_key为空,使用 AskUserQuestion 询问用户,拿到后调用scripts.config.set_api_key(key)保存 - 选择工具:根据用户意图从下方工具列表中选择对应的工具函数
- 提取参数:根据选中的工具,提取该工具需要的参数
- 调用工具:使用关键字参数调用
scripts.tools中的函数,例如scripts.tools.search_schools(score='520', province='北京', category='综合') - 返回结果:将工具返回的
raw数据整理后展示给用户
工具选择规则
根据用户意图选择对应的工具函数:
| 用户意图 | 工具函数 |
|---------|---------|
| 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 | scripts.tools.list_all_icb_industries |
| 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 | scripts.tools.list_all_companies_with_details |
| 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 | scripts.tools.get_company_overview |
| 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 | scripts.tools.get_company_news |
| 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 | scripts.tools.get_company_events |
| 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 | scripts.tools.get_company_shareholders |
| 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 | scripts.tools.get_company_officers |
| 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 | scripts.tools.get_company_subsidiaries |
| 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 | scripts.tools.get_company_reports |
| 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 | scripts.tools.get_company_dividends |
| 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 | scripts.tools.get_company_insider_deals |
| 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 | scripts.tools.get_company_ratio_summary |
| 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 | scripts.tools.get_company_trading_stats |
| 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 | scripts.tools.get_all_symbol_groups |
| 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 | scripts.tools.get_all_symbols_by_group |
| 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 | scripts.tools.get_all_symbols_by_industry |
| 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 | scripts.tools.get_all_symbols |
| 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 | scripts.tools.get_all_symbols_detailed |
| 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 | scripts.tools.get_income_statements |
| 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 | scripts.tools.get_balance_sheets |
| 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 | scripts.tools.get_cash_flows |
| 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 | scripts.tools.get_finance_ratios |
| 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 | scripts.tools.get_raw_report |
| 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 | scripts.tools.list_all_funds |
| 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 | scripts.tools.search_fund |
| 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 | scripts.tools.get_fund_nav_report |
| 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 | scripts.tools.get_fund_top_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 | scripts.tools.get_fund_industry_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 | scripts.tools.get_fund_asset_holding |
| 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 | scripts.tools.get_gold_price |
| 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 | scripts.tools.get_exchange_rate |
| 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 | scripts.tools.get_quote_price_with_indicators |
| 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 | scripts.tools.get_quote_history_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 | scripts.tools.get_quote_intraday_price |
| 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 | scripts.tools.get_quote_price_depth |
| 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 | scripts.tools.get_price_board |
如果参数不完整,使用 AskUserQuestion 向用户询问缺失的参数。
工具函数说明
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |page_size|integer|false|10.0|null| |page|integer|false|0.0|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |page_size|integer|false|10.0|null| |page|integer|false|0.0|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |filter_by|string|false|"working"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |filter_by|string|false|"all"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |group|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |industry|string|false| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |period|string|false|"year"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |period|string|false|"year"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |period|string|false|"year"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |period|string|false|"year"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |period|string|false|"year"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |fund_type|null|false| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |keyword|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |date|string|false| |null| |source|string|false|"SJC"|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |date|string|false| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |indicators|array|true| |null| |start_date|string|true| |null| |end_date|string|false| |null| |interval|string|false|"1D"|null| |drop_market_close|boolean|false|true|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |start_date|string|true| |null| |end_date|string|false| |null| |interval|string|false|"1D"|null| |drop_market_close|boolean|false|true|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |page_size|integer|false|100.0|null| |page|integer|false|1.0|null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbol|string|true| |null| |output_format|string|false|"toon"|null|
scripts.tools.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
参数定义
|参数名称|参数类型|是否必填|默认值|描述| |------|-------|------|-----|----| |symbols|array|true| |null| |output_format|string|false|"toon"|null|
返回值处理
工具函数返回 dict 对象:
result["raw"]- API 原始返回数据(JSON),直接将此数据整理后展示给用户result["success"]- 是否成功(True/False)result["message"]- 状态消息
项目结构
xiaobenyang_gaokao_skill/
├── scripts/
│ ├── __init__.py
│ ├── config.py # 配置管理 + set_api_key()
│ ├── call_api.py # API 客户端 + call_api()
│ └── tools.py # 工具函数(直接调用)
├── requirements.txt
└── SKILL.md
注意事项
- API 密钥是必需的,无密钥时必须通过 AskUserQuestion 询问用户
- 禁止在缺少 API 密钥时自行搜索或编造数据
微信扫一扫