Finra について
Finraは、米国株の空売りデータを照会するMCPサーバーです。日次の空売り出来高と月2回報告される未決済空売りを区別し、報告施設を集計して統合NMSデータを提供します。
主な機能
- 01銘柄別の日次空売り出来高
- 02最大30取引日の履歴照会
- 03空売り比率による銘柄順位
- 04決済日別の空売り残高と回転日数
活用シーン
- 01銘柄の日次空売り動向の確認
- 02銘柄間の空売り比率の比較
- 03報告済み空売り残高と変化の追跡
MCP 対応
FINRAデータを扱う4つのツールをMCPクライアントに公開します。Pipeworxのリモートサーバー経由、またはローカルのstdioサーバーとして利用できます。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://gateway.pipeworx.io/finra/mcpclaude mcp add --transport http pipeworx-io-finra https://gateway.pipeworx.io/finra/mcp{"mcpServers":{"pipeworx-io-finra":{"type":"http","url":"https://gateway.pipeworx.io/finra/mcp"}}}Cursor で開く{"servers":{"pipeworx-io-finra":{"type":"http","url":"https://gateway.pipeworx.io/finra/mcp"}}}VS Code で開く{"mcpServers":{"pipeworx-io-finra":{"type":"http","url":"https://gateway.pipeworx.io/finra/mcp"}}}{"mcpServers":{"pipeworx-io-finra":{"serverUrl":"https://gateway.pipeworx.io/finra/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
@pipeworx/finra
米国株式のFINRA空売りデータ — Reg SHOの日次データセットによる日次の空売り出来高と、月2回の統合空売り残高です。どちらもFINRA Query APIのotcMarketデータセットグループから取得します。
Pipeworxの一部です。AIエージェントを1879以上のライブデータソースに接続するMCPゲートウェイです。これは独立した非公式の統合であり、上流プロバイダーとは提携しておらず、承認も受けていません。また、上流プロバイダーから公開されたものでもありません。
この2つは異なる指標ですが、常に混同されています。空売り出来高は、ある日に空売りされた株式数です。空売り残高は、現在空売りされ、まだ買い戻されていない株式数で、決済日ベースで月2回報告されます。投資家が引用する「空売り比率/買い戻し日数」とは、この数値です。
ツール
| ツール | 返される内容 |
|---|---|
short_volume_daily | 1銘柄について、1取引日の空売り出来高を、統合NMSのすべての報告施設で合算した値です。short_volume、short_exempt_volume、total_volume、short_ratioと、施設ごとの内訳を返します。 |
short_volume_history | 1銘柄について、end_dateまでの最大30取引日分の同じデータ系列を返します。上流へのリクエストは1回で、日ごとには行いません。 |
short_volume_top | 1取引日の銘柄をshort_ratioでランキングし、取引の薄い小型銘柄を除外するmin_total_volumeフィルターを適用します。公開済みの当日データ全体(約12,300銘柄)をスキャンします。 |
short_interest | 1銘柄について、決済日ごとの統合空売り残高を返します。未決済の空売りポジション、前回決済日からの変化、買い戻し日数、平均日次出来高、および直近の履歴を含みます。 |
Reg SHOデータの公開遅延は通常T+1以下で、2026-08-25の行は2026-08-25にクエリ可能でした。date/end_dateを省略すると、このパックは直近7日分までさかのぼって、データが公開されている最新日を探します。空売り残高は月2回決済されるため、最新レコードが1、2週間前のものであることはよくあります。これはデータソースの更新頻度によるもので、こちら側のデータが古いわけではありません。
報告施設と、合算が重要な理由
regShoDailyは、銘柄・日付ごとに報告施設あたり1行を返します。銘柄の実際の空売り出来高は、これらを合算した値です。
| 施設 | 市場コード | 取引所 | 統合NMSに含まれるか |
|---|---|---|---|
NQTRF | Q | Nasdaq TRF Carteret | はい |
NYTRF | N | NYSE TRF | はい |
NCTRF | B | Nasdaq TRF Chicago | はい |
ORF | O | OTC Reporting Facility | いいえ — OTC/非NMS証券 |
combinedはORF以外のすべての施設を合算し、FINRA独自の統合CNMS数値と完全に一致します。2026-08-25にCNMSshvol20260821と照合して検証済みです。2026-08-21のGMEは、空売り1,335,397.220545/免除1,355/合計2,315,275.403735となり、同ファイルの行(市場列はB,Q,N)とバイト単位で一致しました。また、同日の市場全体では12,269銘柄で、空売り3,244,559,759/合計6,564,367,888でした。
fleet #532までは、このパックはNasdaqとNYSEのTRFのみを読み取り、現在のデータはそこに「のみ」存在すると断言していました。実際はそうではありませんでした。Nasdaq TRF Chicagoを除外すると、市場全体で毎日、空売り出来高を0.77%、合計出来高を**0.88%**過少計上していました。しかも、レスポンスは正常な200を返し、そのことを示す情報は何もありませんでした。Nasdaq TRF Chicagoでの取引割合が特に高い銘柄では、過少計上はさらに大きくなります。
ORFは意図的に除外しています。これは施設の欠落とは異なり、別の市場であって、この市場の一部が欠けているわけではありません。ORFとNMSの両方で取引される銘柄では、ORFの出来高はNMS合計に含めず、otc_reporting_facilityの下に表示されます。ORFの出来高しかない銘柄は、ゼロではなくscope: "otc_reporting_facility"と注記を付けて返します。
シンボルの大文字・小文字は重要です
小文字は、FINRA が優先株を示すために使用する記号です。2026-08-21 のデータでは、BCpC(Bancorp の優先株シリーズ C、2,267 株)と BCPC(Balchem の普通株、52,413 株)は別の証券です。同様に、TpC と TPC も別の証券です。
Query API の equal フィルターは大文字・小文字を区別しないため、BCPC を指定すると両方が返されます。そのため、このパックではシンボルをすべて大文字に変換しません。該当する証券がちょうど 1 つに解決され、入力が複数の証券に一致する場合は、普通株の合計に優先株シリーズを加えるのではなく、候補とともに reason: "ambiguous_symbol" を返します。よく似た別のシンボルが存在する場合は、除外されたことが分かるよう also_reported にそのシンボルを記載します。
認証
認証情報は不要です。上流サービスは認証情報なしで応答し、_apiKey は受け付けません。
認証情報が不要だからといって、利用に制約がないわけではありません。以下のライセンスをご覧ください。
ライセンスと帰属表示
4 つすべてのツールは、FINRA's Specific Terms for Equity Data のセクション 2.3 が適用される api.finra.org の otcMarket データセットグループを読み取ります。以下の 2 つの条件は当社にも適用され、選択の余地はありません。
- 帰属表示。 FINRA をデータおよびそこから派生した情報の所有者かつ提供元として明確に示す必要があります。そのため、このパックからのすべての応答には先頭に
attribution文字列が含まれます。新しいツールや新しい早期リターンで帰属表示が抜け落ちないよう、callToolで一元的に付与します。モデルが回答を生成する際に最初に読むよう、オブジェクトの先頭に配置されています。また、回答経路ではパックのstructuredContentがそのまま引き継がれるため、ask_pipeworxの回答にも含まれます。 - 追加料金の禁止。 データに料金を課すことはできません。そのため、このパックはゲートウェイで無料扱い(
MCP_PACKSエントリーのzeroRated: true)となっています。無料プランを含むすべてのプランでクレジットを消費せず、月間利用枠も消費せず、回答内の課金対象ルックアップとしてカウントされず、呼び出し前の料金開示でもゼロと表示されます。応答には_meta.cost.zero_rated: trueが含まれます。これらのツールを従量課金制にすることは、料金設定の選択ではなくライセンス違反です。このフラグを削除しないでください。
エンドユーザーはデータをさらに再配布できず、非営利の個人利用または業務利用に限られます。この条件は attribution 文字列と、https://pipeworx.io/terms に掲載されている条件のセクション 6 に明記されています。
フォールバックや鮮度確保のために、cdn.finra.org からデータを取得する処理を再導入しないでください。 そこで公開されている Reg SHO の日次ファイルは別の配布形態であり、Specific Terms の対象外です。代わりに適用される一般的な FINRA.org Terms of Use は、より厳しい条件を定めています。非営利利用のみ、事前の書面による同意なしでの再配布禁止、ウェブサイトの一括コピー禁止、そこからのデータベース作成禁止に加え、「機械学習、ニューラルネットワーク、ディープラーニング、予測分析、その他の人工知能コンピュータまたはソフトウェアプログラムと併用」することを明示的に禁止しています。このゲートウェイのすべての呼び出し元が該当します。どちらの経路でも 2026-08-21 のデータは 2026-08-25 に取得できたため、鮮度とのトレードオフはありません。
背景情報:fleet #531 と #532、およびライセンス分析については docs/finance-data-ingest-plan.md を参照してください。
データソース
- Reg SHO の日次空売り出来高 —
POST https://api.finra.org/data/group/otcMarket/name/regShoDaily - 統合空売り残高 —
POST https://api.finra.org/data/group/otcMarket/name/consolidatedShortInterest - フィールド名と型 —
GET https://api.finra.org/metadata/group/otcMarket/name/regShoDaily - カタログ:https://www.finra.org/finra-data/browse-catalog/short-sale-volume-daily
このパックを利用する際に知っておくとよい、上流側の仕様上の癖があります。Accept: application/json を送らないと、FINRA は CSV を返します。limit はサーバー側で 5,000 が上限で、実際の一致件数はレスポンスヘッダー record-total に含まれます。クエリに一致するデータがない場合は [] ではなく、本文が空の 204 が返ります。そのため、単純な res.json() は解析エラーを起こします。これはパックの不具合のように見えますが、実際には「その日のデータがない」という意味です。また、パーティションキー(tradeReportDate)を equal フィルターで指定しない限り、並べ替えは拒否されます。そのため、「最新の日付」を問い合わせることはできず、パックは過去にさかのぼって検索します。
クイックスタート
MCP クライアント(Claude Desktop、Cursor、Windsurf など)に追加します。
{
"mcpServers": {
"finra": {
"url": "https://gateway.pipeworx.io/finra/mcp"
}
}
}
このエンドポイントが実際に提供するもの
https://gateway.pipeworx.io/finra/mcp の tools/list は、上の表にあるツールに加えて、共有 Pipeworx メタツール(ask_pipeworx、discover_tools、search_within、remember/recall など、ゲートウェイ全体で使えるツール)も返します。そのため、表示されるツール数はこの表の数より多くなります。現在、単一パックのエンドポイントには、パック独自のツールとともに共有ツールが約 30 個表示されます。接続の initialize レスポンスには、その時点での正確なスコープが記載されており、各日の情報としてこれが正式な回答です。
これは意図的な設計であり、偶然の多重化ではありません。メタツールを使えば、パックの対象外の質問でも、カタログ全体を横断してルーティングする ask_pipeworx を通じて回答できます。そのため、MCP サーバーをもう 1 つ追加する必要はありません。現時点では、メタツールを含めずにパックのエンドポイントを接続する方法はありません。追加のスキーマで消費するコンテキスト量がルーティングの利便性を上回る場合は、複数のパックエンドポイントではなく、フルゲートウェイに 1 つだけ接続してください。
このパックのツールだけでなく、すべてのパックのツールを直接一覧表示するには、Pipeworx のフルゲートウェイに接続します。
{
"mcpServers": {
"pipeworx": {
"url": "https://gateway.pipeworx.io/mcp"
}
}
}
どちらの URL も同じゲートウェイと同じ 1,879 以上のデータソースに接続します。違いは、どのパックのツールが直接一覧表示されるかだけです。どちらからでも、ask_pipeworx を使ってすべてのツールにアクセスできます。
MCP クライアントがない場合:HTTP 経由で呼び出す
curl -X POST https://gateway.pipeworx.io/v1/tools/short_volume_daily \
-H 'Content-Type: application/json' \
-d '{"symbol":"AAPL"}'
最初の呼び出しにアカウントは必要ありません。任意のツールの詳細を確認するには、GET https://gateway.pipeworx.io/v1/tools/short_volume_daily を使います。ツールを探すには、{"query":"..."} を指定して POST https://gateway.pipeworx.io/v1/tools/search_packs を使います。
スタンドアロン(ゲートウェイアカウント不要)
このパッケージは、ローカルの stdio MCP サーバーとしても実行できます。Pipeworx アカウントも、ゲートウェイへの往復通信も不要です。
{
"mcpServers": {
"finra": {
"command": "npx",
"args": ["-y", "@pipeworx/mcp-finra"]
}
}
}
または、直接実行して起動を確認できます。
npx -y @pipeworx/mcp-finra
stdin/stdout 経由で MCP を使用し、initialize/tools/list/tools/call に対してこのパックのツールのみを返します。上記のゲートウェイ接続で追加される共有メタツールはありません。同じソース、同じツールを使えますが、ask_pipeworx によるルーティングはありません。
ask_pipeworx の使用
ツールを直接呼び出す代わりに、自然な英語で質問できます。この方法は、上記のパックエンドポイントとフルゲートウェイの両方で使えます。
ask_pipeworx({ question: "your question about Finra data" })
ゲートウェイが適切なツールを選択し、引数を自動的に設定します。
詳細
ライセンス
MIT
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。