Skip to main content
Glama

株主優待 MCP (Yutai MCP)

search_benefits

株主優待を検索する。複数条件を組み合わせて絞り込める。

【重要: vestingDates と karaDates の違い】 vestingDates(権利確定日): 現物保有で優待を得るための権利確定月日。「○月に権利確定する銘柄」はこちら。 karaDates(空クロス日): 権利確定日だけでなく別の日付にも株を一定数保有する必要がある銘柄の、その追加保有日。 端株保有だけでは条件を満たせず、その日付にクロス取引(空クロス)で株数を確保する必要がある。 「○月に空クロスが必要な銘柄」→ karaDate="MM" または karaDateFrom/karaDateTo で検索する。 vestingDate で検索しても空クロス対象の銘柄は正しく絞り込めない。

【信用取引区分 lendingType】 both=制度信用売り可。制度信用でクロスができる buying_only=制度信用買いのみ可、売りが使えないため制度信用ではクロスができない none=信用取引不可

【制度信用の規制 systemLendingStatus】各結果に付く。none=規制なし / warn=注意喚起(増担保・申込停止等) / prohibited=売禁(制度信用の新規売り停止)。lendingType(構造的な区分)とは別で、日々変動する。 ・売禁の銘柄だけ / 除外したい → sellProhibited=true / false ・注意喚起の銘柄だけ / 除外したい → sellCaution=true / false ・売禁または注意喚起(要注意銘柄)だけ / 除外したい → sellRestricted=true / false データ未取得の銘柄は「規制なし」として扱う。

【増担保 marginRateMultiplier】各結果に付く。増担保金徴収措置による最高料率倍率(例: 10=10倍)。 systemLendingStatusとは別の措置で、売禁・注意喚起と同時に付くことも単独で付くこともある。措置無しはundefined。 ・倍率で絞り込みたい → minMarginRateMultiplier / maxMarginRateMultiplier(措置無しの銘柄は対象外になる)

【長期条件】longType: none=なし / longAddition=長期優遇 / longOnly=長期必須 【難易度】rarity: 前回権利時の一般信用在庫の推移(証券会社別)から算出した「一般信用クロスでの 確保しやすさ」。canNormalSelling_* / minRemain_* とは別の、過去実績ベースの総合指標。 S(最難。在庫がほぼ出回らない)>A>B>C>D>E(最易。常時潤沢) ※minRarity='A' → AかSの銘柄のみ 【一般信用売り】canNormalSelling_*: enableSelling=売り可(空売含) / enableLongSelling=長期売りのみ可 / notEnableSelling=不可 【一般信用残】minRemain_sbi/gmo: few=△以上 / remaining=◎のみ。minRemain_rakuten/kabucom/smbc: 数量指定 【利回り】actualYield(%): 優待の申込単位ごとに (評価額 ÷ (株価×その単位の株数)) × 100 を計算し、 達成可能な最良の値を採用する(必要株数がminRequiredUnitsと異なる場合がある)。 長期保有条件(details[].longType='required'/'additional')付きの上位ランク・追加分はクロス (初回取得)では届かないため対象外(longTypeが無い基本額のみで計算)。 クロスの手数料・貸株料・逆日歩は一切含まない額面利回り。 ※minValue/maxValue(評価額の最小値/最大値)・minRequiredUnits(必要株数の最小値)は、それぞれ独立の別統計であり 同じ申込単位の値とは限らない(actualYieldの算出には使わない)。 【手取り利回り】netYield(%): (優待評価額 - 必要クロスコスト)/必要資金×100。必要クロスコストに逆日歩は 含まない(一般信用クロスのみが対象で、逆日歩が発生する制度信用は含まないため)。 ・各結果に crossCost(必要クロスコスト)/crossCostBroker/crossCostSellMethod/netValue/netYield が付く。 ・比較対象は「今この銘柄で実際にできる一般信用クロス」に限る: - その証券会社で一般信用売りの取り扱いがあり(enableShort/enableUnlimited)、かつ残数がある - 短期(general_short)は SBI/GMO/楽天のみ。約定日が売建可能日以降であること - 制度信用クロスは常に対象外(逆日歩リスクがあるため netYield には含めない) ・上記を満たす手段が1つも無い銘柄、株価・優待評価額・権利確定日が無い銘柄、 今からでは決済が間に合わない銘柄には netYield が付かない(= 今すぐ得できる優待の指標)。 ・「手数料を引いても得な優待」は minNetYield / sortBy:netYield で絞る。 ・返す数件には常に付くが、sortBy:netYield / minNetYield / maxNetYield を指定したときだけ 全候補に対して計算する(それ以外は最終ページの数件のみ計算)。 ・使ったプラン設定(ゼロ革命/コース/大口優遇/約定日)はヘッダー行に出る。ユーザーの実際の契約と 違う場合は sbiZeroRevolution / rakutenCourse / kabucomLargeLot / date 等で指定し直せることを案内すること。 【逆日歩】prevLendingInterest: 直近1回(前回の権利付き最終日)の逆日歩実績のみ(平均ではない)を、 1日あたり・株価に対する比率に換算した値(0.01=1日あたり1%)。制度信用クロスのコスト目安に使う。 過去複数回の履歴(ワースト10・直近10日)や一般信用在庫の推移は get_benefit に sections:["negativeInterests"] / ["remainingHistories"] を指定して取得する。 【並べ替え】sortBy / order で並べ替え、件数は limit で指定する(省略時20件。sortByとは独立)。 「手取り利回り順トップ10」→ sortBy:netYield と limit:10 を両方指定する(sortByだけでは10件に絞らない)。 他に「必要資金の少ない順」→ requiredFunds、「前回逆日歩が高い順」→ prevLendingInterest(一般信用推奨候補)。 sortBy 省略時は並べ替えなし。

