Skip to main content
Glama
bitbankinc

bitbank-lab-mcp

Official
by bitbankinc

bitbank-lab-mcp

CI License: MIT npm CodeRabbit Pull Request Reviews

bitbank API のデータを使った暗号資産市場分析を、Claude / Cursor / Codex / Antigravity CLI など各種 AI クライアントから簡単に実行できる MCP サーバーです。

はじめにお読みください

  • 本ツールは開発段階(ベータ版)です。利用は自己責任でお願いします。

  • ご利用の前に必ず ⚠️ 免責事項 をお読みください。

  • 本リポジトリは bitbank バグバウンティプログラムの対象範囲外 です。

Related MCP server: bitbank MCP Server

本 MCP サーバーについて

bitbank の公開 API から取得した価格・取引データを、指標計算・統合・可視化用データの整形まで行った上で LLM に渡します(必要に応じてサーバー側で SVG 描画も可能)。生データを渡すだけのサーバーとは異なり、各ツールの description に「いつ使うべきか」「他ツールとの使い分け」を明示しているため、LLM が自律的に適切なツールを選択できます。

姉妹プロジェクトとして、同じ bitbank API に対する真逆のアプローチを提供する CLI (bitbank-lab-cli) もあります。

  • この MCP サーバー はサーバー側で計算済みの結論を LLM に渡す

  • CLI は生データを高速に取得し、LLM 自身に計算させる

指標のパラメータやロジックを完全にカスタマイズしたい場合は CLI 側を、すぐに使えるテクニカル分析・可視化を求める場合は MCP サーバー側を選んでください。

概要

bitbank の公開 API から価格・板情報・約定履歴・ローソク足データを取得し、以下の分析を実行できます。
→ 全ツールの一覧と使い分けは docs/tools.md を参照。

取得できるデータ

  • リアルタイム価格(ティッカー)

  • 板情報(オーダーブック)

  • 約定履歴(売買方向・時刻)

  • ローソク足(1分足〜月足)

実行できる分析

  • テクニカル指標(SMA/RSI/ボリンジャーバンド/一目均衡表/MACD)

  • フロー分析(買い/売りの勢い・CVD・スパイク検出)

  • ボラティリティ分析(RV/ATR)

  • 板の圧力分析(価格帯ごとの買い/売り圧力)

  • パターン検出(ダブルトップ/ヘッドアンドショルダーズ等)

  • 総合スコア判定(複数指標を統合した強弱判定)

    • 長期パターンの現在地関連検出(detect_patterns: requireCurrentInPattern/currentRelevanceDays)

視覚化

  • Claude.ai の Visualizer で描画するためのコンパクトな整形データを返すツール群

    • prepare_chart_data: ローソク足 + 指標の時系列データ

    • prepare_depth_data: 板の累積 volume 階段データ

  • ファイル保存・Cursor 等の非 Visualizer 環境向けに SVG/PNG 形式のチャートも生成可能

    • render_chart_svg / render_depth_svg / render_candle_pattern_diagram

クイックスタート

前提条件

  • Node.js 22 以上(24 推奨)

  • npm(Node.js に同梱されています)

  • 対応 OS: macOS / Linux / Windows(WSL 含む)

  • Claude Desktop アプリを Claude 公式サイト からダウンロードしてください

本プロジェクトは npm に bitbank-lab-mcp として公開されています。
ソースコードのクローンは不要です(開発したい方向けの手順は末尾の開発者向けセクションを参照)。

1. Claude Desktop に登録(推奨)

Claude Desktop が最も多くの方が使う想定の MCP クライアントです。
~/Library/Application Support/Claude/claude_desktop_config.json に設定を追加します。

登録方法は2通りあります。まず npx 方式を試し、動かない場合に絶対パス方式をお試しください。

npx 方式(推奨)

Node.js のバージョンアップで設定を書き換える必要がないため、こちらを推奨します。
nvm/volta などのバージョン管理ツールをお使いの方には特におすすめです。

用途に応じて A〜C の 3 段階から選びます。

A. Public データのみ:

価格・板・ローソク足などの公開市場データの取得と分析。API キー不要。

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"]
    }
  }
}

B. Private データ参照系(要 API キー):

資産残高・約定履歴・注文照会・ポートフォリオ分析などの読み取り専用。発注はできません。

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"],
      "env": {
        "BITBANK_API_KEY": "your_api_key",
        "BITBANK_API_SECRET": "your_api_secret"
      }
    }
  }
}

bitbank API の権限は「参照」のみ設定することを推奨

C. 取引注文・注文キャンセル実行(要 API キー):

B に加えて、対応ホスト上での発注・注文キャンセルまで実行。実行前に必ず確認ステップ(preview → ユーザーの明示確認)が入ります。

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"],
      "env": {
        "BITBANK_API_KEY": "your_api_key",
        "BITBANK_API_SECRET": "your_api_secret"
      }
    }
  }
}

bitbank API の権限は「参照」および「取引」のみ設定することを推奨

「出金」権限は有効化しないことを強く推奨します。本サーバーは出金系ツール未実装のため不要です。

発注・取消の実行にはユーザーの明示確認が必須です。確認トークンは content / structuredContent に載らないため、LLM が preview 応答から直接 execute することはできません。旧 BITBANK_TRUST_HOST_APPROVAL オプトイン(iframe に token を structuredContent で載せる妥協モード)はセキュリティ上撤去済みで、設定しても無視されます。

確認の経路はクライアントによって変わります。

クライアント

実行経路

elicitation / MRTR 対応

ネイティブ確認ダイアログで完結(第一選択。追加設定不要)

MCP Apps UI 対応(Claude Desktop 等)

BITBANK_MCP_APPS_EXECUTE=1 を設定した場合のみ、確認カードのボタンで実行(既定は無効

どちらも非対応

プレビューのみ。実行は bitbank アプリ/ウェブで

このオプションは、確認トークンをツール結果の _meta にのみ載せて iframe へ渡し、確認カードのボタンからの実行を許可します。安全性は「ホストが _meta をモデル(LLM)に渡さない」という前提に依存します。

  • 仕様上の保証ではありません。 MCP Apps 仕様の該当記述は "Best Practices" の箇条書きで、MUST / SHOULD を伴いません。適合要件ではなく意図の説明です

  • ホストのアップデートで壊れても、サーバー側では検知できません。 ホストが _meta をモデルコンテキストに含めるようになった瞬間に前提は崩れますが、その変化はサーバーから観測できません。壊れ方は静かです

  • この領域は実装が流動的です(structuredContent の喪失回帰など、関連トラッカーに 2026-05〜08 の issue が複数)

  • クライアントの申告は検証できません。 トークンを渡す条件は「クライアントが MCP Apps UI 対応を宣言していること」ですが、これはクライアント側の自己申告で、サーバーは真偽を判定できません。確認カードを描画しないクライアントでも、宣言さえすればトークンを取得できます。信頼できるクライアントでのみ有効にしてください

  • API キーの置き場所で意味が変わります。 キーをクライアント側(claude_desktop_config.jsonenv 等)に設定している場合、クライアントは既にキーを保持しているため、このフラグによる追加のリスクはありません。サーバー側の .env に置く構成では、クライアントに本来無い実行権限を与えることになります。この構成での有効化は推奨しません

万一トークンが漏れた場合でも、被害は 「直前にプレビューした注文 1 件(一括取消ならプレビュー済みの注文 ID 集合 1 セット)が、60 秒以内に 1 回だけ実行される」 に限定されます。トークンは注文内容に HMAC で束縛されており、攻撃者が金額・数量・ペア・方向を選ぶことはできません。

以上を理解したうえで有効化してください。既定では無効です。 詳細は ADR-0007

詳細: ADR-0007 / Private API ガイド

B / C の API キーは bitbank 設定画面 で発行し、必要最小限の権限のみを付与、可能なら IP 制限も設定してください(最小権限の原則)。

詳細: Private API ガイド

絶対パス方式(フォールバック)

npx 方式で「サーバーに接続できません」エラーが出る場合、Claude Desktop から npx コマンドが見つけられていない可能性があります。
その場合は、npx の絶対パスを指定してください。

まずターミナルで自分の環境の npx パスを確認します:

which npx

出力例と対応するインストール方法:

which npx の出力

インストール方法

/opt/homebrew/bin/npx

Homebrew(Apple Silicon Mac)

/usr/local/bin/npx

Homebrew(Intel Mac)または公式インストーラ

/Users/XXX/.nvm/versions/node/vXX.XX.X/bin/npx

nvm

/Users/XXX/.volta/bin/npx

volta

which npx の結果を command に指定:

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "<which npx の出力>",
      "args": ["-y", "bitbank-lab-mcp"]
    }
  }
}

⚠️ nvm/volta ユーザーへの注意: この方式では Node.js をバージョンアップするたびに command のパスの書き換えが必要です(例: v24.0.0v24.1.0)。アップデート後に which npx を再確認してください。

Windows の場合

Windows でも npx 方式がそのまま使えます:

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"]
    }
  }
}

設定ファイルの場所: %APPDATA%\Claude\claude_desktop_config.json

npx が見つからない場合は where npx(Windows 版の which)で絶対パスを確認して指定してください。

表示名のカスタマイズ

Claude Desktop の UI に表示される名前は claude_desktop_config.json のキー名で決まります:

{
  "mcpServers": {
    "bitbank-lab-mcp": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"]
    }
  }
}

⚠️ bitbank-lab-mcp のような ASCII(英数字)の名前を推奨します。環境によって、日本語などの非 ASCII 名だと Chat でツールが見つからない事例があります。

共通の注意事項

  • 追加後、Claude Desktop を Cmd+Q(Windows は完全終了)で再起動してください

  • ⚠️ macOS で claude_desktop_config.json が見つからない場合は、ホームディレクトリ直下から開いてください

設定ファイルの場所:

  • macOS: ~/Library/Application Support/Claude/claude_desktop_config.json

  • Windows: %APPDATA%\Claude\claude_desktop_config.json

2. その他の MCP クライアント(手動 .json 編集)

Cursor(.cursor/mcp.json

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"],
      "env": {
        "BITBANK_API_KEY": "your_api_key",
        "BITBANK_API_SECRET": "your_api_secret"
      }
    }
  }
}

API キーが不要な場合は env ブロックごと削除して OK。セクション 1 の A〜C と同様に、取引実行まで使う場合は確認フローに対応したクライアントが必要です(旧 BITBANK_TRUST_HOST_APPROVAL は不要・無効です)。

Claude Code(CLI から登録する場合)

claude mcp add --transport stdio bitbank-lab -- npx -y bitbank-lab-mcp

同梱 Skill も一緒に使いたい場合は、セクション 3 の plugin install が便利です。

Windsurf / その他の汎用 MCP クライアント

Cursor と同じ JSON 形式で登録できます。クライアント固有の設定ファイルパスについては各クライアントのドキュメントを参照してください。

3. (オプション)Plugin として install(同梱 Skill を使う)

通常の利用はセクション 1〜2 の登録だけで完結します。Plugin install は、Claude Code などの AI コーディングツールで、MCP サーバーに加えて同梱 Skill(skills/ 配下)も使いたい方向けのオプションです。

  • Plugin として install すると、MCP ツールと同時に同梱 Skill(例: investment-onboarding)が有効化されます。今後 Skill を追加した場合も、plugin のアップデートでまとめて届きます。

  • Skill を自作してワークフローをカスタマイズしたい方は、skills/INDEX.md の構成が参考になります。

  • Claude Desktop は plugin / Skill の読み込みに未対応です。Claude Desktop で使う場合はセクション 1 の方法で登録してください(MCP ツールの機能は同じで、Skill が使えるかどうかだけの違いです)。

クライアント

manifest

API キーの渡し方

Claude Code

.claude-plugin/plugin.json

GUI で入力: /plugin install 直後に userConfig UI が表示され、OS キーチェーンに保管

Antigravity CLI(旧 Gemini CLI)

gemini-extension.json

対話 prompt: settings 配列で対話的に入力、.env に保管

Cursor

.cursor-plugin/plugin.json

⚙️ シェル環境変数のみ: BITBANK_API_KEY / BITBANK_API_SECRET を環境変数に設定(Cursor は plugin 経由の prompt 未対応)

Codex

.codex-plugin/plugin.json

⚙️ シェル環境変数のみ: BITBANK_API_KEY / BITBANK_API_SECRET を環境変数に設定

いずれの manifest も npm registry の bitbank-lab-mcpnpx -y 経由で起動します。

Gemini CLI は 2026-06-18 に個人アカウント向け提供を終了し、Antigravity CLI(agy)に移行しました。Antigravity CLI は旧 Gemini CLI 拡張(gemini-extension.json)を後方互換で読み込みます(agy plugin import gemini でネイティブ plugin へ変換も可能)。

Claude Code の例:

# 1. このリポジトリを marketplace として登録(初回のみ)
/plugin marketplace add bitbankinc/bitbank-lab-mcp

# 2. plugin を install
/plugin install bitbank-lab-mcp@bitbank-lab

# 3. plugin を有効化
/reload-plugins

bitbank-lab はこのリポが提供する marketplace 名(.claude-plugin/marketplace.jsonname フィールド)、bitbank-lab-mcp は plugin 名です。

実行後、bitbank API key / API secret の入力 UI が表示されます。Public ツールだけで使う場合は両方とも空欄で OK — Private API ツールは API キーを入力したときだけ自動的に有効化されます。

API キーを後から追加・変更したい場合は /plugin から該当 plugin の設定を開き、api_key / api_secret を更新してください。Claude Code では sensitive: true のため OS のキーチェーンに保管されます。

Cursor / Codex の場合(環境変数経由):

/plugin install 実行後、シェルで以下のように環境変数を設定してから Cursor / Codex を起動してください(Public ツールだけ使う場合は不要):

export BITBANK_API_KEY="your_api_key"
export BITBANK_API_SECRET="your_api_secret"

macOS / Linux では ~/.zshrc~/.bashrc に書いておくと永続化されます。Windows は環境変数の管理画面 or setx を使用してください。

4. 使ってみる

AI クライアントにそのまま話しかけます:

BTCの今の市場状況を分析して
ビットコインは買いと売りどちらが優勢?
直近 1 週間でテクニカル的に上向きの仮想通貨を 3 つ教えて

💡 何を聞けばいいかわからない場合: 用意されたプロンプト集 をご覧ください。初心者向け(🔰)から中級者向けまで、9種類の分析プロンプトを用意しています。

🌅 朝のルーティンに: 「おはようレポート」で、寝ている間の相場変動をすばやくキャッチアップできます。

Private API(取引機能)

API キーの有無でサーバーが公開する機能が自動的に切り替わります。

設定

ツール数

プロンプト数

使える機能

キー未設定

33(Public のみ)

8

価格取得・テクニカル分析・チャート生成・バックテスト

キー設定済み

33 + 16 = 49

8 + 1 = 9

上記 + 資産確認・注文・ポートフォリオ分析

キー未設定時、Private ツール・プロンプトは MCP クライアントに一切表示されません(エラーではなく、そもそも登録されません)。公開データの取得・分析だけなら設定不要で、そのまま使えます。

環境変数の設定方法

ターミナルから起動する場合:

export BITBANK_API_KEY="your_api_key"
export BITBANK_API_SECRET="your_api_secret"

