Stock MCP Server
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Stock MCP Serveranalyze NVDA's RSI and MACD for the past month"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
๐ Stock MCP Server
This is a Model Context Protocol (MCP) server that provides technical analysis and strategy-based screening for Korean and US stocks. You can perform chart analysis and stock screening using natural language in MCP-compatible clients such as Claude Desktop and Claude Code.
โจ Features
๐ฐ๐ท Korean Stock Analysis โ OHLCV + technical indicators for all KOSPI/KOSDAQ stocks based on
pykrx๐บ๐ธ US Stock Analysis โ NYSE/NASDAQ stocks based on
yfinance+ market cap/PER/52-week high/low๐ Stock Search โ Find stock codes by stock name (Korean stocks)
๐ 10 Momentum Strategies + 7 Breakout Strategies โ From Golden Cross to VCP
๐ฏ Two Screening Philosophies โ ๐ Catching the Running Horse vs ๐ฑ Finding the Horse About to Run
๐ Multi-stage Pre-filters โ Volume spikes, Trend Template, RS, 52-week bands, etc.
Related MCP server: KIS MCP Server
๐ ๏ธ Tools
Tool | Description | Input Example |
| Korean stock technical analysis |
|
| US stock technical analysis |
|
| Search stock name โ stock code |
|
| ๐ Korean Catching the Running Horse (Stage 2 trend) |
|
| ๐ US Catching the Running Horse |
|
| ๐ฑ Korean Finding the Horse About to Run (VCP/Accumulation/Late Stage 1) |
|
| ๐ฑ US Finding the Horse About to Run |
|
| Strategy diagnosis for a specific stock |
|
๐ฏ Screening: Two Philosophies
๐ Momentum โ Catching the Running Horse
Captures Stage 2 continuation for stocks that have already entered an uptrend. Based on O'Neil's CANSLIM and Minervini's Trend Template theories.
Pipeline
์๋ (๋ค์ด๋ฒ ๊ฑฐ๋๋/์์น๋ฅ /๊ธ๋ฑ | Yahoo most_actives/day_gainers/small_cap_gainers)
โ
โ min_trade_value โ ์ ๋์ฑ
โก ๋น์ผ ๊ณผ์ด ์ ์ธ +10% ์ด์ โ ์ถ๊ฒฉ๋งค์ ๋ฐฉ์ง
โข 20์ผ ๋ด ๊ฑฐ๋๋ ๊ธ์ฆ โฅ 3x โ ์๊ธ ์ ์
์๊ทธ๋
โฃ Minervini Trend Template โ Stage 2 6์กฐ๊ฑด (ON)
โค 52์ฃผ ๊ณ ์ ๊ทผ์ โ OFF (Trend Template๊ณผ ์ค๋ณต)
โฅ RS vs ์ง์ โ OFF (opt-in, ๊ฐํ ์ข
๋ชฉ๋ง ๋ณด๊ณ ์ถ์ ๋)
โ
10๊ฐ์ง Momentum ์ ๋ต ์ ์ฉApplied Strategies (10)
Existing 4: Golden Cross + Volume, Pullback Buy, Momentum Breakout, Volume Explosion
New 6: RSI Divergence, MACD Divergence, Stochastic, BB Squeeze, Ichimoku Breakout, 3-line Alignment
๐ฑ Breakout โ Finding the Horse About to Run
Captures stocks that haven't moved significantly yet, in the accumulation phase / pre-breakout. Based on Mark Minervini's VCP pattern and Wyckoff accumulation theory.
Pipeline
์๋ (Momentum๊ณผ ๋์ผ โ ๋งค์ง๋ ๊ฑฐ๋๋์ ๋ฐ์๋จ)
โ
โ min_trade_value
โก ๋น์ผ ๊ณผ์ด ์ ์ธ +10% ์ด์
โข ๋์ ์์น ํ๋: ์ต๊ทผ 30์ผ +30% ์ด์ ์ ์ธ โ Breakout ์ ์ฉ
โฃ 52์ฃผ ๋ฐด๋: ๊ณ ์ ร 0.85 ์ดํ AND ์ ์ ร 1.20 ์ด์ โ ์ ์ฉ (์ค๊ฐ๊ถ๋ง)
โค 20์ผ ๋ด ๊ฑฐ๋๋ ๊ธ์ฆ โฅ 2x (momentum์ 3x๋ณด๋ค ์ํ)
โ
Breakout 7์ ๋ต ์ ์ฉ (Trend Template / 52w ๊ทผ์ / RS ๋ชจ๋ off)Applied Strategies (7)
Reused 4: Pullback Buy, Volume Explosion, MACD Divergence, BB Squeeze
New 3: VCP Volatility Contraction, Silent Accumulation, Late Stage 1 Transition
๐งช Comparison of the Two Modes
๐ Momentum | ๐ฑ Breakout | |
Philosophy | Trend Continuation | Accumulation โ Early Breakout |
Cumulative Return | No limit | Exclude 30-day +30% or more |
52-week Position | Near high recommended | Below 85% of high + Above 120% of low band |
Trend Template | ON (Requires MA alignment) | OFF |
Volume Spike | 3.0x | 2.0x (Accumulation is less explosive) |
Strategy Count | 10 | 7 (including 3 new) |
Suitable Timing | Strong market, trend following | Post-correction re-entry, bottom reversal |
Practical Result Comparison Example
Based on the same market (KOSPI):
Momentum: Perspect (meets 6 strategies) โ A stock already running
Breakout: Daewon Cable 30-day -20.32%, pullback + VCP at 72% of 52-week high โ Typical accumulation
๐ New Breakout Strategy Explanation
VCP (Volatility Contraction Pattern)
Divides the last 15 days into three 5-day segments to determine if the high-low range (%) sequentially contracts. Coiling spring shape โ Breakout imminent. (Mark Minervini)
Silent Accumulation
Average volume of the last 20 days is higher than the previous 20 days with some spike days, but the price fluctuation range for the same 20 days is within ยฑ8% โ Hidden institutional accumulation.
Late Stage 1 Transition
Transition phase from a bottom box range (Stage 1) to a gentle rise (early Stage 2).
MA60 slope higher than 1 month ago
MA20 > MA60 (Short-term upward transition)
Close > MA60 (Support secured)
BB width โค 20-day average (Volatility not yet expanded)
๐ Pre-filter Parameter Cheat Sheet
Momentum Screener Common
Parameter | Default | Purpose |
| 10.0 | Exclude if up +10% today. |
| 3.0 | Volume spike multiplier |
| True | Minervini Trend Template |
| False | RS filter (on to see only strong stocks) |
| 0.0 | Benchmark outperformance (pp) threshold |
Breakout Screener Common
Parameter | Default | Purpose |
| 30.0 | Upper limit of cumulative return (%) for last N days |
| 30 | Cumulative calculation period |
| 0.85 | Pass only if below 52-week high ร this value |
| 1.20 | Pass only if above 52-week low ร this value |
| 2.0 | Volume spike (relaxed multiplier for accumulation) |
๐ฆ Installation
Prerequisites
Python 3.13+
uv (Recommended)
Setup
git clone https://github.com/Juuuuuuni/stock-mcp-server.git
cd stock-mcp-server
uv sync๐ Usage
Claude Desktop Integration
Add the following to ~/Library/Application Support/Claude/claude_desktop_config.json (macOS)
or %APPDATA%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"stock-analyzer": {
"command": "uv",
"args": [
"--directory",
"/์ ๋/๊ฒฝ๋ก/stock-mcp-server",
"run",
"python",
"server.py"
]
}
}
}Direct Execution
uv run python server.py๐ฌ Conversation Examples
Individual Stock Analysis
๐ค ์ผ์ฑ์ ์ ์ต๊ทผ ๋ถ์ํด์ค
๐ค [get_stock_analysis("005930")] โ ํ์ฌ๊ฐ / RSI / MACD / ์ถ์ธ ํด์
๐ค NVDA ํ ๋ฌ ์ฐจํธ ๋ถ์
๐ค [get_us_stock_analysis("NVDA", days=30)]
๐ค ์์ฒด๋ผ ์ข
๋ชฉ์ฝ๋๊ฐ ๋ญ์ผ?
๐ค [search_stock("์์ฒด๋ผ")] โ 347860Screening (Running Horse)
๐ค ์ง๊ธ ์ฝ์คํผ์์ ๋จ๋ ์ข
๋ชฉ ์ฐพ์์ค
๐ค [screen_kr_momentum(market="KOSPI")]
โ Stage 2 ์ถ์ธ + ๊ฑฐ๋๋ ๊ธ์ฆ ์ข
๋ชฉ. ํผ์คํ
(6์ ๋ต), ๋์ฐ๊ฑด์ค(3์ ๋ต) โฆ
๐ค ๋ฏธ๊ตญ ์ฃผ์์์ ๊ฐ์ธ ์ข
๋ชฉ๋ง (RS 10pp ์ด์)
๐ค [screen_us_momentum(enable_rs_filter=True, min_rs_outperformance=10.0)]Screening (Horse About to Run)
๐ค ์ฝ์ค๋ฅ์์ ๋งค์ง ๋จ๊ณ ์ข
๋ชฉ ์คํฌ๋ฆฌ๋
๐ค [screen_kr_breakout(market="KOSDAQ")]
โ ๋์ ์์น 30% ๋ฏธ๋ง + 52์ฃผ ์ค๊ฐ๊ถ + VCP/๋งค์ง ํจํด
๐ค ์์ง ์ ์ค๋ฅธ ๋ฐ๋ฅ ์ข
๋ชฉ๋ง (์ต๊ทผ 30์ผ +10% ์ด๋ด)
๐ค [screen_kr_breakout(max_cumulative_return_pct=10.0)]Individual Stock Strategy Diagnosis
๐ค ์์ฒด๋ผ ์ง๊ธ ์ด๋ค ๋จ๊ณ์ผ?
๐ค [diagnose_stock(ticker="347860", market="KR")]
โ 10์ ๋ต ์ค ์ด๋ ์กฐ๊ฑด ํต๊ณผํ๋์ง ์์ธ ์ง๋จ๐ Output Examples
Momentum Screening Results (Summary)
{
"์คํฌ๋ฆฌ๋์ผ": "20260413",
"๋์์์ฅ": "KOSPI",
"์๋ํ๋ณด์": 80,
"ํํฐ๋ง_๋จ๊ณ๋ณ_ํต๊ณผ": {
"๋น์ผ๊ณผ์ด์ ์ธ": 64,
"๊ฑฐ๋๋๊ธ์ฆ": 31,
"Trend_Template": 8,
"52์ฃผ๊ณ ์ ๊ทผ์ ": 0,
"RS": 0
},
"ํํฐ๋ง๊ฒฐ๊ณผ์": 26,
"๊ฒฐ๊ณผ": [
{
"์ข
๋ชฉ์ฝ๋": "010820",
"์ข
๋ชฉ๋ช
": "ํผ์คํ
",
"์ ๋ต": "๋ชจ๋ฉํ
๋ํ",
"์ ์": "5/5",
"ํ์ฌ๊ฐ": 2340,
"๋ฑ๋ฝ๋ฅ ": "+4.23%",
"RSI": 68.4,
"๊ฑฐ๋๋๋น": "2.1x",
"20์ผ๋ด_์ต๋๊ฑฐ๋๋๋ฐฐ์จ": "8.7x",
"๋ณต์์ ๋ต": true
}
]
}Breakout Screening Results (Summary)
{
"์คํฌ๋ฆฌ๋์ผ": "20260413",
"๋ชจ๋": "Breakout (๊ณง ๋ฌ๋ฆด ๋ง)",
"๋์์์ฅ": "KOSPI",
"์๋ํ๋ณด์": 80,
"ํํฐ๋ง_๋จ๊ณ๋ณ_ํต๊ณผ": {
"๋น์ผ๊ณผ์ด์ ์ธ": 64,
"๋์ ์์นํ๋": 55,
"52์ฃผ๋ฐด๋": 22,
"๊ฑฐ๋๋๊ธ์ฆ": 12
},
"ํํฐ๋ง๊ฒฐ๊ณผ์": 28,
"๊ฒฐ๊ณผ": [
{
"์ข
๋ชฉ์ฝ๋": "006340",
"์ข
๋ชฉ๋ช
": "๋์์ ์ ",
"์ ๋ต": "๋๋ฆผ๋ชฉ ๋งค์",
"์ ์": "5/5",
"ํ์ฌ๊ฐ": 1245,
"30์ผ๋์ ": "-20.32%",
"52์ฃผ๊ณ ์ ๋๋น": "72.2%",
"52์ฃผ์ ์ ๋๋น": "128.4%",
"๋ณต์์ ๋ต": true
}
]
}๐งฉ Tech Stack
FastMCP โ MCP server framework
pykrx โ Korea Exchange data
yfinance โ Yahoo Finance data
ta โ Technical analysis indicators
BeautifulSoup + lxml โ Naver Finance / Yahoo Screener HTML parsing
pandas โ Data processing
๐ References
William J. O'Neil โ How to Make Money in Stocks (CANSLIM)
Mark Minervini โ Trade Like a Stock Market Wizard (Trend Template, VCP)
Richard Wyckoff โ Price-Volume Accumulation/Distribution Theory
Stan Weinstein โ Secrets for Profiting in Bull and Bear Markets (Stage Analysis)
๐ License
MIT
Available Tools
8 toolsdiagnose_stockA
ํน์ ์ข ๋ชฉ์ด 10๊ฐ์ง ๋จ๊ธฐ ์ ๋ต ์ค ์ด๋ค ์กฐ๊ฑด์ ํด๋นํ๋์ง ์์ธ ์ง๋จํฉ๋๋ค.
โ ๊ธฐ์กด ์ ๋ต: ๊ณจ๋ ํฌ๋ก์ค+๊ฑฐ๋๋, ๋๋ฆผ๋ชฉ ๋งค์, ๋ชจ๋ฉํ ๋ํ, ๊ฑฐ๋๋ ํญ๋ฐ โ ์ ๊ท ์ ๋ต: RSI ๋ค์ด๋ฒ์ ์ค, MACD ๋ค์ด๋ฒ์ ์ค, ์คํ ์บ์คํฑ ๊ณผ๋งค์/๊ณผ๋งค๋, BB ์คํด์ฆ, ์ผ๋ชฉ๊ท ํํ ๊ตฌ๋ฆ๋ ๋ํ, 3์ ์ ๋ฐฐ์ด/์ญ๋ฐฐ์ด
Args: ticker: ์ข ๋ชฉ์ฝ๋ (ํ๊ตญ) ๋๋ ํฐ์ปค์ฌ๋ณผ (๋ฏธ๊ตญ). ์: '005930', 'AAPL' market: 'KR' ๋๋ 'US'. ๊ธฐ๋ณธ 'KR'
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| market | No | KR |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the full burden. It only states the diagnosis purpose without disclosing behavioral traits like read-only nature, rate limits, or side effects. The agent cannot infer safety or performance characteristics.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, enumerated strategy lists, and parameter documentation. It is front-loaded and avoids redundancy, though it could be slightly shorter by consolidating the list format.
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 presence of an output schema to describe return values, the description adequately covers the tool's logic (10 strategies) and input parameters. No critical gaps are apparent for a diagnostic tool with simple inputs.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 0% schema description coverage, the description compensates by providing clear examples and defaults for both parameters (ticker and market), adding practical meaning beyond the schema's type-only definitions.
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 diagnosing a stock against 10 specific short-term strategies, with a detailed list of those strategies. This distinguishes it from sibling tools like screen_kr_breakout or get_stock_analysis, which focus on screening or broader 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?
The description implies usage when checking strategy conditions for a specific stock, but does not explicitly state when to use this tool versus alternatives or provide exclusion criteria. Guidance is present only through context and inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
get_stock_analysisA
์ข ๋ชฉ์ฝ๋๋ฅผ ์ ๋ ฅํ๋ฉด OHLCV + ๊ธฐ์ ์ ์งํ๋ฅผ ๋ถ์ํฉ๋๋ค.
Args: ticker: ์ข ๋ชฉ์ฝ๋ (์: '347860' for ์์ฒด๋ผ, '005930' for ์ผ์ฑ์ ์) days: ์กฐํ ๊ธฐ๊ฐ (์ผ์, ๊ธฐ๋ณธ 120์ผ)
| Name | Required | Description | Default |
|---|---|---|---|
| ticker | Yes | ||
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must cover behaviors. It states the tool analyzes OHLCV + technical indicators but does not disclose specific indicators, error handling, or data source. Output schema exists, reducing need for return details, but some traits remain opaque.
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 a compact Args list. Every sentence serves a purpose, with no fluff. The main action 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 the presence of an output schema (which covers return structure), the description sufficiently explains input parameters and core functionality. It could mention error handling or data freshness, but overall it is complete for a straightforward analysis tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, and the description compensates with clear explanations: ticker with examples (e.g., '347860' for Alchera) and days with default value (120). This adds meaning beyond the schema's basic type/title.
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 analyzes OHLCV and technical indicators for a given stock code. It provides specific ticker examples for Korean stocks, distinguishing it from sibling tools like get_us_stock_analysis for US stocks.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage for Korean stocks via examples (e.g., '005930' for Samsung) and sibling names suggest alternatives, but it does not explicitly state when to use this tool versus others 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_us_stock_analysisC
๋ฏธ๊ตญ ์ฃผ์ ์ข ๋ชฉ์ ๋ถ์ํฉ๋๋ค.
Args: symbol: ํฐ์ปค ์ฌ๋ณผ (์: 'AAPL', 'TSLA', 'NVDA', 'GOOGL') days: ์กฐํ ๊ธฐ๊ฐ (์ผ์, ๊ธฐ๋ณธ 120์ผ)
| Name | Required | Description | Default |
|---|---|---|---|
| symbol | Yes | ||
| days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It only states 'analyzes' without clarifying whether it is read-only, what side effects exist, or any behavioral traits beyond basic analysis. It does not describe the nature of the analysis or error conditions.
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 sentences plus a parameter list. Every piece of information is essential, and it is front-loaded with the main purpose.
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?
Despite having an output schema, the description does not explain what the tool returns or how to interpret results. It also fails to mention any usage context relative to siblings, making it incomplete for a tool with multiple similar alternatives.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, but the description adds value by providing examples for 'symbol' (e.g., 'AAPL') and clarifying 'days' as the inquiry period in days with default 120. This is adequate but not extensive; no constraints or allowed values are given.
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 analyzes US stock tickers, using the verb 'analyzes' and specifying 'US stock'. This distinguishes it from the sibling 'get_stock_analysis' which likely covers other markets, though not explicitly stated.
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_stock_analysis' or 'screen_us_momentum'. No when-not scenarios or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_kr_breakoutA
ํ๊ตญ ์ฃผ์์์ '๊ณง ๋ฌ๋ฆด ๋ง' โ ๋งค์ง/๋ํ ์ง์ ๋จ๊ณ ์ข ๋ชฉ์ ํํฐ๋งํฉ๋๋ค.
screen_kr_momentum๊ณผ ๋ฐ๋ ์ปจ์
. ์ด๋ฏธ ํฌ๊ฒ ์ค๋ฅธ ์ข
๋ชฉ์ ๋ฐฐ์ ํ๊ณ
์ค๊ฐ๊ถ์์ ๋งค์ง ์ค์ธ ์ข
๋ชฉ / ๋ณ๋์ฑ ์์ถ ๊ตญ๋ฉด / Stage 1 ๋ง๊ธฐ ์ข
๋ชฉ์ ์ฐพ์ต๋๋ค.
[์๋] ๋ค์ด๋ฒ ๊ฑฐ๋๋์์ + ์์น๋ฅ ์์ + ๊ธ๋ฑ ํฉ์งํฉ
[์ฌ์ ํํฐ] ์์ฐจ ์ ์ฉ:
ยท ๊ฑฐ๋๋๊ธ
ยท ๋น์ผ ๊ณผ์ด ์ ์ธ (exclude_if_up_pct)
ยท ์ต๊ทผ N์ผ ๋์ ์์น๋ฅ < max_cumulative_return_pct (์์ง ์ ๋ฌ๋ฆผ)
ยท 52์ฃผ ๋ฐด๋ (๊ณ ์ ร high_ceiling ์ดํ AND ์ ์ ร low_floor ์ด์)
ยท ๊ฑฐ๋๋ ๊ธ์ฆ (๊ธฐ๋ณธ 2x โ momentum์ 3x๋ณด๋ค ์ฝํด๋ ๋งค์ง ์๊ทธ๋๋ก ์ธ์ )
[์ ๋ต] Breakout ์ ์ฉ 7๊ฐ
์ฌ์ฌ์ฉ: ๋๋ฆผ๋ชฉ ๋งค์ ยท ๊ฑฐ๋๋ ํญ๋ฐ ยท MACD ๋ค์ด๋ฒ์ ์ค ยท BB ์คํด์ฆ
์ ๊ท: VCP ๋ณ๋์ฑ ์์ถ ยท ์กฐ์ฉํ ๋งค์ง ยท Stage 1 ๋ง๊ธฐ ์ ํ
Args: market: 'KOSPI' | 'KOSDAQ' | 'ALL' top_n: ์๋ ํ๋ณด ์ํ min_trade_value: ์ต์ ๊ฑฐ๋๋๊ธ(์) exclude_if_up_pct: ์ค๋ ์ด % ์ด์ ์ค๋ฅธ ์ข ๋ชฉ ์ ์ธ (None ๋ฏธ์ ์ฉ) max_cumulative_return_pct: ์ต๊ทผ N์ผ ๋์ ์์น๋ฅ ์ํ(%) (๊ธฐ๋ณธ 30) cumulative_return_days: ๋์ ์์น๋ฅ ๊ณ์ฐ ๊ธฐ๊ฐ (๊ธฐ๋ณธ 30) high_ceiling: 52์ฃผ ๊ณ ์ ๋๋น ์ํ ๋น์จ (0.85 = ๊ณ ์ ์ 85% ์ดํ) low_floor: 52์ฃผ ์ ์ ๋๋น ํํ ๋น์จ (1.20 = ์ ์ ์ 120% ์ด์) lookback_days: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฃฉ๋ฐฑ spike_threshold: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฐฐ์จ (๊ธฐ๋ณธ 2.0) baseline_days: ๋น๊ต ๊ธฐ์ค ๊ธฐ๊ฐ
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ALL | |
| top_n | No | ||
| min_trade_value | No | ||
| exclude_if_up_pct | No | ||
| max_cumulative_return_pct | No | ||
| cumulative_return_days | No | ||
| high_ceiling | No | ||
| low_floor | No | ||
| lookback_days | No | ||
| spike_threshold | No | ||
| baseline_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description bears full burden. It details the filtering pipeline and logic extensively, but does not explicitly state that the tool is read-only, nor mention any rate limits or side effects. Adequate but not fully covering runtime behavior.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is quite long due to detailed logic and parameter explanations. It is well-structured with sections (seed, pre-filters, strategy) and bullet points, but could be slightly more concise. Still, every sentence earns its place given the tool's complexity.
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 11 optional parameters, no annotations, and presence of output schema, the description is comprehensive. It covers input purpose, filtering steps, strategy types, and sibling differentiation. The output schema is present so return values need not be described.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description compensates fully. Every parameter, including market, top_n, thresholds, and periods, is explained with typical values and purpose in the 'Args' section, adding significant meaning beyond the bare schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states it filters Korean stocks in the 'breakout-ready' phase, contrasting with screen_kr_momentum. It details the seed sources, pre-filters, and strategies, making the purpose specific 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?
Explicitly contrasts with screen_kr_momentum ('๋ฐ๋ ์ปจ์ '), explicitly excludes already-strong stocks, and lists dedicated breakout strategies. Provides clear context for when to use this tool over alternatives.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_kr_momentumA
ํ๊ตญ ์ฃผ์์์ '์ต๊ทผ N์ผ ๋ด ๊ฑฐ๋๋ ๊ธ์ฆ + ์ถ์ธ ์ ํฉ' ์ข ๋ชฉ์ ํํฐ๋งํฉ๋๋ค.
[์๋] ๋ค์ด๋ฒ ๊ฑฐ๋๋์์ + ์์น๋ฅ ์์ + ๊ธ๋ฑ ํฉ์งํฉ
[์ฌ์ ํํฐ] ์์ฐจ ์ ์ฉ:
ยท ๊ฑฐ๋๋๊ธ: min_trade_value ์ด์
ยท ๋น์ผ ๊ณผ์ด ์ ์ธ: ์ค๋ ๋ฑ๋ฝ๋ฅ ์ด exclude_if_up_pct ์ด์์ด๋ฉด ์ ์ธ (์ถ๊ฒฉ ๋งค์ ๋ฐฉ์ง)
ยท ๊ฑฐ๋๋ ๊ธ์ฆ: max(์ต๊ทผ lookback์ผ) / ์ด์ baseline์ผ ํ๊ท โฅ spike_threshold
ยท Minervini Trend Template (์ต์
): Stage 2 ์์น์ถ์ธ 6์กฐ๊ฑด
ยท 52์ฃผ ๊ณ ์ ๊ทผ์ (์ต์
): ํ์ฌ๊ฐ โฅ 52์ฃผ๊ณ ์ ร high_proximity
ยท RS vs KODEX 200 (์ต์
): 3๊ฐ์ ์ด๊ณผ์์ต๋ฅ โฅ min_rs_outperformance (pp)
[์ ๋ต] 10๊ฐ์ง ๊ธฐ์ ์ ์ ๋ต ์ ์ฉ
Args: market: 'KOSPI' | 'KOSDAQ' | 'ALL' top_n: ์๋ ํ๋ณด ์ํ min_trade_value: ์ต์ ๊ฑฐ๋๋๊ธ ํํฐ(์) exclude_if_up_pct: ์ค๋ ๋ฑ๋ฝ๋ฅ ์ด ์ด ๊ฐ(%) ์ด์์ด๋ฉด ์ ์ธ. None์ด๋ฉด ๋ฏธ์ ์ฉ (๊ธฐ๋ณธ 10.0) lookback_days: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฃฉ๋ฐฑ (๊ธฐ๋ณธ 20) spike_threshold: ๊ธ์ฆ ๋ฐฐ์จ (๊ธฐ๋ณธ 3.0) baseline_days: ๋น๊ต ๊ธฐ์ค ๊ธฐ๊ฐ (๊ธฐ๋ณธ 40) enable_trend_template: Minervini Trend Template ์ฌ์ฉ ์ฌ๋ถ enable_near_52w_high: 52์ฃผ ๊ณ ์ ๊ทผ์ ํํฐ ์ฌ์ฉ ์ฌ๋ถ high_proximity: 52์ฃผ ๊ณ ์ ๋๋น ํ์ฉ ๋น์จ (0.75 = ๊ณ ์ ์ 75% ์ด์) enable_rs_filter: KODEX 200 ๋๋น RS ํํฐ ์ฌ์ฉ ์ฌ๋ถ rs_period_days: RS ์์ต๋ฅ ๊ณ์ฐ ๊ธฐ๊ฐ (๊ธฐ๋ณธ 63 โ 3๊ฐ์) min_rs_outperformance: ๋ฒค์น๋งํฌ ์ด๊ณผ์์ต ํํ (pp)
| Name | Required | Description | Default |
|---|---|---|---|
| market | No | ALL | |
| top_n | No | ||
| min_trade_value | No | ||
| exclude_if_up_pct | No | ||
| lookback_days | No | ||
| spike_threshold | No | ||
| baseline_days | No | ||
| enable_trend_template | No | ||
| enable_near_52w_high | No | ||
| high_proximity | No | ||
| enable_rs_filter | No | ||
| rs_period_days | No | ||
| min_rs_outperformance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of behavioral disclosure. It specifies filtering logic and optional filters, but does not explicitly state side effects (e.g., read-only, no modifications), rate limits, or error conditions. The phrase '์ถ๊ฒฉ ๋งค์ ๋ฐฉ์ง' hints at safety but is not fully transparent. The output schema exists, so return value details are covered, but behavior beyond filtering is unclear.
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 detailed but well-structured with section headers ([์๋], [์ฌ์ ํํฐ], etc.) and a bulleted list for parameters. It is slightly lengthy but every section contributes to understanding. The front-loading could be improved by placing the main purpose more prominently, but overall it is organized and 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 complexity (13 parameters, multi-step filtering) and presence of an output schema, the description provides strong context. It explains the algorithm flow and option details. However, it mentions '10๊ฐ์ง ๊ธฐ์ ์ ์ ๋ต' without elaboration, leaving a gap. No mention of error handling or performance considerations. Still, it is largely complete for an experienced agent.
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 13 parameters with 0% description coverage, so the description fully compensates. It provides Korean explanations for each parameter, including allowed values for 'market', defaults, and purpose (e.g., 'top_n: ์๋ ํ๋ณด ์ํ'). This adds significant meaning beyond the bare schema properties, making parameter semantics very clear.
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 filters Korean stocks for volume surge and trend alignment over recent N days. It uses specific verbs and resource description ('ํํฐ๋งํฉ๋๋ค') and is distinct from siblings like 'screen_kr_breakout' which focuses on breakouts. The purpose is unambiguous and 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?
The description details a step-by-step filtering pipeline with seed, pre-filters, and optional filters, providing clear context on how the tool operates. However, it does not explicitly compare with sibling tools (e.g., when to use this over screen_kr_breakout or screen_us_momentum) or state when not to use it. The sequential logic is well explained, but exclusions are missing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_us_breakoutA
๋ฏธ๊ตญ ์ฃผ์์์ '๊ณง ๋ฌ๋ฆด ๋ง' โ ๋งค์ง/๋ํ ์ง์ ๋จ๊ณ ์ข ๋ชฉ์ ํํฐ๋งํฉ๋๋ค.
screen_us_momentum๊ณผ ๋ฐ๋ ์ปจ์
. ์ด๋ฏธ ํฌ๊ฒ ์ค๋ฅธ ์ข
๋ชฉ์ ๋ฐฐ์ ํ๊ณ
์ค๊ฐ๊ถ์์ ๋งค์ง ์ค์ธ ์ข
๋ชฉ / ๋ณ๋์ฑ ์์ถ ๊ตญ๋ฉด / Stage 1 ๋ง๊ธฐ ์ข
๋ชฉ์ ์ฐพ์ต๋๋ค.
[์๋] symbols ๋ฏธ์ง์ ์ Yahoo most_actives + day_gainers + small_cap_gainers
[์ฌ์ ํํฐ] KR breakout๊ณผ ๋์ผ ๊ตฌ์กฐ
[์ ๋ต] Breakout ์ ์ฉ 7๊ฐ
Args: symbols: ์คํฌ๋ฆฌ๋ํ ํฐ์ปค ๋ชฉ๋ก. None์ด๋ฉด Yahoo ์คํฌ๋ฆฌ๋์์ ์๋ ์์ง top_n: ์๋ ํ๋ณด ์ํ exclude_if_up_pct: ์ค๋ ์ด % ์ด์ ์ค๋ฅธ ์ข ๋ชฉ ์ ์ธ max_cumulative_return_pct: ์ต๊ทผ N์ผ ๋์ ์์น๋ฅ ์ํ cumulative_return_days: ๋์ ์์น๋ฅ ๊ณ์ฐ ๊ธฐ๊ฐ high_ceiling: 52์ฃผ ๊ณ ์ ๋๋น ์ํ (0.85 = ๊ณ ์ ์ 85% ์ดํ) low_floor: 52์ฃผ ์ ์ ๋๋น ํํ (1.20 = ์ ์ ์ 120% ์ด์) lookback_days: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฃฉ๋ฐฑ spike_threshold: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฐฐ์จ (๊ธฐ๋ณธ 2.0) baseline_days: ๋น๊ต ๊ธฐ์ค ๊ธฐ๊ฐ
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | No | ||
| top_n | No | ||
| exclude_if_up_pct | No | ||
| max_cumulative_return_pct | No | ||
| cumulative_return_days | No | ||
| high_ceiling | No | ||
| low_floor | No | ||
| lookback_days | No | ||
| spike_threshold | No | ||
| baseline_days | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It discloses the data sources (Yahoo screeners), pre-filter, and strategy (7 breakout-specific). However, it does not mention any limitations, rate limits, or mutation behavior; the tool appears read-only but this is not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is well-structured with a clear purpose statement, technical details, and an Args section. It is moderately long but avoids fluff. Every sentence adds value, though some minor redundancy could be trimmed.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's complexity (10 parameters, no annotations, output schema exists), the description adequately covers purpose, usage, seed logic, and parameter meanings. It references a sibling for comparison, but does not elaborate on output fields (acceptable since output schema exists).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 0% description coverage, but the description lists all 10 parameters with concise explanations (e.g., 'symbols: None uses Yahoo', 'exclude_if_up_pct: exclude stocks up more than this % today'). This fully compensates for the schema's lack of descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool filters US stocks about to break out, explicitly differentiating itself from the sibling 'screen_us_momentum' by stating it is the opposite concept. It provides specific verbs and resource identification.
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 specifies when to use this tool (for accumulation/breakout stocks) and contrasts it with 'screen_us_momentum' for momentum stocks. It also explains default seed behavior, but does not explicitly state when not to use it beyond this comparison.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
screen_us_momentumA
๋ฏธ๊ตญ ์ฃผ์์์ '์ต๊ทผ N์ผ ๋ด ๊ฑฐ๋๋ ๊ธ์ฆ + ์ถ์ธ ์ ํฉ' ์ข ๋ชฉ์ ํํฐ๋งํฉ๋๋ค.
[์๋] symbols ๋ฏธ์ง์ ์ Yahoo most_actives + day_gainers + small_cap_gainers
[์ฌ์ ํํฐ] ์์ฐจ ์ ์ฉ:
ยท ๋น์ผ ๊ณผ์ด ์ ์ธ: ์ค๋ ๋ฑ๋ฝ๋ฅ ์ด exclude_if_up_pct ์ด์์ด๋ฉด ์ ์ธ (์ถ๊ฒฉ ๋งค์ ๋ฐฉ์ง)
ยท ๊ฑฐ๋๋ ๊ธ์ฆ: max(์ต๊ทผ lookback์ผ) / ์ด์ baseline์ผ ํ๊ท โฅ spike_threshold
ยท Minervini Trend Template (์ต์
): Stage 2 ์์น์ถ์ธ 6์กฐ๊ฑด
ยท 52์ฃผ ๊ณ ์ ๊ทผ์ (์ต์
): ํ์ฌ๊ฐ โฅ 52์ฃผ๊ณ ์ ร high_proximity
ยท RS vs SPY (์ต์
): 3๊ฐ์ ์ด๊ณผ์์ต๋ฅ โฅ min_rs_outperformance (pp)
[์ ๋ต] 10๊ฐ์ง ๊ธฐ์ ์ ์ ๋ต ์ ์ฉ
Args: symbols: ์คํฌ๋ฆฌ๋ํ ํฐ์ปค ๋ชฉ๋ก. None์ด๋ฉด Yahoo ์คํฌ๋ฆฌ๋์์ ์๋ ์์ง top_n: ์๋ ํ๋ณด ์ํ exclude_if_up_pct: ์ค๋ ๋ฑ๋ฝ๋ฅ ์ด ์ด ๊ฐ(%) ์ด์์ด๋ฉด ์ ์ธ. None์ด๋ฉด ๋ฏธ์ ์ฉ (๊ธฐ๋ณธ 10.0) lookback_days: ๊ฑฐ๋๋ ๊ธ์ฆ ๋ฃฉ๋ฐฑ spike_threshold: ๊ธ์ฆ ๋ฐฐ์จ baseline_days: ๋น๊ต ๊ธฐ์ค ๊ธฐ๊ฐ enable_trend_template: Minervini Trend Template ์ฌ์ฉ ์ฌ๋ถ enable_near_52w_high: 52์ฃผ ๊ณ ์ ๊ทผ์ ํํฐ ์ฌ์ฉ ์ฌ๋ถ high_proximity: 52์ฃผ ๊ณ ์ ๋๋น ํ์ฉ ๋น์จ (0.75 = ๊ณ ์ ์ 75% ์ด์) enable_rs_filter: SPY ๋๋น RS ํํฐ ์ฌ์ฉ ์ฌ๋ถ rs_period_days: RS ์์ต๋ฅ ๊ณ์ฐ ๊ธฐ๊ฐ (๊ธฐ๋ณธ 63 โ 3๊ฐ์) min_rs_outperformance: ๋ฒค์น๋งํฌ ์ด๊ณผ์์ต ํํ (pp)
| Name | Required | Description | Default |
|---|---|---|---|
| symbols | No | ||
| top_n | No | ||
| exclude_if_up_pct | No | ||
| lookback_days | No | ||
| spike_threshold | No | ||
| baseline_days | No | ||
| enable_trend_template | No | ||
| enable_near_52w_high | No | ||
| high_proximity | No | ||
| enable_rs_filter | No | ||
| rs_period_days | No | ||
| min_rs_outperformance | No |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden. It details the step-by-step filtering logic (exclusion, volume spike, trend template, etc.) and mentions 10 technical strategies, but omits specifics about the strategies and does not disclose if the tool has any side effects (e.g., 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 well-structured with a summary, subsections, and parameter list. It is fairly long but every section adds value. Could be slightly more concise without losing info.
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 the filtering logic and all 12 parameters comprehensively. Output is not described but output schema exists. Missing details on the 10 technical strategies, but overall adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 0%, but the description thoroughly explains each parameter with defaults and meaning (e.g., exclude_if_up_pct, spike_threshold). This adds substantial value beyond the raw 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 explicitly states it filters US stocks based on volume surge and trend alignment, with specific references to Yahoo data sources. It clearly differentiates from sibling tools like screen_kr_momentum and screen_us_breakout by specifying 'US' and 'momentum' criteria.
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?
Provides clear context on when to use (filtering momentum stocks from Yahoo) and details the sequential pre-filters. However, lacks explicit 'when not to use' or direct comparison to siblings like diagnose_stock.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
search_stockA
์ข ๋ชฉ๋ช ์ผ๋ก ์ข ๋ชฉ์ฝ๋๋ฅผ ๊ฒ์ํฉ๋๋ค.
Args: keyword: ๊ฒ์ํ ์ข ๋ชฉ๋ช (์: '์ผ์ฑ์ ์', '์์ฒด๋ผ')
| Name | Required | Description | Default |
|---|---|---|---|
| keyword | Yes |
Output Schema
| Name | Required | Description |
|---|---|---|
| result | Yes |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden. It discloses the basic operation but lacks details on error handling, rate limits, or whether it is a read-only operation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very concise, with two sentences and an args block. It is front-loaded and contains no unnecessary 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 tool has an output schema, return values need not be explained. However, the description lacks details on search behavior (e.g., partial matches, case sensitivity) and error conditions, making it marginally adequate.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 0%, so the description adds necessary meaning for the keyword parameter with examples. It improves understanding beyond the raw schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's function: searching for a stock code by stock name. It provides examples and distinguishes from sibling tools that focus on analysis and screening.
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 when needing a stock code from a name, but does not provide explicit guidance on when to use this tool versus alternatives, nor any exclusion criteria.
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.
8 tool updates
v0.1.0- First observed
diagnose_stock - First observed
get_stock_analysis - First observed
get_us_stock_analysis - First observed
screen_kr_breakout - First observed
screen_kr_momentum - First observed
screen_us_breakout - First observed
screen_us_momentum - First observed
search_stock
TDQS
Scored across 8 tools
Each tool has a clearly distinct purpose: diagnosis, analysis (KR/US), screening by strategy and market, and ticker search. There is no overlap between tools; even the screening tools are differentiated by market and strategy type.
All tool names follow a consistent verb_noun pattern in snake_case (e.g., diagnose_stock, get_stock_analysis, screen_kr_breakout). The naming scheme is predictable and uniform across all tools.
With 8 tools, the server is well-scoped for stock analysis and screening. It covers core functionalities without being overly numerous or too sparse, providing a focused yet comprehensive set.
The tool set covers analysis, diagnosis, screening for both markets, and ticker search. Minor gaps exist, such as the absence of a dedicated quote tool, but the analysis tools include OHLCV. Overall, the surface is thorough for its domain.
Maintenance
Related MCP Connectors
Market analyst tools + AI agent: crypto, US equities, options, Korea, fundamentals, macro, backtests
Global stock research, ML forecasts, valuation signals, screeners & portfolio tracking in Claude
Screen 11,000+ stocks using natural language and detect chart patterns via MCP.
Technical analysis (RSI, MA, signal score) for 9,400+ global stocks, by ticker or name.
Related MCP Servers
AlicenseNot gradedqualityCmaintenanceProvides Korean stock market data (KOSPI, KOSDAQ, KONEX) including prices, fundamentals, investor trading, short selling, and indices via MCP protocol, enabling natural language queries from AI agents like ChatGPT and Claude.33 PyPI3MIT- FlicenseAqualityDmaintenanceEnables Claude to trade Korean and overseas stocks, check balances, and search stock information through the Korea Investment & Securities Open API.12-
- AlicenseNot gradedqualityAmaintenanceProvides real-time stock market data for Claude Desktop and MCP-compatible clients, enabling natural language queries for quotes, historical prices, company profiles, financial statements, analyst ratings, comparisons, news, options, holdings, dividends, estimates, symbol search, and market status.447 npm19MIT
- AlicenseNot gradedqualityFmaintenanceProvides comprehensive stock market data and technical analysis tools via the MCP protocol, enabling real-time quotes, historical data, and professional indicators like RSI and MACD for Claude Desktop and other clients.5Apache 2.0