【出力フィールドの読み方】 unit/minRequiredUnits: 権利確定日に必要な通常の株数 details[]: 優待の詳細条件一覧。各要素に以下が含まれる: candidates[].unit: その条件での必要株数 longType: 'additional'=長期優遇 / 'required'=長期必須 longCondition: 長期保有条件の概要テキスト(例: "継続保有期間1年以上") longConditionDetail: 長期保有条件の詳細テキスト 「空クロスで必要な株数を教えて」→ details[].longConditionDetail のテキストから株数を読み取る 「長期条件を教えて」→ details[].longCondition と details[].longConditionDetail を参照する 「空クロスの有無」→ karaDates の有無を確認する(details の longType とは別物)

【details[].candidates の金額と vestingDates(複数権利月)の対応】 vestingDates が複数ある銘柄(例: ["03","09"]=年2回)で、candidates[].detail に月の但し書き (「3月のみ」「(9月)」等)が無い場合、その金額(value)は権利月ごとに同額が適用される (例: vestingDates=["03","09"], detail="500円分" → 3月に500円分・9月にも500円分もらえる。 年間合計は1000円分であり、「9月分かどうか不明」ではない)。 一方、detail に特定の月が明記されている場合(例:「(3月のみ)クオカード3,000円相当 (9月)クオカード2,000円分」)は、 明記された月にのみその内容が適用され、他の月は別の候補行(candidates の別要素)を参照する。 「○月にもらえる優待は?」と聞かれたら、月の但し書きが無い限り vestingDates に含まれる 全ての月で同じ内容がもらえると回答すること(「不明」「要確認」と答えない)。

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
dateNonetYield計算の約定日 (YYYY-MM-DD)。省略時は「今」から自動算出(JST 15:30より前なら当日、以降なら翌営業日)
limitNo最大件数 (デフォルト20)
orderNo並び順。省略時のデフォルトは sortBy 依存(nextVestingDate/requiredFunds は asc、それ以外は desc)
anyDayNo長期条件の判定で、決まった基準日以外にも「任意の日」に保有状況を抜き打ちで確認すると明記されている銘柄かどうか。trueにするとそれに該当する銘柄のみ返す(基準日だけクロスで確保しても長期条件を満たせない可能性がある、要注意銘柄)
gmoVipNoGMO VIPプラン。既定false
sbiVipNoSBI大口優遇(建玉5億円以上)。既定false
sortByNo並べ替えキー。actualYield=実質利回り(手数料考慮なし) / netYield=手取り利回り(必要クロスコスト〈逆日歩除く〉を引いた後) / minValue=優待評価額 / requiredFunds=必要資金 / prevLendingInterest=前回の逆日歩率 / nextVestingDate=次回権利確定日 / update=優待内容が最後に変更された日。省略時は並べ替えなし。値を持たない銘柄は order によらず末尾
keywordNo部分一致検索。対象: 銘柄コード / 銘柄名 / サマリー / 詳細説明(description) / 更新メモ(updateNote) / 優待内容の各候補テキスト(details[].candidates[].detail)。「コストコ」「株主優待券」など優待の中身でも検索できる。例: "3397", "すかいらーく", "コストコ"
karaDateNo空クロスが必要な月または月日で絞り込む。「○月に空クロスが必要な銘柄」を探す場合はここを使う。例: "05"=5月, "05-20"=5月20日。vestingDate(権利確定日)とは別物なので混同しないこと。
longTypeNo長期保有条件の完全一致。none=なし, longAddition=長期優遇, longOnly=長期必須
maxValueNo絞り込みたい優待評価額の上限 (円)。優待自身の評価額の範囲(出力のminValue〜maxValue)がminValue引数〜この上限の範囲に少しでも重なる銘柄を返す(単一値の一致ではない)。例: 10000 = 10000円以下を含む銘柄
minValueNo絞り込みたい優待評価額の下限 (円)。優待自身の評価額の範囲(出力のminValue〜maxValue)がこの下限〜maxValue引数の範囲に少しでも重なる銘柄を返す(単一値の一致ではない)。例: 1000 = 1000円以上を含む銘柄
updateToNo優待内容が変更された日(update)の上限 (YYYY-MM-DD)。例: "2026-05-31" → 5月末までに優待内容が変更された銘柄
maxRarityNo一般信用クロスの取得難易度(前回権利時の在庫推移から算出)の上限。例: "C" → C,D,Eの取りやすい銘柄のみ
minRarityNo一般信用クロスの取得難易度(前回権利時の在庫推移から算出)の下限。S>A>B>C>D>E。例: "A" → AまたはSの難しい銘柄のみ
kabucomSorNoカブコムSOR(スマート・オーダー・ルーティング)。既定false
karaDateToNo次回空クロス日の上限 (YYYY-MM-DD)。例: "2026-05-31" → 5月末までに空クロスが必要な銘柄
rakutenVipNo楽天大口優遇。既定false
updateFromNo優待内容が変更された日(update)の下限 (YYYY-MM-DD)。例: "2026-05-01" → 5月1日以降に優待内容が変更された銘柄
lendingTypeNo信用取引区分。both=制度クロス可, buying_only=空クロス必要, none=クロス不可
maxNetYieldNo手取り利回りの上限 (%)
minNetYieldNo手取り利回りの下限 (%)。例: 0.5 = 手数料を引いても0.5%以上
requireKaraNotrue=空クロスが必要な日付(karaDates)がある銘柄のみ / false=karaDatesがない銘柄のみ
sellCautionNo制度信用の注意喚起(増担保・申込停止等)。true=注意喚起中の銘柄のみ / false=注意喚起でない銘柄のみ
vestingDateNo権利確定月または月日で単一絞り込み。例: "03"=3月, "03-20"=3月20日 (vestingDates配列に対してマッチ)
benefitTypesNo優待種別(OR検索)。例: ["QUO","MealTicket"]。指定した種別のいずれかを持つ銘柄を返す。種別一覧: QUO, RiceVoucher, CashVoucher, JEFVoucher, MealTicket, FacilityTicket, ShoppingTicket, HotelTicket, TransportTicket, OtherTicket, CatalogGift, PYC, Electronics, Fashion, OtherItems, Fruit, Meat, Fish, Drink, Liquor, Rice, Sweets, OtherMeal
excludeCodesNo除外する銘柄コード配列
karaDateFromNo次回空クロス日の下限 (YYYY-MM-DD)。例: "2026-05-01" → 5月以降に空クロスが必要な銘柄
minRemain_gmoNoGMO 一般信用残数の下限。few=△以上, remaining=◎のみ
minRemain_sbiNoSBI 一般信用残数の下限。few=△以上(△または◎), remaining=◎のみ。canNormalSelling_sbi=enableSelling と併用推奨
rakutenCourseNo楽天のコース。既定"zero"(ゼロコース)
vestingDateToNo次回権利確定日の上限 (YYYY-MM-DD)。nextVestingDate <= この値の銘柄を返す
maxActualYieldNo実利回り上限 (%)。優待の申込単位のうち達成可能な最良の額面利回りで、クロスの手数料・貸株料・逆日歩は含まない。手数料込みで絞るには maxNetYield を使う。株価データが無い銘柄(price未取得)はこの条件では判定できないため除外される。例: 5.0 = 5%以下
minActualYieldNo実利回り下限 (%)。優待の申込単位のうち達成可能な最良の額面利回りで、クロスの手数料・貸株料・逆日歩は含まない。手数料込みで絞るには minNetYield を使う。株価データが無い銘柄(price未取得)はこの条件では判定できないため除外される。例: 1.0 = 1%以上
minRemain_smbcNoSMBC日興 一般信用残数の下限(株数)
sellProhibitedNo制度信用の売禁(新規売り停止)。true=売禁の銘柄のみ / false=売禁でない銘柄のみ。データ未取得は「規制なし」扱い
sellRestrictedNo売禁または注意喚起(制度信用の要注意銘柄)。true=いずれかに該当する銘柄のみ / false=どちらでもない銘柄のみ
kabucomLargeLotNoカブコム大口優遇ランク。既定"none"
vestingDateFromNo次回権利確定日の下限 (YYYY-MM-DD)。nextVestingDate >= この値の銘柄を返す
hasLongConditionNotrueにすると長期条件あり銘柄 (longAddition または longOnly) のみ返す
maxRequiredFundsNo必要資金の上限 (円)。株価×minRequiredUnits で計算。株価データが無い銘柄(price未取得)はこの条件では判定できないため除外される
minRequiredFundsNo必要資金の下限 (円)。株価×minRequiredUnits で計算。株価データが無い銘柄(price未取得)はこの条件では判定できないため除外される
minRemain_kabucomNoカブドットコム 一般信用残数の下限(株数)
minRemain_rakutenNo楽天 一般信用残数の下限(株数)。例: 1000 = 1000株以上
sbiZeroRevolutionNoSBIゼロ革命(電子交付設定)。既定true
minRemain_any_countNo楽天・カブコム・SMBCのいずれかで指定した株数以上の一般信用残数がある銘柄 (OR検索)。例: 1 → どこかに在庫あり, 2000 → どこかに2000株以上
canNormalSelling_anyNoいずれかの証券会社で条件を満たす銘柄を返す (OR検索)。「どこかで一般信用売りができる銘柄」を探すときに使う。個別の canNormalSelling_* と併用すると AND になる。enableSelling=売り可, enableLongSelling=長期売りのみ
canNormalSelling_gmoNoGMO 一般信用売り可否
canNormalSelling_sbiNoSBI 一般信用売り可否。enableSelling=売り可, enableLongSelling=長期売りのみ, notEnableSelling=不可
canNormalSelling_smbcNoSMBC日興 一般信用売り可否
maxPrevLendingInterestNo前回逆日歩率(1日あたり・株価に対する比率)の上限。例: 0.01 = 1日あたり1%以下
minPrevLendingInterestNo前回逆日歩率(1日あたり・株価に対する比率)の下限。例: 0.005 = 1日あたり0.5%以上
maxMarginRateMultiplierNo増担保金徴収措置による最高料率倍率(marginRateMultiplier)の上限。措置が無い銘柄は対象外になる。例: 10 = 10倍以下
minMarginRateMultiplierNo増担保金徴収措置による最高料率倍率(marginRateMultiplier)の下限。措置が無い銘柄は対象外になる。例: 5 = 5倍以上
rakutenPreferentialRateNo楽天優遇金利適用。既定false
canNormalSelling_kabucomNoカブドットコム 一般信用売り可否
canNormalSelling_rakutenNo楽天 一般信用売り可否

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
itemsYesitemsの各要素はrarity等のフィルタで使うのと同じ意味のフィールドを持つ
totalYesフィルタ後(ページングする前)の全該当件数
assumptionsNonetYield計算に使った証券会社プラン・約定日の前提

