vimo-mcp-server
The VIMO MCP server provides comprehensive Vietnamese stock market intelligence and AI-powered financial analysis through 35+ tools.
Stock Discovery & Quotes
Search Vietnamese stocks by ticker or company name (with optional sector filtering)
Get company profiles with latest price, financial ratios, and moat scores
Retrieve real-time quotes (15-min delay via SSI FastConnect) including foreign buy/sell flow and optional 1-minute intraday OHLC bars
Market & Macroeconomic Data
Historical OHLCV data for VNINDEX, VN30, and HNX indices
Daily market snapshot combining 13 data collectors in a single call
Sector rotation heatmaps (hot/cold sectors by daily return)
Vietnam, US, and China macro indicators (GDP, CPI, interest rates, FX, gold, oil)
Foreign investor net buy/sell flows with top 10 net-buy/sell stocks
Geopolitical risk scores (WarWatch, Iran-Hormuz oil risk)
Stock Screening
Screen stocks using 13 built-in strategies: Buffett, Graham, Piotroski, Lynch, O'Neil, CANSLIM, and more
Filter by minimum score thresholds
Technical & Fundamental Analysis
Technical signals: RSI, MACD, Bollinger Bands, moving averages, buy/sell votes
AI-generated technical analysis narratives
Annual financial ratios (ROE, ROA, margins, P/E, P/B) and full financial statements
Altman Z-score and multi-strategy evaluation
Factor importance showing which inputs most influenced AI decisions
Market Intelligence & Validation
AI-synthesized opinions combining moat score, ESG, insider signals, and analyst consensus
Insider trading transactions by executives and major shareholders
Corporate events: dividends, shareholder meetings, personnel changes
Unusual volume detection (>2× average) for institutional/whale activity
Daily news sentiment scores (bullish/bearish/neutral) per stock or market-wide
AI Performance Tracking
AI stock pick win rates, average returns, and Sharpe ratios (forward-test data)
Detailed monthly AI performance reports with per-stock breakdowns
Investment Playbooks (13 categories) Bank interest rate scenarios, real estate strategies, commodity impact (oil/gold/agriculture), money flow patterns, ETF/fund comparisons, Vietnam business dynasty insights, pre-investment due diligence, macroeconomic scenarios, political alpha, trading psychology, sector rotation by market cycle, geopolitical risk strategies, and personal wealth building frameworks.
Integrates Binance as one of over 50 data sources to provide cryptocurrency market data and price information for comprehensive financial analysis.
VIMO Financial Intelligence — MCP Server
🦉 Vietnam's most comprehensive financial data and AI analysis platform, accessible via the Model Context Protocol.
Quick Start
1. Get your API key (free)
Visit vimo.cuthongthai.vn/finance/ai/api-docs → Create key → Copy.
Or use the demo key: vimo_demo_public_readonly_2026 (rate-limited, VN30 only)
2. Connect to Claude Desktop
Add to ~/.claude/claude_desktop_config.json:
{
"mcpServers": {
"vimo": {
"command": "npx",
"args": ["-y", "@vimo.cuthongthai.vn/mcp-server"],
"env": {
"VIMO_API_KEY": "vimo_demo_public_readonly_2026"
}
}
}
}Claude Code:
claude config add-mcp vimo-financial-intel -- env VIMO_API_KEY=vimo_demo_public_readonly_2026 npx -y @vimo.cuthongthai.vn/mcp-serverCursor: Add to ~/.cursor/mcp.json:
{
"mcpServers": {
"vimo": {
"command": "npx",
"args": ["-y", "@vimo.cuthongthai.vn/mcp-server"],
"env": {
"VIMO_API_KEY": "vimo_demo_public_readonly_2026"
}
}
}
}Windsurf / Cline: Add to MCP settings:
{
"command": "npx",
"args": ["-y", "@vimo.cuthongthai.vn/mcp-server"],
"env": { "VIMO_API_KEY": "vimo_demo_public_readonly_2026" }
}3. Ask Claude about Vietnamese stocks
"FPT giá bao nhiêu hôm nay?"
"Phân tích kỹ thuật VCB"
"Sàng lọc cổ phiếu tăng trưởng"
"AI pick win rate tháng này?"
"Best commodity playbook for rising oil?"Related MCP server: VNStock Agent MCP Server
Available Tools (35)
L0: DISCOVER (3)
Tool | Description |
| Search Vietnamese stocks by name or ticker |
| Company profile + latest price + key financial ratios + moat score |
| Real-time price from SSI FastConnect + foreign flow + optional 1-min bars |
L1: CONTEXT (5)
Tool | Description |
| VNINDEX/VN30/HNX30 daily OHLCV history |
| Vietnam + global macro indicators (SBV rates, CPI, GDP, PMI) |
| Foreign investor net buy/sell — top 10 stocks |
| Sector heatmap — hot/cold sectors by daily return |
| WarWatch geopolitical risk score + Iran-Hormuz oil risk |
L2: SCREEN (2)
Tool | Description |
| Stock screener — 13 built-in strategies (growth, value, dividend, etc.) |
| Sector heatmap for rotation timing |
L3: ANALYZE (6)
Tool | Description |
| Daily OHLCV price history for any stock |
| Balance sheet, income statement, cash flow, ratios |
| Technical indicators: RSI, MACD, MA cross, volume |
| Technical analysis + AI narrative for VN stocks |
| Financial statement analysis (ROE, Z-score, 5 strategies) |
| Factor importance breakdown per stock |
L4: VALIDATE (5)
Tool | Description |
| Analyst consensus + AI recommendation |
| Insider trading transactions |
| Dividends, shareholder meetings, rights issues |
| Unusual volume stocks (>2× avg) — institutional signals |
| AI pick win rate and performance metrics |
L5: DECIDE (1)
Tool | Description |
| News sentiment score per stock — bullish/bearish/neutral |
L8: LEARN — Investment Playbooks (13)
Tool | Description |
| Interest rate scenario strategies |
| Real estate investment playbooks |
| Commodity impact analysis |
| Money flow (foreign, institutional, retail) |
| ETF and mutual fund comparison |
| Business dynasty analysis |
| Pre-investment due diligence |
| Macroeconomic scenario strategies |
| Political alpha (policy impact) |
| Trading psychology |
| Sector rotation by market cycle |
| Geopolitical risk strategies |
| Personal wealth building |
Security
🔒 API key required — server refuses to start without valid
VIMO_API_KEY🔑 Key format validation — must match
vimo_[a-zA-Z0-9]{32+}orvimo_demo*⏱️ 30s request timeout — prevents hanging connections
🛡️ 12-layer defense on server side (rate limiting, input sanitization, canary detection)
🧹 Input sanitized — symbols and categories validated before sending
Data Coverage
~2,000 VN stocks (HOSE, HNX, UPCOM)
50+ data sources (SBV, GSO, SSI FastConnect, FMP, Yahoo, Binance)
Real-time prices via SSI FastConnect (15-min delay during market hours)
Daily updates (6:00 AM ICT) for fundamentals, signals, and AI picks
Rate Limits
Tier | Calls/day | Calls/min | Price |
Demo | 50 | 3 | Free |
Free | 100 | 5 | $0/mo |
Developer | 1,000 | 10 | $19/mo |
Pro | 3,000 | 20 | $49/mo |
Enterprise | Unlimited | 60 | $299/mo |
Get your API key at vimo.cuthongthai.vn/finance/ai/api-docs
Environment Variables
Variable | Required | Default | Description |
| Yes | — | Your VIMO API key |
| No |
| API base URL |
Also Available
REST API:
GET https://vimo.cuthongthai.vn/api/mcp/realtime-quote?symbol=FPT(+x-api-keyheader)MCP manifest:
https://vimo.cuthongthai.vn/api/mcp/manifest.json(35 tools)Discovery:
/.well-known/mcp.json,/llms.txtLLM info:
https://vimo.cuthongthai.vn/llms.txt
License
MIT — © CuThongThai 2026
Available Tools
35 toolsget_ai_performanceARead-onlyIdempotent
Get AI stock pick performance metrics — win rate, average return, Sharpe ratio. Forward-test data (not backtest). Hiệu suất AI chọn cổ phiếu — tỷ lệ thắng, lợi nhuận trung bình.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds behavioral context by specifying that the data is forward-test (not backtest), which informs the agent about the nature of the metrics. No contradictions with annotations.
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: two sentences (plus Vietnamese translation) that front-load the purpose and key metrics. Every word adds value, with no wasted space.
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 zero parameters and no output schema, the description adequately covers the tool's return value (specific performance metrics) and data type (forward-test). It could mention update frequency or time range, but this is not critical given the sibling tool for reports likely provides more detail.
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 no parameters, so the description carries the full burden of explaining what the tool returns. It lists specific metrics (win rate, average return, Sharpe ratio) and clarifies the data type (forward-test), adding meaning beyond the empty 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 verb 'Get' and the resource 'AI stock pick performance metrics', listing specific metrics (win rate, average return, Sharpe ratio). It distinguishes from the sibling 'get_ai_performance_reports' by implying this is a summary vs. detailed reports, and clarifies it's forward-test data, not backtest.
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 explicitly notes 'Forward-test data (not backtest)', guiding agents on when to use this tool for real performance metrics vs. backtest data. However, it does not explicitly mention alternatives like 'get_ai_performance_reports' for more detailed reports, though the context and naming suggest differentiation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ai_performance_reportsBRead-onlyIdempotent
Get detailed monthly AI performance reports with per-stock breakdown. Báo cáo hiệu suất AI picks hàng tháng chi tiết.
| Name | Required | Description | Default |
|---|---|---|---|
| month | No | Month in YYYY-MM format, e.g. 2026-03 |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only and idempotent. The description adds content details (monthly, per-stock breakdown) but does not disclose other behavioral traits like auth requirements or output format.
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: two short sentences (English and Vietnamese) that front-load the core action without unnecessary detail.
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 simplicity (one parameter, no output schema, safety annotations), the description provides sufficient context for basic usage. However, it could clarify the relationship with 'get_ai_performance'.
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 coverage is 100% with a clear parameter description. The tool description implies the 'month' parameter but adds no additional semantic value beyond the schema's explanation.
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 retrieves 'detailed monthly AI performance reports with per-stock breakdown', specifying verb and resource. However, it does not differentiate from the sibling tool 'get_ai_performance', which could cause 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?
No explicit guidance on when to use this tool vs alternatives like 'get_ai_performance' or other report tools. The description lacks context for usage decisions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bank_rate_playbooksARead-onlyIdempotent
Investment playbooks based on bank interest rate scenarios in Vietnam. Chiến lược đầu tư theo kịch bản lãi suất.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds Vietnam and bank rate context but does not disclose additional behavioral traits such as data freshness, prerequisites, or limitations. With annotations present, the description adds marginal value.
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 very concise, with two short sentences front-loaded with relevant information. It avoids fluff, but could include more useful details without significantly increasing length.
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 simplicity and the presence of annotations, the description is minimally adequate. However, it lacks details on expected output format, parameter usage hints, and when to select this tool over similar siblings. It leaves gaps for an agent to fill.
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 100%, so parameters are already documented. The description does not add any meaning beyond the schema, such as acceptable values for 'category' or behavior defaults. Baseline is 3, and no extra information is provided.
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 retrieves investment playbooks based on bank interest rate scenarios in Vietnam. It uses a specific verb 'get' and resource 'playbooks' with a distinct context, differentiating it from sibling tools like get_bds_playbooks or get_commodity_playbooks.
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 for bank interest rate scenarios but provides no explicit guidance on when to use this tool versus alternatives, nor any when-not-to-use conditions. The agent must infer from context, lacking direct recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bctc_summaryARead-onlyIdempotent
Get financial statement (BCTC) analysis for a Vietnamese stock. Includes ROE, ROA, debt ratios, Altman Z-score. Supports 5 strategies: Buffett, Graham, Lynch, O'Neil, Piotroski. Phân tích báo cáo tài chính cổ phiếu Việt Nam.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT, VNM, VCB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. Description adds behavioral context by specifying computed metrics (ROE, ROA, etc.) and that it supports multiple analysis strategies. No contradiction with annotations. Description enriches transparency beyond annotations.
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?
Description is concise: two English sentences and one Vietnamese translation. Front-loaded with main function. Each sentence adds value. Could be slightly more compact by combining, but no 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?
Covers main outputs and strategies, but lacks explanation of how strategies are invoked (parameter only has symbol); no mention of return format or that it may return all strategies. With no output schema, more detail on results would be helpful. 'BCTC' may be ambiguous without full name in English.
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 coverage is 100% with parameter 'symbol' described as 'Stock ticker, e.g. FPT, VNM, VCB'. Description adds context that it is for Vietnamese stocks, but does not provide additional parameter details beyond schema. Baseline 3 justified.
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?
Description clearly states it retrieves financial statement analysis for a Vietnamese stock, listing specific metrics (ROE, ROA, debt ratios, Altman Z-score) and strategies (Buffett, Graham, Lynch, O'Neil, Piotroski). Distinct from siblings like 'get_financials' which likely returns raw data, and 'get_stock_info' which is general info. Verb 'Get' and resource 'BCTC analysis' are specific.
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 siblings such as 'get_financials', 'get_technical_signals', or 'screen_stocks'. Does not state prerequisites, context, or exclusions. An agent cannot determine from description alone when this is the appropriate choice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_bds_playbooksARead-onlyIdempotent
Real estate investment playbooks for Vietnam — pricing, location, financing. Chiến lược đầu tư bất động sản.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds no behavioral context beyond the topic (pricing, location, financing), which is about content, not 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?
Two sentences (English and Vietnamese), front-loaded with core purpose. No fluff; every sentence earns its place.
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 simple tool with only two optional params, no output schema, and good annotations, the description adequately conveys its purpose. It could mention filtering or result limits explicitly.
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 coverage is 100% with descriptions for both parameters (category, limit). The description does not elaborate on parameters further, so it meets the baseline but adds no extra value.
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 it provides real estate investment playbooks for Vietnam, covering pricing, location, and financing. This distinguishes it among many sibling playbook tools (e.g., get_bank_rate_playbooks, get_commodity_playbooks).
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 implies use for real estate-related queries, but does not explain when not to use it or point to sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_commodity_playbooksARead-onlyIdempotent
Commodity investment playbooks — oil, gold, agricultural impact on VN market. Chiến lược hàng hoá.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare the tool as read-only, non-destructive, and idempotent. The description adds market focus (VN) and commodity types but no additional behavioral constraints beyond what annotations provide.
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 two sentences, front-loaded with key information, and no redundant text. The Vietnamese phrase adds minor redundancy but is short.
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 low complexity (2 optional params, no output schema), the description provides sufficient context about the tool's purpose and scope. It lacks details on return format or pagination but is adequate for a playbook retrieval 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 100%, so the schema already documents both parameters. The description does not add meaning beyond 'category' and 'limit' filter, thus baseline score of 3 is appropriate.
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 it provides commodity investment playbooks (oil, gold, agricultural) and their impact on the VN market, making the resource and scope specific. It distinguishes from sibling tools like get_bank_rate_playbooks or get_ai_performance.
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 for commodity-related investment strategies in the Vietnamese market but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_corporate_eventsARead-onlyIdempotent
Corporate events: personnel changes, shareholder meetings (ĐHCĐ), dividends. Sự kiện doanh nghiệp: nhân sự, ĐHCĐ.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Stock ticker (optional, omit for all) | |
| type | No | Event type: personnel, shareholder |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds no additional behavioral traits beyond stating the events covered. No contradiction with annotations.
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 two lines covering both English and Vietnamese. Every word adds value, no filler.
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 simple tool with two optional parameters and no output schema, the description adequately conveys the purpose and data. It could mention that dividends are a supported event type not in the schema's example, but overall sufficient.
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?
Input schema covers both parameters with descriptions (100% coverage). The description adds value by listing specific event types like dividends, which are not fully enumerated in the schema's type parameter description.
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 explicitly states the tool handles corporate events such as personnel changes, shareholder meetings, and dividends. It clearly distinguishes itself from siblings like get_insider_activity or get_market_snapshot by focusing on these specific event 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 provides examples of event types but does not specify when to use this tool versus alternatives. No exclusion criteria or context for filtering by symbol or type beyond what is in the schema.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_dong_tien_playbooksBRead-onlyIdempotent
Money flow analysis — foreign flow, institutional, retail patterns. Phân tích dòng tiền.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds no behavioral details beyond the general topic; it does not disclose rate limits, authentication needs, or the fact that it returns playbooks. With annotations present, a score of 3 is appropriate as it neither adds nor contradicts.
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 very concise with two lines, front-loading English then Vietnamese. No unnecessary words, but the Vietnamese is redundant. It could be slightly improved by stating it returns playbooks, but overall it is efficiently short.
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 output schema, the description does not explain what a playbook is or the return format. However, the tool is simple (two optional params, low complexity), so the description is minimally adequate. It would benefit from mentioning the structure of returned playbooks.
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 coverage is 100% with both 'category' and 'limit' having descriptive comments. The description does not elaborate on these parameters or add meaning beyond the schema. Baseline is 3 due to high 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 handles money flow analysis (foreign, institutional, retail) and includes a Vietnamese translation for context. It distinguishes from siblings like 'get_foreign_flow' by focusing on playbooks, though it could be more explicit that it returns playbooks rather than performing analysis.
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 such as 'get_foreign_flow' or other playbook tools. There is no mention of prerequisites, exclusions, or scenarios where this tool is preferred.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_factor_importanceARead-onlyIdempotent
Get factor importance breakdown for a stock — shows which data factors (technical, fundamental, macro, sentiment, etc.) most influenced the AI pick decision. Phân tích tầm quan trọng của từng yếu tố ảnh hưởng đến quyết định AI.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT, VNM, VCB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds that it shows factor importance, which is consistent but does not disclose additional behavioral traits like rate limits or response size.
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 concise with no wasted words, though the inclusion of a Vietnamese translation adds some redundancy. The key information is front-loaded in English.
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 simple one-parameter schema and no output schema, the description provides sufficient context for a stock factor importance tool. It covers the purpose and scope adequately.
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 single parameter 'symbol' is fully described in the input schema with examples. The description does not add meaning beyond what the schema provides, so baseline score of 3 is appropriate.
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 ('Get factor importance breakdown') and the resource ('a stock'), and specifies the content (which data factors influenced AI decision). This distinguishes it from sibling tools like get_technical_signals or get_news_sentiment.
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 when to use it (when needing factor importance for a stock) but does not provide explicit guidance on alternatives or scenarios where it should not be used. No 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.
get_financialsARead-onlyIdempotent
Annual financial ratios: ROE, ROA, margins, P/E, P/B for a Vietnamese stock. Chỉ số tài chính hàng năm.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. VCB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint and idempotentHint, so the tool's safe, non-destructive behavior is known. The description adds no further behavioral traits beyond the 'Vietnamese stock' context. It does not mention rate limits, authentication needs, or what happens if the symbol is invalid.
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: one English sentence followed by a Vietnamese translation. Every word is meaningful and front-loaded with the key ratios. No redundant or extraneous content.
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 low complexity (1 parameter, no output schema), the description covers the main purpose and lists example outputs. However, it does not specify the number of years returned, whether data is trailing or fiscal year, or any time range flexibility. With no output schema, additional detail on return structure 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?
Schema coverage is 100% for the single parameter 'symbol', which is already described as 'Stock ticker'. The description adds the context that it applies to Vietnamese stocks, providing marginal semantic value. However, it does not elaborate on format or special characters beyond what the schema states.
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 provides annual financial ratios (ROE, ROA, margins, P/E, P/B) specifically for Vietnamese stocks. It uses a specific verb-resource combination and lists example ratios, distinguishing it from sibling tools like get_stock_info or get_price_history.
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 the tool is used to obtain annual financial ratios for a Vietnamese stock, but it does not explicitly state when to use it versus alternatives such as get_stock_info or get_technical_signals. There is no guidance on when not to use it or any prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_foreign_flowARead-onlyIdempotent
Foreign investor net buy/sell flow for Vietnamese stock market (HOSE). Includes top 10 net-buy and net-sell stocks by foreign investors, total buy/sell value, and foreign % of market volume. Dòng tiền khối ngoại mua/bán ròng.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations (readOnlyHint, idempotentHint) already declare safety. Description adds what data is included but lacks details on data freshness, coverage limitations, or behavior with no 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?
Two English sentences and one Vietnamese sentence, front-loading purpose. Every sentence is informative 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 output schema, the description adequately explains return values (top 10 lists, totals, foreign %). However, it lacks temporal context (e.g., current day vs. historical) and potential edge cases.
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?
No parameters, so baseline is 4. Description adds no parameter info, but none needed.
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 returns foreign investor net buy/sell flow for HOSE, listing specific components (top 10 net-buy/sell stocks, total value, foreign %). This verb+resource combination is well-defined and distinct from siblings.
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_market_snapshot or get_sector_rotation. The description only states what it does, not when to prefer it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_fund_playbooksARead-onlyIdempotent
Investment fund comparison — ETFs, mutual funds, DCDS. So sánh quỹ đầu tư.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, and idempotentHint=true, indicating a safe, non-destructive, idempotent operation. The description adds no additional behavioral context beyond what annotations state, such as pagination, authentication, or rate limits.
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 concise with two sentences, but the Vietnamese phrase appears redundant for an English-language agent. However, there is no wasted text, and the purpose is front-loaded.
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?
With no output schema, the description should hint at the return format. It mentions 'comparison' but does not describe the structure (e.g., playbook names, metrics). Given 2 parameters and simple filter, it is moderately complete but lacks output details.
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 coverage is 100% with descriptions for both parameters (category and limit). The description adds no extra meaning to these parameters, such as valid categories or default behavior, so it does not improve upon the schema's clarity.
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 is for investment fund comparison, listing specific fund types (ETFs, mutual funds, DCDS). This verb+resource combination is distinct from sibling playbook tools focused on other asset classes (e.g., commodities, banks).
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 use for fund comparison but does not explicitly state when to use this tool versus other playbook tools (e.g., get_commodity_playbooks). No alternatives are mentioned, and there is no guidance on exceptions or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_gia_toc_playbooksBRead-onlyIdempotent
Vietnam business dynasty analysis — family-owned conglomerate insights. Phân tích gia tộc kinh doanh.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true, indicating a safe, idempotent read operation. The description adds no behavioral context beyond the topic (e.g., no mention of data freshness, pagination, or authorization). With annotations carrying the burden, a score of 3 is appropriate.
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 short (two sentences) and front-loaded with the English purpose. The Vietnamese translation is redundant but not detrimental. It is concise and to the point, though a single clear sentence would be more efficient.
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 simple parameter set (2 optional, no required) and lack of output schema, the description is adequate but lacks detail about what the playbooks contain, filtering options, or result format. Annotations cover safety. Could be improved by mentioning typical category values or that results are a list of strings/objects.
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 coverage is 100% with both parameters documented (category filter, limit). The description does not add meaning beyond the schema—it only provides domain context. Per guidelines, baseline is 3 when schema coverage is high.
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?
Clearly states the tool retrieves playbooks related to Vietnam business dynasties (family-owned conglomerates). The description uses specific terms ('gia tộc kinh doanh') and differentiates from sibling tools like get_bank_rate_playbooks or get_bds_playbooks, which focus on other categories.
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 the many sibling playbook tools (e.g., get_bank_rate_playbooks, get_macro_playbooks). There is no mention of prerequisites, context, or exclusions, leaving the agent to infer usage solely from the name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_index_historyARead-onlyIdempotent
VNINDEX/VN30/HNX historical closing prices + market breadth. Lịch sử chỉ số VNINDEX/VN30/HNX.
| Name | Required | Description | Default |
|---|---|---|---|
| index | No | Index: VNINDEX, VN30, or HNX | |
| days | No | Number of trading days (max 365) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, making the safety profile clear. The description adds that the tool returns historical closing prices and market breadth, but does not detail other behavioral traits (e.g., data frequency, default days). No contradiction with annotations.
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 two sentences (English + Vietnamese) and front-loaded with key information. It is concise with no wasted words. The bilingual redundancy is minor.
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 output schema and two simple parameters, the description is adequate but lacks detail on what 'market breadth' includes or the response format. A bit more context would help disambiguate from 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?
Input schema has 100% coverage with descriptions for both parameters (index values and days max 365). The description adds minimal value beyond the schema, essentially restating the indices. Baseline 3 is appropriate.
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 it provides historical closing prices and market breadth for VNINDEX, VN30, and HNX indices. It uses specific verbs and resources ('historical closing prices + market breadth'), distinguishing it from siblings like get_price_history (stock-level) and get_market_snapshot (current snapshot).
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 for index historical data but offers no explicit guidance on when to use this tool versus alternatives (e.g., get_price_history for stocks). No exclusions or conditions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_insider_activityBRead-onlyIdempotent
Insider trading transactions — buy/sell by executives and major shareholders. Giao dịch nội bộ cổ đông lớn.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. HPG | |
| days | No | Lookback days (default: 90) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false. The description adds the context of 'insider trading transactions' but does not disclose additional behavioral traits like pagination or data freshness beyond what annotations provide.
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?
Two short sentences, front-loaded in English, zero waste. Efficient and clear.
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 simple data retrieval tool with 2 parameters, rich annotations, and no output schema, the description is adequate but could benefit from indicating typical return fields (e.g., transaction date, volume) to compensate for missing output schema.
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 coverage is 100% with descriptions for both 'symbol' and 'days'. The description does not add extra meaning to the parameters beyond what the schema already provides, resulting in 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 returns insider trading transactions (buy/sell) by executives and major shareholders. It is distinct from sibling tools like get_whale_activity, but does not explicitly differentiate itself.
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_whale_activity or get_news_sentiment. The description lacks usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_investment_checklistsBRead-onlyIdempotent
Pre-investment due diligence checklists for Vietnamese stocks. Danh sách kiểm tra đầu tư.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent, non-destructive behavior. The description adds no additional behavioral context (e.g., pagination, result format). It meets the minimum but does not enhance beyond annotations.
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 brief (two sentences) and front-loaded with the primary purpose. The inclusion of a Vietnamese translation is somewhat redundant but does not significantly harm 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?
The description lacks details about return values (no output schema) and does not elaborate on the scope or depth of the checklists. Given the number of sibling tools, more context is needed for effective selection.
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 100%, and the description does not provide any extra meaning for parameters beyond what is in the schema. Baseline score applies.
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 provides pre-investment due diligence checklists for Vietnamese stocks, which is a specific verb+resource. While it distinguishes from siblings by being checklist-specific, it does not explicitly contrast with alternatives.
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 given on when to use this tool versus the many sibling tools (e.g., get_financials, get_market_snapshot). The description does not mention prerequisites or appropriate contexts.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_macro_playbooksARead-onlyIdempotent
Macroeconomic scenario playbooks — GDP, CPI, FDI impact on stocks. Chiến lược vĩ mô.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=true. The description adds the specific macroeconomic domains (GDP, CPI, FDI) but does not disclose additional behavioral traits such as pagination or data freshness.
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 very short and front-loaded with the core purpose. The inclusion of a Vietnamese phrase adds minimal value and slightly reduces conciseness for an English-speaking 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?
For a read-only tool with two simple parameters and no output schema, the description is adequate. It states what the tool returns, though it could be more specific about the format or content of the playbooks.
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 coverage is 100%, with both parameters (category, limit) having full descriptions. The description implies category may filter by macro topics but does not add explicit meaning beyond the 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 specifies the tool returns macroeconomic scenario playbooks covering GDP, CPI, FDI impact on stocks, clearly distinguishing it from sibling playbook tools like get_bank_rate_playbooks or get_commodity_playbooks.
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 compared to other playbook tools. The description does not mention exclusions or alternatives, leaving the agent to infer based on the topic alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_macro_snapshotARead-onlyIdempotent
Vietnam + US + China macro indicators: GDP, CPI, interest rates, FX, gold, oil. Chỉ số vĩ mô Việt Nam, Mỹ, Trung Quốc.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter: vietnam, us, china, commodities |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, and idempotentHint. The description adds useful context about the data coverage (countries and indicators) without contradicting annotations. It does not detail behavioral traits like filtering defaults or data freshness, but the annotations cover safety and idempotency.
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 short and front-loaded with the key purpose. However, it includes a redundant Vietnamese translation which adds length without value for an English-speaking agent. This slight inefficiency prevents 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 simplicity (one optional param, no output schema), the description adequately covers the what (indicators) and where (countries). It lacks details on output format or whether values are current/historical, but for a snapshot tool, this is sufficient.
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 100% schema coverage, the input schema already describes the single parameter 'category' as 'Filter: vietnam, us, china, commodities.' The description does not add additional semantics beyond listing the indicators. Baseline 3 is appropriate.
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 'Vietnam + US + China macro indicators: GDP, CPI, interest rates, FX, gold, oil.' It specifies the resource and scope, distinguishing it from siblings like get_macro_playbooks or get_commodity_playbooks which likely provide analysis rather than raw snapshots.
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 for fetching macro data, but provides no explicit guidance on when to use this tool versus alternatives (e.g., get_macro_playbooks, get_commodity_playbooks). No exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_market_snapshotARead-onlyIdempotent
Complete daily market intelligence snapshot — combines all 13 data collectors: market, macro, sentiment, risk, commodity, top stocks, insider, moat, foreign flow, whale, sector rotation, ETF, dividend. Single call for comprehensive overview. Bức tranh toàn cảnh thị trường.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide safety profile (readOnly, idempotent, non-destructive). The description adds value by clarifying it's a daily snapshot that combines all data collectors, which informs the agent about data freshness and scope. No contradictions.
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?
3 sentences, front-loaded with purpose. The Vietnamese translation is slightly redundant but does not harm conciseness. Every sentence contributes information.
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 output schema, the description sufficiently explains the tool's output by listing the 13 data collectors. It mentions 'daily snapshot' for timing context. Could be improved by hinting at return format, but overall complete for a zero-parameter tool with good annotations.
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?
Input schema has 0 parameters with 100% coverage, so baseline is 4. The description adds context about what data is included (the 13 collectors), which helps the agent understand the output without needing parameter details.
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 'Complete daily market intelligence snapshot' and lists all 13 data collectors, distinguishing it from sibling tools that focus on individual aspects like get_macro_snapshot or get_sector_rotation.
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 for a broad overview ('single call for comprehensive overview') but does not provide explicit guidance on when to use this vs. individual collectors or alternative snapshots. No exclusions or alternatives are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_news_sentimentARead-onlyIdempotent
Daily news sentiment scores per ticker — bullish/bearish/neutral %, top events. AI-powered from Perplexity. Sentiment tin tức hàng ngày.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | No | Stock ticker (optional, omit for market-wide) | |
| days | No | Lookback days (default: 7) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description adds context that the data is 'AI-powered from Perplexity' and 'daily', but lacks details on behavioral traits such as rate limits, data freshness guarantees, or cost implications. Annotations already indicate read-only and idempotent, so the description provides minimal extra behavioral insight.
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 concise with the key information front-loaded. The first sentence captures the core function. The inclusion of a redundant Vietnamese phrase slightly reduces conciseness but does not significantly hinder understanding.
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 an output schema, the description partially covers the return values (bullish/bearish/neutral % and top events) but does not describe the exact output structure. For a tool with two optional parameters and no output schema, more detail on the response format 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 input schema already fully describes the two parameters (symbol and days) with clear descriptions. The description does not add any additional meaning or usage guidance beyond the schema, so it meets the baseline with 100% 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 it returns daily news sentiment scores per ticker, including bullish/bearish/neutral percentages and top events. It also mentions AI-powered from Perplexity, distinguishing it from sibling tools like get_opinion or get_market_snapshot which serve different purposes.
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 for obtaining news sentiment for a ticker or market-wide, but it does not explicitly state when to use it versus alternatives or provide exclusion criteria. No guidance on 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_opinionBRead-onlyIdempotent
AI-synthesized opinion: moat score + ESG score + insider signal + analyst consensus for a stock. Ý kiến tổng hợp AI: moat, ESG, nội bộ, chuyên gia.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. VCB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and destructiveHint=false, so the safety profile is clear. The description adds the list of opinion components, but no further behavioral details (e.g., data freshness, error handling).
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?
Two short sentences, but one is a duplicate translation. Front-loaded with useful information, yet could be more concise by removing the Vietnamese line.
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 simple one-parameter tool with good annotations, the description covers the purpose but lacks detail on the output format or any special behavior. Could be more complete about what the returned opinion looks like.
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 coverage is 100% with clear parameter description. Description does not add any additional semantics beyond indicating the ticker symbol, so baseline score applies.
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?
Description clearly states the tool retrieves an AI-synthesized opinion on a stock, listing specific components (moat, ESG, insider signal, analyst consensus). It distinguishes itself from sibling tools like get_ai_performance or get_financials, which cover different aspects.
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 vs alternatives, or any prerequisites or exclusions. The description only states what it does, not when to invoke it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_political_playbooksARead-onlyIdempotent
Political alpha — policy events, government personnel changes impact. Alpha chính trị.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint. Description adds that the tool covers 'impact' of events, but provides no further behavioral details (e.g., pagination, rate limits). Adequate given 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?
Two short sentences (one English, one Vietnamese). Minimal waste, though the Vietnamese may be redundant for English users. Information is front-loaded.
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 low complexity, no output schema, and sibling tools that likely share a structure, the description provides domain context but omits details on return format or playbook contents. Adequate but minimal.
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 100%, so the schema already describes both 'category' and 'limit' parameters. Description does not add any additional meaning beyond the schema, meeting the baseline.
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?
Description clearly identifies the tool as retrieving political playbooks with a focus on policy events and government personnel changes. This distinguishes it from sibling tools like get_bank_rate_playbooks or get_commodity_playbooks.
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?
Context is clear: use for political alpha. No explicit exclusions or alternatives, but the domain specificity helps an agent decide when to select 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_price_historyBRead-onlyIdempotent
OHLCV price history for individual Vietnamese stocks. Lịch sử giá OHLCV cổ phiếu.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT | |
| days | No | Number of trading days (max 365) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds only the scope (Vietnamese stocks) but no additional behavioral traits such as rate limits, data update frequency, or behavior when 'days' exceeds 365. With annotations carrying the safety profile, the description contributes little.
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: one sentence in English and one in Vietnamese, both front-loaded with the essential purpose. No 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?
The description implies the return format (OHLCV) which partially compensates for the missing output schema. However, it omits details like data source, maximum date range (though schema specifies max 365 days), or handling of missing data. Still, it provides adequate context for a simple history 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 coverage is 100% with both 'symbol' and 'days' described clearly in the schema. The description does not add any parameter-specific meaning beyond what the schema already provides (e.g., format of symbol, what 'days' counts). Baseline is 3 due to high coverage, but lack of added value drops the 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?
Description clearly states 'OHLCV price history for individual Vietnamese stocks,' specifying the verb (get implied), resource (price history), and scope (individual Vietnamese stocks). This differentiates it from siblings like 'get_index_history' (index-level) and 'get_realtime_quote' (realtime vs historical).
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. It does not mention scenarios where other tools like 'get_index_history' or 'get_realtime_quote' might be more appropriate, nor provides any when-not-to-use advice.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_psychology_playbooksBRead-onlyIdempotent
Trading psychology — behavioral finance, fear/greed management. Tâm lý giao dịch.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds no additional behavioral context (e.g., return characteristics, rate limits). It is consistent but not enriched.
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?
Description is short—two sentences (English then Vietnamese). It is front-loaded with the key concept. The Vietnamese may be redundant for English-only agents but does not add significant clutter.
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 simplicity (2 optional params, no output schema), the description minimally explains the tool's purpose. It does not describe the return format or what a 'playbook' entails, which could be helpful for new agents.
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?
Input schema has 100% coverage for both parameters (category, limit) with descriptions. The tool description does not add any additional meaning or examples beyond what the schema already provides.
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?
Name and description clearly indicate the tool retrieves playbooks related to trading psychology, behavioral finance, and fear/greed management. It is well differentiated from sibling playbook tools (e.g., get_macro_playbooks) by the 'psychology' category.
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 playbook tools, explicit usage context or exclusion conditions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_realtime_quoteARead-onlyIdempotent
Latest stock price from SSI FastConnect — real-time during market hours (15min delay). Includes foreign buy/sell flow and optional 1-min intraday OHLC bars. Giá cổ phiếu real-time từ SSI.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT, VCB | |
| intraday | No | Include 1-min OHLC bars (default: false) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate read-only, idempotent behavior. Description adds real-time with 15min delay, foreign flow, and intraday OHLC option, enriching behavioral context without contradiction.
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?
Two concise English sentences plus a Vietnamese translation, front-loaded with key information, no 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?
Given no output schema, the description covers main outputs (price, foreign flow, intraday bars) adequately for a simple quote 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 covers 100% with descriptions matching the description text; no additional parameter meaning is provided beyond what the schema already states.
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 returns the latest stock price from SSI FastConnect, distinguishing it from historical or market-wide tools among siblings.
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?
Usage context is implied (real-time vs historical) but no explicit when/when-not or alternative tool names are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_rotationARead-onlyIdempotent
Sector rotation heatmap — average daily return, total volume, and stock count per industry group. Identifies hottest and coldest sectors. Luân chuyển dòng tiền giữa các ngành.
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, idempotentHint=true. The description adds that it returns a heatmap with avg return, volume, and stock count, but does not disclose update frequency, time range, or whether it's real-time or historical. It does not contradict annotations.
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?
Three very short sentences: first defines the output, second states the purpose, third is a Vietnamese translation. No wasted words; front-loaded with key information.
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 output schema and no parameters, the description covers the return structure (heatmap with three metrics) and purpose. However, it could be more complete by specifying time range (e.g., daily, current) or frequency. Still adequate for a read-only 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 input schema has no parameters (empty), so description coverage is irrelevant. The description adds meaning beyond the schema by describing the output structure (three metrics, identifies hot/cold sectors). The information provided compensates for missing output 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 provides a 'sector rotation heatmap' with specific metrics (average daily return, total volume, stock count) and identifies hottest/coldest sectors. It distinguishes from siblings like get_sector_rotation_playbooks and get_market_snapshot.
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 for identifying hot/cold sectors but gives no explicit guidance on when to use this vs. alternatives (e.g., get_sector_rotation_playbooks, get_market_snapshot). No exclusions or cautions are provided.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_sector_rotation_playbooksBRead-onlyIdempotent
Sector rotation by market cycle — identify outperforming VN sectors. Luân chuyển ngành.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already show readOnlyHint and idempotentHint, so the description adds modest value by mentioning 'by market cycle' and 'outperforming VN sectors'. However, it does not detail return format, pagination, or other behavioral traits beyond the annotations.
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 very short and front-loaded, with only two sentences. The Vietnamese translation is slightly redundant but does not significantly harm 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 tool's simplicity (2 parameters, read-only), the description is adequate but does not explain what a playbook is or what the output contains. For a user unfamiliar with 'playbooks', more context would be 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?
Schema description coverage is 100%, so the schema already documents both parameters. The description does not add any additional meaning or context to the parameters beyond what is in the input 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 identifies outperforming VN sectors based on market cycle, using a specific verb-resource combination. It distinguishes from sibling playbook tools by focusing on sector rotation and market cycles, but the Vietnamese translation adds redundancy.
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 other playbook tools or under what conditions. The description lacks any when-to-use or when-not-to-use instructions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_infoARead-onlyIdempotent
Company profile + latest price + key financial ratios + moat score — all in 1 call. Thông tin tổng quan cổ phiếu: giá, tài chính, moat.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT, VCB, HPG |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true and idempotentHint=true, so the safety profile is clear. The description adds no additional behavioral traits (e.g., rate limits, response size, authentication needs) beyond listing returned 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?
Two sentences, one in English and one in Vietnamese, concisely convey the tool's purpose with no extraneous information. The key features are front-loaded.
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?
With no output schema, the description adequately lists the categories of returned data (profile, price, ratios, moat). However, it does not specify exact fields or structure, which could be improved but is sufficient for agent inference.
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 100% description coverage for the single parameter 'symbol', and the description does not add further context. Baseline 3 is appropriate as the schema already documents the parameter effectively.
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 returns company profile, latest price, key financial ratios, and moat score, with the phrase 'all in 1 call' indicating a composite view. This differentiates it from specialized sibling tools like get_financials or get_realtime_quote.
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 use for a comprehensive stock overview but provides no explicit guidance on when to use this versus alternatives (e.g., get_financials for detailed financials). No 'when not to use' or alternative tool names are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_ta_narrativeARead-onlyIdempotent
Get technical analysis signals and AI-generated narrative for a Vietnamese stock. Returns RSI, MACD, moving averages, buy/sell votes, and market commentary. Lấy tín hiệu phân tích kỹ thuật và bình luận AI cho cổ phiếu Việt Nam.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker symbol, e.g. FPT, VNM, VCB |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate the tool is read-only, idempotent, and non-destructive. The description adds value by specifying the exact outputs (RSI, MACD, etc.) and the market focus (Vietnamese stocks), which go beyond annotations.
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 concise with two short English sentences and one Vietnamese sentence. It is front-loaded with the essential purpose, though the bilingual repetition could be considered slightly redundant.
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 output schema, the description adequately lists the return data (RSI, MACD, etc.). It covers the tool's function and market focus, but lacks mention of overlapping with sibling tools like get_technical_signals.
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 single parameter symbol has 100% schema coverage with a description including examples. The tool description does not add new meaning beyond the schema, so baseline 3 is appropriate.
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 retrieves technical analysis signals and AI-generated narrative for Vietnamese stocks, listing specific indicators (RSI, MACD, moving averages, buy/sell votes, commentary). This distinguishes it from siblings like get_technical_signals and get_news_sentiment.
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 does not provide explicit guidance on when to use this tool versus alternatives. While it implies it's for narrative-rich analysis, no direct comparisons or exclusions are given for siblings like get_technical_signals.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_technical_signalsBRead-onlyIdempotent
Technical analysis signals: RSI, MACD, Bollinger Bands, buy/sell votes, confidence score. Tín hiệu kỹ thuật MUA/BÁN.
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | Stock ticker, e.g. FPT | |
| days | No | Number of days (max 30) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint, destructiveHint, and idempotentHint, so the description does not need to cover safety. It adds the list of signal types (RSI, MACD, etc.), which is useful behavioral context beyond annotations. However, it does not disclose whether signals are for the latest data or historical, or if any rate limits or data freshness considerations apply. With annotations present, this is acceptable but not exceptional.
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 very short (two sentences) and gets to the point immediately. The first sentence lists the key signals. The second sentence repeats in Vietnamese, which is redundant for English-speaking agents but not harmful. The structure is front-loaded with the most important information.
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 an output schema, the description should ideally explain what the returned data looks like. It lists the signals but does not describe format (e.g., object with fields) or if it returns a single object or array. The parameter 'days' suggests a time range, but no mention of whether it returns one signal per day or aggregated. Contextually, it is adequate for a simple tool but leaves gaps.
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 already describes both parameters (symbol and days) with 100% coverage. The description does not add any additional semantics or constraints beyond what the schema provides (e.g., no hint about ticker format or default days). Since schema coverage is high, the description does not need to compensate, but it also does not enhance understanding.
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 it returns technical analysis signals including RSI, MACD, Bollinger Bands, buy/sell votes, and confidence score. It specifies the resource (technical signals) and verb (get), making its purpose clear. However, it does not differentiate from sibling tools such as get_price_history or get_financials, which are conceptually distinct but not contrasted explicitly.
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 other technical or fundamental analysis tools. It does not mention any prerequisites, recommended context (e.g., 'use when you need overbought/oversold indicators'), or mention that it is for historical signals rather than real-time. This lack of usage direction forces the agent to rely solely on tool naming.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_warwatch_playbooksBRead-onlyIdempotent
Geopolitical risk playbooks — war impact, oil price, defense stocks. Chiến lược địa chính trị.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnlyHint=true and idempotentHint=true, so the safe, idempotent nature is covered. The description adds no behavioral context beyond that, such as whether results are cached, pagination behavior, or any special authentication requirements.
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 very short, consisting of two phrases. It is front-loaded with the English content but includes a Vietnamese translation that adds no functional value for an AI agent. It could be more structured or richer within the same length.
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?
No output schema exists, so the description should inform what the tool returns. It mentions topics (war impact, oil price, defense stocks) but does not describe the structure of the response (e.g., list of playbooks with titles, summaries, dates). It lacks completeness for a retrieval 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 coverage is 100% and parameter descriptions in the schema are adequate ('Filter by playbook category/tag', 'Max results to return (default: 10)'). The tool description adds no additional parameter semantics, but because schema coverage is high, baseline score is 3.
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 provides geopolitical risk playbooks specifically covering war impact, oil price, and defense stocks. This is a specific verb-resource combination that distinguishes it from sibling playbook tools that cover other domains like commodities or macro.
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 use when geopolitical risk playbooks are needed, but does not provide explicit guidance on when to use this tool versus alternatives like get_commodity_playbooks or get_macro_playbooks. No exclusions or alternative suggestions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_wealth_playbooksBRead-onlyIdempotent
Personal wealth building — savings, allocation by age/risk. Xây dựng tài sản cá nhân.
| Name | Required | Description | Default |
|---|---|---|---|
| category | No | Filter by playbook category/tag | |
| limit | No | Max results to return (default: 10) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already indicate readOnly, non-destructive, and idempotent behavior, so the description does not need to cover these. It adds the context of 'personal wealth building' but no additional behavioral details (e.g., data freshness, pagination). With good annotation coverage, a baseline score of 3 is appropriate.
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 concise with two sentences (English and Vietnamese) and no fluff. It's front-loaded with the key purpose. However, it could be slightly restructured to improve clarity for an agent, but overall it's efficient.
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 large number of siblings (30+), the description lacks differentiation. It doesn't explain what a 'playbook' is or what the return format looks like. With no output schema, more behavioral context is needed. Complexity is low, but completeness is inadequate for effective tool selection.
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 100%, so the input schema fully documents both parameters. The description hints at filtering by category via 'allocation by age/risk' but doesn't explicitly explain the 'category' parameter. Thus, it adds no significant value beyond the schema, warranting a baseline 3.
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 retrieves personal wealth building playbooks, covering savings and allocation by age/risk. It distinguishes from siblings like 'get_fund_playbooks' or 'get_commodity_playbooks' by focusing on general personal wealth. However, it could be more specific about what constitutes a wealth playbook.
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 vs. alternatives. The description implies it's for personal wealth, but doesn't mention when not to use it or provide comparisons to siblings like 'get_bank_rate_playbooks' or 'get_macro_playbooks'. Agent must infer usage from the name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_whale_activityARead-onlyIdempotent
Whale/institutional activity detector — stocks with abnormal trading volume (>2× 20-day average). Sorted by volume ratio. Phát hiện cổ phiếu có khối lượng bất thường (cá mập giao dịch).
| Name | Required | Description | Default |
|---|---|---|---|
No parameters | |||
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, destructiveHint, idempotentHint, and openWorldHint. The description adds that results are sorted by volume ratio, which is a useful behavioral detail. No contradictions, and the description adds value beyond annotations.
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 two sentences (plus a Vietnamese translation) that front-load the key information. Every word serves a purpose, and there is no 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?
While there is no output schema, the description adequately explains that the tool returns stocks with abnormal volume sorted by volume ratio. It could mention additional output fields, but for a zero-parameter detector, it is sufficiently complete.
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 no parameters, so schema description coverage is 100%. The description correctly communicates that no input is required, and it clarifies the output structure. No additional parameter information is needed.
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 identifies the tool as a whale/institutional activity detector, specifying that it lists stocks with abnormal trading volume (>2x the 20-day average) sorted by volume ratio. This meaningfully distinguishes it from siblings like get_market_snapshot or get_foreign_flow.
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 the tool should be used to detect whale activity, but provides no explicit guidance on when to use it versus alternatives, nor any exclusions or prerequisites. Usage is implied but not clearly outlined.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_stocksBRead-onlyIdempotent
Multi-strategy stock screening (13 strategies: Buffett, Graham, Piotroski, Lynch, O'Neil...). Sàng lọc cổ phiếu theo 13 chiến lược đầu tư.
| Name | Required | Description | Default |
|---|---|---|---|
| strategy | No | Strategy: buffett, graham, piotroski, lynch, oneil, canslim, etc. | |
| min_score | No | Minimum score (default: 60) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already provide readOnlyHint=true and destructiveHint=false, indicating safe, read-only behavior. The description adds no extra behavioral details (e.g., rate limits, auth needs, scope of results). With annotations covering safety, description is adequate but not enriched.
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: two short sentences, no fluff. Front-loaded with the core purpose. Every word earns its place. Ideal for quick agent parsing.
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 simple read-only screening tool with 2 parameters and full schema coverage, the description is fairly complete. It mentions the number of strategies and examples. Missing output format but no output schema exists; agent can infer typical stock screening results. Adequate but could hint at output structure.
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?
Input schema has 100% description coverage for both parameters ('strategy' and 'min_score'). The description does not add new meaning beyond the schema; it merely mentions '13 strategies' but without listing them. Baseline 3 is appropriate since schema already handles parameter semantics.
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?
Description clearly states the tool screens stocks using 13 strategies ('Buffett, Graham, Piotroski...'). The verb 'screening' and resource 'stocks' are explicit. However, it does not differentiate from sibling tools like 'search_stocks' or 'get_stock_info', which could cause confusion.
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. The description only states what it does, not when it is appropriate or when to avoid it. Missing explicit when-to-use/when-not-to-use context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stocksCRead-onlyIdempotent
Search Vietnamese stocks by ticker or company name. Filter by sector (VN30, Banking, Tech). Tìm cổ phiếu theo mã hoặc tên.
| Name | Required | Description | Default |
|---|---|---|---|
| q | Yes | Search query: ticker or company name, e.g. FPT, Vinamilk | |
| sector | No | Optional sector filter: VN30, Banking, Tech, etc. | |
| limit | No | Max results (default: 10, max: 50) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly, destructive, idempotent hints. Description adds that it searches Vietnamese stocks and filters by sector, but no additional behavioral traits (e.g., case sensitivity, pagination). With good annotation coverage, a 3 is appropriate.
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?
Two sentences; the first clearly states purpose, but the second is a redundant Vietnamese translation that adds no value for an English-speaking agent. Could be more concise by removing the duplicate.
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?
Description does not mention the 'limit' parameter, output format, or how it differs from similar tools like 'screen_stocks'. With no output schema, the agent lacks crucial information about return values.
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?
All three parameters have descriptions in the input schema (100% coverage). The description mentions search by ticker/name and sector filter, reinforcing schema but adding no new details beyond the examples already present in the 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?
Description clearly states it searches Vietnamese stocks by ticker or company name with optional sector filter. However, it does not differentiate from the sibling tool 'screen_stocks', which likely has similar 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?
No guidance on when to use this tool vs alternatives like 'screen_stocks' or other get_* tools. The description lacks context on prerequisites or limitations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
35 tool updates
v0.1.0- First observed
get_ai_performance - First observed
get_ai_performance_reports - First observed
get_bank_rate_playbooks - First observed
get_bctc_summary - First observed
get_bds_playbooks - First observed
get_commodity_playbooks - First observed
get_corporate_events - First observed
get_dong_tien_playbooks - First observed
get_factor_importance - First observed
get_financials - First observed
get_foreign_flow - First observed
get_fund_playbooks - First observed
get_gia_toc_playbooks - First observed
get_index_history - First observed
get_insider_activity - First observed
get_investment_checklists - First observed
get_macro_playbooks - First observed
get_macro_snapshot - First observed
get_market_snapshot - First observed
get_news_sentiment - First observed
get_opinion - First observed
get_political_playbooks - First observed
get_price_history - First observed
get_psychology_playbooks - First observed
get_realtime_quote - First observed
get_sector_rotation - First observed
get_sector_rotation_playbooks - First observed
get_stock_info - First observed
get_ta_narrative - First observed
get_technical_signals - First observed
get_warwatch_playbooks - First observed
get_wealth_playbooks - First observed
get_whale_activity - First observed
screen_stocks - First observed
search_stocks
TDQS
Most tools have clear, distinct purposes, e.g., get_ai_performance vs get_ai_performance_reports. However, some overlap exists: get_financials and get_bctc_summary both provide financial ratios, and get_ta_narrative includes technical signals overlapping with get_technical_signals. Playbook tools are numerous but differentiated by domain.
The vast majority follow a consistent 'get_<noun>' pattern (e.g., get_ai_performance, get_market_snapshot). Two tools, screen_stocks and search_stocks, break the pattern by using verbs without 'get', but they are clearly distinct actions. No mixing of naming conventions (camelCase, snake_case) is observed.
At 35 tools, the server is on the high end of the acceptable range. The domain (Vietnamese stock market intelligence) is broad, justifying many tools, but it feels slightly overloaded with 13 playbook tools that could potentially be consolidated. Still, it remains navigable.
The tool set covers a wide range of investment data: performance, financial statements, technical signals, sentiment, macro, insider trading, foreign flow, sector rotation, screening, and playbooks for various scenarios. Minor gaps may exist (e.g., explicit dividend data, portfolio management actions), but the surface is largely complete for a read-only data server.
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
Vietnam stock market data & portfolios via Finhay Securities OpenAPI.
MCP server giving AI agents one-connection access to China A-share market intelligence: financials,
Unlock the power of real-time financial data with our Finance MCP. Easily retrieve the latest
Financial data MCP for market, company, news, macro, and US Congress research.
Related MCP Servers
- AlicenseNot gradedqualityCmaintenanceUnofficial MCP server providing Vietnamese stock market financial data, enabling natural language interaction with Claude Desktop.MIT
- AlicenseBqualityDmaintenanceMCP server for Vietnamese stock market data, enabling AI assistants to access stock history, financials, company info, and global market data through 21 tools.21102MIT
- AlicenseBqualityCmaintenanceProvides tools to access Vietnam stock market data, including stock prices, financial statements, and market statistics.361MIT
- FlicenseNot gradedqualityCmaintenanceAn MCP server that provides Vietnamese financial market data through Claude Desktop, including historical prices, portfolio optimization, financial statements, and fund management.-
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/cuthongthai-vn/vimo-mcp-server'
If you have feedback or need assistance with the MCP directory API, please join our Discord server