mcpField
S
sifting

sifting

ローカル
sifting.io金融データ116 週間前に更新

sifting について

siftingは、36種類のツールを通じてSiftingIOの市場データをAIアシスタントに提供するMCPサーバーです。ライブ価格、証券提出書類や企業情報、市場状況、マクロ経済カレンダー、ストリーミングデータを扱います。

主な機能

  1. 01ライブ価格と気配値
  2. 02株式、SEC提出書類、企業情報
  3. 03暗号資産と外国為替のOHLCVデータ
  4. 04市場状況と経済カレンダー
  5. 0513F保有情報とDEXウォレットデータ
  6. 06WebSocketデータ購読

活用シーン

  1. 01現在の価格と市場状況の確認
  2. 02企業提出書類と財務情報の調査
  3. 03比率を使った企業比較
  4. 04短時間のライブ市場データ収集

MCP 対応

MCPクライアントに36種類の市場データツールと3つのガイド付きプロンプトを提供します。stdioとStreamable HTTPに対応し、HTTPでは任意のBearerトークン認証を利用できます。

設定

ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。

mcp.json · 共通設定
{
"mcpServers": {
"io-sifting": {
"command": "npx",
"args": [
"-y",
"siftingio-mcp"
],
"env": {
"SIFTING_API_KEY": "<SIFTING_API_KEY>",
"SIFTING_BASE_URL": "<SIFTING_BASE_URL>",
"SIFTING_WS_URL": "<SIFTING_WS_URL>"
}
}
}
}
起動コマンドnpx -y siftingio-mcp
設定が必要な環境変数
SIFTING_API_KEYシークレットSiftingIO API key (get one at https://sifting.io)
SIFTING_BASE_URLOverride the REST API base URL
SIFTING_WS_URLOverride the WebSocket URL

ローカルサーバーにはマシン上の実行環境(Node.js 18 以上など)が必要です。設定ファイルの場所はクライアントごとに異なります。

パッケージ
npmsiftingio-mcp1.0.2

ツール

36

掲載時のツール一覧 · 2 週間前に更新

パラメーター型必須説明
venuestringはいライブデータの取引所:stocks、crypto、forex、dex。
symbolstringはい銘柄。例:BTCUSD、AAPL、EURUSD。

詳細

siftingio-mcp

siftingio-mcp MCP server

SiftingIO market-data SDK (@siftingio/sdk)を AI アシスタントから利用できるようにする Model Context Protocol(MCP)サーバーです。起動すると、モデルはライブ価格の取得、SEC/EDGAR のファンダメンタルズの調査、OHLCV バーの取得、13F 保有銘柄の検索、市場状況の確認、マクロ経済カレンダーのスキャンを、すべてツールとして実行できます。

セットアップ

npm install
npm run build

API キーが必要です。https://sifting.io から取得できます。

export SIFTING_API_KEY=sft_...

別のバックエンドを指定する場合は、SIFTING_BASE_URL と SIFTING_WS_URL でデフォルト値を上書きできます。

ローカルで作業していますか? 代わりに .env.example を .env にコピーしてください。npm run dev と npm start は自動的にこれを読み込みます(Node が --env-file-if-exists を使って読み込みます)。ただし、実際の MCP クライアントに接続する場合は、ファイルではなくサーバーの env ブロック経由でキーを渡してください(後ほど例を紹介します)。

実行

ツールボックスは次のとおりです。

  • npm run build — TypeScript を dist/ にコンパイルします。
  • npm start — コンパイル済みサーバー(node dist/index.js)を stdio で実行します。
  • npm run start:http — Streamable HTTP(node dist/http.js)で実行します。
  • npm run dev / npm run dev:http — ビルドせずに tsx でソースから直接実行します。
  • npm test — vitest のテストスイートを実行します(実行を継続するには npm run test:watch を追加します)。
  • npm run lint / npm run format — ESLint(typescript-eslint)と Prettier を実行します。
  • npm run typecheck — tsc --noEmit を実行します。

すべてのプッシュと PR で、CI(.github/workflows/ci.yml)が同じ一連のチェックを実行します。 フォーマットチェック → lint → 型チェック → ビルド → テスト。

知っておくとよい点がひとつあります。このサーバーは stdio で JSON-RPC をやり取りするため、stdout はプロトコル専用です。診断情報はすべて stderr に出力し、プロトコルの妨げにならないようにします。

対話形式で調べる

手動で試してみたいですか? MCP Inspector を使うのが最も簡単です。

SIFTING_API_KEY=sft_... npx @modelcontextprotocol/inspector node dist/index.js
HTTP(Streamable HTTP)トランスポート

リモート環境やホスト環境で実行する場合は、stdio の代わりに MCP の Streamable HTTP トランスポートを使用してください。

SIFTING_API_KEY=sft_... PORT=3000 npm run start:http
# → MCP endpoint at http://127.0.0.1:3000/mcp  (POST messages, GET SSE, DELETE session)

これはステートフルです。各クライアントには個別のセッション(mcp-session-id ヘッダーで追跡)と専用の McpServer が割り当てられますが、上流の SiftingIO 接続はプロセス全体で共有されます。安全対策として、ループバックにのみバインドし、ローカル以外のブラウザーの Origin を拒否します。これは DNS リバインディング対策です。ポートは PORT(または MCP_HTTP_PORT)で設定します。デフォルトは 3000 です。

認証が必要な場合は、MCP_AUTH_TOKEN を設定すると、サーバーはすべてのリクエストに Authorization: Bearer <token> を要求します(値がない場合や正しくない場合は 401 が返されます)。これと、TLS およびトークンを処理するリバースプロキシを組み合わせれば、localhost の外部にも安全にサーバーを公開できます。

MCP_AUTH_TOKEN=s3cret SIFTING_API_KEY=sft_... npm run start:http

あとは、HTTP 対応の MCP クライアントから http://127.0.0.1:3000/mcp を指定するだけです。

claude mcp add --transport http siftingio http://127.0.0.1:3000/mcp

MCP クライアントで使う

クライアント設定にこれを追加してください。たとえば Claude Desktop の claude_desktop_config.json に追加するか、Claude Code を使っている場合は claude mcp add を使用します。

{
  "mcpServers": {
    "siftingio": {
      "command": "node",
      "args": ["/absolute/path/to/siftingio-mcp/dist/index.js"],
      "env": { "SIFTING_API_KEY": "sft_..." }
    }
  }
}

ツール(36)

名前空間ツール
ライブ(スナップショット)last_trade、last_quote、last_tvl
株式stocks_search、stocks_profile、stocks_filings、stocks_filing、stocks_sections、stocks_section、stocks_risk_factors_diff、stocks_ratios、stocks_earnings、stocks_financials、stocks_financial_concept、stocks_insiders、stocks_ownership、stocks_events、stocks_compensation、stocks_screener、stocks_bars
暗号資産/外国為替crypto_bars、forex_bars
DEXdex_wallet
市場markets_list、markets_status_all、markets_status、markets_hours、markets_calendar
報告者filers_holdings
マクロeconomic_calendar_list
ライブ(ストリーム)ws_subscribe、ws_unsubscribe、ws_poll、ws_collect、ws_status、ws_disconnect

いくつか注目すべきパターンがあります。

ページネーション対応のツールは cursor/limit を受け取り、次のページを取得するための meta.next_cursor を返します。stocks_* のリストツール(stocks_filings、stocks_earnings、stocks_insiders、stocks_ownership、stocks_events、stocks_compensation)は max_items にも対応しています。これを設定すると、自動的にページネーションを行い、1 回の呼び出しで複数ページから最大指定数の項目を収集します。

利用頻度の高いツール(last_trade、last_quote、last_tvl、stocks_profile、stocks_search)には 出力スキーマ が付属しており、人が読みやすいテキストに加えて structuredContent も返すため、クライアントは機械処理向けのデータも読み取れます。

すべてのツールには MCP アノテーション も付いています。データツールは readOnlyHint: true(外部 API にアクセスするため、openWorldHint: true でもあります)で、接続状態を変更する WebSocket ツールは readOnlyHint: false、destructiveHint: false です。

結果のサイズには、およそ 60k 文字の上限があります(src/util.ts の MAX_RESULT_CHARS を参照)。完全な XBRL 財務データ、スクリーナー、OHLCV バーなどの大容量エンドポイントがこの上限を超えるデータを返す場合、サーバーは最大の配列を切り詰め、クエリを絞り込む方法を説明する _truncated の注記を追加します。

ライブ WebSocket ストリーミング

ストリーミングは少し特殊で、単一のリクエスト/レスポンスにうまく収まりません。そのためサーバーは 1 つの永続的な WebSocket 接続を開いたままにして、届いたフレームをバッファーに格納し、ツールはそのバッファーから読み取ります。チャネル(product フィールド)は cex(暗号資産)、dex(DEX 取引)、fx(外国為替)、us(米国株式)、tvl(DEX プールの TVL)です。

利用方法は 2 つあります。

  • 購読+ポーリング(継続的なストリーム向け):ws_subscribe を 1 回呼び出し、その後は ws_poll を繰り返し呼び出します。最初のポーリングでは直近のデータが返されます。返された next_seq を after_seq として渡すと、それ以降に届いた新しいフレームだけが返されます。ws_status では接続状況と購読中の内容を確認でき、ws_disconnect ですべての接続を終了できます。
  • 収集(手早く一度だけ取得する場合):ws_collect は購読を開始し、duration_ms の時間が経過するまで(または max 件のフレームを受信するまで)待ってから、取得したデータを返し、必要に応じて作成した購読を解除します。「BTCUSD の数秒分を取得して」といった用途に最適です。

接続が切れると自動的に再接続し、その際に購読を再開します。バッファーはローリングウィンドウ方式のため、古いフレームは順次消去されます。消去が発生すると、dropped/gap で通知されます。

プロンプト

クライアントでスラッシュコマンドとして表示できる、ガイド付きの複数ツールによるワークフローです。

  • company_snapshot(ticker)— stocks_profile、stocks_ratios、最新の stocks_filings、last_trade をまとめて取得し、1 つのブリーフィングにします。
  • compare_companies(tickers)— 複数のティッカーを主要な比率で横並びに比較します。
  • market_now — 現在、取引が行われている市場と休場中の市場、および今後予定されている影響の大きいマクロイベントを確認できます。

ログ記録とシャットダウン

サーバーは MCP のログ記録機能を通知し、接続に関するイベント(WebSocket のオープン/クローズ/再接続/エラー)やシャットダウンが発生するたびに、構造化された notifications/message をクライアントに送信します。また、これらすべてを stderr にも出力します。

SIGINT または SIGTERM を受信すると、稼働中の WebSocket を閉じ、サーバーを正常にシャットダウンしてから終了します。

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。