Schema Changelog

Changes observed during successful MCP inspections.

  1. First observed

TDQS

A4.3/5.0
Behavior5/5

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

No annotations exist, so the description carries the full burden and does so well. It discloses non-obvious behavior: netYield is computed only for the last few rows unless sortBy:netYield/minNetYield is set, unretrieved regulation data is treated as 'no restriction', and netYield is absent for stocks with no viable general-credit cross. These are exactly the operational caveats an agent needs.

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 size is large but largely justified by a 57-parameter domain, and it is organized with labeled 【…】 sections and front-loads the purpose before the detail blocks. Some passages (e.g., netYield cost rules) repeat adjacent constraints, so it is not maximally tight, but every block maps to a real decision.

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 an output schema exists, return-format explanation is optional, yet the description still explains details[]/candidates/month-application rules that materially affect answers. Combined with coverage of lendingType, systemLendingStatus, marginRateMultiplier, yield definitions and sort semantics, nothing an agent needs to call it correctly 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?

Schema coverage is 100%, so the baseline is 3. The description adds real meaning beyond the schema: the vestingDates vs karaDates distinction and the warning not to confuse them, how rarity is derived, and that actualYield may use a different unit than minRequiredUnits/minValue. It clarifies cross-parameter semantics rather than merely restating them.

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 opening line states a specific verb and resource (search shareholder benefits) with combinable filters. It also routes history/inventory lookups to the sibling get_benefit, giving partial sibling differentiation. The core sentence itself remains generic, so it doesn't fully distinguish from calc_dates/estimate_cross_fee without reading further.

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?

Extensive when-to-use guidance is embedded per parameter (e.g., '○月に空クロスが必要な銘柄' → karaDate; '手取り利回り順トップ10' → sortBy:netYield + limit:10). It even gives a when-NOT-to-use warning ('vestingDate で検索しても空クロス対象の銘柄は正しく絞り込めない') and points to get_benefit for histories. It lacks explicit sibling-level exclusion criteria, but condition-to-parameter routing is strong.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources