A Share MCP
This server provides comprehensive data and analysis capabilities for the Chinese A-share market, including:
Historical Market Data: Fetch daily, weekly, monthly, or minute-level K-line data with various adjustment options
Basic Stock Information: Access fundamental details, listing dates, industry classifications
Dividend & Adjustment Data: Retrieve historical dividends and price adjustment factors
Financial Reports: Query detailed quarterly metrics for profitability, operations, growth, balance sheets, cash flow, and DuPont analysis
Performance Data: Access performance express and forecast reports
Index Information: Get constituent stocks for SZSE 50, CSI 300, and CSI 500 indices
Macroeconomic Indicators: Retrieve deposit/loan rates, reserve ratios, money supply data, and SHIBOR rates
Trading Dates & Utilities: Check trading calendars, current/latest trading dates, and market analysis timeframes
Stock Analysis Tools: Generate data-driven fundamental and technical analysis reports
Provides stock market data analysis tools for A-share markets through data accessed via Baostock, offering historical K-line data, financial reports, market indices, and macroeconomic indicators.
📊 a-share-mcp 📈
本项目是一个基于专注于 A 股市场的 MCP 服务器,它提供股票基本信息、历史 K 线数据、财务指标、宏观经济数据等多种查询功能,理论上来说,可以回答有关 A 股市场的任何问题,无论是针对大盘还是特定股票。
项目结构
a_share_mcp/
│
├── mcp_server.py # 主服务器入口文件
├── pyproject.toml # 项目依赖配置
├── README.md # 项目说明文档
│
├── src/ # 源代码目录
│ ├── __init__.py
│ ├── baostock_data_source.py # Baostock数据源实现
│ ├── data_source_interface.py # 数据源接口定义
│ ├── utils.py # 通用工具函数
│ │
│ ├── formatting/ # 数据格式化模块
│ │ ├── __init__.py
│ │ └── markdown_formatter.py # Markdown格式化工具
│ │
│ └── tools/ # MCP工具模块
│ ├── __init__.py
│ ├── base.py # 基础工具函数
│ ├── stock_market.py # 股票市场数据工具
│ ├── financial_reports.py # 财务报表工具
│ ├── indices.py # 指数相关工具
│ ├── market_overview.py # 市场概览工具
│ ├── macroeconomic.py # 宏观经济数据工具
│ ├── date_utils.py # 日期工具
│ └── analysis.py # 分析工具
│
└── resource/ # 资源文件
└── img/ # 图片资源
├── img_1.png # CherryStudio配置示例
└── img_2.png # CherryStudio配置示例Related MCP server: Tushare MCP Server
功能特点
先决条件
Python 环境: Python 3.10+
依赖管理: 使用
uv包管理器安装依赖数据来源: 基于 Baostock 数据源,无需付费账号。在此感谢 Baostock。
提醒:本项目于 Windows 环境下开发。
数据更新时间
以下是 Baostock 官方数据更新时间,请注意查询最新数据时的时间点 Baostock 官网
每日数据更新时间:
当前交易日 17:30,完成日 K 线数据入库
当前交易日 18:00,完成复权因子数据入库
第二自然日 11:00,完成分钟 K 线数据入库
第二自然日 1:30,完成前交易日"其它财务报告数据"入库
周六 17:30,完成周线数据入库
每周数据更新时间:
每周一下午,完成上证 50 成份股、沪深 300 成份股、中证 500 成份股信息数据入库
所以说,在交易日的当天,如果是在 17:30 之前询问当天的数据,是无法获取到的。
安装环境
在项目根目录下执行:
要启动 A 股 MCP 服务器,请按照以下步骤操作:
# 1. 创建虚拟环境(仅创建,不会安装任何包)
uv venv
# 2. 激活虚拟环境
# Windows
.venv\Scripts\activate
# macOS/Linux
# source .venv/bin/activate
# 3. 安装所有依赖(必须在激活的虚拟环境中执行)
uv sync使用:在 MCP 客户端中配置服务器
在支持 MCP 的客户端(如 VS Code 插件、CherryStudio 等)中,你需要配置如何启动此服务器。 推荐使用 uv。
方法一:使用 JSON 配置的 IDE (例如 Cursor、VSCode、Trae 等)
对于需要编辑 JSON 文件来配置 MCP 服务器的客户端,你需要找到对应的能配置 MCP 的地方(各个 IDE 和桌面 MCP Client 可能都不一样),并在 mcpServers 对象中添加一个新的条目。
JSON 配置示例 (请将路径替换为你的实际绝对路径):
{
"mcpServers": {
"a-share-mcp": {
"command": "uv", // 或者 uv.exe 的绝对路径, 例如: "C:\\path\\to\\uv.exe"
"args": [
"--directory",
"C:\\Users\\YourName\\Projects\\a_share_mcp", // 替换为你的项目根目录绝对路径,不一定是C盘,按实际的填写
"run",
"python",
"mcp_server.py"
],
"transport": "stdio"
// "workingDirectory": "C:\\Users\\YourName\\Projects\\a_share_mcp", // 使用 uv --directory 后,此项可能不再必需,但建议保留作为备用
}
// ... other servers ...
}
}注意事项:
command: 确保填写的uv命令或uv.exe的绝对路径是客户端可以访问和执行的。args: 确保参数列表完整且顺序正确。路径转义: 路径需要写成双反斜杠
\\。这是 Windows 系统特有的情况。如果是在 macOS 或 Linux 系统中,路径使用正斜杠/作为目录分隔符,就不需要这种转义处理。
workingDirectory: 虽然uv --directory应该能解决工作目录问题,但如果客户端仍然报错ModuleNotFoundError,可以尝试在客户端配置中明确设置此项为项目根目录的绝对路径。
方法二:使用 CherryStudio
在 CherryStudio 的 MCP 服务器配置界面中,按如下方式填写:
名称:
a-share-mcp(或自定义)描述:
本地 A 股 MCP 服务器(或自定义)类型: 选择 标准输入/输出 (stdio)
命令:
uv(或者填系统中绝对路径下 uv.exe)包管理源: 默认
参数:
第一个参数填:
--directory第二个参数填:
C:\\Users\\YourName\\Projects\\a_share_mcp第三个参数填:
run第四个参数填:
python第五个参数填:
mcp_server.py
确保所有参数按下回车转行隔开的,否则报错(是不是手把手教学了?)
环境变量: (通常留空)
Tricks(必看): 有时候在 Cherrystudio 填写好参数后,点击右上方的开关按钮,会发现没任何反应,此时只要随便点击左侧目录任一按钮,跳出 mcp 设置界面,然后再回到 mcp 设置界面,就会发现 mcp 已经闪绿灯配置成功了。
CherryStudio 使用示例: 理论上来说,你可以问有关 A 股的任何问题 :)


