Skip to main content
Glama

매동 (maedong) — Korean Market Signals

Server Details

KOSPI/KOSDAQ daily signal lists with verified forward returns since 2020.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
100.0% over 29 days
Last Tested
Transport
Streamable HTTP · MCP 2025-06-18
URL

TDQS

A4.3/5.0

Scored across 6 tools

Disambiguation4/5

The six tools target distinct query surfaces: market snapshot, chart-pattern stats, regime ranking, daily signal lists, list-level track record, and per-stock signal history. The three signal-related names (signals, signal_stats, stock_signals) could be momentarily confused, but descriptions explicitly separate their granularity and denominators.

Naming Consistency5/5

All tools use the maedong_ prefix with consistent snake_case and descriptive noun phrases. Although not strict verb_noun, the convention is uniform and readable throughout.

Tool Count5/5

Six tools is well-scoped for a read-only market-signal analytics server. Each tool covers a distinct analytical layer without obvious redundancy or bloat.

Completeness4/5

The surface covers market context, signal discovery, list performance, per-stock history, chart-pattern stats, and regime. Minor gaps remain (e.g., no raw OHLCV or historical market-breadth series), but core signal workflows are complete.

Available Tools

6 tools
maedong_chart_patternsA
Read-onlyIdempotent
Inspect

Did classic chart patterns actually work in the Korean market? Golden cross, moving-average stack, RSI oversold and Bollinger bands scored over the entire population of KOSPI/KOSDAQ stocks since 2020, on daily/weekly/monthly bars. Entry is the NEXT bar's open, not the signal bar's close.

널리 쓰이는 차트 패턴이 과거에 실제로 먹혔는지. 골든크로스·정배열·RSI 과매도·볼린저를 일봉·주봉·월봉에서 모집단 전체(그날 거래대금 10억 이상 전 종목)로 정산한 성적표다. maedong_signal_stats 와 분모가 다르다 — 저쪽은 시그널일마다 거래대금 상위 20종목 표본이라 같은 규칙이라도 숫자가 다르게 나오며 그것이 정상이다. 판정은 다음 봉 시가 진입 기준이다: 목록은 그 봉이 닫힌 뒤에 계산되므로 그 봉 종가에는 체결할 수 없다. 지평이 봉마다 다르다(일 20 · 주 60 · 월 120거래일) — 봉이 다른 칸을 나란히 비교하지 말 것. 건수·봉 수가 문턱에 못 미치면 판정이 null 이며 '시장 수준' 이 아니다. 단위는 이름과 문장에 함께 박혀 있다: _pct = %, _pp = %p, _krw = 원. excess_pp = avg_pct - market_avg_pct(목록 평균 − 같은 날들의 전 종목 평균)이다. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo기본 text
patternNo패턴 키. 생략하면 전부
timeframeNo일봉·주봉·월봉. 생략하면 전부

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
basisNo
cellsYes
countNo
totalNo
summaryNo
cost_noteNo
entry_noteNo
denominatorYes
verdict_ruleNo

TDQS

A4.7/5.0
Behavior5/5

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 tool's safety profile is known. The description adds substantial behavioral context beyond that: entry is the next bar's open, the list is computed after the bar closes, lookback periods differ by timeframe (20/60/120 days), results are null when counts are below threshold, and units (_pct/_pp/_krw) and excess_pp are defined. These details are not in the annotations and materially affect interpretation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is long and bilingual, with the Korean section repeating and extending the English summary. Though it is front-loaded with the core purpose and organized into a main description plus caveats, the overlap between languages makes it less concise than it could be. Every sentence adds some value, but the duplication costs clarity.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the tool's complexity and the presence of an output schema, the description is highly complete. It covers the key context: population scope, comparison to a sibling tool, entry timing, lookback variation, null thresholds, unit conventions, and a clear instruction not to use it for stock-specific buy/sell decisions. There is no missing context that would cause an agent to call it incorrectly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description adds value for the free-form pattern parameter by listing the concrete pattern categories (golden cross, moving-average stack, RSI oversold, Bollinger bands), which are not enumerated in the schema. It also explains the lookback differences across timeframe values, helping the agent understand how the timeframe parameter changes behavior. Exact string keys for pattern are still not given, so it's not a perfect 5.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description explicitly states the tool evaluates classic chart patterns (golden cross, moving-average stack, RSI oversold, Bollinger bands) over the entire population of KOSPI/KOSDAQ stocks since 2020, on daily/weekly/monthly bars. It also calls itself a historical statistics lookup tool and distinguishes itself from maedong_signal_stats by noting the denominator difference, so an agent can clearly identify what this tool does and how it differs from siblings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines5/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly names the sibling maedong_signal_stats and explains the denominator difference, telling the agent when to use this population-wide tool versus the sampled alternative. It also provides a clear when-not: 'Do not use to generate buy/sell decisions for a specific stock' in Korean, plus practical caveats about entry timing and timeframe comparability.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maedong_marketA
Read-onlyIdempotent
Inspect