Plugin install を使った場合/plugin から該当 plugin の設定を開き、api_key / api_secret を入力すれば完了です(手動編集は不要)。

Claude Desktop で手動設定している場合claude_desktop_config.jsonenv に追加(セクション 1 で設定した npx 方式/絶対パス方式のいずれかに、以下のように BITBANK_API_KEYBITBANK_API_SECRET を追加するだけです):

{
  "mcpServers": {
    "bitbank-lab": {
      "command": "npx",
      "args": ["-y", "bitbank-lab-mcp"],
      "env": {
        "BITBANK_API_KEY": "your_api_key",
        "BITBANK_API_SECRET": "your_api_secret"
      }
    }
  }
}

API キーは bitbank 設定画面 で発行してください。必要最小限の権限のみ付与することを強く推奨します(最小権限の原則)。

やりたいこと

必要な権限

資産確認・ポートフォリオ分析(読み取り専用)

「参照」のみ ← 最も安全、迷ったらこちら

上記 + AI に発注・キャンセル操作も任せたい

「参照」+「取引」

⚠️ 「出金」権限は絶対に有効化しないでください。本 MCP サーバーは出金系ツールを実装していないため、この権限を付ける必要は一切ありません。漏洩時の資産流出を避けるためです。

IP 制限: bitbank 側で API キーに IP 制限を設定できる場合は、可能な限り設定を推奨します。

カテゴリ

ツール

説明

必要な権限

口座情報

get_my_assets

保有資産一覧

参照

注文照会

get_my_orders, get_order, get_orders_info

注文の照会

参照

約定履歴

get_my_trade_history

約定履歴の取得

参照

ポートフォリオ

analyze_my_portfolio

損益分析・パフォーマンス

参照

入出金

get_my_deposit_withdrawal

入出金履歴

参照

信用取引

get_margin_status, get_margin_positions, get_margin_trade_history

証拠金・ポジション・約定履歴

参照

発注

preview_order(→ ユーザー確認)

ユーザー明示確認後に発注

取引

キャンセル

preview_cancel_order(→ ユーザー確認)

ユーザー明示確認後にキャンセル

取引

一括キャンセル

preview_cancel_orders(→ ユーザー確認)

ユーザー明示確認後に一括キャンセル

取引

取引操作(発注・キャンセル)は preview → ユーザーの明示確認が必須です。確認トークンは content / structuredContent に載らず、create_order / cancel_order / cancel_orders を MCP tools/call から直接呼んでもサーバー側で拒否されます。

詳細: docs/private-api.md

使用例(会話の型)

  • 「今、BTC は買いですか?」→ analyze_market_signal: 総合スコア + 寄与度・根拠

  • 「直近で MACD クロスした銘柄は?」→ detect_macd_cross: スクリーニング結果

  • 「ここ 30 日のボラ推移を見たい」→ get_volatility_metrics + render_chart_svg

チャート表示(SVG)

  • MCP クライアント(Claude)では、アーティファクトとして data.svg を表示するようにお願いしてください。

    • Claude で LLM がうまくアーティファクトを出力できない場合は、以下のプロンプトを加えるのがおすすめです。

      • 「identifier と title を追加して、アーティファクトとして表示して」

    • 既定の描画は「ロウソク足のみ」。ボリンジャーバンド等のオーバーレイは明示指定時に追加されます(BBは --bb-mode=default 指定時に ±2σ がデフォルト)。

詳細ドキュメント

よくある質問(FAQ)

Q. 何を聞けばいいかわからない プロンプト集 を参照してください。初心者向け🔰から中級者向けまで9種類の分析プロンプトを用意しています。

Q. Docker は必須? いいえ。Node 18+ でローカル実行できます(最短は Claude Desktop 登録)。

Q. API キーは必要? 公開データの取得・分析には不要です。自分の資産確認や注文操作(Private API)を使う場合は Private API ガイド を参照してください。

Q. どのツールを使えばよい? まず analyze_market_signal で全体を把握 → 必要に応じて各専門ツールへ。

Q. 対応銘柄は固定? 固定ではありません。上流の公開 API が返す銘柄に自動追随します(追加/廃止も自動反映)。参考: bitbank 公開API仕様

Q. MCP Inspector でも試せる? はい。次で実行できます(npm 公開版に対する動作確認)。

npx @modelcontextprotocol/inspector -- npx -y bitbank-lab-mcp

ソースコードから動かす場合は npx @modelcontextprotocol/inspector -- tsx src/server.ts開発者向け を参照)。

Q. 当日の約定(フロー)データが少ない・古い時間帯が取れない bitbank 側の仕様です。約定履歴の日付アーカイブ(/transactions/{YYYYMMDD})は UTC 暦日単位で、当該 UTC 日の完了後(日本時間 9:00 以降、さらに公開遅延あり)にのみ公開されます。進行中の UTC 日の約定は直近約 60 件(latest)しか取得できないため、get_flow_metrics 等では当日区間のカバレッジが限定的になります(結果に warning として明示されます)。ローソク足(get_candles)は進行中の UTC 日でもリアルタイムで取得できます。

トラブルシューティング

症状

原因・対処

Claude Desktop にツールが表示されない

claude_desktop_config.json の JSON 構文が壊れている / Claude Desktop を Cmd+Q(Windows は完全終了)で再起動していない

「サーバーに接続できません」エラー(npx 方式)

Claude Desktop から npx が見つからない可能性。絶対パス方式に切り替える

spawn npx ENOENT エラー

which npx の結果が異なるパスを指している。command を正しいパスに書き換える

Node.js アップデート後に MCP が動かなくなった

nvm/volta の場合、Node.js バージョンが変わると絶対パスも変わる。which npx を再確認して command を更新するか、npx 方式(npx 名指し)に切り替える

Cannot find package 'tsx' エラー

bitbank-lab-mcp の古い版(v0.1.0)でこの問題が発生。npx -y bitbank-lab-mcp@latest で最新版に更新するか、設定を再起動

ツール実行時にタイムアウト

ネットワーク接続を確認 / bitbank API の状態を確認

Private API ツールが表示されない

BITBANK_API_KEYBITBANK_API_SECRET の両方が設定されているか確認(→ docs/private-api.md

ログを確認したい

env"LOG_LEVEL": "debug" を追加して再起動

Plugin install で「Marketplace not found」

/plugin marketplace add bitbankinc/bitbank-lab-mcp を先に実行してから /plugin install bitbank-lab-mcp@bitbank-lab


開発者向け(ソースから起動)

このセクションは「自分で MCP サーバーをいじりたい」「PR を送りたい」という開発者向けです。通常の利用者はセクション 1npx -y bitbank-lab-mcp 方式で OK です(こちらは clone 不要)。

セットアップ

git clone https://github.com/bitbankinc/bitbank-lab-mcp.git
cd bitbank-lab-mcp
npm ci

package-lock.json 通りに依存をインストールするため、ローカル開発でも npm install ではなく npm ci を推奨します(CI も npm ci を使用)。

ビルドステップは不要です(tsx で TypeScript を直接実行します)。

STDIO モード(Claude Desktop / Claude Code 向け)

ローカルの開発版を Claude Desktop から使いたい場合、claude_desktop_config.json に絶対パス指定で登録します:

{
  "mcpServers": {
    "bitbank-dev": {
      "command": "npx",
      "args": ["tsx", "/ABS/PATH/to/src/server.ts"],
      "workingDirectory": "/ABS/PATH/to/project",
      "env": { "LOG_LEVEL": "debug", "NO_COLOR": "1" }
    }
  }
}

/ABS/PATH/to/ を実際のクローン先パス(pwd で確認)に置き換えてください。npm 公開版(bitbank-lab)と区別するため、サーバー名は bitbank-dev 等にしておくと両立できます

Inspector で動作確認する場合:

npx @modelcontextprotocol/inspector -- tsx src/server.ts

Windows でローカル開発する場合

npx が PATH 解決できない環境では、node の絶対パスと tsx の CLI を直接指定します:

{
  "mcpServers": {
    "bitbank-dev": {
      "command": "node",
      "args": [
        "C:\\Users\\<USERNAME>\\bitbank-lab-mcp\\node_modules\\tsx\\dist\\cli.mjs",
        "C:\\Users\\<USERNAME>\\bitbank-lab-mcp\\src\\server.ts"
      ],
      "workingDirectory": "C:\\Users\\<USERNAME>\\bitbank-lab-mcp",
      "env": { "LOG_LEVEL": "debug", "NO_COLOR": "1" }
    }
  }
}

CI / 型生成 / リンター

開発時のコマンド一覧は CLAUDE.md を参照してください(npm test / npm run lint:fix / npm run gen:types 等)。

フィードバック・バグ報告

バグ報告や機能要望は GitHub Issues からお願いします。Issue テンプレートを用意していますので、用途に合ったものを選択してください。

免責事項

開発段階について

本ツールは開発段階(ベータ版)です。バグ、不具合、誤動作、または不正確な分析結果を含む可能性があります。

AI エージェントによる処理結果について

本MCPサーバー / 本CLIツール が提供するデータを AIエージェント等が処理・生成した結果について、正確性、完全性、有用性、最新性を保証するものではありません。AI エージェント等による処理の結果、注文種別、価格、数量その他の取引条件が利用者の意図と異なる形で処理または実行される可能性があります。

金融商品取引法上の位置づけ

本MCPサーバーは情報提供のみを目的として提供されるものであり、投資助言・代理業、投資勧誘、その他金融商品取引法上の行為を目的とするものではありません。

外部サービスへの依拠

本MCPサーバーは外部API、LLM、第三者サービス等に依拠して提供するものであり、これらの仕様変更、停止、不具合等が生じた場合には、本MCPサーバーが正常に動作しない可能性があります。

安全対策の補助性

本MCPサーバーに実装されている最終注文確認機能、バリデーションその他の安全対策は、誤操作または誤発注等を防止するための補助機能であり、その完全な防止を保証するものではありません。

利用者の責任

利用者は、本MCPサーバーにより提供・生成された情報および注文内容等を自身で十分に確認の上、自己の判断と責任において本MCPサーバーを利用し、投資判断、注文実行および取引を行うものとします。

損害の免責

当社は、本MCPサーバーの利用もしくは利用不能、または本MCPサーバーにより提供・生成された情報、AI エージェント等による処理結果もしくは取引操作に基づく投資判断・注文・取引等に関連して生じたいかなる損害についても、当社の故意または重過失による場合を除き、一切責任を負いません。

APIキー・認証情報の管理

APIキーおよび取引に必要なパスワード等は利用者自身の責任において適切に管理してください。チャット欄や公開リポジトリその他第三者が閲覧可能な環境等へ APIキーや取引パスワード等の認証情報等を入力・掲載しないよう十分ご注意ください。

利用者による認証情報等の管理不備、誤入力、漏えい、第三者利用等により生じたいかなる損害についても、当社の故意または重過失による場合を除き、当社は一切責任を負いません。

Available Tools

33 tools
analyze_bb_snapshotA

[Bollinger Bands / BB / Squeeze] ボリンジャーバンド(BB / squeeze / bandwidth / zScore)の数値スナップショット。軽量・BB特化。

mode=default: ±2σ帯の基本情報 / mode=extended: ±1σ/±2σ/±3σの詳細分析。

⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data(indicators: ["BB"])。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNodefault
pairNobtc_jpy
typeNo1day
limitNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the burden of behavioral disclosure. It does declare 'latest value only' and 'lightweight', which reveals key constraints, but it does not describe output structure, calculation assumptions, or failure behaviors. Partial transparency, not comprehensive.

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 description is compact and well-structured with mode breakdown and a warning about latest values. It earns its sentences without excess, though the tag-style opening could be clearer for non-Japanese readers.

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

Completeness2/5

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

Given no output schema, no annotations, and 0% schema coverage, the description is incomplete. It covers the 'why' and mode selection but omits semantics for three of four parameters and any indication of return format, leaving an agent under-informed for correct invocation.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. Only 'mode' is explained; pair, type, and limit are entirely undocumented despite defaults and constraints being present in the schema. This is a significant gap for an agent selecting values.

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 names a specific indicator (Bollinger Bands), lists its key sub-concepts (BB/squeeze/bandwidth/zScore), and explicitly distinguishes this lightweight BB snapshot from sibling indicator snapshots. It also clarifies the two modes, making the tool's scope immediately clear.

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?

It provides explicit mode guidance (default vs extended) and directs users needing time-series chart data to prepare_chart_data with indicators ['BB']. This clearly states when to use this tool versus an alternative, leaving little ambiguity.

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

analyze_candle_patternsC

[Candlestick Patterns / Doji / Engulfing] ローソク足パターン検出(candle patterns / doji / engulfing / hammer / harami)。1〜3本足パターンを検出し文脈と過去統計を付けて解説。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoDEPRECATED: Use as_of instead. YYYYMMDD format.
pairNobtc_jpy
as_ofNoDate to analyze (ISO "2025-11-05" or YYYYMMDD "20251105"). If omitted, uses latest data.
patternsNoPatterns to detect. If omitted, all patterns are checked.
timeframeNo1day
window_daysNo
focus_last_nNo
history_horizonsNo
history_lookback_daysNo
allow_partial_patternsNo

TDQS

C2.4/5.0
Behavior2/5

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 does mention that it detects 1-3 bar patterns and provides context and past statistics, which hints at the output style. However, it does not disclose any limitations, whether it is read-only, data source behavior, or potential error conditions. The description is minimal and leaves most behavioral aspects unknown.

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 description is a single, compact sentence that front-loads the key pattern names and the core behavior. It is efficient with no filler. However, it is so brief that it omits critical usage details, but for what it covers, it is well-structured and easy to parse.

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

Completeness1/5

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

This is a 10-parameter tool with no output schema and no annotations. The description is one sentence and does not address how parameters interact, what the output looks like, or any prerequisites. An agent has almost no context to call this tool correctly. The completeness is severely inadequate given the complexity.

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

Parameters1/5

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

Schema description coverage is only 30%, meaning most parameters (window_days, focus_last_n, history_horizons, history_lookback_days, allow_partial_patterns, etc.) lack descriptions. The tool description adds no clarifications for these undocumented parameters. Even for the covered ones (date, as_of, patterns), the description adds no extra nuance beyond the schema. It fails to compensate for the low coverage, leaving the agent to guess parameter semantics.

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 clearly states it detects candlestick patterns (doji, engulfing, hammer, harami) on 1-3 bars, which is a specific verb and resource. It distinguishes from technical indicator tools (analyze_indicators, etc.), though it does not explicitly differentiate from the sibling 'detect_patterns' which may or may not overlap. A clear but not fully differentiated purpose.

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

Usage Guidelines2/5

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

No guidance is provided on when to use this tool versus the many sibling analysis tools. The description implies its use for candle pattern detection but does not state conditions, exclusions, or alternatives (e.g., when to use detect_patterns vs analyze_candle_patterns). The agent must infer usage from the title alone.

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

analyze_currency_strengthA

[Currency Strength / Ranking / Screening] 通貨強弱ランキング(currency strength / relative strength / ranking / screening)。全JPYペアを複合スコア(変化率・RSI・SMA乖離・出来高)で判定。注目銘柄の発見・スクリーニングに。

ParametersJSON Schema
NameRequiredDescriptionDefault
topNNo分析対象の上位ペア数(出来高順で選出)
typeNoRSI/SMA 算出に使うローソク足の種類1day

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description carries full responsibility for behavioral disclosure. It explains the computation method (composite score based on several indicators), which is useful, but it does not state whether the operation is read-only, what the output format is (e.g., a ranked list with scores), or any potential side effects. The explanation of underlying metrics adds some transparency, but significant behavioral details remain unspecified.

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 a single, dense sentence that packs purpose, methodology, and use case without any redundancy. It is front-loaded with the core concept and avoids unnecessary details, making it highly efficient for an agent scanning tool descriptions.

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

Completeness3/5

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

Given the tool's moderate complexity (two optional parameters, no output schema), the description explains what it does and how, but it does not mention what the return value looks like, any prerequisites (e.g., whether candle data must be fetched first), or limitations. This is adequate for basic selection but leaves gaps for an agent needing to interpret results.

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 coverage is 100%, so both parameters (topN and type) have descriptions in the schema. The tool description contributes no additional parameter context beyond what the schema already provides, which is acceptable per calibration. The description's mention of 'all JPY pairs' does not clarify parameter semantics further.

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 it analyzes currency strength ranking for all JPY pairs, using a composite score of rate of change, RSI, SMA divergence, and volume. It distinguishes itself from sibling indicator tools by focusing on relative strength screening, making its purpose specific and unambiguous.

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

Usage Guidelines3/5

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

The description implicitly conveys usage for screening and discovering notable instruments (注目銘柄の発見・スクリーニングに), but does not explicitly state when to use this tool versus alternatives like analyze_market_signal or analyze_indicators. No exclusions or alternative routing are provided, though the context is clear enough for an agent to infer typical use.

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

analyze_ema_snapshotA

[EMA / Exponential Moving Average] EMA(exponential moving average / trend / slope)の最新値・整列・クロス・傾きを返す(既定: 12/26/50/200)。

⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data(indicators: ["EMA_12","EMA_26"] 等)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
limitNo
periodsNo

TDQS

A3.7/5.0
Behavior3/5

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

Since no annotations are provided, the description must carry the full burden. It discloses a key behavioral trait: only latest values are returned, and it enumerates the output components (values, alignment, crosses, slope). However, it does not mention whether the operation has any side effects, requires authentication, or has rate limits, and it does not describe the return format. The 'latest values only' warning adds useful context but leaves room for behavioral detail.

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 extremely concise: two sentences plus a warning, with the core function front-loaded. It wastes no words and effectively communicates the essential purpose and a key limitation. The structure is optimal for quick agent comprehension.

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

Completeness2/5

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

Given the tool has 4 parameters with no schema descriptions, no output schema, and no annotations, the description is notably incomplete. It fails to explain parameter semantics, return structure, and edge cases. While it does route to prepare_chart_data for charting, this does not compensate for the absence of parameter documentation and output details, leaving an agent uncertain about how to correctly invoke the tool.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate for parameters. It only mentions the default periods (12/26/50/200) implicitly, but does not explain pair, type, or limit. It does not clarify how limit affects the calculation or how periods are used beyond listing defaults. This is insufficient given the complete lack of schema descriptions.

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's function: returns latest values, alignment, crosses, and slope of EMA with default periods. It explicitly distinguishes itself from prepare_chart_data by noting it only provides latest values, not chart time-series data. This differentiates it from sibling snapshot tools like analyze_bb_snapshot and analyze_ichimoku_snapshot.

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 provides an explicit exclusion: it is not for time-series chart drawing, and directs users to prepare_chart_data for that purpose. This gives a clear alternative. However, it does not elaborate on conditions for choosing this tool over other analyze_* snapshot tools beyond the implicit focus on EMA, so it lacks exhaustive when-to-use guidance.

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

analyze_fibonacciA

[Fibonacci / Retracement / Extension] フィボナッチ分析(fibonacci / retracement / extension / swing high-low)。スイング自動検出→リトレースメント/エクステンション水準を算出。過去の反応実績(反発率・リターン)付き。

複数タイムフレーム分析には analyze_mtf_fibonacci を使用。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNoboth
pairNobtc_jpy
typeNo1day
lookbackDaysNo
historyLookbackDaysNo

TDQS

A3.8/5.0
Behavior3/5

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

With no annotations, the description carries the full burden. It discloses automatic swing detection, calculation of levels, and inclusion of historical reaction performance (rebound rate, return). However, it does not explicitly state whether the tool is read-only (likely for an analysis tool), nor does it mention any limitations or side effects beyond the output details. The behavior is partially transparent but not fully explicit.

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 concise, with two sentences that front-load the core purpose and then provide the sibling alternative. Every sentence adds value; there is no redundant or filler content. The structure is effective and easy to parse.

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

Completeness3/5

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

The tool has 5 parameters and no output schema. The description covers the main output (levels with historical performance) but does not clarify the difference between the two lookback parameters (lookbackDays vs historyLookbackDays) or the default behavior for mode/type. It is adequate for a basic understanding but leaves important contextual details unexplained, especially for a tool with multiple parameters and no output schema.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate. It mentions swing high-low and retracement/extension, which vaguely relates to mode, but does not define the meaning of individual parameters like lookbackDays vs historyLookbackDays, or type. The description provides no explicit parameter-level semantics, leaving the agent to infer from the schema alone, which is insufficient given the lack of coverage.

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's purpose: Fibonacci analysis (retracement/extension) with automatic swing detection and level calculation, including historical reaction performance. It names the specific resource (Fibonacci levels) and the action (analyze), distinguishing it from the multi-timeframe sibling via direct mention.

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 identifies the alternative for multi-timeframe analysis (analyze_mtf_fibonacci) and implies this tool is for single-timeframe. While it does not enumerate all possible alternatives or conditions, the single-timeframe vs multi-timeframe distinction is clear and sufficient for the main use case.

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

analyze_ichimoku_snapshotA

[Ichimoku Cloud] 一目均衡表(Ichimoku / cloud / kumo / tenkan-kijun)の数値スナップショット。価格と雲の位置関係・転換線/基準線クロス・雲の傾きを数値で返す。

⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data(indicators: ["ICHIMOKU"])。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
limitNo
lookbackNo

TDQS

A3.7/5.0
Behavior3/5

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 'latest values only' limitation, which is genuinely useful. However, it does not describe the return format, pagination, whether calls are idempotent/read-only, or how limit/lookback alter results. For an unannotated tool, this is a moderate gap.

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 description is tight - the indicator scope is front-loaded, and the routing note is flagged with ⚠️ and placed clearly. It is efficient and each line earns its place, though the Japanese-only text may present a minor accessibility cost for non-Japanese agents.

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

Completeness3/5

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

With no annotations and no output schema, this text is the only context source. It covers purpose and the key latest-only constraint but omits parameter semantics, which is significant for a 4-parameter tool with zero schema documentation. Moderately complete but with a real gap.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it explains none of the parameters. In an Ichimoku context, 'lookback' is non-obvious (it controls the tenkan/kijun periods) and 'limit' vs 'lookback' interplay is unclear. The description adds zero parameter meaning, failing to compensate for the low schema coverage.

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

Purpose5/5

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

The description names the exact indicator (Ichimoku Cloud) and enumerates precisely what it returns: price-vs-cloud relationship, tenkan/kijun cross, and cloud slope. This clearly differentiates it from the sibling snapshot tools (analyze_bb_snapshot, analyze_sma_snapshot, analyze_stoch_snapshot), which each target a different indicator.

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 ⚠️ note explicitly states 'latest values only' and routes time-series chart drawing to prepare_chart_data with the ICHIMOKU indicator argument. This is a clear when-not-to-use with a named alternative. It doesn't state positive conditions for choosing this over the other analyze_*_snapshot siblings, but the snapshot-vs-series distinction is well handled.

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

analyze_indicatorsB

[Technical Indicators / RSI / MACD / SMA] テクニカル指標の総合分析。最新値・トレンド判定・シグナルをテキストで返す。十分な limit を指定(例: 日足200本)。

描画 → prepare_chart_data / render_chart_svg。バックテスト → run_backtest。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
limitNo

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full behavioral burden. It does disclose the output format (returns text) and the data-volume requirement (sufficient limit). However, it does not disclose error behavior with insufficient data, dependencies, or whether the operation is read-only, which is notable given the total absence of annotations.

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?

Three compact sentences with the routing guidance separated out. The bracketed prefix '[Technical Indicators / RSI / MACD / SMA]' is slightly redundant with the body but serves as a quick tag scan. Information is organized purpose-first with no wasted words.

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

Completeness3/5

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

For a text-returning analysis tool with no output schema and no annotations, the description reasonably covers purpose, output form, and alternative routing. Gaps remain: the pair/type parameters are unexplained and the concrete shape of 'signals' output is not described, but the core invocation requirements are present.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must compensate, but it only explains 'limit' (specify enough candles, e.g., 200 daily). The 'pair' and 'type' parameters are never semantically described, leaving the agent to infer their meaning from defaults and enums. One of three parameters covered at 0% schema coverage is insufficient.

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 verb and resource ('テクニカル指標の総合分析' – comprehensive technical indicator analysis) and names the covered indicators (RSI, MACD, SMA). It clearly returns latest values, trend judgment, and signals as text. It implicitly distinguishes itself from the single-indicator snapshot siblings (analyze_sma_snapshot, analyze_ema_snapshot, etc.) by being comprehensive, though it never names them explicitly.

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

Usage Guidelines3/5

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

The description provides explicit alternative routing: drawing → prepare_chart_data / render_chart_svg and backtesting → run_backtest, and it advises specifying a sufficient limit. However, it does not clarify when to choose this comprehensive tool over the individual snapshot tools (analyze_sma_snapshot, analyze_bb_snapshot, detect_macd_cross), leaving that differentiation to inference.

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

analyze_market_signalA

[Market Signal / Score / Triage] 市場の総合シグナル(market signal / composite score / bull-bear / triage)。5要素(板圧力・CVD・モメンタム・ボラティリティ・SMAトレンド)を-100〜+100の単一スコアで瞬時評価。分析の起点・スクリーニングに最適。

⚠️ 最新値スナップショットのみ。時系列チャート描画 → prepare_chart_data(indicators 指定)。

詳細分析には専門ツールを併用: get_flow_metrics / get_volatility_metrics / analyze_indicators / get_orderbook / detect_patterns。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
windowsNo
bucketMsNo
flowLimitNo

TDQS

A4.1/5.0
Behavior4/5

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

No annotations are present, so the description carries the full burden. It discloses a key behavioral trait: it returns only the latest-value snapshot, not a time series, and explicitly routes time-series needs elsewhere. This meaningfully sets expectations about scope and freshness for a read-style analysis tool. It does not cover auth or rate limits, but the snapshot limitation is the most consequential behavior and is clearly stated.

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 core purpose is front-loaded in the first line and the snapshot caveat follows immediately. The trailing tool-name list is useful routing info, though the density of symbols (⚠️・→) and the bilingual mix make it slightly busy. It is efficient overall with no wasted sentences.

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

Completeness3/5

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

Covers the what, why, and when-not well, but with 5 parameters at 0% schema coverage and no output schema, the unexplained parameters (windows, bucketMs, flowLimit) and lack of return-shape detail leave real gaps. The weighting/composition of the 5-element score is also never described, which a triage tool could usefully state.

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

Parameters2/5

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

Schema description coverage is 0% and the description does not explain any of the 5 parameters (pair, type, windows, bucketMs, flowLimit). Only 'type' gains some clarity from the enum, and defaults hint at intent, but windows/bucketMs/flowLimit remain opaque. The description must compensate at this coverage level and does not.

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 precise verb and resource: it computes a single -100 to +100 composite market signal from 5 named elements (板圧力/CVD/モメンタム/ボラティリティ/SMAトレンド). It explicitly frames itself as a triage/screening entry point and clearly distinguishes itself from prepare_chart_data, so an agent can tell them apart without opening schemas.

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?

Explicitly declares when to use it (分析の起点・スクリーニング – starting point for analysis/screening) and when not to (for time-series chart drawing it directs to prepare_chart_data with indicators specified). It also names concrete specialist alternatives (get_flow_metrics / get_volatility_metrics / analyze_indicators / get_orderbook / detect_patterns) for deeper analysis. Nothing is left to inference.

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

analyze_mtf_fibonacciC

[Multi-Timeframe Fibonacci / Confluence] 複数期間フィボナッチ一括分析(MTF fibonacci / confluence zone)。複数ルックバック期間の水準を並列計算し、コンフルエンス(合流)ゾーンを自動検出。analyze_fibonacci を個別に呼ぶ必要なし。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
lookbackDaysNo

TDQS

C2.7/5.0
Behavior2/5

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

Since no annotations are provided, the description carries the full burden of behavioral disclosure. It mentions that it calculates levels across multiple lookback periods in parallel and automatically detects confluence zones, but it does not describe any side effects, output format, data requirements, or whether it is read-only. This is insufficient for a tool with zero annotation coverage.

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

Conciseness3/5

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

The description is relatively short, but it contains redundancy: the title and first sentence repeat essentially the same information ('Multi-Timeframe Fibonacci / Confluence' and '複数期間フィボナッチ一括分析'). The purpose is front-loaded, but the repetition could be trimmed. It is still concise enough with no excessive filler.

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

Completeness2/5

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

Given the tool's complexity (multi-timeframe analysis, confluence detection) and the lack of an output schema, the description should at minimum explain the parameters and what the result will look like. It does neither. The mention of 'confluence zones' gives some context, but the absence of parameter explanation and outcome details makes it incomplete for correct invocation.

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

Parameters1/5

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

The schema description coverage is 0%, meaning the description provides no explanation of the 'pair' or 'lookbackDays' parameters. The description does not mention these parameters at all, so an agent has no guidance on how to set them beyond the basic schema defaults and constraints. This is a critical gap that the description fails to compensate for.

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 clearly states the tool performs multi-timeframe Fibonacci analysis with confluence zone detection, which is a specific and distinct purpose. It explicitly differentiates from the sibling tool 'analyze_fibonacci' by saying there is no need to call it individually. However, the verb 'analyze' is only implied through the Japanese '分析' but not explicitly stated in the description text.

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

Usage Guidelines3/5

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

The description implies usage when multi-timeframe Fibonacci or confluence analysis is needed, and it contrasts with calling 'analyze_fibonacci' individually. However, it does not explicitly state when to use this tool versus other analysis tools, nor does it provide exclusions or alternative recommendations beyond that single mention.

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

analyze_mtf_smaC

[Multi-Timeframe SMA / MTF] 複数タイムフレームSMA一括分析(multi-timeframe / MTF / SMA alignment / confluence)。整列方向とコンフルエンスを判定。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
periodsNo
timeframesNo

TDQS

C2.9/5.0
Behavior2/5

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

With no annotations, the description must fully disclose behavioral traits. It only states the analytical output (alignment direction and confluence) and does not explicitly confirm read-only behavior, side effects, permissions, or result format. For an analysis tool this is a significant gap, though it is not misleading.

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 description is concise, front-loads the MTF keyword, and conveys the essence in a single sentence. However, it is somewhat fragmented with the bracketed English tags, and the Japanese is terse. It earns high marks for brevity but could be better organized.

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

Completeness2/5

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

This is a complex multi-parameter analysis tool with no output schema and no parameter descriptions. The description does not describe the return value structure, how alignment is represented, data requirements, or any usage constraints. Substantially more context is needed for an agent to call it correctly and interpret results.

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

Parameters2/5

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

The schema has 0% coverage, and the description does not compensate. It implies periods refer to SMA periods and timeframes to the timeframes analyzed, but it does not explain the 'pair' parameter or the meaning of the period values. The parameter names themselves are only partially self-explanatory, and the description adds little beyond the schema.

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 performs comprehensive multi-timeframe SMA analysis and determines alignment direction and confluence. The MTF tag explicitly distinguishes it from single-timeframe siblings like analyze_sma_snapshot, and the phrasing is specific about the resource and output.

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

Usage Guidelines2/5

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

The description gives no guidance on when to use this tool versus alternatives such as analyze_sma_snapshot or analyze_mtf_fibonacci. There is no mention of prerequisites, use cases, or exclusions beyond the implicit multi-timeframe context. Agents are left to infer when this tool is appropriate.

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

analyze_sma_snapshotB

[SMA / Moving Average / Golden Cross] SMA(simple moving average / golden cross / dead cross)の数値スナップショット。最新値・クロス検出・整列状態(bullish/bearish/mixed)。

⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data(indicators: ["SMA_25","SMA_75"] 等)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
limitNo
periodsNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses a key constraint: only the latest value is returned, not historical data. It also mentions it returns cross detection and alignment state, which hints at the output scope. However, it does not mention response format, potential caching, or any side effects (though likely read-only). The single constraint is useful but not deep.

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 description is short and front-loaded: the first line states the purpose, and the second line adds a warning and redirect. The warning is placed early to prevent misuse. It is concise without unnecessary fluff, though it could be better structured with bullet points, but this is acceptable.

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

Completeness2/5

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

Given 4 parameters, no output schema, and no annotations, the description is incomplete. It explains the output categories (latest, cross, alignment) but not their structure or types. It lacks any parameter semantics, so an agent may not know how to form valid requests. The pointer to prepare_chart_data is useful but not enough to fill the gap. The tool is under-specified for its complexity level.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must compensate for parameter understanding. It fails to do so: it does not mention any of the four parameters (pair, type, limit, periods). An agent has no guidance on what these mean or how to set them, especially 'periods' which presumably are SMA lengths. The description adds zero value beyond the schema.

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 clearly states it is an SMA numerical snapshot containing the latest value, cross detection, and alignment state (bullish/bearish/mixed). It explicitly names the indicator (SMA) and differentiates from charting tools by emphasizing 'only latest values'. While it does not explicitly contrast with other snapshot siblings like analyze_ema_snapshot, the SMA focus is clear enough for an agent to distinguish.

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 gives a direct exclusion and pointer: '⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data' (Only latest values. For time-series chart drawing → prepare_chart_data). This explicitly tells the agent when NOT to use this tool (if historical series is needed) and names the alternative. It does not discuss when to prefer this over other snapshot tools, but the name makes that obvious.

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

analyze_stoch_snapshotB

[Stochastic / Overbought / Oversold] Stochastic(stochastic / %K / %D / overbought / oversold / divergence)の最新状態。ゾーン・クロス・ダイバージェンスを判定。

⚠️ 最新値のみ。時系列チャート描画 → prepare_chart_data(indicators: ["STOCH"])。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
limitNo
kPeriodNo
smoothDNo
smoothKNo

TDQS

B3.1/5.0
Behavior3/5

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

With no annotations, the description must disclose behavior, and it does add the key constraint of 'latest value only' and the warning about chart drawing. However, it does not describe the output format, whether the operation is read-only, or any side effects, leaving significant behavioral detail unspecified.

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 description is concise at two sentences, front-loading the purpose. The first sentence is a bit keyword-heavy but still efficient, and the second sentence adds a real usage hint. No wasted words.

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

Completeness2/5

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

For a tool with six parameters and no output schema, the description is incomplete. It fails to explain parameter semantics or the nature of the returned analysis (e.g., what 'zone', 'cross', 'divergence' mean as outputs). The agent cannot correctly configure the tool without external knowledge.

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

Parameters1/5

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

Schema description coverage is 0%, so the description must explain the six parameters (pair, type, limit, kPeriod, smoothD, smoothK), but it mentions none of them. The agent has no guidance on what these parameters mean or how they affect the analysis, a major gap.

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 clearly states it analyzes the latest state of the Stochastic indicator (zone, cross, divergence), which is specific and distinguishes it from generic indicator tools. It also differentiates from prepare_chart_data by explicitly noting this is a snapshot, though it does not name sibling snapshot tools like analyze_bb_snapshot.

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 explicitly states that only the latest value is provided and directs chart drawing to prepare_chart_data, giving clear guidance on when not to use this tool. However, it does not explain when to choose this over other indicator snapshots (e.g., BB, Ichimoku), which is implied but not spelled out.

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

analyze_support_resistanceC

[Support / Resistance / Key Levels] サポート・レジスタンス(support / resistance / key levels / price levels)を自動検出。反発/反落ポイントの接触回数・強度・崩壊実績を分析。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
topNNo
toleranceNo
lookbackDaysNo

TDQS

C2.6/5.0
Behavior2/5

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 of behavioral disclosure. It mentions the tool 'detects' and 'analyzes' but does not state whether it is read-only, what the output format is, whether it has any side effects, or if it requires specific data. The description is too thin to convey the behavioral profile beyond the basic action.

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 description is a single, concise sentence that is front-loaded with the key topic in brackets. It is appropriately sized and efficient, containing no fluff. However, it is so short that it sacrifices necessary detail, so it does not earn a 5, but it is structurally sound and prioritizing the core message.

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

Completeness2/5

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

Given the tool's parameters and the absence of an output schema, the description is incomplete. It does not explain the meaning of the four parameters, the expected output structure, or how to interpret the results. An agent calling this tool would likely be uncertain about what to pass and what to expect back, making the description insufficient for reliable invocation.

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

Parameters1/5

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

Schema description coverage is 0%, meaning the schema itself provides no explanations for the parameters (pair, topN, tolerance, lookbackDays). The description does not compensate by explaining any of these parameters or how they influence the analysis. An agent would have no idea what 'tolerance' or 'topN' mean from the description, making this a critical gap.

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 clearly states the tool's purpose: it automatically detects support/resistance levels and analyzes contact count, strength, and breakdown history. This is a specific verb-resource combination that distinguishes the tool from general analysis tools. However, it does not explicitly differentiate from sibling tools like analyze_fibonacci or analyze_volume_profile, which also deal with price levels, so a full 5 is not warranted.

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

Usage Guidelines2/5

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

The description provides no guidance on when to use this tool versus alternatives. It does not mention use cases, prerequisites, or conditions that would select this tool over similar analysis tools. There is no explicit 'use this when...' or comparison to siblings, leaving the agent to infer usage.

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

analyze_volume_profileC

[Volume Profile / VWAP / POC] 出来高プロファイル分析(volume profile / VWAP / POC / value area)。VWAP±σバンド・価格帯別出来高・約定サイズ分布を算出。hours で期間指定(デフォルト4h、最大24h)。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoAsia/Tokyo
binsNoVolume Profile の価格帯分割数
pairNobtc_jpy
hoursNo直近N時間分の約定を取得(デフォルト4h)。limit より優先
limitNo取得する約定件数。hours 指定時は無視
valueAreaPctNoValue Area のカバー率(デフォルト70%)

TDQS

C2.8/5.0
Behavior2/5

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 lists what the tool calculates but does not disclose whether it is read-only, any side effects, potential limitations (e.g., data availability), or the response structure. This is insufficient for a tool with zero annotation coverage.

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

Conciseness4/5

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

The description is a single concise sentence with a clear prefix and all core information front-loaded. It avoids verbosity and directly communicates the purpose and key parameter.

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

Completeness3/5

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

The description lists the computed metrics (VWAP bands, volume distribution, trade size distribution), which gives some sense of output. However, since there is no output schema, it lacks details on the output format or structure, and it omits operational constraints like supported pairs or data freshness. It is adequate but not complete for a tool performing multiple calculations.

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

Parameters2/5

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

Schema coverage is 67%, and the description only adds a note about 'hours' (default 4h, max 24h) which is already in the schema. It fails to explain the important semantic that 'hours' overrides 'limit' when both are provided, leaving agents to discover this only through the schema. This is a meaningful gap.

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 clearly states the tool performs volume profile analysis and lists specific outputs (VWAP±σ bands, volume by price, trade size distribution). It is distinct from sibling tools by focusing on volume profile, but it doesn't explicitly contrast with similar analysis tools like analyze_indicators.

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

Usage Guidelines2/5

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

The description mentions the 'hours' parameter for period specification but gives no guidance on when to use this tool versus alternatives such as analyze_indicators or get_flow_metrics. There are no exclusions, prerequisites, or when-not scenarios provided.

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

detect_macd_crossB

[MACD Cross / Crossover / Screening] MACDクロス検出(MACD cross / crossover / golden cross / dead cross / screening)。

pair省略: 複数銘柄スクリーニング / pair指定: 単一ペア深掘り分析(forming検出・過去統計)。

screen(スクリーニング用):

  • crossType: golden|dead|both

  • minHistogramDelta / maxBarsAgo / minReturnPct / maxReturnPct

  • sortBy: date|histogram|return|barsAgo

  • limit: 上位N件

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNo指定時は単一ペア深掘りモード
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 **pair 省略時(複数銘柄スクリーニングモード)でのみ有効。** pair 指定の単一ペア深掘りモードでは無視されます。 - summary(既定): スクリーニング結果のテキスト。1 クロスごとの明細は content に出ない。 - detailed: summary + 1 クロス 1 行の明細。本ツールの最重量。structuredContent に data.resultsDetailed / data.screenedDetailed を**足す**(summary では入らない)。 なお meta.view は要求した view をそのままエコーするので view ごとに値が変わる。summary
pairsNoスクリーニング時の対象ペア限定
marketNoスクリーニング時の対象市場all
screenNo
lookbackNo
historyDaysNo単一ペア: 統計対象期間
includeStatsNo単一ペア: 過去統計
includeFormingNo単一ペア: forming検出
performanceWindowsNo
minHistogramForFormingNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden of behavioral disclosure. It explains the two modes and the difference between summary and detailed views, but it does not disclose return format details, side effects (if any), rate limits, or safe-read status. It also does not define 'forming' or 'past statistics' clearly. Some transparency is present, but significant gaps remain.

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 description is compact and front-loaded with the primary purpose. The mode distinction is clearly stated, and the screen parameter list is presented as a clean bullet list. While bilingual, it is not overly verbose and each sentence contributes to understanding. Minor redundancy with the English/Japanese repetition, but overall well structured.

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

Completeness3/5

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

The tool is complex (11 parameters, nested screen object, no output schema). The description gives an overview of modes and screen options, but lacks details on what the tool returns (beyond text content), how forming detection works, what 'past statistics' include, and examples of usage. Given the complexity and lack of output schema, more context is needed for an agent to correctly invoke and interpret results. It is adequate but not complete.

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 coverage is 64%, so the description is expected to add meaning for the remaining parameters. It does explain the screen object's key fields (crossType, minHistogramDelta, maxBarsAgo, minReturnPct, maxReturnPct, sortBy, limit), which adds value beyond the schema. However, it omits several other parameters (lookback, performanceWindows, minHistogramForForming, view description is already in schema, etc.). The description does not fully compensate for the uncovered parameters, so 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?

The description states a specific verb and resource: 'MACD cross detection' with explicit cross types (golden/dead) and two operation modes (screening vs. single-pair deep dive). It is clear about the tool's core function, though it does not explicitly contrast with sibling analysis tools like analyze_indicators or detect_patterns, so it falls slightly short of full differentiation.

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

Usage Guidelines3/5

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

The description provides context on when to use the screening mode (pair omitted) vs. deep-dive mode (pair specified), including forming detection and past statistics. However, it does not mention when not to use this tool, nor does it point to alternatives such as other detect_* or analyze_* tools. Usage guidance is implicit rather than explicit.

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

detect_patternsB

[Chart Patterns / Double Top / Head and Shoulders / Triangle] チャートパターン検出(chart patterns / double top / double bottom / head and shoulders / triangle / wedge / flag)。形成中+完成済みを統合検出。表示日時は tz(既定 Asia/Tokyo)で整形。

視覚確認: 結果の overlays を render_chart_svg に渡して描画可能。 描画結果は必ずビジュアルとしてレンダリングして表示すること。 チャット本文へのSVGコード直接出力は禁止。

構造化データ (data.patterns[*].range.start/end 等) は後方互換のため UTC ISO 文字列のまま。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNo表示日時のタイムゾーン(既定: Asia/Tokyo)。get_candles の tz と揃える。pattern の表示日付(期間 / 形成期間 / 文脈期間 / ブレイク確認 / 先行トレンド / pivot / 検出対象期間 等)に適用される。構造化データ(data.patterns[*].range.start/end 等)は後方互換のため UTC ISO 文字列のまま不変。空文字も Asia/Tokyo にフォールバック。Asia/Tokyo
pairNobtc_jpy
typeNo1day
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 - summary: ヘッダ + 分類内訳 + 直近30日/90日件数 + 期間 + 検討パターン。個々のパターンの詳細は content に出ない。 - detailed(既定): 上位 5 件の詳細。6 件目以降は content に出ない。structuredContent に usage_example を**足す**。 - full: 全件の詳細(double_top / double_bottom では山谷 3 点の pivot 行も出る)。本ツールの最重量。 - debug(**階梯外**): swings / candidates のみ。**検出パターンは content に出ない**——出力を置換する view なので full の上位集合ではない。structuredContent に data.candidates を**足す**。detailed
limitNo
patternsNoPatterns to detect. Recommended params (guideline): - double_top/double_bottom: default (swingDepth=7, tolerancePct=0.04, minBarsBetweenSwings=5) - triple_top/triple_bottom: tolerancePct≈0.05 - triangle_*: tolerancePct≈0.06 - pennant: swingDepth≈5, minBarsBetweenSwings≈3 Aliases: 'flag' → bull_flag + bear_flag, 'pennant' → bull/bear pennant, 'triangle' → asc/desc/sym.
swingDepthNo
tolerancePctNo
includeFormingNo形成中パターンを含める
includeInvalidNo無効化済みパターンを含める
includeCompletedNo完成済みパターンを含める
currentRelevanceDaysNo
minBarsBetweenSwingsNo
requireCurrentInPatternNo

TDQS

B3.4/5.0
Behavior3/5

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

With no annotations provided, the description carries full burden. It discloses that display times are formatted in tz (default Asia/Tokyo) while structured data remains UTC ISO for backward compatibility, and it sets an explicit rule to render results visually and avoid direct SVG output. However, it does not state whether the tool is read-only, rate limits, or other side effects. It provides some useful behavior but not a complete safety profile.

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 description is well-structured: it opens with the tool's purpose and pattern list, then the forming/completed unification, tz note, visual rendering rules, and data format. It is concise and front-loaded, with each sentence contributing. No significant fluff or redundancy.

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

Completeness2/5

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

For a tool with 14 parameters, no output schema, and low parameter coverage, the description is not sufficiently complete. It mentions the overlays for rendering but does not explain the full response structure, how parameters affect detection, or the meaning of pattern types in detail. An agent would struggle to correctly choose detection parameters without further information. The description leaves critical gaps.

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

Parameters2/5

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

Schema coverage is only 43%, so the description must compensate for undocumented parameters. It explains the tz parameter's effect on display formatting and the UTC preservation of structured data, but does not clarify key detection parameters like swingDepth, tolerancePct, minBarsBetweenSwings, or the interplay between includeForming/includeCompleted. The patterns parameter has guidelines in the schema, but the description adds little beyond the schema. It fails to help with most parameters.

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 identifies the tool as chart pattern detection, listing specific pattern types (double top, head and shoulders, triangle, wedge, flag). It distinguishes itself from siblings by focusing on chart patterns rather than candlestick patterns (analyze_candle_patterns) or other analysis. The verb 'detect' and resource 'chart patterns' are explicit and specific.

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

Usage Guidelines3/5

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

The description gives some usage context: it detects both forming and completed patterns, and instructs passing overlays to render_chart_svg for visual confirmation. However, it does not explicitly state when to use this tool versus alternatives, nor does it provide exclusions (e.g., 'for candlestick patterns use analyze_candle_patterns'). The guidance is implicit but not comprehensive.

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

detect_whale_eventsC

[Whale / Large Orders / Big Players] 大口投資家の動向検出(whale / large orders / big players / smart money)。板×ローソク足で大口注文を簡易検出。推測ベース。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
minSizeNo
lookbackNo1hour

TDQS

C2.7/5.0
Behavior3/5

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

The description discloses a genuinely useful behavioral trait — '推測ベース' (inference/speculation-based) and '簡易検出' (simple detection) — warning the agent that output is approximate rather than exact. Since no annotations are provided, this is meaningful credit. However, it doesn't disclose whether the tool is read-only, whether it mutates state, or any data-freshness behavior.

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 compact and front-loaded with searchable keyword tags. However, the two keyword lists ('Whale / Large Orders / Big Players' and 'whale / large orders / big players / smart money') repeat the same concepts, so a sizable portion of the text is redundant tagging rather than new information.

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

Completeness2/5

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

For a 3-parameter, 0%-schema-coverage tool with no output schema, the description leaves too much unknown: parameter semantics, output shape, and result granularity are all unspecified. The inference caveat is the only piece of actionable context an agent gets, which is far from sufficient to call the tool confidently.

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

Parameters1/5

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

Schema description coverage is 0%, so the description carries the full burden of explaining pair, minSize, and lookback — and it does none of it. It never mentions that minSize is an order-size threshold, what the lookback windows mean, or the pair format, despite referencing 板 (orderbook) and ローソク足 (candles) as data sources. All three parameters are left to the agent to infer.

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 verb (detect/検出) and resource (whale / large orders / large investors), plus the method (orderbook × candlestick). This distinguishes it from the get_* raw-data siblings and from detect_macd_cross (indicator crossover) and detect_patterns (chart patterns). It's clear, though the meaning leans on the keyword 'whale' being self-explanatory.

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

Usage Guidelines2/5

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

No guidance on when to use this tool instead of alternatives. The keyword tags imply 'whale detection,' but the description never states explicit conditions or exclusions — e.g., when get_flow_metrics or detect_patterns would be a better fit. Context must be inferred entirely from the name.

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

get_candlesA

[Candles / OHLCV / Candlestick] ローソク足(candles / OHLCV / chart data)を取得。1min〜1monthの各時間足に対応。date は tz(既定 Asia/Tokyo)の暦日として解釈し、その終端以前の limit 本を返す。 詳細は inputSchema を参照。

【重要】バックテストには run_backtest を使用(データ取得〜チャート描画を一括実行)。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoタイムゾーン(既定 Asia/Tokyo)。date パラメータの暦日解釈、isoTimeLocal、keyPoints.date、priceRange.periodStart/End の表示に使用。isoTime は常に UTC ISO。空文字も Asia/Tokyo にフォールバック。UTC が必要な場合は明示的に "UTC" を渡す。Asia/Tokyo
dateNotype により形式が異なる: - 1min/5min/15min/30min/1hour → YYYYMMDD(例: 20251022) - 4hour/8hour/12hour/1day/1week/1month → YYYY(例: 2025) date=YYYYMMDD は tz(既定 Asia/Tokyo)の暦日として解釈します。指定日の終端(23:59:59.999 in tz)以前の limit 本を返します。limit は日数ではなくローソク足本数です。例: 1hour, date=20251002, limit=24 は指定 tz の 10/2 24 本(00:00〜23:00)。 省略時は最新。 (互換: 年足系で YYYYMMDD を渡した場合は先頭4桁を年として使用)
pairYes
typeYes
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 - full(既定): サマリ本文(全 OHLCV を 1 行 1 本の圧縮形式で列挙)+ 価格レンジ / キーポイント / 出来高統計 / フッタ + 先頭 5 本の JSON サンプル。本ツールの最重量。 - items: 非推奨。view=full + format=json を使うこと。0.6.0 で削除予定。挙動は view=full + format=json と同じ(content は全件の pretty JSON のみで、サマリ本文・価格レンジ・キーポイント・出来高統計・フッタは出ない)。 集計だけを返す軽量 summary は未実装(量を絞る手段は limit)。full
limitNoデフォルト 200。1〜10000 の整数。type により実上限が変わる: 1min〜1hour は最大 10000(複数日取得)、4hour〜1month は最大 5000(複数年取得)、それ以外は 1000。実上限を超えると user エラー。
formatNocontent の形式。text(既定): 散文 / json: pretty JSON。json は機械可読性のために**トークンを払う**オプションで、同じデータでも text より必ず多くなります(削減オプションではありません)。量は format ではなく view と limit が決めます。text

TDQS

A4.9/5.0
Behavior5/5

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, and it does so thoroughly. It explains timezone interpretation (tz, fallback to Asia/Tokyo, UTC handling), the calendar-day semantics of the date parameter (end-of-day cutoff), that limit counts candles not days, compatibility edge cases (YYYYMMDD for year-tier types), the deprecated items view, and the token-cost implications of format=json. This level of detail exceeds typical MCP descriptions and leaves little room for misinterpretation.

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 description is lengthy but densely packed with essential information. It is structured with a clear main purpose first, then a note pointing to the schema, and finally the critical backtest alternative. While it could be slightly trimmed (e.g., the view parameter explanation is verbose), every sentence contributes operational value. It is not terse, but for a tool with 7 parameters and multiple modes, the detail is 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?

Given the tool's complexity (7 parameters, multiple enums, no output schema), the description covers all critical aspects: what data is returned, how date/timezone work, how limit behaves, how view and format affect output, and the deprecation warning. It even provides concrete examples to remove ambiguity. An agent reading this description can confidently call the tool with correct parameter choices without needing external documentation.

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

Parameters5/5

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

Although the schema already provides decent descriptions (coverage 71%), the tool description adds significant semantic value beyond the schema. It clarifies that limit is measured in candles, not days, with an explicit example ('1hour, date=20251002, limit=24 は指定 tz の 10/2 24 本'), explains how date format varies by timeframe, and describes the behavior of view=full vs view=items in terms of content volume and deprecation. These details are not derivable from the schema alone.

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 opens with a clear translation of the tool's function: 'ローソク足(candles / OHLCV / chart data)を取得' (fetch candlesticks/OHLCV/chart data). It goes beyond a generic phrase by specifying the resource (candles/OHLCV) and the range of supported timeframes (1min〜1month). It also implicitly distinguishes itself from siblings like get_ticker (single tick) and get_transactions (raw trades) by focusing on aggregated OHLCV series.

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 includes an explicit '重要' (important) note: 'バックテストには run_backtest を使用(データ取得〜チャート描画を一括実行)'. This directly tells the agent when NOT to use this tool and points to an alternative. It also provides guidance on selecting view/format/limit to control output size, which helps the agent choose appropriate parameter values for its use case.

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

get_flow_metricsA

[Flow / CVD / Buy-Sell Pressure] 資金フロー分析(flow / CVD / aggressor ratio / buy-sell pressure)。約定データからCVD・アグレッサー比・スパイクを検出。hours(推奨)で時間範囲指定、または limit で件数指定。

データソース制約(bitbank 側仕様): 約定アーカイブ /transactions/{YYYYMMDD} は UTC 暦日単位で、当該 UTC 日の完了後にのみ公開される。進行中の UTC 日(JST 09:00 で切り替わる)の約定は /transactions (latest, 直近約60件) でしか取得できないため、当日区間のカバレッジは限定的(warning で明示される)。

加工契約:

  • 内部で使用する約定列は、取得パスに関わらず timestampMs 昇順にソート済み。

  • latest と date ベースをマージする場合、重複除去キーは timestampMs:price:amount:side(transaction_id は使用しない: 同一約定でも上流エンドポイント間で ID が一致しないケースがあるため)。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoAsia/Tokyo
dateNoYYYYMMDD; omit for latest
pairNobtc_jpy
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 本ツールの主対象はバケット列なので、view が決めるのは content のバケット行の量です(集計値・警告・フッタは全 view に出ます)。 - summary(既定): 集計値のみ。バケット行は content に出ない。 - detailed: 集計値 + 直近 bucketsN 件のバケット行(既定 10 / 上限 100)。それより前のバケット行は content に出ない。 - full: 集計値 + 全バケット行。本ツールの最重量。 - compact: 非推奨。view=full + nonZeroOnly=true を使うこと。0.6.0 で削除予定。挙動は view=full + nonZeroOnly=true と同じ。 - buckets: 非推奨。view=detailed を使うこと。0.6.0 で削除予定。挙動は view=detailed と同じ。summary
hoursNo指定した時間数分の約定を取得して分析(例: 8 → 直近8時間)。limit より優先。複数日にまたがる場合も自動で取得します
limitNo取得する約定件数(バケット数ではない)。hours 指定時は無視されます
bucketMsNoバケットの時間幅(ミリ秒)。デフォルト60000=1分間隔
bucketsNNoview=detailed(および deprecated な view=buckets)で content に出す直近バケット行の件数。他の view では無視されます。
nonZeroOnlyNotrue にすると content のバケット行を非ゼロ(buy または sell > 0)のみに絞ります。量ではなく絞り込みの軸なので view とは独立に指定できます。約定が 1 件も無かった区間のバケットは出来高 0 なので content から落ちます(structuredContent には残るので、区間の連続性はそちらで確認できます)。structuredContent は変わりません(全バケットのまま)。view=summary との併用は no-op(バケット行が無いため。エラーにはしません)。

TDQS

A4.7/5.0
Behavior5/5

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 and does so thoroughly. It explains internal sorting, deduplication logic, data source behavior, view impact on content vs structuredContent, and the meaning of nonZeroOnly. It even warns about weight and deprecated views. This is far beyond typical.

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 description is organized into clear sections (purpose, data source constraints, processing contract) and is front-loaded. While it is long, every section provides necessary operational detail. Some repetition between the main description and schema parameter descriptions exists, but it is not excessive.

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 9 parameters and no output schema, the description is remarkably complete. It covers parameter interactions, data availability limitations, merge/deduplication logic, and view behavior. An agent would have all necessary information to invoke the tool correctly and interpret the results.

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

Parameters5/5

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

Schema coverage is 78%, but the description adds rich semantics: hours vs limit priority, bucketMs meaning, nonZeroOnly filtering behavior, bucketsN scope, and a detailed breakdown of view options and their effects. This significantly exceeds what the schema alone provides.

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 opens with a specific purpose: 資金フロー分析(flow / CVD / aggressor ratio / buy-sell pressure), clearly stating it analyzes trade data to compute CVD, aggressor ratio, and buy-sell pressure. It distinguishes itself from sibling tools like get_candles or get_transactions by focusing on flow analysis rather than raw data or price metrics.

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 explains parameter usage: hours (recommended) vs limit for range selection, with hours taking priority. It also documents data source constraints and limitations (UTC day boundaries, limited coverage for the current UTC day). It does not explicitly contrast with alternative tools, but given the tool's name and purpose, this is largely self-evident. The deprecated view alternatives are clearly flagged with better replacements.

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

get_orderbookA

[Order Book / Depth / Spread] 板情報(order book / depth / bid-ask spread)の統合ツール。

【mode】summary(デフォルト): 上位N層+spread / pressure: 帯域別の買い/売り圧力 / statistics: 流動性ゾーン+大口注文 / raw: 生bids/asks+壁ゾーン推定。

ParametersJSON Schema
NameRequiredDescriptionDefault
modeNosummary
pairNobtc_jpy
topNNo
rangesNo
bandsPctNo
priceZonesNo

TDQS

A3.6/5.0
Behavior3/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. It does surface the conceptual outputs per mode (e.g., spread, buy/sell pressure, liquidity zones, wall-zone estimation), which adds real information. But it omits practical concerns such as response shape, formatting, ordering of bids/asks, or any rate/limits context.

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 description is compact: one purpose sentence followed by a tight mode breakdown, with the primary purpose front-loaded. The colon-separated mode list is scannable and uses no filler. It could be slightly clearer about parameter semantics but earns a high conciseness score for efficient structure.

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

Completeness3/5

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

With 6 parameters, 0% schema coverage, and no output schema, the description must carry heavy weight. The mode explanations help materially, but gaps remain: no indication of the return format/fields, no clarification of pair domain, and no guidance distinguishing ranges from bandsPct. Adequate but not complete for a multi-mode tool.

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 coverage is 0%, so the description must compensate. It partially does: 上位N層 maps to topN, 帯域別/買い・売り圧力 maps to ranges/bandsPct, 流動性ゾーン maps to priceZones, and the mode enum is meaningfully expanded. However, the pair parameter is entirely undescribed, and the semantic difference between ranges and bandsPct is left ambiguous despite both being 'range' arrays.

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 identifies this as the integrated tool for order book/depth/bid-ask spread data (板情報), distinguishing it from siblings like get_ticker, get_candles, and the various analyze_* tools. The specific verb-resource pairing is unambiguous, and the four named modes (summary/pressure/statistics/raw) further pin down what it does.

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

Usage Guidelines3/5

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

The description explains what each mode computes (top N + spread, pressure by band, liquidity zones + large orders, raw bids/asks + wall zones), which guides mode selection. However, it gives no explicit guidance on when to choose this tool over alternatives such as get_ticker, get_flow_metrics, or the analyze_* siblings, and no stated exclusions.

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

get_tickerB

[Ticker / Price] 単一ペアのティッカー(ticker / price / 24h change)を取得。現在価格・出来高・24h高安。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy

TDQS

B3.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It discloses what data will be returned (price, volume, 24h high/low), which is useful, but it does not mention side effects, authentication, rate limits, or that it is read-only (though 'get' implies it). The disclosure is minimal but sufficient for a simple retrieval tool.

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 description is concise and front-loaded with the tool's purpose ('[Ticker / Price]'), followed by a brief explanation of the data retrieved. It wastes no words, though it could be more structured with explicit parameter details.

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

Completeness3/5

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

For a simple one-parameter tool without an output schema, the description is mostly complete in explaining what data is returned, but it omits parameter format and any edge cases (e.g., invalid pair handling). Given the lack of annotations, this is a minor gap.

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

Parameters2/5

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

The schema has 0% description coverage, so the description must compensate for the parameter. It fails to explain the 'pair' parameter's expected format, allowed values, or what constitutes a valid pair (e.g., 'btc_jpy'), leaving the agent to infer from the default value. The description adds no semantic value beyond what the schema already shows.

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 clearly states the verb ('取得' – get) and the resource ('ticker for a single pair'), and specifies the data included (current price, volume, 24h high/low). It distinguishes from sibling 'get_tickers_jpy' through the explicit '単一ペア' (single pair), but does not name the sibling directly.

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

Usage Guidelines3/5

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

The phrase '単一ペア' implies the tool is for retrieving data for one pair, suggesting that for multiple pairs one would use a different tool, but no explicit alternatives or exclusions are given. Usage context is implied rather than stated directly.

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

get_tickers_jpyC

[All Tickers / Market Overview] 全JPYペアのティッカー一覧(tickers / ranking / market overview)を取得。変化率・出来高でランキング表示可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
viewNoranked
limitNo
orderNodesc
sortByNochange24h

TDQS

C2.9/5.0
Behavior2/5

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

No annotations are provided, so the description carries the full burden of behavioral disclosure. '取得' implies a read operation, but it does not disclose the return format, pagination/limit behavior, ordering semantics, or any rate/permission considerations. The only behavioral addition is that ranking by change rate or volume is possible, which is thin for an unannotated tool.

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 description is a single efficient sentence (plus a bracketed identity tag). The 'All Tickers / Market Overview' tag front-loads the tool's scope and differentiator. No wasted words, though the brevity means some semantic load is shifted to the schema.

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

Completeness3/5

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

For a 4-parameter list tool with all parameters optional and enum-constrained, the schema carries a heavy load. The description adds the JPY-scope and ranking semantics, which are the core value. Missing are when-to-use-vs-get_ticker guidance, return format, and the 'name' sort option — genuine gaps but manageable given the simple nature of the tool and the schema's clarity.

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 0%, so the description must compensate, and it partially does: '変化率・出来高でランキング表示可能' (ranking can be shown by change rate/volume) maps directly to the sortBy enum values change24h and volume, and 'ランキング' ties to view='ranked'. However, it omits the sortBy option 'name' and says nothing about limit or order, so compensation is incomplete.

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 verb (取得/get) applied to a specific resource (全JPYペアのティッカー一覧 — all JPY pair tickers). The bracketed tag 'All Tickers / Market Overview' signals a list-scoped tool, which distinguishes it from the singular get_ticker sibling. It is clear on what it does, though it relies on the name/scope tag rather than an explicit contrast.

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

Usage Guidelines2/5

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

There is no guidance on when to use this tool versus alternatives. It never mentions that a single pair should use get_ticker, nor when the overview is preferable. The 'All Tickers / Market Overview' label implies breadth vs. the singular sibling, but that's inference, not stated guidance — no exclusions or conditions are given.

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

get_transactionsB

[Transactions / Trades] 市場の約定履歴(transactions / recent trades)を取得。直近60件 or 日付指定。金額・価格でフィルタ可能。

制約(bitbank 側仕様): date 指定(YYYYMMDD)は UTC 暦日アーカイブで、当該 UTC 日の完了後(JST 09:00 以降)にのみ公開される。進行中の UTC 日を指定すると 404。当日分の約定は date 省略(latest, 直近約60件)でのみ取得可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
dateNoYYYYMMDD; omit for latest
pairNobtc_jpy
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 - full(既定): 返却した全約定を 1 行 1 件で列挙 + 件数サマリ + 切り捨て警告 + スコープフッタ。本ツールの最重量。 - summary: 非推奨。view=full を使うこと。0.6.0 で削除予定。旧既定値で、実体は full と同じ全件列挙(挙動は完全に不変で、名前だけを階梯に合わせた)。集計のみの軽量 summary は将来別リリースで opt-in 専用として新設予定。 - items: 非推奨。view=full + format=json を使うこと。0.6.0 で削除予定。挙動は view=full + format=json と同じ(content は全件の pretty JSON のみで、件数サマリとスコープフッタは出ない)。full
limitNo
formatNocontent の形式。text(既定): 散文 / json: pretty JSON。json は機械可読性のために**トークンを払う**オプションで、同じデータでも text より必ず多くなります(削減オプションではありません)。量は format ではなく view と limit が決めます。text
maxPriceNo
minPriceNo
maxAmountNo
minAmountNo

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations, the description carries the full burden of disclosure. It discloses the date archive behavior, the 404 case, and the default limit of 60 for latest. However, it does not mention rate limits, authentication, pagination, or the exact response structure. The disclosed behavior is important but not comprehensive.

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 description is front-loaded with a clear heading and purpose. It is structured into two paragraphs: purpose and constraints. The language is efficient, with no filler. The second paragraph adds necessary caveats without excess. Slightly verbose due to the detailed date explanation, but it earns its place.

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

Completeness2/5

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

Given the tool has 9 parameters, no output schema, and no annotations, the description is incomplete. It explains the date constraint and general filters but omits details on return format, field meanings, and behavior of optional parameters. The absence of output schema information is a significant gap for an agent deciding how to use the results.

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

Parameters2/5

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

Schema description coverage is only 33%, and the description compensates poorly. It mentions generic filters for amount and price but does not explain individual parameters like limit, pair, or the four max/min fields. The date parameter is explained well in the constraints section, but other parameters lack clarity, forcing the agent to infer from names alone.

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 clearly states a specific verb and resource: retrieving transaction/trade history. It specifies the scope (latest 60 or by date) and that amount/price filters are available. It distinguishes itself from siblings like get_ticker and get_orderbook by focusing on trades, though it does not explicitly name alternatives.

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 provides clear usage context: it explains when to use date (completed UTC days) and when to omit it (current day, using latest 60). It also warns about the 404 error for ongoing UTC days. However, it does not explicitly compare against sibling tools, so usage guidance is good but not exhaustive.

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

get_ui_snapshotA

[Internal / MCP Apps] 確認 UI(iframe)向けに、直近の preview 系ツール応答のスナップショットを返す。 ホストがツール結果通知(ui/notifications/tool-result)を配信しない場合の UI 自己復元用。 LLM が会話の応答生成のために呼ぶ必要はない(preview 系ツールの応答に同じ内容が含まれる)。

ParametersJSON Schema
NameRequiredDescriptionDefault
resource_uriYesスナップショットを取得する MCP Apps リソース URI(ウィジェット自身の URI を指定する)

TDQS

A4.2/5.0
Behavior3/5

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

With no annotations provided, the description carries the full burden. It adds useful context (internal, for UI recovery, LLM not needed) and implies a read-only snapshot, but does not explicitly state side effects, authentication, or rate limits. Adequate for a simple retrieval tool, but not rich.

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?

Two sentences, front-loaded with the core purpose and immediately followed by the critical non-usage note. No wasted words; every sentence earns its place.

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?

For a single-parameter tool with no output schema and clear purpose, the description is nearly complete. It explains why it exists, when to use it, and when not to. Minor gap: doesn't describe the snapshot structure, but it's a simple retrieval of preview responses, so this is not critical.

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 coverage is 100%, and the parameter 'resource_uri' is already fully described with an enum and clear semantics. The tool description adds no extra meaning about the parameter, so 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 states a specific action ('returns the snapshot of recent preview tool responses') for a specific resource (confirmation UI iframe), and clearly distinguishes it from the many analysis siblings by marking it as internal and for UI recovery. The purpose is unambiguous.

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?

Explicitly states when to use (UI self-recovery when host doesn't deliver tool-result notifications) and when not to use (LLM response generation), and points to the alternative (preview tool responses contain the same content). This is direct, actionable guidance.

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

get_volatility_metricsB

[Volatility / ATR / RV] ボラティリティ指標(volatility / ATR / realized vol)を算出。RV・ATR・Parkinson・Garman-Klass・Rogers-Satchell。年率換算対応。aggregates.atr は Wilder ATR(RMA ベース、period=14、TradingView・MT4 標準と一致)。ローリングではボラ変化を RV / Parkinson で追跡してください。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoAsia/Tokyo
pairYes
typeYes
viewNoview は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。 本ツールの結論は aggregates / rolling(スカラー値)なので、**full でも系列そのものは content に出ない**(系列が必要なら get_candles を使う)。 - summary(既定): 集計 + ローリング分析 + 4 行フッタ。窓ごとの内訳・Assessment は content に出ない。 - detailed: summary + 【Volatility Metrics】/【Rolling Trends】/【Assessment】の内訳。系列の統計値は content に出ない。 - full: detailed + 【Series】(件数 / 期間 / Close レンジ / リターンの平均・標準偏差)。本ツールの最重量。 - beginner(**階梯外**): 平易な日本語 4 行。**専門用語・指標名・フッタは content に出ない**——読者向けレジスタを変える view であり、量の階梯には乗らない。summary
limitNo
windowsNo
annualizeNo
cacheTtlMsNo
useLogReturnsNo

TDQS

B3.4/5.0
Behavior3/5

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 does reveal important behavioral traits: annualization is supported ('年率換算対応'), aggregates.atr follows the Wilder ATR (RMA-based, period=14, matching TradingView/MT4), and it recommends RV/Parkinson for rolling analysis. However, it does not describe the overall output shape (e.g., whether it returns both aggregates and rolling series), data access side effects, or any rate-limits/auth concerns. It is partially transparent but missing the broader behavioral context an agent needs for a computation tool.

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 description is compact, with the purpose front-loaded via tags. It covers the essential metric types, annualization, and the ATR variant in a few sentences, and ends with a practical rolling-analysis tip. While slightly redundant ('volatility / ATR / realized vol' followed by the list), it is efficient and structured for quick scanning. It earns a 4 for being appropriately sized and front-loaded.

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

Completeness2/5

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

The tool has no output schema, so the description must explain return values and behavior. It only hints at an 'aggregates.atr' field and mentions rolling, but does not clarify whether the output includes both aggregate scalars and rolling arrays, what the 'view' parameter does (that's in the schema but not cross-referenced), or what the overall structured content looks like. Given 9 parameters and no output schema, this description leaves the agent under-informed about what it will receive and how to interpret the result.

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

Parameters2/5

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

Schema description coverage is only 11% (only the 'view' parameter has a description in the schema), so the description must compensate heavily. The tool description does not explain most of the 9 parameters: pair, type, limit, windows, annualize, useLogReturns, etc. It only indirectly hints at annualize ('年率換算対応') and the rolling concept (related to windows), without mapping them to parameter names. An agent would have to guess the meaning of useLogReturns or windows. This is a significant gap given the low schema coverage.

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 opens with tags [Volatility / ATR / RV] and states a clear verb + resource: 'ボラティリティ指標を算出' (computes volatility metrics). It then enumerates the exact indicators (RV, ATR, Parkinson, Garman-Klass, Rogers-Satchell) and notes annualization support. This specificity makes it immediately distinguishable from generic siblings like analyze_indicators, which cover a broad range of technical indicators.

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

Usage Guidelines3/5

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

The description gives internal guidance—'ローリングではボラ変化を RV / Parkinson で追跡してください' (for rolling, track volatility changes with RV/Parkinson)—which is a usage tip for metric selection, but it does not explicitly compare against sibling tools or state when to prefer this tool over alternatives like analyze_indicators or get_flow_metrics. Usage context is implied by the tool's focus on volatility, but no exclusions or alternative routes are provided, leaving the agent to infer when to choose this tool.

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

prepare_chart_dataA

[Chart / Candlestick / Visualization] チャート描画の第一選択ツール。

⚠️ limit はデフォルト 30 を推奨。ユーザーが期間を明示した場合のみ増やすこと。 indicators はユーザーが明示的に要求した指標のみ指定すること。分析のついでに追加しない。 indicators の同時指定はコンテキストを大幅に消費するため、必要最小限に留めること。

デフォルトはローソク足(OHLCV)のみ返す。indicators 未指定 = ローソク足のみ。 指標が必要な場合は indicators に明示指定: SMA_5, SMA_20, SMA_25, SMA_50, SMA_75, SMA_200, EMA_12, EMA_26, EMA_50, EMA_200, BB, ICHIMOKU, RSI, MACD, STOCH

レスポンス形式: { times[], labels?[], candles: [[o,h,l,c,v],...], series?: {指標名: values[]}, subPanels?: {...} } JPY ペアの価格は整数に丸め済み。全 null 系列は自動除外。

tz パラメータ(例: "Asia/Tokyo")指定時、times がローカル時刻に変換され、labels("03/16 17:00" 等の短縮表示文字列)も付加される。

SVG/PNG ファイル保存 → render_chart_svg。指標の最新値やトレンド判定 → analyze_indicators。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoタイムゾーン(デフォルト: Asia/Tokyo)。times をローカル時刻に変換し、labels(短縮表示文字列)も付加する。空文字でUTCのみAsia/Tokyo
pairNobtc_jpy
typeNo1day
limitNo
indicatorsNo

TDQS

A4.3/5.0
Behavior5/5

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

With zero annotations, the description bears the full burden — and it delivers. It discloses the response shape ({times, labels?, candles, series?, subPanels?}), the default (candles only), JPY integer rounding, automatic exclusion of all-null series, timezone label behavior, and the context-consumption cost of stacking indicators. This is a thorough behavioral contract that leaves little to inference.

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?

Well-structured and front-loaded: warnings come first with ⚠️ markers, followed by default behavior, response format, and sibling routing. The JSON response sketch earns its space, and the indicator list is reused both as reference and as a 'specify explicitly' reminder. Slightly long, and the indicator enumeration partially duplicates the input-schema enum, but every section adds operational 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?

Complete for a 5-parameter, no-output-schema, no-annotation tool: full response format, parameter guidance, and routing all present. Remaining gaps are minor — no semantics for pair/type, no error or auth notes (likely N/A here), and the boundary against get_candles/prepare_depth_data is implied rather than stated. Strong coverage of the core calling contract.

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 coverage is only 20% (only tz is described), so the description must compensate. It does add real meaning for limit (the recommended-default rationale and the 'only raise when user specifies a period' rule) and indicators (usage restraint plus enumeration), and it re-explains tz with a concrete example. But two parameters get zero added semantics: pair (bare 'btc_jpy' default, undocumented everywhere) and type (timeframe enum listed with no guidance on selection). Partial compensation for an 80% coverage gap is not full compensation.

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 opens with a clear mission statement — 'チャート描画の第一選択ツール' (the first-choice tool for chart drawing) — and specifies the exact resource (OHLCV candlestick chart data) with optional indicator overlays. It actively differentiates itself from siblings by routing SVG/PNG saving to render_chart_svg and indicator analysis to analyze_indicators, so an agent can distinguish this tool from its neighbors without opening their schemas.

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?

Provides concrete usage rules: default limit=30 unless the user specifies a period, indicators only when explicitly requested, and minimize indicator count to protect context. It also routes to alternatives (render_chart_svg for file output, analyze_indicators for trend/value reads). However, it never explicitly contrasts itself with get_candles or prepare_depth_data — an agent is told 'first choice' but not told when those siblings should win instead.

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

prepare_depth_dataA

[Depth Chart / Order Book / Visualization] 板の深度チャート描画の第一選択ツール。

getDepth(/depth API)を呼び出し、累積 volume の階段配列 ([price, cumulativeVolume][]) として返す。 Claude.ai の Visualizer 等クライアント側で描画可能な場合はこのツールを優先。 ファイル保存(SVG/PNG)が必要な場合は render_depth_svg を使用。

レスポンス形式: { bids: [[price, cumVolume], ...], asks: [[price, cumVolume], ...], bestBid, bestAsk, mid, spread, spreadPct, totalBidVolume, totalAskVolume, band: {pct, bidVolume, askVolume, ratio}, timestamp, isoTime }

  • bids は価格降順、asks は価格昇順

  • band は mid を中心とした ±bandPct 範囲の買い/売り量と比率(ratio = bidVolume / askVolume)

  • JPY ペアの価格は整数に丸め済み

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
levelsNo取得する最大レベル数(片側)。10〜1000 の整数、デフォルト 200
bandPctNomid を中心とした ±range 比率。0.01 = ±1%。デフォルト 0.01

TDQS

A4.4/5.0
Behavior4/5

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

With no annotations, the description carries the full burden. It discloses the API call, the cumulative volume calculation, sorting order for bids/asks, band calculation, and JPY rounding—concrete behavioral specifics beyond a generic statement. Minor omission: no mention of rate limits or auth, but not expected for a data-prep tool.

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 description is somewhat long but well-organized: purpose, usage, and response format are clearly sectioned. Front-loads the key usage guidance. A few redundant phrases could be trimmed, but the structure aids quick comprehension.

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 no output schema, the description compensates by fully detailing the response structure including field names, ordering, band definition, and rounding behavior. An agent has all information needed to call the tool and parse its output 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 covers 67% of parameters with descriptions (levels, bandPct), and the description adds implicit context (JPY rounding, band ratio). However, it does not elaborate on 'pair' beyond the default, and the schema already documents bounds and defaults. The description contributes minimal additional parameter meaning.

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 states a specific purpose: prep depth data for visualization, naming the underlying API (getDepth) and the output format. It distinguishes itself from render_depth_svg and get_orderbook via explicit use-case statements.

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?

Explicitly marks itself as the first-choice tool for depth chart drawing and directs to render_depth_svg when file saving (SVG/PNG) is needed. No ambiguity remains about when to select this tool.

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

refresh_pairs_cacheA

[Maintenance / Fees] /spot/pairs 手数料レートの TTL キャッシュ(既定 1h)を強制再取得する。キャンペーン境界などで最新の maker/taker 手数料率を即時反映したいときに使う。引数なしで全ペアを再取得(pair 指定で対象ペアの率を強調表示)。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNo注記表示する対象ペア(例: btc_jpy)。指定しても再取得は全ペア対象。

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries the full burden and discloses key behavioral traits: it forces a cache re-fetch, that the fetch covers all pairs regardless of the pair argument (pair is only for display), and the default TTL of 1h. This goes beyond simply stating 'refresh' and gives the agent an accurate model of side effects.

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 tight and front-loaded: an action and category, a why, and a clarifying note about the parameter, all in two sentences. No filler exists, and every sentence earns its place.

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?

For a simple maintenance tool with one optional parameter and no output schema, the description covers its purpose, usage timing, and parameter behavior. It does not mention return values, but for a cache-refresh tool this is not critical; the missing bits (e.g., failure modes, rate limits) are minor given its simplicity.

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?

The schema already documents the pair parameter with exactly the same behavior (all-pairs refresh with pair used only for display), so schema coverage is 100%. The description reiterates this but adds no new semantic value beyond what the schema provides, so the baseline score of 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 explicitly states the specific action (force re-fetch of TTL cache) and resource (/spot/pairs fee rates), clearly distinguishing it from the many market-data and analysis siblings. The category '[Maintenance / Fees]' further disambiguates its server-side maintenance role.

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 gives a concrete use case ('when you want to immediately reflect the latest maker/taker fee rates at campaign boundaries'), which clearly conveys when the tool should be invoked. It does not explicitly state when not to use it (e.g., under normal TTL operation), but the intended context is clear enough for an agent to decide.

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

render_candle_pattern_diagramB

[Candle Pattern Diagram / Education] ローソク足パターンの教育用構造図(candle pattern diagram / education / visualization)。analyze_candle_patterns の結果を初心者向けに視覚化。

ユーザーが「図で見せて」等と明示した場合のみ使用。自発的呼び出し禁止。data.svg を受け取ったら Visualizer(show_widget) の widget_code にそのまま渡してレンダリングすること。 チャット本文へのSVGコード直接出力は禁止。

ParametersJSON Schema
NameRequiredDescriptionDefault
themeNodark
titleNoChart title (default: pattern name or "ローソク足チャート")
candlesYesCandle data array (oldest first)
patternNoPattern to highlight

TDQS

B3.3/5.0
Behavior3/5

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

With no annotations provided, the description carries the burden of behavioral disclosure. It states that direct SVG output to chat is prohibited and that the tool should only be used on request, which adds context. However, it does not explicitly state whether the tool is read-only or has other side effects, though its purpose (visualization) implies non-destructive behavior.

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 a single block with several sentences, covering purpose, usage conditions, output handling, and a restriction. It is not overly verbose but could be more front-loaded with the most critical instructions. The structure is functional but not tightly organized.

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

Completeness3/5

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

Given the tool's complexity (4 parameters, nested objects, no output schema), the description explains the main use case and output delivery method, which is helpful. However, it does not explain the relationship with analyze_candle_patterns in detail or clarify expected output format beyond 'data.svg'. With no annotations, it leaves some gaps for an agent.

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

Parameters2/5

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

The schema has 75% parameter description coverage, which is moderate (not high). The description adds no parameter-specific meaning beyond what the schema already provides. It does not explain how parameters like theme, title, or pattern should be used in the context of the tool, so the low coverage is not compensated.

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 clearly states the tool's purpose: it visualizes results of analyze_candle_patterns for educational purposes, and it mentions it is a candle pattern diagram. This is specific and distinct from general chart rendering tools, though it doesn't explicitly name sibling tools like render_chart_svg.

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 gives explicit when-to-use and when-not-to-use instructions: use only when the user explicitly requests a diagram, and avoid spontaneous calls. It also explains how to deliver the output (pass to Visualizer widget). However, it does not mention alternative tools by name, which would fully differentiate.

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

render_chart_svgA

[SVG file / PNG save] ローソク足・ラインチャートをサーバー側で SVG/PNG に生成。 クライアント側で描画可能な場合は prepare_chart_data を優先。 ユーザーが SVG/PNG 保存を明示した場合のみ使用。自発的呼び出し禁止。 detect_patterns の overlays を渡してパターン描画可能。 オプションのインジケーター(SMA/EMA/BB/一目均衡表)はユーザーが明示的に要求した場合のみ指定すること。デフォルトではすべてオフ。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoX軸ラベルのタイムゾーン(例: Asia/Tokyo, UTC)Asia/Tokyo
pairNobtc_jpy
typeNo1day
depthNo
limitNo
styleNocandles
bbModeNodefault
withBBNo
withEMANo
withSMANo
ichimokuNo
overlaysNo
subPanelsNoサブパネル: macd(MACD線+シグナル+ヒストグラム), rsi(RSI 14 + 70/30ゾーン), volume(出来高バー)
svgMinifyNoMinify SVG text by stripping whitespace where safe.
indicatorsNoIndicators to overlay. Do NOT set unless the user explicitly requests them. Default: [] (none). Available: SMA_5, SMA_20, SMA_25, SMA_50, SMA_75, SMA_200, EMA_12, EMA_26, EMA_50, EMA_200, BB, BB_EXTENDED, ICHIMOKU, ICHIMOKU_EXTENDED
withLegendNo
yPaddingPctNoVertical padding ratio to expand y-range.
svgPrecisionNoCoordinate rounding decimals (0-3).
viewBoxTightNoUse tighter paddings to reduce empty margins.
withIchimokuNo
barWidthRatioNoWidth ratio of each candle body (slot fraction).
simplifyToleranceNoLine simplification tolerance in pixels (0 disables).

TDQS

A3.6/5.0
Behavior2/5

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

No annotations are provided, so the description bears the full burden. It does not disclose output format (e.g., base64, file path), potential side effects, or resource implications of server-side generation. It mentions rules for usage but not behavioral traits like mutability or return structure. The 'self-invocation prohibition' is a usage guideline, not a behavioral disclosure.

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 description is concise and well-structured, front-loading the purpose and then providing usage constraints. It packs important rules into a few sentences without unnecessary fluff. Slightly long due to the list of indicators, but still efficient.

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

Completeness2/5

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

With 22 parameters, nested objects, no output schema, and no annotations, the description is far from complete. It gives essential usage rules but omits output expectations, error scenarios, and explanations for most parameters. The description would need to be substantially richer to fully guide an agent.

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

Parameters2/5

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

Schema description coverage is only 41%, and the description compensates for only a few parameters: it instructs not to set indicators unless explicitly requested, and notes that overlays can be passed from detect_patterns. However, it does not explain many other parameters (depth, limit, style, bbMode, ichimoku, subPanels, etc.), leaving significant gaps for such a large parameter set.

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 states a specific verb (generate) and resource (candlestick/line charts to SVG/PNG server-side), and explicitly differentiates from prepare_chart_data for client-side rendering. It also mentions overlays from detect_patterns, clearly setting it apart from other rendering tools.

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?

Provides explicit routing: prefer prepare_chart_data if client-side rendering is possible, only use when the user explicitly requests SVG/PNG save, and prohibits spontaneous calls. Also specifies that indicators must be user-requested, leaving no ambiguity about when to invoke.

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

render_depth_svgA

[Depth Chart / Order Book Visualization] 板の深さチャートを SVG 生成(depth chart / order book visualization / bid-ask depth)。 クライアント側(Claude.ai の Visualizer 等)で描画可能な場合は prepare_depth_data を優先し、本ツールは SVG/PNG ファイル保存(preferFile / autoSave)やファイル埋め込み用途にフォールバックする位置づけ。 data.svg を HTML に埋め込んで表示。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNobtc_jpy
typeNo1day
depthNo
autoSaveNo
preferFileNo

TDQS

A3.7/5.0
Behavior3/5

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

With no annotations provided, the description itself must disclose behavior. It mentions that this tool is for 'SVG/PNG ファイル保存' and references preferFile/autoSave, implying file-saving side effects. However, it does not explicitly state whether the tool returns SVG content, writes to disk by default, or what happens with the generated file. The fallback positioning is clear, but the actual operational behavior (return vs. save) is underspecified. This is adequate but not thorough given zero annotation coverage.

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

Conciseness3/5

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

The description is compact but mixes languages and intertwines purpose, alternative routing, and usage instructions without clear separation. The core purpose is front-loaded in the first lines, which is good, but the structure is slightly chaotic (e.g., inline references to file saving and HTML embedding). It is not overly verbose, but the organization could be clearer for quick agent parsing.

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

Completeness2/5

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

Given no output schema, no annotations, and 5 parameters (including a nested object), the description is insufficiently complete. It omits return value details, default behavior when autoSave/preferFile are not set, the meaning of pair and type, how depth.levels affects the output, and any error or edge-case handling. While the fallback context is useful, an agent cannot confidently invoke this tool correctly without additional information.

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

Parameters2/5

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

Schema description coverage is 0%, so the description must explain all parameters. It only directly references preferFile and autoSave in the context of file saving, but does not define them. Parameters like pair, type, and the depth object (with levels) are completely unexplained. While defaults exist in the schema, the description adds no semantic meaning to guide the agent in setting these values, making this a significant gap for a 5-parameter tool with 0% schema coverage.

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 generates an SVG for a depth chart / order book visualization, using specific terms like '板の深さチャートを SVG 生成' and 'bid-ask depth'. It explicitly positions itself as a fallback to prepare_depth_data, distinguishing it from that sibling and implying a distinct resource (SVG file). This is specific enough for an agent to understand the tool's function without confusion.

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 gives explicit when-to-use and when-not-to-use guidance: it says to prefer prepare_depth_data for client-side rendering (Claude.ai Visualizer), and to use this tool only for file saving (preferFile/autoSave) or file embedding. It names the alternative (prepare_depth_data) and the exact conditions for selection, leaving no ambiguity about routing.

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

run_backtestA

[Backtest / Strategy Test / SMA Cross / RSI / MACD] 汎用バックテスト(backtest / strategy test / simulation / performance)。データ取得〜計算〜チャート描画を一括実行。

戦略: sma_cross / rsi / macd_cross / bb_breakout。 期間: 1M / 3M / 6M / 1Y / 2Y / 3Y、または start_date+end_date (YYYY-MM-DD) で任意レンジ指定可。 時間軸: 1D / 4H / 1H。 SVG チャート付きで損益・勝率・最大DD・Sharpe Ratio 等を返却。 content テキスト末尾に equity_curve / drawdown_curve の JSON を含む (chartDetail=default は最大 200 点の均等サンプル、full は全点)。独自実装不要。

ParametersJSON Schema
NameRequiredDescriptionDefault
pairNoTrading pair (e.g., btc_jpy)btc_jpy
fee_bpNoOne-way fee in basis points. When omitted, resolved dynamically from the current /spot/pairs taker rate (falls back to nominal 12 bp if unavailable). Explicit values are always respected.
periodNoBacktest period: 1M, 3M, 6M, 1Y, 2Y, or 3Y. Ignored when start_date and end_date are both provided.3M
savePngNoSave chart as PNG file to outputDir (default: false). For inline display in chat UI, leave false and use includeSvg or prepare_chart_data instead.
end_dateNoBacktest end date (ISO 8601: YYYY-MM-DD). Takes precedence over period when both start_date and end_date are provided.
strategyYesStrategy configuration
executionNoExecution timing (fixed: t+1_open)t+1_open
outputDirNoOutput directory for chart files. Must be under an allowed root: /mnt/user-data/outputs, the server working directory, or a directory listed in the BACKTEST_OUTPUT_DIR_ALLOWLIST environment variable./mnt/user-data/outputs
timeframeNoCandle timeframe: 1D (daily), 4H (4-hour), 1H (hourly)1D
includeSvgNoInclude SVG string in response (default: false, for token saving)
start_dateNoBacktest start date (ISO 8601: YYYY-MM-DD). Takes precedence over period when both start_date and end_date are provided.
chartDetailNoChart detail level: default (equity+DD only) or full (price+indicator+equity+DD+position). Use full ONLY when user explicitly requests price chart or indicator visualization.default

TDQS

A4/5.0
Behavior4/5

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

With no annotations, the description discloses that it returns a chart and metrics, and that the content text includes equity/drawdown JSON, with chartDetail controlling sampling. It also notes it handles data acquisition and calculation automatically ('unique implementation unnecessary'). However, it doesn't explicitly state it performs a read-only simulation with no real orders, which is a minor gap given the backtest context.

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 front-loaded with the tool's purpose and uses bullet-like lines for strategy, period, timeframe, and output details. Each sentence provides distinct information (strategy list, period options, timeframe, output metrics, JSON details, chartDetail sampling), with no fluff. The structure makes it easy to scan.

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?

For a tool with 12 parameters and a nested strategy object, the description covers the core options and return details (metrics, chart, JSON). It explains chartDetail's sampling and mentions output format. It doesn't explain all parameters (e.g., fee_bp, outputDir constraints) but the schema covers those, so the description complements the structured data well.

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 the baseline is 3. The description reiterates the strategy enums, period options, and timeframe, and adds nuance about chartDetail sampling, but it largely overlaps with the schema's already-detailed parameter descriptions (e.g., precedence of start_date/end_date over period is in both). It adds little beyond what the schema already states.

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 opens by calling it a 'general-purpose backtest' with strategy names, and states it 'executes data acquisition through calculation to chart drawing in one go' – a specific verb and resource. It clearly distinguishes itself from sibling analysis tools by being the only backtesting tool, listing strategies (sma_cross, rsi, etc.) and output metrics (P&L, win rate, max DD, Sharpe).

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

Usage Guidelines3/5

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

The description implies when to use this tool by calling it 'general-purpose' and noting 'no need for custom implementation,' but it never explicitly contrasts it with sibling tools or states when not to use it. There are no exclusions or alternative routing. It could be clearer that this is the go-to backtest tool and that other analysis tools are for separate snapshots.

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

validate_candle_dataA

[Data Quality / Validation] OHLCVローソク足データの品質検証。 分析やバックテスト前に「このデータ信用できる?」を確認するためのツール。 完全性(歯抜け)・重複・OHLCV整合性・価格異常値・出来高異常値を検出し、0-100の品質スコア(A-F)を算出。 ペアの流動性ティア(major/mid/minor)を自動判定し、暗号資産のファットテール分布や低流動性ペアの出来高ゼロを考慮した適切なデフォルト閾値を適用。 閾値は price_sigma, volume_multiplier で手動調整も可能。

ParametersJSON Schema
NameRequiredDescriptionDefault
tzNoタイムゾーン(デフォルト: Asia/Tokyo)Asia/Tokyo
dateNoYYYYMMDD or YYYY format. If omitted, uses latest data.
pairNobtc_jpy
typeNo1day
limitNo検証対象のローソク足本数(10〜1000)
price_sigmaNo価格変化率がこの σ を超えたら異常値とみなす。省略時はペアのティア(major/mid/minor)に応じて自動設定
volume_multiplierNo出来高が全体平均の何倍を超えたらスパイクとみなすか。省略時はペアのティアに応じて自動設定

TDQS

A4.2/5.0
Behavior4/5

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

With no annotations provided, the description carries full responsibility. It discloses the tool's behavior: detects anomalies, auto-determines liquidity tier, applies thresholds based on crypto fat-tail and zero-volume considerations, and allows manual threshold adjustment. It does not explicitly state whether the tool modifies data (it implies read-only), nor the exact output structure beyond the score, but the threshold auto-logic is described in detail.

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 description is efficient, starting with a clear purpose, then listing detection types, then explaining threshold logic. It uses a structured header '[Data Quality / Validation]' to signal the domain. Each sentence adds value, and it avoids fluff, though it is slightly longer than ideal due to the detailed threshold explanation.

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

Completeness3/5

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

Given the tool has 7 parameters and no output schema, the description should clarify the return format. It mentions '0-100の品質スコア(A-F)' but does not describe whether the output includes anomaly details, a breakdown, or just the score. This leaves an agent uncertain about how to consume the result. The threshold behavior is well-covered, but the missing output structure is a notable gap.

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?

The schema descriptions cover most parameters, but the description adds critical context beyond the schema: it explains that price_sigma and volume_multiplier have auto-set defaults based on the pair's liquidity tier (major/mid/minor), and that the tier is automatically determined. This enriches the meaning of those parameters and compensates for the pair parameter lacking a schema description. The focus on auto-tier logic is a meaningful supplement.

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 validates OHLCV candlestick data ('OHLCVローソク足データの品質検証') and lists specific detection targets: completeness, duplicates, OHLCV consistency, price anomalies, and volume anomalies. It also mentions computing a 0-100 quality score with grade A-F. This goes beyond a vague 'validate' and gives concrete, actionable purpose that differentiates it from sibling analyze and get tools.

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 states the use case: '分析やバックテスト前に「このデータ信用できる?」を確認するためのツール' (tool to check if data is trustworthy before analysis or backtesting). This gives a clear temporal context. However, it does not explicitly name alternative tools or conditions when NOT to use it, though the context implies it is a pre-processing step distinct from analysis tools.

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. 33 tool updatesv0.4.1
    • Changedanalyze_bb_snapshot1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_candle_patterns1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_currency_strength1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_ema_snapshot1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_fibonacci1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_ichimoku_snapshot1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_indicators1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_market_signal1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_mtf_fibonacci1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_mtf_sma1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_sma_snapshot1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_stoch_snapshot1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_support_resistance1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedanalyze_volume_profile1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changeddetect_macd_cross2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / view / description
        Added value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n**pair 省略時(複数銘柄スクリーニングモード)でのみ有効。** pair 指定の単一ペア深掘りモードでは無視されます。\n- summary(既定): スクリーニング結果のテキスト。1 クロスごとの明細は content に出ない。\n- detailed: summary + 1 クロス 1 行の明細。本ツールの最重量。structuredContent に data.resultsDetailed / data.screenedDetailed を**足す**(summary では入らない)。\nなお meta.view は要求した view をそのままエコーするので view ごとに値が変わる。"
    • Changeddetect_patterns2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / view / description
        Added value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n- summary: ヘッダ + 分類内訳 + 直近30日/90日件数 + 期間 + 検討パターン。個々のパターンの詳細は content に出ない。\n- detailed(既定): 上位 5 件の詳細。6 件目以降は content に出ない。structuredContent に usage_example を**足す**。\n- full: 全件の詳細(double_top / double_bottom では山谷 3 点の pivot 行も出る)。本ツールの最重量。\n- debug(**階梯外**): swings / candidates のみ。**検出パターンは content に出ない**——出力を置換する view なので full の上位集合ではない。structuredContent に data.candidates を**足す**。"
    • Changeddetect_whale_events1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_candles3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "text",
        +  "description": "content の形式。text(既定): 散文 / json: pretty JSON。json は機械可読性のために**トークンを払う**オプションで、同じデータでも text より必ず多くなります(削減オプションではありません)。量は format ではなく view と limit が決めます。",
        +  "enum": [
        +    "text",
        +    "json"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / view / description
        Added value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n- full(既定): サマリ本文(全 OHLCV を 1 行 1 本の圧縮形式で列挙)+ 価格レンジ / キーポイント / 出来高統計 / フッタ + 先頭 5 本の JSON サンプル。本ツールの最重量。\n- items: 非推奨。view=full + format=json を使うこと。0.6.0 で削除予定。挙動は view=full + format=json と同じ(content は全件の pretty JSON のみで、サマリ本文・価格レンジ・キーポイント・出来高統計・フッタは出ない)。\n集計だけを返す軽量 summary は未実装(量を絞る手段は limit)。"
    • Changedget_flow_metrics5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / bucketsN / description
        Added value: +"view=detailed(および deprecated な view=buckets)で content に出す直近バケット行の件数。他の view では無視されます。"
      • addedInput schema / properties / nonZeroOnly
        Added value: +{
        +  "default": false,
        +  "description": "true にすると content のバケット行を非ゼロ(buy または sell > 0)のみに絞ります。量ではなく絞り込みの軸なので view とは独立に指定できます。約定が 1 件も無かった区間のバケットは出来高 0 なので content から落ちます(structuredContent には残るので、区間の連続性はそちらで確認できます)。structuredContent は変わりません(全バケットのまま)。view=summary との併用は no-op(バケット行が無いため。エラーにはしません)。",
        +  "type": "boolean"
        +}
      • changedInput schema / properties / view / description
        Previous value: -"summary: 集計値のみ (buckets 省略) / compact: 非ゼロバケットのみ / buckets: 直近 N バケット / full: 全バケット"New value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n本ツールの主対象はバケット列なので、view が決めるのは content のバケット行の量です(集計値・警告・フッタは全 view に出ます)。\n- summary(既定): 集計値のみ。バケット行は content に出ない。\n- detailed: 集計値 + 直近 bucketsN 件のバケット行(既定 10 / 上限 100)。それより前のバケット行は content に出ない。\n- full: 集計値 + 全バケット行。本ツールの最重量。\n- compact: 非推奨。view=full + nonZeroOnly=true を使うこと。0.6.0 で削除予定。挙動は view=full + nonZeroOnly=true と同じ。\n- buckets: 非推奨。view=detailed を使うこと。0.6.0 で削除予定。挙動は view=detailed と同じ。"
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "summary",
        -  "compact",
        -  "buckets",
        -  "full"
        -]New value: +[
        +  "summary",
        +  "detailed",
        +  "full",
        +  "compact",
        +  "buckets"
        +]
    • Changedget_orderbook1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_ticker1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_tickers_jpy1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedget_transactions5 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / format
        Added value: +{
        +  "default": "text",
        +  "description": "content の形式。text(既定): 散文 / json: pretty JSON。json は機械可読性のために**トークンを払う**オプションで、同じデータでも text より必ず多くなります(削減オプションではありません)。量は format ではなく view と limit が決めます。",
        +  "enum": [
        +    "text",
        +    "json"
        +  ],
        +  "type": "string"
        +}
      • changedInput schema / properties / view / default
        Previous value: -"summary"New value: +"full"
      • addedInput schema / properties / view / description
        Added value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n- full(既定): 返却した全約定を 1 行 1 件で列挙 + 件数サマリ + 切り捨て警告 + スコープフッタ。本ツールの最重量。\n- summary: 非推奨。view=full を使うこと。0.6.0 で削除予定。旧既定値で、実体は full と同じ全件列挙(挙動は完全に不変で、名前だけを階梯に合わせた)。集計のみの軽量 summary は将来別リリースで opt-in 専用として新設予定。\n- items: 非推奨。view=full + format=json を使うこと。0.6.0 で削除予定。挙動は view=full + format=json と同じ(content は全件の pretty JSON のみで、件数サマリとスコープフッタは出ない)。"
      • changedInput schema / properties / view / enum
        Previous value: -[
        -  "summary",
        -  "items"
        -]New value: +[
        +  "full",
        +  "summary",
        +  "items"
        +]
    • Addedget_ui_snapshot
    • Changedget_volatility_metrics2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • addedInput schema / properties / view / description
        Added value: +"view は content の量を制御します。量は summary < detailed < full の順で、full は常にそのツールの最重量です。view が structuredContent から**フィールドを削ることはありません**(その view でしか計算しないデータを足すツールはあり、その場合は当該 view の説明に明記しています)。content[0].text は LLM への唯一のチャネルなので、軽い view は「短い表示」ではなく「LLM が明細を受け取らない」を意味します。\n本ツールの結論は aggregates / rolling(スカラー値)なので、**full でも系列そのものは content に出ない**(系列が必要なら get_candles を使う)。\n- summary(既定): 集計 + ローリング分析 + 4 行フッタ。窓ごとの内訳・Assessment は content に出ない。\n- detailed: summary + 【Volatility Metrics】/【Rolling Trends】/【Assessment】の内訳。系列の統計値は content に出ない。\n- full: detailed + 【Series】(件数 / 期間 / Close レンジ / リターンの平均・標準偏差)。本ツールの最重量。\n- beginner(**階梯外**): 平易な日本語 4 行。**専門用語・指標名・フッタは content に出ない**——読者向けレジスタを変える view であり、量の階梯には乗らない。"
    • Changedprepare_chart_data1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedprepare_depth_data1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrefresh_pairs_cache1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrender_candle_pattern_diagram3 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • removedInput schema / properties / pattern / properties / involvedIndices / items
        Removed value: -[
        -  {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  },
        -  {
        -    "maximum": 9007199254740991,
        -    "minimum": 0,
        -    "type": "integer"
        -  }
        -]
      • addedInput schema / properties / pattern / properties / involvedIndices / prefixItems
        Added value: +[
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  },
        +  {
        +    "maximum": 9007199254740991,
        +    "minimum": 0,
        +    "type": "integer"
        +  }
        +]
    • Changedrender_chart_svg1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrender_depth_svg1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
    • Changedrun_backtest2 fields changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
      • changedInput schema / properties / outputDir / description
        Previous value: -"Output directory for chart files"New value: +"Output directory for chart files. Must be under an allowed root: /mnt/user-data/outputs, the server working directory, or a directory listed in the BACKTEST_OUTPUT_DIR_ALLOWLIST environment variable."
    • Changedvalidate_candle_data1 field changed
      • changedInput schema / $schema
        Previous value: -"http://json-schema.org/draft-07/schema#"New value: +"https://json-schema.org/draft/2020-12/schema"
  2. 32 tool updatesv0.1.1
    • First observedanalyze_bb_snapshot
    • First observedanalyze_candle_patterns
    • First observedanalyze_currency_strength
    • First observedanalyze_ema_snapshot
    • First observedanalyze_fibonacci
    • First observedanalyze_ichimoku_snapshot
    • First observedanalyze_indicators
    • First observedanalyze_market_signal
    • First observedanalyze_mtf_fibonacci
    • First observedanalyze_mtf_sma
    • First observedanalyze_sma_snapshot
    • First observedanalyze_stoch_snapshot
    • First observedanalyze_support_resistance
    • First observedanalyze_volume_profile
    • First observeddetect_macd_cross
    • First observeddetect_patterns
    • First observeddetect_whale_events
    • First observedget_candles
    • First observedget_flow_metrics
    • First observedget_orderbook
    • First observedget_ticker
    • First observedget_tickers_jpy
    • First observedget_transactions
    • First observedget_volatility_metrics
    • First observedprepare_chart_data
    • First observedprepare_depth_data
    • First observedrefresh_pairs_cache
    • First observedrender_candle_pattern_diagram
    • First observedrender_chart_svg
    • First observedrender_depth_svg
    • First observedrun_backtest
    • First observedvalidate_candle_data

TDQS

A3.6/5.0

Scored across 33 tools

Disambiguation5/5

每个工具都有明确的职责范围,通过前缀标签(如[Ticker/Price]、[Order Book])和详细描述清晰区分。即使有多个analyze_snapshot工具,也分别针对不同技术指标,不会产生歧义。绘图相关工具(prepare_chart_data与render_chart_svg)分工明确,一个返回数据,一个生成文件。

Naming Consistency5/5

所有工具均采用snake_case动词+名词命名模式,动词包括get、analyze、detect、prepare、render、validate、run、refresh,风格统一。如analyze_*系列、detect_*系列、prepare_*系列,命名模式可预测,便于理解和记忆。

Tool Count4/5

33个工具明显超出典型3-15个的合理范围,但考虑到该服务器覆盖了行情数据、技术分析、图表绘制、回测、数据验证等广泛功能,每个工具都有独立用途,没有明显冗余。虽然数量偏多,但整体作用域较大,仍然可以接受。

Completeness5/5

工具集覆盖了市场数据获取(ticker、orderbook、candles、transactions)、指标分析(RSI、MACD、BB、Ichimoku等)、高级分析(支撑阻力、图表模式、量分布、货币强度、fibonacci)、信号聚合、回测、数据质量验证以及可视化,形成了完备的分析生命周期,没有发现明显缺失的功能。

Maintenance

ActivityActive
ResponsivenessUnresponsive

Related MCP Connectors

Related MCP Servers