重要提示:
确保命令字段中的
uv或其绝对路径有效且可执行。确保参数字段按顺序正确填写了五个参数。
工具列表
该 MCP 服务器目前提供 41 个工具,覆盖股票、财报、宏观、日期分析等全方位数据。以下是完整列表:
贡献指南
欢迎提交 Issue 或 Pull Request 来帮助改进项目。贡献前请先查看现有 Issue 和文档。
☕️ 请作者喝杯咖啡
如果这个项目对你有帮助,欢迎请我喝杯咖啡 ❤️
许可证
本项目采用 MIT 许可证 - 详情请查看 LICENSE 文件
本次更新概览(2025-12-25)
本次更新新增 财务指标汇总工具,将 6 大类财务数据聚合为一个便捷查询接口。
🆕 新增工具
财务指标汇总:
get_fina_indicator一键获取 6 大类财务指标(盈利能力、营运能力、成长能力、偿债能力、现金流量、杜邦分析),按季度返回合并数据。
Available Tools
41 toolsget_adjust_factor_dataA
Fetches adjustment factor data for a given stock code and date range.
Uses Baostock's "涨跌幅复权算法" factors. Useful for calculating adjusted prices.
Args:
code: The stock code in Baostock format (e.g., 'sh.600000', 'sz.000001').
start_date: Start date in 'YYYY-MM-DD' format.
end_date: End date in 'YYYY-MM-DD' format.
Returns:
Adjustment factors table.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the data source and general use case but fails to disclose critical behavioral traits such as rate limits, authentication needs, error handling, or the structure of the returned 'Adjustment factors table.' This is a significant gap for a data-fetching tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with the core purpose stated first. The Args and Returns sections are structured for clarity, though the inclusion of parameter details in the description (while helpful) slightly reduces conciseness. Every sentence earns its place, but minor trimming could improve efficiency.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It covers the purpose and some parameters but lacks details on behavioral aspects (e.g., rate limits, errors) and the output structure. Without an output schema, the description should explain return values more thoroughly, but it only vaguely mentions 'Adjustment factors table.'
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It provides clear semantics for 3 parameters (code, start_date, end_date) with examples and format details, which adds substantial value beyond the schema. However, it omits the 'limit' and 'format' parameters, leaving them undocumented. Since 3 out of 5 parameters are well-explained, this is above baseline but not perfect.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verb ('Fetches') and resource ('adjustment factor data'), and distinguishes it from siblings by mentioning the specific data source ('Baostock's "涨跌幅复权算法" factors') and use case ('Useful for calculating adjusted prices'). This differentiates it from other data-fetching tools like get_historical_k_data or get_dividend_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'Useful for calculating adjusted prices,' which suggests when this tool might be appropriate. However, it lacks explicit guidance on when to use this tool versus alternatives (e.g., other financial data tools in the sibling list) or any prerequisites or exclusions, leaving some ambiguity for the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_all_stockC
Fetch a list of all stocks (A-shares and indices) and their trading status for a date.
Args:
date: Optional. The date in 'YYYY-MM-DD' format. If None, uses the current date.
Returns:
Markdown table listing stock codes and trading status (1=trading, 0=suspended).
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions returns a markdown table, which is useful, but lacks details on permissions, rate limits, data freshness, or pagination behavior (limit parameter is undocumented). For a read operation with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized with three sentences: purpose, args, returns. It's front-loaded with the main function. However, the Args and Returns sections could be more integrated, and some redundancy exists (e.g., 'for a date' repeated).
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 3 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It covers the date parameter and return format but misses limit and format parameters, behavioral context, and fails to fully guide usage among many siblings. For a data-fetching tool in a crowded namespace, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It documents the 'date' parameter with format and default, but omits 'limit' and 'format' parameters entirely. This leaves two of three parameters undocumented, failing to add sufficient meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool fetches a list of all stocks and their trading status for a date, specifying resource (stocks and indices) and verb (fetch). It distinguishes from siblings like get_suspensions (specific status) or get_stock_basic_info (different data), though not explicitly named. However, it doesn't fully differentiate from get_hs300_stocks or get_sz50_stocks which fetch subsets.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives like get_suspensions for suspended stocks only, get_hs300_stocks for specific indices, or get_stock_basic_info for detailed info. The description implies usage for comprehensive stock lists with trading status but lacks context on alternatives or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_balance_dataC
Quarterly balance sheet data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'Quarterly balance sheet data' but doesn't disclose behavioral traits like whether it's a read-only operation, requires authentication, has rate limits, returns structured data, or handles errors. This leaves significant gaps for a tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, front-loaded and zero waste. However, this conciseness comes at the cost of under-specification, but based on the dimension's focus on brevity and structure, it scores high.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 5 parameters with 0% schema coverage, no annotations, no output schema, and many sibling tools, the description is completely inadequate. It doesn't explain the tool's function, usage, behavior, parameters, or output, leaving the agent with insufficient information to use it correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description provides no information about parameters. It doesn't explain what 'code', 'year', 'quarter', 'limit', or 'format' mean, their expected values, or how they affect the output, failing to compensate for the lack of schema documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly balance sheet data' indicates the resource (balance sheet data) and temporal scope (quarterly), but lacks a specific verb and doesn't distinguish from siblings like get_cash_flow_data or get_profit_data. It's vague about what the tool actually does (e.g., retrieve, analyze, or generate this data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools for financial data (e.g., get_cash_flow_data, get_profit_data), the description offers no context for selection, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_cash_flow_dataD
Quarterly cash flow data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to describe any traits: it doesn't specify if this is a read-only operation, what permissions might be needed, potential rate limits, error conditions, or the format/scope of returned data. For a tool with 5 parameters and no output schema, this lack of transparency is critical.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, 'Quarterly cash flow data.', which is front-loaded and wastes no words. While it under-specifies the tool's functionality, it earns full marks for brevity and lack of redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 0% schema coverage, no annotations, no output schema, and many sibling tools), the description is severely incomplete. It doesn't clarify the tool's purpose, usage, behavior, or parameters, making it insufficient for an agent to understand or correctly invoke this tool in context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 5 parameters have descriptions in the schema. The tool description adds no information about parameters like 'code', 'year', 'quarter', 'limit', or 'format', leaving their semantics, valid values, and interactions completely undocumented, which is inadequate for agent invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly cash flow data' is a tautology that essentially restates the tool name 'get_cash_flow_data' without adding meaningful specificity. It doesn't clarify what 'cash flow data' entails (e.g., financial metrics, statements, or specific fields) or distinguish this tool from siblings like 'get_balance_data' or 'get_profit_data' that also retrieve financial data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools for financial data retrieval (e.g., 'get_balance_data', 'get_profit_data'), the description offers no context, prerequisites, or exclusions to help an agent decide between them, leaving usage ambiguous.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_deposit_rate_dataD
Benchmark deposit rates.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. 'Benchmark deposit rates' gives no indication of whether this is a read-only query, a calculation, or a write operation. It doesn't mention authentication needs, rate limits, data freshness, or what format/scope the results will have. The description fails to provide any behavioral context beyond the minimal name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just three words. While this represents severe under-specification rather than optimal conciseness, it contains no redundant information and is front-loaded with the core concept. Every word earns its place, even though more words are needed for completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It doesn't explain what the tool does, how to use it, what the parameters mean, or what to expect in return. The minimal description fails to compensate for the lack of structured documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 4 parameters and 0% schema description coverage, the schema provides only titles and types without explaining what the parameters mean. The description adds zero information about parameters - it doesn't mention date ranges, limits, output formats, or any of the actual inputs. This leaves all parameter semantics undocumented.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Benchmark deposit rates' is a tautology that essentially restates the tool name 'get_deposit_rate_data'. It doesn't specify what action is performed (e.g., retrieve, calculate, compare) or what resource is accessed. While it hints at financial data, it lacks the specificity needed to distinguish it from sibling tools like 'get_loan_rate_data' or 'get_required_reserve_ratio_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. There are no contextual cues about appropriate scenarios, prerequisites, or comparisons to sibling tools like 'get_loan_rate_data' or other financial data tools. Users must infer usage entirely from the name and parameters.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dividend_dataC
Fetches dividend information for a given stock code and year.
Args:
code: The stock code in Baostock format (e.g., 'sh.600000', 'sz.000001').
year: The year to query (e.g., '2023').
year_type: Type of year. Valid options (from Baostock):
'report': Announcement year (预案公告年份)
'operate': Ex-dividend year (除权除息年份)
Defaults to 'report'.
Returns:
Dividend records table.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| year_type | No | report | |
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool 'fetches' data, implying a read-only operation, but doesn't clarify permissions, rate limits, error handling, or return format details. The mention of 'Dividend records table' hints at the output structure, but lacks specifics like columns or pagination. For a tool with 5 parameters and no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and concise, with a clear purpose statement followed by parameter details in a formatted 'Args' and 'Returns' section. Every sentence adds value: the purpose is front-loaded, and parameter explanations are efficient with examples and defaults. No wasted words or redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, no annotations, no output schema), the description is incomplete. It covers the core purpose and some parameters but misses two parameters ('limit', 'format'), provides no output schema details beyond 'Dividend records table', and lacks behavioral context like error handling or data freshness. For a data-fetching tool with multiple parameters, this leaves the agent under-informed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful context for 3 parameters (code, year, year_type) by explaining formats, examples, and valid options, which compensates partially for the 0% schema description coverage. However, it omits the 'limit' and 'format' parameters entirely, leaving them undocumented. With 5 total parameters and only 3 covered, the description provides moderate but incomplete semantic value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetches dividend information for a given stock code and year.' It specifies the verb ('fetches'), resource ('dividend information'), and scope ('for a given stock code and year'). However, it doesn't explicitly differentiate from sibling tools like 'get_profit_data' or 'get_balance_data', which might also fetch financial data but for different metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_profit_data' or 'get_stock_basic_info', nor does it specify prerequisites or exclusions. The agent must infer usage from the purpose alone, which is insufficient for optimal tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dupont_dataC
Quarterly Dupont analysis data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It only states what data is provided without describing how it behaves—e.g., whether it's a read-only query, if it requires authentication, rate limits, error handling, or what the output looks like (since no output schema exists). This leaves significant gaps for an agent to understand the tool's operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase 'Quarterly Dupont analysis data.', which is front-loaded and wastes no words. However, this conciseness comes at the cost of completeness, but as per the dimension, it scores high for being brief and structured.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 3 required, no annotations, no output schema), the description is incomplete. It doesn't explain the tool's behavior, parameters, or output, leaving the agent with insufficient information to use it effectively. The lack of annotations and output schema increases the burden on the description, which it doesn't meet.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 5 parameters (code, year, quarter, limit, format) are explained in the schema. The description adds no parameter semantics—it doesn't clarify what 'code' refers to (e.g., stock ticker), the format of 'year' and 'quarter', or what 'format' options exist. This fails to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly Dupont analysis data' states what the tool provides (Dupont analysis data) and indicates temporal scope (quarterly), which gives a basic purpose. However, it lacks a specific verb (e.g., 'retrieve' or 'fetch') and doesn't differentiate from siblings like 'get_fina_indicator' or 'get_profit_data', which might also provide financial metrics, making it somewhat vague.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, and with many sibling tools for financial data (e.g., 'get_balance_data', 'get_cash_flow_data'), there's no indication of how Dupont analysis differs or when it's preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fina_indicatorA
Aggregated financial indicators from 6 Baostock APIs into one convenient query.
**Data is returned by QUARTER** (Q1, Q2, Q3, Q4) based on financial report dates.
Input date range determines which quarters to fetch.
Combines data from:
- 盈利能力 (Profitability): roeAvg, npMargin, gpMargin, epsTTM
- 营运能力 (Operation): NRTurnRatio, INVTurnRatio, CATurnRatio
- 成长能力 (Growth): YOYNI, YOYEquity, YOYAsset
- 偿债能力 (Solvency): currentRatio, quickRatio, liabilityToAsset
- 现金流量 (Cash Flow): CFOToOR, CFOToNP, CAToAsset
- 杜邦分析 (DuPont): dupontROE, dupontAssetTurn, dupontPnitoni
Output columns include prefixes: profit_*, operation_*, growth_*,
balance_*, cashflow_*, dupont_* to distinguish data sources.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the quarterly aggregation behavior and output column naming conventions, which is valuable. However, it doesn't address important behavioral aspects like rate limits, authentication requirements, data freshness, error conditions, or whether this is a read-only operation (though implied by 'get' naming).
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is efficiently structured with clear sections: purpose statement, key behavioral detail (quarterly aggregation), data sources list, and output format explanation. Every sentence adds value with zero wasted words, and it's appropriately front-loaded with the core functionality.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, 0% schema coverage, no annotations, and no output schema, the description does a reasonable job explaining the aggregation behavior and output structure. However, it doesn't fully compensate for the missing parameter documentation (especially the 'code' parameter) and lacks details about return format, error handling, or performance characteristics that would be helpful given the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage for 5 parameters, the description adds significant value by explaining that date range determines which quarters to fetch (clarifying start_date and end_date purpose). However, it doesn't explain the code parameter (stock/company identifier), limit, or format parameters. The description compensates well but doesn't fully cover all parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool aggregates financial indicators from 6 Baostock APIs into one query, specifying the exact data sources (profitability, operation, growth, solvency, cash flow, DuPont analysis). It distinguishes itself from siblings by combining data that appears to be split across multiple specialized tools (e.g., get_profit_data, get_operation_data, get_growth_data, get_dupont_data).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides clear context for when to use this tool: when needing aggregated financial indicators by quarter, with date ranges determining which quarters to fetch. It implicitly suggests alternatives (using individual specialized tools for specific data types) but doesn't explicitly name them or state when not to use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_forecast_reportC
Earnings forecast report within date range.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states this retrieves a 'report' but doesn't disclose format details, pagination behavior, rate limits, authentication requirements, or what happens when parameters are invalid. For a data retrieval tool with 5 parameters, this leaves significant behavioral questions unanswered.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise at just 5 words. While arguably too brief for a tool with 5 parameters, it's front-loaded with the core purpose and wastes no words. Every word contributes meaning, though more detail would be helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a financial data tool with 5 parameters, 0% schema coverage, no annotations, and no output schema, the description is inadequate. It doesn't explain what an 'earnings forecast report' contains, how it differs from other financial reports, what the parameters mean, or what format the output takes. The context demands much more complete documentation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so parameters are completely undocumented in the schema. The description only mentions 'date range' which maps to start_date and end_date, but doesn't explain the 'code' parameter (stock code? index code?), 'limit' (pagination? max results?), or 'format' (output format options?). It fails to compensate for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Earnings forecast report within date range' clearly states the tool's purpose (retrieving earnings forecasts) and mentions date range filtering. However, it doesn't distinguish this tool from its many financial data siblings like 'get_profit_data' or 'get_performance_express_report' - it's unclear what makes 'forecast report' unique versus other performance-related tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. With 40+ sibling tools including many financial data retrieval tools, the description offers no context about when this specific earnings forecast report is appropriate versus other performance metrics, profit data, or analysis tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_growth_dataD
Quarterly growth capability data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description reveals nothing about whether this is a read-only operation, whether it requires authentication, what format the data returns in, whether there are rate limits, or what happens when parameters are invalid. For a tool with 5 parameters and no annotation coverage, this is completely inadequate.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
While technically concise with just 3 words, this is a case of harmful under-specification rather than effective brevity. The description fails to provide the basic information needed to understand or use the tool, making it inefficient for an AI agent that needs to quickly comprehend tool purposes.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 3 required), complete lack of annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It provides no meaningful context about what the tool does, how to use it, what it returns, or how it differs from the many other financial data tools in the server.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 5 parameters (code, year, quarter, limit, format), the description provides absolutely no information about what these parameters mean or how they should be used. The description doesn't mention any parameters at all, leaving the agent to guess what 'code' refers to (stock code? industry code?), what format 'format' accepts beyond the default 'markdown', or what 'growth capability data' actually contains.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly growth capability data' is vague and tautological - it essentially restates the tool name 'get_growth_data' without specifying what action the tool performs. It doesn't clearly state whether this retrieves, calculates, analyzes, or generates growth data, nor does it distinguish this from sibling tools like get_profit_data or get_operation_data that also appear to fetch financial metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With numerous sibling tools fetching various financial data types (balance_data, cash_flow_data, dividend_data, etc.), there's no indication of what makes 'growth capability data' distinct or when an agent should choose this specific tool over others in the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_historical_k_dataA
Fetches historical K-line (OHLCV) data for a Chinese A-share stock.
Args:
code: The stock code in Baostock format (e.g., 'sh.600000', 'sz.000001').
start_date: Start date in 'YYYY-MM-DD' format.
end_date: End date in 'YYYY-MM-DD' format.
frequency: Data frequency. Valid options (from Baostock):
'd': daily
'w': weekly
'm': monthly
'5': 5 minutes
'15': 15 minutes
'30': 30 minutes
'60': 60 minutes
Defaults to 'd'.
adjust_flag: Adjustment flag for price/volume. Valid options (from Baostock):
'1': Forward adjusted (后复权)
'2': Backward adjusted (前复权)
'3': Non-adjusted (不复权)
Defaults to '3'.
fields: Optional list of specific data fields to retrieve (must be valid Baostock fields).
If None or empty, default fields will be used (e.g., date, code, open, high, low, close, volume, amount, pctChg).
limit: Max rows to return. Defaults to 250.
format: Output format: 'markdown' | 'json' | 'csv'. Defaults to 'markdown'.
Returns:
A Markdown formatted string containing the K-line data table, or an error message.
The table might be truncated if the result set is too large.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| frequency | No | d | |
| adjust_flag | No | 3 | |
| fields | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden. It discloses behavioral traits such as data source ('Baostock'), output format options, default values, and potential truncation for large result sets. However, it lacks details on error handling, rate limits, authentication needs, or data freshness, which are important for a data-fetching tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with clear sections (Args, Returns) and uses bullet-like formatting for parameters. It's appropriately sized but could be more front-loaded; the core purpose is stated first, but some details are verbose. Every sentence adds value, though minor trimming is possible.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (8 parameters, no annotations, no output schema), the description is largely complete. It covers parameters thoroughly and explains the return format. However, it lacks information on error cases, data limits beyond 'truncated', and integration with sibling tools, leaving minor gaps for full contextual understanding.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% schema description coverage. It explains each parameter's purpose, valid options (e.g., frequency and adjust_flag enums), defaults, and examples (e.g., code format 'sh.600000'), fully compensating for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('fetches') and resource ('historical K-line (OHLCV) data for a Chinese A-share stock'), making the purpose specific and actionable. It distinguishes from siblings by focusing on OHLCV data rather than other financial metrics like balance sheets or dividends.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives is provided. While the purpose implies it's for OHLCV data, it doesn't mention when to choose this over other data-fetching tools or prerequisites like data availability. The description lacks context for tool selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_hs300_stocksD
CSI 300 constituents.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It fails to describe what the tool returns (e.g., a list of stocks, their details), any side effects, rate limits, or error conditions. This leaves the agent with no understanding of the tool's behavior beyond its name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, 'CSI 300 constituents.' It is front-loaded and wastes no words, though this brevity comes at the cost of clarity and completeness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with 0% schema coverage, no annotations, no output schema), the description is severely incomplete. It doesn't explain the tool's purpose, usage, behavior, or parameters, making it inadequate for an AI agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so parameters 'date', 'limit', and 'format' are undocumented in the schema. The description adds no information about these parameters, such as their purpose (e.g., date for historical constituents, limit for pagination, format for output type), leaving their semantics completely unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'CSI 300 constituents' restates the tool name 'get_hs300_stocks' without specifying the action. It identifies the resource (CSI 300 stocks) but lacks a verb indicating what the tool does with them (e.g., fetch, list, retrieve). This is tautological and doesn't distinguish it from siblings like 'get_index_constituents' or 'get_sz50_stocks'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_index_constituents' (which might be more general) or 'get_sz50_stocks' (for another index), nor does it specify any context or prerequisites for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_constituentsC
Generic index constituent fetch (hs300/sz50/zz500).
| Name | Required | Description | Default |
|---|---|---|---|
| index | Yes | ||
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It fails to mention whether this is a read-only operation, if it requires authentication, rate limits, error handling, or what the output format entails (e.g., list of stocks, historical data). The description is too minimal to inform agent behavior beyond a basic fetch action.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core action ('fetch') and resources. However, it lacks necessary detail for clarity, making it under-specified rather than optimally concise, but it avoids redundancy and waste.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a financial data tool with 4 parameters, 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain return values, error conditions, or behavioral nuances, leaving significant gaps for agent usage in a context with many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It only implies the 'index' parameter via the listed indices (hs300/sz50/zz500) but doesn't clarify valid values or semantics. Other parameters (date, limit, format) are entirely undocumented, leaving their purposes and effects unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool fetches index constituents and lists specific indices (hs300/sz50/zz500), which clarifies the resource. However, it's vague about what 'constituents' means (e.g., stocks, weights, metadata) and doesn't distinguish it from similar sibling tools like 'get_hs300_stocks' or 'get_sz50_stocks', leaving ambiguity in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_hs300_stocks' or 'get_sz50_stocks', which appear to overlap in functionality. The description lacks context about prerequisites, exclusions, or comparative use cases, offering only a generic statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_industry_membersC
Get all stocks in a given industry on a date.
| Name | Required | Description | Default |
|---|---|---|---|
| industry | Yes | ||
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves data ('Get all stocks'), implying a read-only operation, but does not specify whether it requires authentication, has rate limits, returns paginated results, or handles errors. The mention of 'on a date' hints at historical data access, but behavioral details are minimal.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It is appropriately sized and front-loaded, directly stating the tool's core functionality without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It lacks details on parameter usage, return values, error handling, and behavioral constraints, making it insufficient for an agent to reliably invoke the tool without additional context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'industry' and 'date' but does not explain their semantics (e.g., format, valid values, or that 'date' is optional with a default). It omits 'limit' and 'format' entirely, failing to compensate for the low schema coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get all stocks in a given industry on a date.' It specifies the verb ('Get'), resource ('stocks'), and key constraints ('in a given industry', 'on a date'). However, it does not explicitly differentiate from sibling tools like 'get_stock_industry' or 'get_index_constituents', which might have overlapping functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It does not mention sibling tools like 'get_stock_industry' (which might list industries) or 'get_index_constituents' (which might list stocks in an index), leaving the agent to infer usage context without explicit direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_last_n_trading_daysC
Return the last N trading dates.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool returns dates but doesn't explain what constitutes a 'trading day' (e.g., excludes weekends/holidays), the format of the return (e.g., list of strings, timestamps), or any constraints like rate limits or data freshness. This leaves significant gaps for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, making it easy to parse quickly. Every part of the sentence contributes directly to understanding the tool's function.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations and output schema, the description is incomplete for a tool that returns data. It doesn't specify the return format (e.g., list, JSON structure), what 'trading days' means contextually, or error handling. For a data-fetching tool with no structured output documentation, this leaves too many unknowns for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema description coverage is 0%, so the description must compensate. It mentions 'last N trading dates' which implies the 'days' parameter, but doesn't clarify semantics like whether N includes today, the range of valid values, or what happens with negative/zero inputs. This adds minimal value beyond the schema's basic structure, warranting a baseline score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Return') and resource ('last N trading dates'), making it easy to understand what the tool does. However, it doesn't explicitly differentiate from similar siblings like 'get_trade_dates' or 'get_latest_trading_date', which could cause confusion about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_trade_dates' and 'get_latest_trading_date' that might overlap in functionality, the lack of explicit usage context or exclusions leaves the agent without clear direction for tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_latest_trading_dateB
Get the latest trading date up to today.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions retrieving the 'latest trading date up to today' but lacks details on behavior such as data source, timezone handling, error conditions, or whether it considers market holidays. This leaves gaps for an AI agent to understand operational nuances.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded and efficiently conveys the core functionality without unnecessary elaboration.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description is incomplete. It doesn't explain what the output looks like (e.g., date format, single value vs. structured data) or address potential edge cases like non-trading days, which are crucial for a tool in a financial context with many sibling tools.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The tool has 0 parameters, and schema description coverage is 100%, so no parameter documentation is needed. The description doesn't add parameter details, which is appropriate here, earning a baseline score for tools with no parameters.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('latest trading date up to today'), making the purpose understandable. However, it doesn't explicitly differentiate from siblings like 'get_last_n_trading_days' or 'get_trade_dates', which could provide similar date-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_last_n_trading_days' or 'get_trade_dates'. The description only states what it does without context for selection among siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_loan_rate_dataD
Benchmark loan rates.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It only states 'Benchmark loan rates.', offering no information on whether this is a read-only operation, potential rate limits, authentication needs, data freshness, or what the output entails (e.g., raw data, formatted report). This leaves critical behavioral aspects unspecified.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with just two words, which could be seen as efficient. However, it is under-specified rather than appropriately sized, failing to convey necessary information. It is front-loaded but lacks substance, making it minimally adequate in structure but not helpful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, 0% schema coverage, no annotations, no output schema), the description is severely incomplete. It does not address purpose, usage, behavior, or parameters adequately, leaving the agent with insufficient context to effectively select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning parameters (start_date, end_date, limit, format) are undocumented in the schema. The description does not compensate by explaining any parameters, their purposes, formats (e.g., date strings like 'YYYY-MM-DD'), or defaults. This results in poor parameter semantics support.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Benchmark loan rates.' is tautological, essentially restating the tool name 'get_loan_rate_data' without specifying what action is performed (e.g., retrieve, calculate, compare). It lacks a clear verb and does not distinguish this tool from its many siblings that also fetch financial data, such as 'get_deposit_rate_data' or 'get_ividend_data'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With numerous sibling tools for financial data retrieval (e.g., 'get_deposit_rate_data', 'get_balance_data'), the description fails to indicate specific contexts, prerequisites, or exclusions for selecting this tool over others.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_analysis_timeframeC
Return a human-friendly timeframe label.
| Name | Required | Description | Default |
|---|---|---|---|
| period | No | recent |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions returning a 'human-friendly timeframe label' but does not specify format, data source, or any constraints like rate limits or permissions. This leaves significant gaps in understanding how the tool behaves beyond its basic output.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence that directly states the tool's function without unnecessary words. It is front-loaded and efficient, making it easy to grasp quickly, which is ideal for conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, output schema, and low parameter coverage, the description is incomplete. It does not provide enough context about the tool's behavior, output format, or how it integrates with other tools, making it inadequate for a tool that likely deals with financial timeframes in a complex server environment.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter 'period' with 0% description coverage, and the tool description does not explain what 'period' means, its possible values, or how it affects the output. With low schema coverage, the description fails to compensate, leaving the parameter's semantics unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'Return a human-friendly timeframe label,' which clarifies its purpose as providing a formatted timeframe label. However, it lacks specificity about what 'market analysis' entails or what context this timeframe is used for, making it somewhat vague compared to more detailed sibling tools like get_historical_k_data or get_recent_trading_range.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
There is no guidance on when to use this tool versus alternatives. Sibling tools include get_last_n_trading_days, get_recent_trading_range, and get_trade_dates, which might offer similar or overlapping functionality, but the description does not mention any distinctions, prerequisites, or exclusions for usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_money_supply_data_monthC
Monthly money supply data.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It offers no behavioral information: doesn't indicate if this is a read-only operation, what data source is used, whether it requires authentication, rate limits, or what the output format looks like. The description is purely declarative without operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with just three words, but this brevity comes at the cost of completeness. The description is front-loaded with the core concept but lacks necessary elaboration for a tool with 4 parameters and no annotations.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 4 parameters, 0% schema description coverage, no annotations, and no output schema, the description is severely inadequate. It doesn't explain what the tool returns, how to interpret results, or provide enough context for effective use beyond the basic subject matter.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so parameters are undocumented. The description adds no parameter information beyond what's inferred from the tool name (monthly data). It doesn't explain what start_date/end_date formats to use, what limit applies to, what format options exist, or default behaviors.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Monthly money supply data' states the resource (money supply data) and temporal granularity (monthly), but lacks a clear verb indicating what action is performed. It distinguishes from sibling 'get_money_supply_data_year' by specifying monthly vs yearly data, but doesn't clarify if this retrieves, lists, or calculates data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_money_supply_data_year' or other economic data tools. The description implies monthly frequency but doesn't specify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_money_supply_data_yearC
Yearly money supply data.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It reveals nothing about behavior: no indication of read/write nature, authentication needs, rate limits, error conditions, or what the output looks like. 'Yearly money supply data' suggests a read operation but lacks confirmation or details.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Extremely concise with a single phrase 'Yearly money supply data.' It's front-loaded and wastes no words, though this brevity contributes to underspecification in other dimensions.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 4-parameter tool with no annotations and no output schema, the description is incomplete. It doesn't cover parameter meanings, behavioral traits, or output format, leaving significant gaps for an AI agent to understand and invoke the tool correctly.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'yearly' which hints at date parameters but doesn't explain the four parameters (start_date, end_date, limit, format) or their relationships. The description adds minimal value beyond the schema titles.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Yearly money supply data' states the resource (money supply data) and temporal granularity (yearly), but lacks a specific verb and doesn't distinguish from sibling 'get_money_supply_data_month'. It's vague about what action is performed (retrieve? list? fetch?).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool versus alternatives like 'get_money_supply_data_month' or other financial data tools. The description implies yearly data but doesn't specify use cases, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_month_end_trading_datesC
Return month-end trading dates for a given year.
| Name | Required | Description | Default |
|---|---|---|---|
| year | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the action but lacks behavioral details such as return format (e.g., list of dates), error handling for invalid years, data source, or rate limits. This is inadequate for a tool with no annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with zero waste. It's front-loaded with the core purpose, making it easy to parse. Every word earns its place without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain return values, error cases, or behavioral traits, leaving significant gaps for a tool that likely returns structured date data. More context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds meaning by specifying the parameter is 'year'. However, it doesn't clarify format (e.g., integer year like 2024), constraints (e.g., valid range), or examples. With one parameter, this provides minimal compensation for the coverage gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Return') and resource ('month-end trading dates'), specifying it's for a given year. It distinguishes from siblings like 'get_trade_dates' (general dates) and 'get_last_n_trading_days' (recent days), but could be more explicit about the distinction. No tautology or misleading elements are present.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, exclusions, or compare to siblings like 'get_trade_dates' for broader date queries or 'get_latest_trading_date' for single dates. Usage is implied only by the purpose statement.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_operation_dataD
Quarterly operation capability data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. The description provides zero information about what the tool actually does behaviorally - whether it's a read operation, what format the data returns in, whether there are rate limits, authentication requirements, or any other behavioral characteristics. It's completely inadequate for a tool with 5 parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise - just 4 words - but this is under-specification rather than effective conciseness. While it's technically brief, it fails to provide necessary information, making the brevity detrimental rather than helpful. It's front-loaded only because there's nothing to load.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a tool with 5 parameters, no annotations, no output schema, and 0% schema description coverage, the description is completely inadequate. It provides no information about what the tool does, how to use it, what the parameters mean, what behavior to expect, or how it differs from similar tools. This leaves an AI agent with insufficient information to properly select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 5 parameters (3 required), the description provides absolutely no information about what the parameters mean or how they should be used. The description doesn't mention any parameters, leaving code, year, quarter, limit, and format completely unexplained despite being essential for proper tool invocation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly operation capability data' is tautological - it essentially restates the tool name 'get_operation_data' without specifying what action is performed. It doesn't clearly state whether this retrieves, calculates, or generates operation data, nor does it distinguish this tool from its many financial data siblings like get_balance_data or get_profit_data.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided about when to use this tool versus alternatives. With 40+ sibling tools on the server including various financial data retrieval tools, the description offers no indication of what makes operation capability data unique or when an agent should choose this over similar tools like get_profit_data or get_fina_indicator.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_performance_express_reportD
Performance express report within date range.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| start_date | Yes | ||
| end_date | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden for behavioral disclosure. It mentions nothing about whether this is a read-only operation, potential rate limits, authentication needs, data freshness, or what the output looks like (e.g., report format, structure). For a tool with 5 parameters and no output schema, this lack of behavioral context is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core purpose, though overly brief. While concise, it sacrifices necessary detail for brevity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 3 required, 0% schema coverage, no annotations, no output schema, many sibling tools), the description is completely inadequate. It doesn't explain what the tool returns, how to interpret parameters, behavioral constraints, or differentiation from alternatives. This leaves critical gaps for effective tool use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, meaning none of the 5 parameters have descriptions in the schema. The tool description adds no information about parameters beyond implying a date range (start_date, end_date). It doesn't explain 'code' (stock code? index?), 'limit' (pagination? max rows?), or 'format' (output format options). With low coverage, the description fails to compensate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Performance express report within date range' restates the tool name 'get_performance_express_report' with minimal elaboration. It mentions 'report' and 'date range' but doesn't specify what type of performance data, for which entities (stocks, indices, etc.), or what distinguishes it from sibling tools like get_profit_data or get_operation_data. This is essentially a tautological expansion of the name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. With many sibling tools for financial data (e.g., get_profit_data, get_balance_data, get_historical_k_data), the description offers no context about appropriate use cases, prerequisites, or comparisons. This leaves the agent guessing about tool selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_profit_dataC
Quarterly profitability data.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| year | Yes | ||
| quarter | Yes | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It mentions 'Quarterly profitability data' but doesn't describe how the data is retrieved (e.g., from a database, API), any rate limits, authentication needs, or what the output looks like (e.g., format, structure). This leaves significant gaps in understanding the tool's behavior beyond its basic purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase 'Quarterly profitability data', which is front-loaded and wastes no words. However, this conciseness comes at the cost of completeness, as it omits necessary details for effective tool use.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (5 parameters, 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain parameter meanings, behavioral traits, or output format, making it inadequate for an AI agent to reliably invoke the tool. Sibling tools suggest a financial data context, but the description doesn't leverage this for clarity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It adds no meaning beyond the schema, failing to explain what 'code', 'year', 'quarter', 'limit', or 'format' represent (e.g., stock code, fiscal year, quarter number, result limit, output format). With 5 parameters and no schema descriptions, this is a major gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Quarterly profitability data' states what the tool provides (profitability data) and its temporal scope (quarterly), which is clear but vague. It uses a noun phrase rather than an action verb, and while it distinguishes from siblings like 'get_balance_data' or 'get_cash_flow_data' by focusing on profitability, it doesn't specify how it retrieves or processes this data (e.g., fetching, calculating).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for selecting it over similar tools (e.g., 'get_fina_indicator' or 'get_performance_express_report'), or any exclusions. Usage is implied by the name and description alone, with no explicit instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_recent_trading_rangeC
Return a date range string covering the recent N trading days.
| Name | Required | Description | Default |
|---|---|---|---|
| days | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions returning a 'date range string' but lacks details on format (e.g., 'YYYY-MM-DD to YYYY-MM-DD'), timezone, handling of non-trading days, or error behavior. For a tool with no annotation coverage, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that directly states the tool's function without unnecessary words. It is appropriately sized and front-loaded, making it easy to understand quickly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low schema description coverage (0%), the description is incomplete. It doesn't explain the return format, error handling, or how 'trading days' are defined (e.g., excludes weekends/holidays). For a tool with one parameter and potential complexity in date calculations, more context is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds minimal semantics beyond the input schema. It explains that 'days' parameter relates to 'recent N trading days', but with 0% schema description coverage and only one parameter, this is insufficient to fully compensate. The baseline is 4 for zero parameters, but here there is one parameter with poor coverage, so a 3 is appropriate as it provides some context but not detailed meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Return a date range string covering the recent N trading days.' It specifies the verb ('Return'), resource ('date range string'), and scope ('recent N trading days'). However, it doesn't explicitly differentiate from sibling tools like 'get_last_n_trading_days' or 'get_trade_dates', which appear related to trading date retrieval.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any prerequisites, exclusions, or compare it to sibling tools such as 'get_last_n_trading_days' or 'get_trade_dates', which could serve similar or overlapping functions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_required_reserve_ratio_dataD
Required reserve ratio data.
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| year_type | No | 0 | |
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure but fails to do so. It doesn't indicate whether this is a read-only operation, what permissions might be required, if there are rate limits, what the output format or structure looks like, or any side effects. The description is too vague to provide meaningful behavioral context beyond the implied data retrieval.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise—a single phrase—but this brevity comes at the cost of under-specification rather than efficient communication. While it's front-loaded with the core topic, it lacks the necessary detail to be helpful. The structure is minimal but fails to convey essential information, making it inefficient in practice.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a 5-parameter tool with no annotations, 0% schema description coverage, and no output schema, the description is completely inadequate. It doesn't explain the tool's purpose in detail, provide usage guidelines, disclose behavior, clarify parameters, or describe output. This leaves the agent with insufficient information to effectively select or invoke the tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description provides no information about parameters, while the input schema has 5 parameters with 0% description coverage (only titles like 'Start Date', 'End Date', etc.). This leaves all parameters undocumented in both schema and description. The description doesn't compensate for this gap by explaining what these parameters mean, their expected formats, or how they affect the data retrieval.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'Required reserve ratio data.' is essentially a tautology that restates the tool name with minimal additional information. It indicates the tool retrieves data related to required reserve ratios but lacks a specific verb (e.g., 'retrieve', 'fetch', 'list') and doesn't clarify what kind of data (e.g., historical values, current rates, time series) or distinguish it from sibling tools like get_deposit_rate_data or get_money_supply_data_year, which might involve related financial metrics.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention any context, prerequisites, or exclusions, nor does it reference sibling tools for comparison. This leaves the agent with no information to make an informed choice among the many data retrieval tools available on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_analysisB
提供基于数据的股票分析报告,而非投资建议。
Args:
code: 股票代码,如'sh.600000'
analysis_type: 'fundamental'|'technical'|'comprehensive'
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| analysis_type | No | fundamental |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions the output is '基于数据的股票分析报告' (data-based stock analysis reports), which hints at read-only behavior, but doesn't disclose critical traits like authentication needs, rate limits, response format, or whether it's a real-time or cached analysis. For a tool with no annotations, this leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately concise and structured. It opens with the core purpose, adds a clarifying boundary (not investment advice), and lists parameters with examples. No wasted sentences, though minor formatting issues (extra whitespace) prevent a perfect score.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (analysis generation), lack of annotations, and no output schema, the description is incomplete. It doesn't explain what the analysis report contains, its format, potential limitations, or how it differs from sibling data tools. For a tool that presumably synthesizes data into insights, more context is needed for effective use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds meaningful parameter semantics beyond the schema. The schema has 0% description coverage (no parameter descriptions), but the description explains: 'code: 股票代码,如'sh.600000'' (stock code, e.g., 'sh.600000') and 'analysis_type: 'fundamental'|'technical'|'comprehensive''. This clarifies the code format and analysis_type options, compensating well for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: '提供基于数据的股票分析报告' (provide data-based stock analysis reports). It specifies the resource (stock analysis reports) and distinguishes it from investment advice. However, it doesn't explicitly differentiate from sibling tools like 'get_market_analysis_timeframe' or 'get_stock_basic_info', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides minimal guidance: it clarifies the tool provides analysis reports rather than investment advice, but offers no explicit when-to-use guidance relative to alternatives. With many sibling tools for stock data (e.g., 'get_historical_k_data', 'get_fina_indicator'), there's no indication of when this analysis tool is preferred over raw data tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_basic_infoA
Fetches basic information for a given Chinese A-share stock.
Args:
code: The stock code in Baostock format (e.g., 'sh.600000', 'sz.000001').
fields: Optional list to select specific columns from the available basic info
(e.g., ['code', 'code_name', 'industry', 'listingDate']).
If None or empty, returns all available basic info columns from Baostock.
Returns:
Basic stock information in the requested format.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes | ||
| fields | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral disclosure. It mentions the data source (Baostock) and optional field selection, but doesn't cover important aspects like rate limits, authentication requirements, error conditions, or whether this is a read-only operation. The description doesn't contradict annotations (none exist), but leaves significant behavioral gaps.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It begins with a clear purpose statement, then provides detailed parameter documentation in a readable format, and ends with return information. Every sentence adds value with no redundancy or wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 3-parameter tool with no annotations and no output schema, the description does a good job explaining parameters but leaves gaps in behavioral context. It doesn't describe the return structure beyond 'basic stock information in the requested format,' which is insufficient given the lack of output schema. The description covers the 'what' but not the 'how' of tool behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Given 0% schema description coverage, the description provides excellent parameter semantics. It clearly explains the 'code' parameter format (Baostock format with examples), details the 'fields' parameter behavior (optional list, default returns all columns, with examples), and mentions the return format. This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetches basic information for a given Chinese A-share stock.' It specifies the resource (stock) and action (fetch basic info), distinguishing it from siblings like get_historical_k_data or get_balance_data which fetch different data types. However, it doesn't explicitly differentiate from get_stock_industry or get_stock_analysis which might overlap in scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through the context of fetching 'basic information' for stocks, suggesting it's for fundamental data rather than price or technical analysis. However, it doesn't explicitly state when to use this tool versus alternatives like get_stock_industry or get_fina_indicator, nor does it mention any prerequisites or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_industryC
Get industry classification for a specific stock or all stocks on a date.
| Name | Required | Description | Default |
|---|---|---|---|
| code | No | ||
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden of behavioral disclosure. It states the tool retrieves classification data but doesn't describe the return format, pagination behavior (though 'limit' parameter hints at it), error conditions, or data freshness. For a read operation with zero annotation coverage, this leaves significant gaps in understanding how the tool behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. There's no wasted wording, and it directly addresses what the tool does without unnecessary elaboration. It's appropriately sized for a straightforward data retrieval tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 4 parameters with 0% schema coverage, no annotations, and no output schema, the description is incomplete. It doesn't explain parameter semantics, return values, or behavioral traits. For a tool that could return data for 'all stocks,' more context on output structure or limitations is needed, but the description lacks this.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the schema provides no parameter descriptions. The description mentions 'a specific stock or all stocks on a date,' which loosely relates to the 'code' and 'date' parameters but doesn't explain their formats, defaults, or interactions. It ignores 'limit' and 'format' entirely. The description adds minimal value beyond the schema's structure.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get industry classification for a specific stock or all stocks on a date.' It specifies the verb ('Get'), resource ('industry classification'), and scope ('specific stock or all stocks on a date'). However, it doesn't explicitly differentiate from sibling tools like 'list_industries' or 'get_industry_members', which prevents a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'list_industries' (which might list industries without stock mappings) or 'get_industry_members' (which might list stocks within an industry), nor does it specify prerequisites or exclusions. The agent must infer usage from the purpose alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_suspensionsA
List suspended stocks for a date.
Args:
date: Optional 'YYYY-MM-DD'. If None, uses current date.
limit: Max rows to return. Defaults to 250.
format: Output format: 'markdown' | 'json' | 'csv'. Defaults to 'markdown'.
Returns:
Table of stocks where tradeStatus==0.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses output format options and default behaviors (current date, 250 limit), but lacks details on permissions, rate limits, error handling, or data freshness. It adequately describes core behavior but misses advanced operational context.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Well-structured with clear sections (purpose, args, returns). Every sentence adds value, though the 'Args' and 'Returns' headers are slightly verbose. Efficiently front-loaded with the core purpose first.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description provides solid coverage: clear purpose, full parameter semantics, and return format explanation. It lacks sibling differentiation and some behavioral details, but is largely complete for a read-only query tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description fully compensates by explaining all three parameters: date (optional, format, default logic), limit (purpose, default), and format (options, default). It adds crucial meaning beyond the bare schema, including conditional behavior and enum values.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the specific action ('List suspended stocks') and resource ('stocks'), with precise scope ('for a date'). It distinguishes from siblings by focusing on suspended stocks (tradeStatus==0), unlike other tools that retrieve different financial data types.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context through 'for a date' and the return condition 'tradeStatus==0', but lacks explicit guidance on when to use this tool versus alternatives like 'get_all_stock' or 'get_stock_basic_info'. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sz50_stocksC
SZSE 50 constituents.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It doesn't disclose behavioral traits such as whether this is a read-only operation, if it requires authentication, rate limits, or what the output format looks like. The description is minimal and fails to add meaningful context beyond the tool name.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with a single phrase, which is front-loaded and wastes no words. However, it may be overly terse, bordering on under-specification, but it's structured efficiently without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters with 0% schema coverage, no annotations, no output schema), the description is incomplete. It doesn't explain what the tool returns, how parameters influence results, or behavioral aspects. For a data retrieval tool with multiple parameters, this is inadequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate for undocumented parameters. It provides no information about the three parameters (date, limit, format), their purposes, or how they affect the output. This leaves significant gaps in understanding parameter usage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'SZSE 50 constituents' clearly indicates the resource (SZSE 50 index constituents) but lacks a specific verb. It distinguishes from some siblings like 'get_hs300_stocks' or 'get_zz500_stocks' by specifying which index, but doesn't clarify the action (e.g., retrieve, list, fetch). This makes the purpose somewhat vague but not tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention siblings like 'get_hs300_stocks' for different indices or 'get_index_constituents' for general index data, nor does it specify prerequisites or exclusions. The description alone offers no usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_trade_datesB
Fetch trading dates within a specified range.
Args:
start_date: Optional. Start date in 'YYYY-MM-DD' format. Defaults to 2015-01-01 if None.
end_date: Optional. End date in 'YYYY-MM-DD' format. Defaults to the current date if None.
Returns:
Markdown table with 'is_trading_day' (1=trading, 0=non-trading).
| Name | Required | Description | Default |
|---|---|---|---|
| start_date | No | ||
| end_date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the return format ('Markdown table') and the meaning of 'is_trading_day' values, which is helpful. However, it doesn't mention behavioral aspects like rate limits, authentication needs, or potential errors (e.g., invalid date formats), leaving gaps in understanding how the tool behaves in practice.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured and appropriately sized. It starts with a clear purpose statement, followed by organized sections for arguments and returns, with no redundant information. Every sentence adds value, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (4 parameters, no annotations, no output schema), the description is partially complete. It covers the core functionality and some parameters but misses details on 'limit' and 'format', and lacks behavioral context like error handling. It's adequate for basic use but has clear gaps for reliable agent operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds significant meaning beyond the input schema, which has 0% description coverage. It explains 'start_date' and 'end_date' parameters with format details and defaults, and implies the output structure. However, it doesn't cover 'limit' or 'format' parameters, which are in the schema but undocumented in the description, preventing a perfect score.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Fetch trading dates within a specified range.' It uses a specific verb ('fetch') and identifies the resource ('trading dates'), making the function understandable. However, it doesn't explicitly differentiate from siblings like 'get_last_n_trading_days' or 'is_trading_day', which could cause confusion about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools related to trading dates (e.g., 'get_last_n_trading_days', 'is_trading_day', 'get_month_end_trading_dates'), there is no indication of how this tool differs or when it's preferred, leaving the agent without context for selection.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_zz500_stocksD
CSI 500 constituents.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It fails to describe what the tool does (e.g., returns a list, fetches data), any side effects, authentication needs, rate limits, or output format. The phrase 'CSI 500 constituents' is insufficient, leaving the agent with no understanding of the tool's behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is overly concise to the point of under-specification. While it uses only three words, it lacks essential details, making it inefficient rather than succinct. It is not front-loaded with critical information, failing to convey the tool's core functionality upfront.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (3 parameters, 0% schema coverage, no annotations, no output schema), the description is severely incomplete. It does not explain what the tool returns, how to use parameters, or behavioral aspects, leaving the agent unable to effectively invoke or understand the tool's role among siblings.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate by explaining parameters. It provides no information about the three parameters (date, limit, format), their purposes, or how they affect the output. For example, it does not clarify if 'date' filters constituents by a specific date or what 'format' options are available.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description 'CSI 500 constituents' restates the tool name 'get_zz500_stocks' without specifying the action. It identifies the resource (CSI 500 stocks) but lacks a clear verb (e.g., 'retrieve', 'list', 'fetch'), making the purpose vague. Compared to siblings like 'get_hs300_stocks' or 'get_sz50_stocks', it fails to differentiate beyond the index name.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention sibling tools like 'get_hs300_stocks' for different indices or 'get_index_constituents' for general index data, nor does it specify prerequisites or contexts for usage. The description offers no usage instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
is_trading_dayC
Check if a specific date is a trading day.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool's function but lacks behavioral details such as what constitutes a 'trading day' (e.g., market holidays, weekends), error handling for invalid dates, or response format. This leaves significant gaps for an agent to use it effectively.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, clear sentence with no wasted words. It's front-loaded with the core purpose, making it highly efficient and easy to parse for an agent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, no output schema, and minimal parameter guidance, the description is incomplete. For a tool that checks trading status—which involves domain-specific rules—it should explain more about behavior, input expectations, and output to be fully helpful.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and one required parameter ('date'), the description adds minimal value. It implies the parameter is a date but doesn't specify format (e.g., YYYY-MM-DD), timezone, or valid range. This is insufficient compensation for the schema's lack of documentation.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with a specific verb ('Check') and resource ('trading day'), making it immediately understandable. However, it doesn't explicitly differentiate from siblings like 'get_trade_dates' or 'last_n_trading_days', which reduces it from a perfect score.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With siblings like 'get_trade_dates' (which might list multiple dates) and 'last_n_trading_days' (which focuses on recent dates), the agent has no explicit direction on choosing this specific tool for checking a single date's trading status.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_industriesC
List distinct industries for a given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'List distinct industries' which implies a read-only operation, but doesn't disclose behavioral traits like whether it returns a list, table, or other format; if results are paginated; what happens with null date; or any rate limits. The description is minimal and lacks critical context for a tool with parameters.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose. There is no wasted verbiage or redundancy, making it easy to parse quickly. Every word contributes directly to the tool's intent.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, 0% schema coverage, no output schema, and 2 parameters, the description is incomplete. It lacks details on parameter usage, return format, error conditions, and behavioral context. For a tool that likely returns a list of industries, more guidance is needed to ensure correct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It mentions 'for a given date', which hints at the 'date' parameter's purpose, but doesn't explain the 'format' parameter at all. With 2 parameters and no schema descriptions, the description adds minimal semantic value, failing to clarify what 'date' format is expected or what 'format' controls.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('List distinct industries') and resource ('industries'), with a specific constraint ('for a given date'). It distinguishes from siblings like 'get_industry_members' (which likely lists members of an industry) by focusing on distinct industry names. However, it doesn't explicitly contrast with 'get_stock_industry' (which might get industry for a specific stock), leaving slight ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention sibling tools like 'get_industry_members' or 'get_stock_industry', nor does it specify prerequisites (e.g., whether a date is required for meaningful results). Usage is implied by the date parameter but not explicitly stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
list_tool_constantsB
List valid constants for tool parameters.
Args:
kind: Optional filter: 'frequency' | 'adjust_flag' | 'year_type' | 'index'. If None, show all.
| Name | Required | Description | Default |
|---|---|---|---|
| kind | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions listing constants but doesn't disclose behavioral traits like whether it's read-only, the format of returned data, potential rate limits, or authentication needs. This leaves significant gaps for a tool that likely provides reference data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, with a clear purpose statement followed by parameter details in two sentences. There is no wasted text, making it efficient and easy to parse.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's low complexity (1 parameter, no output schema, no annotations), the description is minimally adequate but incomplete. It covers the purpose and parameter semantics well, but lacks behavioral context and usage guidelines, which are important for a reference tool in a financial data context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage and 1 parameter, the description compensates well by explaining the 'kind' parameter as an optional filter with specific values ('frequency', 'adjust_flag', 'year_type', 'index') and default behavior (show all if None). This adds meaningful semantics beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with the verb 'List' and resource 'valid constants for tool parameters', making it specific and understandable. However, it doesn't explicitly differentiate from sibling tools like 'get_index_constituents' or 'list_industries' that might also list data, though their domains differ.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, such as for parameter validation or data lookup. It mentions an optional filter but doesn't explain scenarios where filtering is beneficial or when to use other tools for similar purposes.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
next_trading_dayC
Get the next trading day after the given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic action without behavioral details. It doesn't disclose what 'trading day' means (e.g., market holidays, weekends), error handling for invalid dates, timezone considerations, or output format. This leaves significant gaps for a tool that likely involves calendar logic and financial market rules.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without fluff. Every word earns its place, making it easy to parse quickly. No structural issues or redundancy are present.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain return values (e.g., date string, object), error cases, or dependencies on market data. For a tool that likely involves non-trivial date logic, this lacks necessary context for reliable agent use.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The schema has 0% description coverage, with one required parameter 'date' undocumented in schema. The description adds minimal semantics by implying 'date' is an input for calculation but doesn't specify format (e.g., YYYY-MM-DD), constraints (e.g., past/future dates), or examples. It fails to compensate for the low schema coverage, leaving parameter meaning vague.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'next trading day', specifying it operates 'after the given date'. It distinguishes from siblings like 'get_last_n_trading_days' or 'previous_trading_day' by focusing on a single forward date. However, it doesn't explicitly differentiate from 'get_trade_dates' or 'is_trading_day', which could provide similar date-related information.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It doesn't mention siblings like 'previous_trading_day' for backward lookups, 'get_trade_dates' for ranges, or 'is_trading_day' for validation. The description implies usage for date advancement but offers no context on prerequisites, exclusions, or comparative scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalize_index_codeC
Normalize common index codes to Baostock format.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions 'normalize' but doesn't disclose behavioral traits like whether this is a read-only transformation, what errors might occur (e.g., invalid codes), or the output format. For a tool with no annotations, this leaves significant gaps in understanding how it behaves.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence with no wasted words. It's front-loaded with the core action and target format, making it easy to parse quickly. This is appropriately concise for a simple transformation tool.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations, no output schema, and low parameter coverage, the description is incomplete. It doesn't explain what 'Baostock format' means, provide examples, or clarify the transformation's scope. For a normalization tool in a financial data context, more detail is needed to ensure correct usage.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 1 parameter with 0% description coverage, and the tool description doesn't add any parameter semantics. It doesn't explain what 'code' should contain (e.g., examples of 'common index codes'), expected formats, or constraints. With low schema coverage, the description fails to compensate, leaving the parameter meaning unclear.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states the tool 'normalize common index codes to Baostock format', which provides a clear verb ('normalize') and resource ('common index codes'), but it's vague about what 'common index codes' specifically refers to and doesn't distinguish from its sibling tool 'normalize_stock_code'. The purpose is understandable but lacks specificity about the domain or input scope.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. It doesn't mention prerequisites, context for 'common index codes', or differentiate from 'normalize_stock_code' (a clear sibling tool for stock codes). Without any usage context, the agent must infer when this tool is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
normalize_stock_codeC
Normalize a stock code to Baostock format.
| Name | Required | Description | Default |
|---|---|---|---|
| code | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It mentions normalization but doesn't disclose what transformations occur (e.g., padding, prefix changes), whether it's idempotent, error handling for invalid codes, or performance characteristics. This leaves significant behavioral gaps for a tool that modifies data.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, zero waste. Every word contributes directly to the tool's purpose without redundancy or fluff. The structure is front-loaded with the core action and target.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a data transformation tool with no annotations, 0% schema coverage, and no output schema, the description is inadequate. It doesn't explain the normalization algorithm, provide examples, or clarify how this integrates with sibling tools that might consume normalized codes.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description must compensate. It only mentions 'stock code' generically without explaining valid input formats (e.g., '600036', '000001.SZ'), expected output examples, or constraints. This adds minimal value beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('normalize') and target resource ('stock code'), specifying the output format ('Baostock format'). However, it doesn't distinguish itself from sibling 'normalize_index_code' which performs similar normalization for index codes, leaving some ambiguity about when to use each.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No explicit guidance on when to use this tool versus alternatives. The description mentions 'Baostock format' but doesn't explain what that means or when normalization is needed versus using raw codes with other tools like 'get_stock_basic_info' or 'get_historical_k_data'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
previous_trading_dayC
Get the previous trading day before the given date.
| Name | Required | Description | Default |
|---|---|---|---|
| date | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden but only states the basic operation. It doesn't disclose behavioral traits such as how holidays/weekends are handled, timezone considerations, error handling for invalid dates, or the return format (e.g., date string, object). This is inadequate for a tool with zero annotation coverage.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, efficient sentence that front-loads the core purpose without unnecessary words. Every part of the sentence contributes directly to understanding the tool's function, making it appropriately sized for its simplicity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the lack of annotations, 0% schema coverage, and no output schema, the description is incomplete. It doesn't explain what 'trading day' means in this context (e.g., market-specific), how edge cases are handled, or what the return value looks like. For a date-calculation tool in a financial context, more contextual information is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, and the tool description doesn't add any parameter semantics. It mentions 'the given date' but doesn't specify the expected format (e.g., YYYY-MM-DD), validation rules, or examples. With one undocumented parameter, the description fails to compensate for the schema gap.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb ('Get') and resource ('previous trading day') with a specific condition ('before the given date'). It distinguishes from siblings like 'get_last_n_trading_days' by focusing on a single previous day, but doesn't explicitly differentiate from 'next_trading_day' or 'is_trading_day' beyond the directional aspect.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'get_last_n_trading_days' for multiple days, 'is_trading_day' for validation, or 'get_trade_dates' for date lists. The description implies usage for date calculation but offers no context about prerequisites, exclusions, or comparison with sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stocksA
Search stocks by code substring on a date.
Args:
keyword: Substring to match in the stock code (e.g., '600', '000001').
date: Optional 'YYYY-MM-DD'. If None, uses current date.
limit: Max rows to return. Defaults to 50.
format: Output format: 'markdown' | 'json' | 'csv'. Defaults to 'markdown'.
Returns:
Matching stock codes with their trading status.
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes | ||
| date | No | ||
| limit | No | ||
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the tool returns 'matching stock codes with their trading status,' which adds some behavioral context, but fails to disclose critical traits like whether this is a read-only operation, potential rate limits, error conditions, or how results are structured (e.g., pagination). For a search tool with zero annotation coverage, this is a significant gap.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is appropriately sized and front-loaded, starting with the core purpose in the first sentence. The structured 'Args' and 'Returns' sections are efficient and zero-waste, with each sentence earning its place by clarifying parameters and output without redundancy.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's moderate complexity (4 parameters, no output schema, no annotations), the description is partially complete. It excels in parameter semantics but lacks behavioral details (e.g., safety, limits) and doesn't fully explain the return values beyond 'matching stock codes with their trading status.' Without annotations or output schema, more context on behavior and results would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The description adds substantial meaning beyond the input schema, which has 0% description coverage. It explains each parameter's purpose (e.g., 'keyword: Substring to match in the stock code'), provides examples ('e.g., '600', '000001''), clarifies defaults ('Defaults to 50'), and enumerates options for 'format' ('markdown' | 'json' | 'csv'). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose with specific verbs ('search stocks') and resources ('by code substring on a date'), distinguishing it from sibling tools that retrieve specific data types (e.g., get_balance_data, get_historical_k_data) rather than performing substring searches. It precisely defines what the tool does without being vague or tautological.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage through its purpose statement ('search stocks by code substring on a date'), suggesting it's for finding stocks matching a keyword. However, it lacks explicit guidance on when to use this tool versus alternatives like get_all_stock or normalize_stock_code, and doesn't mention prerequisites or exclusions, leaving the agent to infer context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
TDQS
Most tools have distinct purposes targeting specific financial data types (e.g., balance sheets, dividends, K-line data), but there is significant overlap in data retrieval patterns. Tools like get_balance_data, get_cash_flow_data, get_profit_data, and get_operation_data all follow the same quarterly data fetch pattern for different metrics, which could cause confusion about which specific financial indicator is needed. However, the clear naming and descriptions help mitigate this overlap.
Tool names follow a highly consistent 'verb_noun' pattern throughout, primarily using 'get_' or 'list_' prefixes (e.g., get_adjust_factor_data, list_industries, search_stocks). Minor deviations like is_trading_day and normalize_stock_code still fit the pattern semantically. This consistency makes the tool set predictable and easy to navigate.
With 41 tools, the count is excessive for a stock data server, leading to bloat and potential overwhelm. Many tools are highly specialized (e.g., get_month_end_trading_dates, get_market_analysis_timeframe) that could be consolidated into broader functions. A more focused set of 15-20 tools would better serve the domain without sacrificing functionality.
The tool set provides comprehensive coverage for Chinese stock market data, including historical prices, financial statements, indices, dividends, trading calendars, and industry classifications. It supports full CRUD-like data retrieval across multiple dimensions (time, frequency, adjustment) and includes utility functions for code normalization and constant listing, leaving no obvious gaps for the stated purpose.
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
China A-share market data for research, backtesting and AI agents via MCP.
Provide access to Chinese stock market data including historical prices, real-time data, news, and…
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
Read-only China A-share data for AI agents: market, limit-up, capital flow and disclosures.
Related MCP Servers
- AlicenseNot gradedqualityDmaintenanceA Model Context Protocol server that enables Claude Desktop to access and analyze Chinese and global financial market data through the AKShare library.54MIT
- AlicenseNot gradedqualityDmaintenanceA server based on Model Context Protocol that enables AI assistants to query and search for stock information using the Tushare API.47MIT
- AlicenseNot gradedqualityBmaintenanceA Model Context Protocol server that provides intelligent stock data assistance through Tushare's financial data API, enabling users to query comprehensive stock information, financial data, and market indices through natural language.49MIT
- FlicenseBqualityDmaintenanceA financial data server that provides real-time and historical data for A-shares, Hong Kong, and US markets using the AkShare library. It enables users to query market quotes, fundamental information, and technical indicators through the Model Context Protocol.144
Appeared in Searches
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/24mlight/a-share-mcp-is-just-i-need'
If you have feedback or need assistance with the MCP directory API, please join our Discord server