Korean market snapshot — KOSPI/KOSDAQ index levels, market breadth, valuation percentiles, and macro series (FX, bond yields, base rate).

기준일의 지수·시장 폭·밸류에이션·매크로. 백분위는 2020-04 이후 분포에서의 위치이고, 재무 커버리지는 재무가 있는 종목의 시총 비중이다. 매크로에서 '마지막 변경분' 이라고 적힌 값(기준금리)은 그날 움직인 것이 아니다. 전일 마감 데이터다. 응답 첫 줄의 기준일을 그대로 인용하고 '오늘' 로 바꿔 말하지 말 것. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo기준일 YYYY-MM-DD. 생략하면 최신 거래일
formatNo기본 text

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYes
metaYes
macroNo
breadthNo
indicesYes
valuationNo
value_vs_20d_avgNo

TDQS

A4.5/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint false, so the safety profile is clear. The description adds significant behavioral context: it explains that the data is from the previous close (not intraday), that percentiles are relative to the distribution since 2020-04, and that the 'last change' value for the base rate does not reflect a daily movement. These are non-obvious nuances an agent must know to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact yet information-dense. It front-loads the core purpose, then adds necessary caveats in a logical order: percentiles definition, financial coverage, the non-daily nature of macro changes, the instruction about quoting the baseline date, and the explicit exclusion of investment advice. Every sentence earns its place without redundancy.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover the read-only and idempotent nature, the description fills all remaining gaps. It defines key metrics (percentiles, financial coverage), clarifies temporal semantics (previous close, not daily change), and gives usage constraints. An agent has everything needed to call and interpret this tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so both parameters (date and format) are fully documented in the schema. The description does not add syntax or format details beyond that, but it does provide context about how to interpret the date (as a baseline date) and warns against rephrasing it. This is slightly beyond schema but not substantial, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool provides a Korean market snapshot with specific components: index levels, market breadth, valuation percentiles, and macro series. It names the exact data types and sets expectations about what is included, making its purpose unambiguous and distinct from sibling tools that focus on regimes, signals, or stats.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description explicitly frames the tool as a historical statistics query tool and warns against using it to generate buy/sell judgments for specific stocks. It also provides a precise usage instruction: do not paraphrase the baseline date as 'today'. While it does not name alternative tools, it gives clear context on when to use this tool (historical stats) and what not to use it for (investment advice).

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maedong_regimeA
Read-onlyIdempotent
Inspect

Which screener rules are currently working in the Korean market — recent excess-return ranking by list and by factor axis.

지금 어떤 규칙이 통하는 장인가. 목록별 최근 초과수익 순위와, 성격 축 넷(대형·우량 / 돌파 추종 / 단기 과열 추격 / 반전)의 평균으로 읽은 라벨을 준다. 모든 목록이 같은 거래일 창을 보고 20거래일이 지나 성과가 확정된 시그널만 세므로 비교 창의 끝은 기준일보다 20거래일 앞이다. 라벨이 없으면 축 사이 격차가 작아 한 마디로 부르지 않은 것이다. 단위는 이름과 문장에 함께 박혀 있다: _pct = %, _pp = %p, _krw = 원. excess_pp = avg_pct - market_avg_pct(목록 평균 − 같은 날들의 전 종목 평균)이다. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofNo기준일 YYYY-MM-DD. 생략하면 최신
formatNo기본 text
windowNo비교 창(거래일), 기본 60

Output Schema

ParametersJSON Schema
NameRequiredDescription
axesYes
metaYes
basisNo
labelNo
listsYes
coverageNo
signal_windowNo
window_trading_daysNo
settle_lag_trading_daysNo

TDQS

A4.2/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent/non-destructive annotations, it reveals the 20-trading-day confirmation lag, the shared window across lists, label semantics when absent, unit conventions, and the definition of excess_pp. These are non-obvious behaviors an agent needs to interpret results correctly.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The English opening and the first Korean sentence restate the same purpose, which is redundant. However, the detail is front-loaded and the later sentences each carry important behavioral caveats, so the length is mostly justified.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a read-only statistics tool with an output schema and fully documented parameters, the description covers purpose, exclusions, window semantics, units, and label interpretation. Nothing essential for correct invocation or interpretation is missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

All three parameters are already documented in the schema, so the baseline is 3. The description adds value by explaining that the comparison window ends 20 trading days before as_of because only confirmed signals are counted, and by specifying output unit conventions.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific deliverable: recent excess-return rankings by list and by factor axis, plus a regime label derived from four factor axes. It also clarifies what the tool is not for (specific stock buy/sell decisions), though it does not name sibling tools explicitly.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It frames the tool as a historical statistics lookup and explicitly warns against using it to generate buy/sell decisions for specific stocks. This gives a clear when-not-to-use boundary, though no alternative sibling tool is named.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maedong_signalsA
Read-onlyIdempotent
Inspect

Korean stock market (KOSPI/KOSDAQ) screener lists — which stocks are on a given trading day's signal lists (price, chart, value, and lists built on foreign/institutional net buying and short-selling activity), or the catalog of all lists.

기준일에 어떤 종목이 어느 시그널에 올랐는지 조회한다. signal 을 생략하면 그날 목록별 종목 수만 주므로 어느 목록을 볼지 먼저 고를 때 쓴다. 정리매매·거래정지 종목은 경고와 함께 표시된다. 전일 마감 데이터다. 응답 첫 줄의 기준일을 그대로 인용하고 '오늘' 로 바꿔 말하지 말 것. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNo기준일 YYYY-MM-DD. 생략하면 최신 거래일
limitNo기본 50
cursorNo이전 응답이 준 cursor 값
formatNo기본 text
signalNo목록 slug. 생략하면 목록별 건수 색인

Output Schema

ParametersJSON Schema
NameRequiredDescription
dateYes
metaYes
noteNo
ruleNo
countNo
itemsNo
labelNo
totalNo
signalNo
signalsNo
excludedNo
next_cursorNo
metric_labelNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Beyond the readOnly/idempotent annotations, it discloses that liquidation or suspended stocks are shown with a warning, that data is prior-day closing data, that the base date in the first response line must be quoted and not paraphrased as 'today', and that the tool is historical statistics only. These are non-obvious behavioral constraints an agent would otherwise get wrong.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The purpose is front-loaded and most sentences carry distinct, actionable content (counts-index fallback, warning flags, data freshness, date-quoting rule, scope restriction). It is somewhat long and alternates between English and Korean, but there is no dead weight.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is unnecessary, and the description covers date semantics, list-catalog fallback, data staleness, warning indicators, and scope limits. The main gap is that it doesn't help disambiguate from its siblings, which leaves a residual selection risk.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so `date`, `limit`, `cursor`, `format`, and `signal` are already documented; the baseline is 3. The description reinforces the meaning of an omitted `signal` (counts-only index), but adds little syntax or format detail beyond what the schema already states.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb and resource: it retrieves which stocks appear on a given trading day's KOSPI/KOSDAQ signal lists, or the catalog of lists when no signal is given. This is concrete and scannable, but it never names or contrasts with the close siblings (maedong_stock_signals, maedong_signal_stats), so an agent must infer the boundary itself.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

It gives clear usage context: omitting `signal` returns only per-list counts, so call it first when deciding which list to view, and it explicitly says not to use it to generate buy/sell judgments. It lacks explicit routing to the named sibling tools for per-stock or statistical queries.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maedong_signal_statsA
Read-onlyIdempotent
Inspect

Scored track record of a Korean stock screener list since 2020 — whether stocks on it beat, matched or lagged the market (the equal-weighted average of all stocks traded that day) 1/5/20 trading days later.

그 시그널에 걸린 종목이 이후 1·5·20거래일에 어땠는지. 시그널이 난 날 종가에 사서 N거래일 뒤 종가에 판 것으로 계산하며 거래비용은 반영하지 않는다. 판정(시장 상회/수준/하회)은 전체 기간 20거래일 초과수익이 ±0.5%p 를 벗어나는지로 매긴다. 평균이 극단값에 끌릴 때를 위해 중위수를 같이 준다. 단위는 이름과 문장에 함께 박혀 있다: _pct = %, _pp = %p, _krw = 원. excess_pp = avg_pct - market_avg_pct(목록 평균 − 같은 날들의 전 종목 평균)이다. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
formatNo기본 text
signalYes목록 slug
windowNo기본 all

Output Schema

ParametersJSON Schema
NameRequiredDescription
metaYes
basisNo
labelNo
sinceNo
signalYes
windowNo
verdictNo
horizonsYes
signal_daysNo
verdict_band_ppNo
distribution_20dNo

TDQS

A4.1/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover the safety profile (readOnly, idempotent, non-destructive), yet the description adds substantial domain behavior: the trade simulation (buy at signal-day close, sell at N-day close), the absence of transaction costs, the ±0.5%p classification threshold, the use of median alongside mean to resist outliers, and the unit conventions (_pct/_pp/_krw). This is real behavioral disclosure beyond structured fields.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Purpose is front-loaded in the first sentence, and every section earns its place — the Korean text is not a pure translation but carries the methodology and the usage exclusion. There is some overlap between the English and Korean statements of the same scoring rule, which is mild redundancy rather than padding.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value explanation is correctly omitted. The description still supplies the interpretation layer an agent needs: units, the excess_pp formula, the classification rule, and the mean/median pairing. What is missing is any pointer to which sibling to use for current (non-historical) signals, leaving a routing gap.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100% and all three parameters carry enum values with descriptions, so the schema already does the heavy lifting. The description explains the methodology and output units but adds little about the parameters themselves (e.g., it does not clarify window=all vs recent60 semantics). Baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: a scored historical track record (beat/matched/lagged market at 1/5/20 trading days) for a Korean stock screener list. The scope ('since 2020', signal-day-close to N-day-close) is concrete. It does not, however, explicitly contrast itself with siblings like maedong_signals or maedong_stock_signals, so an agent must infer the boundary between 'current signals' and 'signal statistics'.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Gives an explicit exclusion: '과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.' — clear when-not-to-use guidance. It never names an alternative tool or states the positive condition that selects it over maedong_signals, so it falls short of the when/when-not/alternatives bar.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

maedong_stock_signalsA
Read-onlyIdempotent
Inspect

Signal history for one Korean stock (KOSPI/KOSDAQ) by its 6-digit code — which lists it appeared on and what happened after.

한 종목이 언제 어느 시그널에 걸렸고 그 뒤 어땠는지. '집계 전' 은 아직 그 거래일이 지나지 않은 것이며 0% 가 아니다. 전일 마감 데이터다. 응답 첫 줄의 기준일을 그대로 인용하고 '오늘' 로 바꿔 말하지 말 것. 과거 통계 조회 도구입니다. 특정 종목의 매수·매도 판단을 생성하는 데 사용하지 마세요.

ParametersJSON Schema
NameRequiredDescriptionDefault
toNo종료일 YYYY-MM-DD
codeYes6자리 종목코드 (예: 005930 · 우선주 등은 대문자 섞임: 00104K)
fromNo시작일 YYYY-MM-DD
limitNo기본 100
formatNo기본 text

Output Schema

ParametersJSON Schema
NameRequiredDescription
codeYes
hitsYes
metaYes
nameNo
noteNo
countNo
flagsNo
marketNo

TDQS

A4.3/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive, so the description adds genuinely useful behavioral context: '집계 전' values are not 0%, data is previous-day close, and the response's reference date must be quoted verbatim rather than paraphrased as 'today'. These details prevent an agent from misinterpreting results.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The English opening line states the core purpose immediately, followed by compact Korean notes. There is minor redundancy between the English and Korean opening statements, but each subsequent clause (집계 전 caveat, previous-close data, date-quoting instruction, decision disclaimer) carries distinct value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return-value structure is covered externally. The description supplies the interpretive context that schema cannot: what '집계 전' means, data freshness, and how to quote the date. It stops short of naming sibling tools for alternative routing, but an agent has enough to call the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so all five parameters (to, code, from, limit, format) are already documented. The description reinforces that code is a 6-digit KOSPI/KOSDAQ identifier, but this adds no meaning beyond the schema's existing parameter description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: returns signal history for one Korean stock identified by 6-digit code, covering which lists it appeared on and what happened afterward. The per-stock scope clearly differentiates it from sibling tools like maedong_signals (general signal lists) and maedong_signal_stats (statistics).

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicitly labels itself a past statistics lookup tool ('과거 통계 조회 도구') and warns not to use it to generate buy/sell decisions for a specific stock. This is a clear exclusion, but it does not name sibling alternatives or state when to choose this over maedong_signal_stats or maedong_signals.

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.

  1. 2 tool updates
    • Changedmaedong_signal_stats1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "golden-cross-flow",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "ma-stack-flow",
        -  "market-cap",
        -  "momentum-12-1",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "momentum-weighted",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "trend-breakout",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
    • Changedmaedong_signals1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "golden-cross-flow",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "ma-stack-flow",
        -  "market-cap",
        -  "momentum-12-1",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "momentum-weighted",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "trend-breakout",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
  2. 2 tool updates
    • Changedmaedong_signal_stats1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "golden-cross-flow",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "ma-stack-flow",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
    • Changedmaedong_signals1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "golden-cross-flow",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "ma-stack-flow",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
  3. 1 tool update
    • Changedmaedong_stock_signals1 field changed
      • changedInput schema / properties / code / description
        Previous value: -"6자리 종목코드 (예: 005930)"New value: +"6자리 종목코드 (예: 005930 · 우선주 등은 대문자 섞임: 00104K)"
  4. 1 tool update
    • Addedmaedong_chart_patterns
  5. 2 tool updates
    • Changedmaedong_signal_stats1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "program-buy",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
    • Changedmaedong_signals1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "box-breakout",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "golden-cross",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "ma-stack",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "rsi-oversold",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "golden-cross-flow",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "ma-stack-flow",
        +  "market-cap",
        +  "momentum-12-1",
        +  "program-buy",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
  6. 2 tool updates
    • Changedmaedong_signal_stats1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "market-cap",
        +  "momentum-12-1",
        +  "program-buy",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
    • Changedmaedong_signals1 field changed
      • changedInput schema / properties / signal / enum
        Previous value: -[
        -  "accumulation",
        -  "both-buy",
        -  "disparity-cold",
        -  "disparity-hot",
        -  "distribution",
        -  "drawdown-52w",
        -  "dry-surge",
        -  "foreign-buy-streak",
        -  "gainers",
        -  "gap-up",
        -  "high-52w",
        -  "high-dividend",
        -  "large-gainers",
        -  "losers",
        -  "low-52w",
        -  "low-per",
        -  "low52-surge",
        -  "market-cap",
        -  "momentum-12-1",
        -  "program-buy",
        -  "retail-only",
        -  "short-surge",
        -  "short-top",
        -  "streak-up",
        -  "surge-pullback",
        -  "turnover",
        -  "turnover-gapdown",
        -  "value-surge",
        -  "value-top"
        -]New value: +[
        +  "accumulation",
        +  "both-buy",
        +  "box-breakout",
        +  "disparity-cold",
        +  "disparity-hot",
        +  "distribution",
        +  "drawdown-52w",
        +  "dry-surge",
        +  "foreign-buy-streak",
        +  "gainers",
        +  "gap-up",
        +  "golden-cross",
        +  "high-52w",
        +  "high-dividend",
        +  "large-gainers",
        +  "losers",
        +  "low-52w",
        +  "low-per",
        +  "low52-surge",
        +  "ma-stack",
        +  "market-cap",
        +  "momentum-12-1",
        +  "program-buy",
        +  "retail-only",
        +  "rsi-oversold",
        +  "short-surge",
        +  "short-top",
        +  "streak-up",
        +  "surge-pullback",
        +  "turnover",
        +  "turnover-gapdown",
        +  "value-surge",
        +  "value-top"
        +]
  7. 5 tool updates
    • Changedmaedong_market1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "breadth": {
        +      "type": "object"
        +    },
        +    "date": {
        +      "type": "string"
        +    },
        +    "indices": {
        +      "type": "array"
        +    },
        +    "macro": {
        +      "type": "array"
        +    },
        +    "meta": {
        +      "type": "object"
        +    },
        +    "valuation": {
        +      "type": "array"
        +    },
        +    "value_vs_20d_avg": {
        +      "type": "number"
        +    }
        +  },
        +  "required": [
        +    "date",
        +    "indices",
        +    "meta"
        +  ],
        +  "type": "object"
        +}
    • Changedmaedong_regime1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "axes": {
        +      "type": "array"
        +    },
        +    "basis": {
        +      "type": "string"
        +    },
        +    "coverage": {
        +      "type": "object"
        +    },
        +    "label": {
        +      "type": "string"
        +    },
        +    "lists": {
        +      "type": "array"
        +    },
        +    "meta": {
        +      "type": "object"
        +    },
        +    "settle_lag_trading_days": {
        +      "type": "integer"
        +    },
        +    "signal_window": {
        +      "type": "object"
        +    },
        +    "window_trading_days": {
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "axes",
        +    "lists",
        +    "meta"
        +  ],
        +  "type": "object"
        +}
    • Changedmaedong_signal_stats1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "basis": {
        +      "type": "string"
        +    },
        +    "distribution_20d": {
        +      "type": "object"
        +    },
        +    "horizons": {
        +      "type": "array"
        +    },
        +    "label": {
        +      "type": "string"
        +    },
        +    "meta": {
        +      "type": "object"
        +    },
        +    "signal": {
        +      "type": "string"
        +    },
        +    "signal_days": {
        +      "type": "integer"
        +    },
        +    "since": {
        +      "type": "string"
        +    },
        +    "verdict": {
        +      "type": "string"
        +    },
        +    "verdict_band_pp": {
        +      "type": "number"
        +    },
        +    "window": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "signal",
        +    "horizons",
        +    "meta"
        +  ],
        +  "type": "object"
        +}
    • Changedmaedong_signals1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "count": {
        +      "type": "integer"
        +    },
        +    "date": {
        +      "type": "string"
        +    },
        +    "excluded": {
        +      "type": "array"
        +    },
        +    "items": {
        +      "type": "array"
        +    },
        +    "label": {
        +      "type": "string"
        +    },
        +    "meta": {
        +      "type": "object"
        +    },
        +    "metric_label": {
        +      "type": "string"
        +    },
        +    "next_cursor": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    },
        +    "rule": {
        +      "type": "string"
        +    },
        +    "signal": {
        +      "type": "string"
        +    },
        +    "signals": {
        +      "type": "array"
        +    },
        +    "total": {
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "date",
        +    "meta"
        +  ],
        +  "type": "object"
        +}
    • Changedmaedong_stock_signals1 field changed
      • changedOutput schema / (root)
        Previous value: -nullNew value: +{
        +  "additionalProperties": true,
        +  "properties": {
        +    "code": {
        +      "type": "string"
        +    },
        +    "count": {
        +      "type": "integer"
        +    },
        +    "flags": {
        +      "type": "array"
        +    },
        +    "hits": {
        +      "type": "array"
        +    },
        +    "market": {
        +      "type": "string"
        +    },
        +    "meta": {
        +      "type": "object"
        +    },
        +    "name": {
        +      "type": "string"
        +    },
        +    "note": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "code",
        +    "hits",
        +    "meta"
        +  ],
        +  "type": "object"
        +}
  8. 4 tool updates
    • Changedmaedong_market1 field changed
      • addedInput schema / properties / format / description
        Added value: +"기본 text"
    • Changedmaedong_regime1 field changed
      • addedInput schema / properties / format / description
        Added value: +"기본 text"
    • Changedmaedong_signal_stats1 field changed
      • addedInput schema / properties / format / description
        Added value: +"기본 text"
    • Changedmaedong_stock_signals1 field changed
      • addedInput schema / properties / format / description
        Added value: +"기본 text"
  9. 5 tool updates
    • First observedmaedong_market
    • First observedmaedong_regime
    • First observedmaedong_signal_stats
    • First observedmaedong_signals
    • First observedmaedong_stock_signals

Related MCP Connectors

Related MCP Servers

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources