SOLARI CLI · MCP

ガイド

SOLARI CLI と MCP — ターミナルで使うクリエイター・ブランドインテリジェンス。

概要

SOLARI CLI は SOLARI のクリエイター・コンテンツデータをターミナルに持ち込みます。Instagram・TikTok のブランドやクリエイターを検索し、広告コンテンツの規模を測り、キャプションと動画の文字起こしに実際に含まれる言葉を検索し、いま伸びている流れを読みます。jq・シェルスクリプト・AI コーディングエージェントとそのまま組み合わせられる、ふつうのコマンドです。

SOLARI は MCP サーバーとしても公開されており、Claude Desktop や ChatGPT のようなアプリは CLI なしで直接つなげます。どちらから来ても同じツールと同じ読み取り専用の権限を使います。

$ solari instagram account search query=oliveyoung brands_only=true
$ solari tiktok content search query=sunscreen region=KR
$ solari instagram content trending region=KR limit=10 --json

インストール

CLI はファイル 1 つで、ほかに入れておくものはありません。普段ツールを入れている方法のうち、使いやすいものを選んでください。どれを選んでも中身は同じです。

curl -fsSL https://solari.sh/install | sh

インストールを確認してください:

$ solari --version
1.0.0-alpha.9

クイックスタート

一度サインインしたら、ツールを見て 1 つ実行してみてください。閲覧は自分のマシンにある写しが答えるので、すぐに返ってきます。

$ solari auth login          # opens a browser; sign in with your SOLARI account
$ solari                     # platforms and groups available to you
$ solari instagram account   # a group path lists its tools
$ solari instagram account search --help    # parameters, without calling

$ solari instagram account search query=oliveyoung brands_only=true limit=3

たいていは名前を account_id に変え、その id を他のツールに渡していく流れになります:

$ solari instagram account search query=innisfree brands_only=true --json \
    | jq -r '.content[0].text | fromjson | .items[0].account_id'
018cabce-14cc-7544-8890-7811ec33ef74

$ solari instagram brand ad stats username=innisfreeofficial
$ solari instagram brand top collaborators username=innisfreeofficial limit=20

入り口は名前だけではありません。query_type=bio はアカウントが自分について書いた文言を検索するので、すでに知っているブランドではなくカテゴリから始められます:

$ solari instagram account search query="협찬 문의" query_type=bio region=KR limit=10
$ solari instagram account search query=skincare query_type=bio brands_only=true limit=20

コマンド構造

パスがそのままコマンドになります。途中まで打てばその下にあるものが一覧で出て、ツールのパスを最後まで打てば実行され、必要な値が抜けていれば実行せずに何が必要かを教えてくれます。空白とアンダースコアは同じように動き、solari_ の接頭辞は省けます。

$ solari instagram brand              # lists the group
$ solari brand overview --help        # unambiguous trailing paths resolve while browsing
$ solari instagram brand overview username=innisfreeofficial   # calls

引数は key=value のペア。配列は JSON でもカンマ区切りリストでも受け付けます。

solari instagram content batch post_ids='["019f505f-…","019f5060-…"]'
solari instagram content batch post_ids=019f505f-…,019f5060-…
solari help all
すべてのコマンド・ツール・パラメータを 1 ページにまとめて表示します。自分のマシンから答え、--json を付けると機械が読みやすい形式になります。AI エージェントに一度でまとめて渡すときに便利です。
solari get <path ...>
ツールの実行だけを行い、途中までのパスは受け付けません。タイプミスが黙って一覧表示に変わっては困るスクリプトで使ってください。
solari cache refresh
自分のマシンにあるツール一覧をすぐに更新します。ひとりでに更新されるのを待つ必要はありません。

認証

サインインするとブラウザが開きます。ふつうのウェブサイトにサインインするのと同じです。

solari auth login
ブラウザを開きます。開けない環境(SSH や、エージェントが代わりに実行している場合)では、サインイン用のリンクを代わりに表示します。
solari auth list
サインイン済みの SOLARI アカウントをすべて表示します。
solari auth switch <account>
すでにサインイン済みの別のアカウントに切り替えます。ブラウザを開き直す必要はありません。
solari auth status
どのサーバーのどのアカウントか、何にアクセスできるか、サインインがいつ切れるかを表示します。終了コード 3 は、もう一度サインインが必要という意味です。
solari auth logout
サインアウトします。--all を付けるとすべてのアカウントから一度にサインアウトします。

ブラウザがコマンドを実行したマシンに戻してくれない環境(SSH やコンテナの中)では、サインインを終えたあとブラウザのアドレスバーにある URL をコピーし、待機しているプロンプトに貼り付けてください。

どこまでアクセスできるか

権限は読み取り専用の 1 つだけで、すべてのツールに適用されます。サインインさえ済めば全部使えます。階層も、ツールごとの解放もありません。プランで制限する代わりに、1 つのアカウントがどれだけ頻繁に呼べるかにだけ上限があります。

出力とパイプ

結果は標準出力へ、プロンプトとヒントは標準エラーへ出ます。そのためパイプにはデータだけが流れます。色は端末で人が見ているときにだけ付き、パイプや JSON に混ざることはありません。

--json
加工していない JSON。ツールの答えは一枚包まれた形で返ります。実際のデータは content[0].text の中の JSON 文字列です。
--ndjson
1 行に JSON オブジェクトを 1 つずつ、レスポンス内の項目を順に流します。それらを囲んでいた値(total、has_more など)は標準エラーへ送られます。jq と組み合わせたり、大量のデータをそのままファイルに書き出したりするためのオプションです。
--refresh
自分のマシンの写しを飛ばして、サーバーからツール一覧を取り直します。
--color[=always|never|auto]
ヘルプとツール一覧に色を付けます。既定の auto は端末で見ているときだけ色を使います。NO_COLOR=1 で無効、FORCE_COLOR=1 ならパイプでも有効になります。--no-color は never と同じです。
--verbose, -v
コマンドが動いている間、進行状況を標準エラーに出力します。秘匿値は伏せられます。
$ solari instagram brand ad posts username=innisfreeofficial months=24 limit=200 --ndjson >> ads.ndjson
$ jq -s 'group_by(.username) | map({creator: .[0].username, posts: length})' ads.ndjson

設定

設定は ~/.solari/config.json にあります。どの設定にも対になる環境変数があり、指定するとその 1 回のコマンドだけそちらが優先されます。solari config list は、いま効いている値とその出どころを併せて表示します。

$ solari config list
$ solari config set server https://solari.sh
$ solari config unset server
server · SOLARI_SERVER
どの SOLARI サーバーに接続するか。既定は https://solari.sh で、サインインに成功するとそのとき使ったサーバーを覚えます。
cacheTtl · SOLARI_CACHE_TTL
自分のマシンのツール一覧を最新とみなす秒数。既定は 900 で、0 なら毎回サーバーに問い合わせます。
cacheShadow · SOLARI_CACHE_SHADOW
自分のマシンから答えたあと、裏で静かにツール一覧を更新するか。既定は true。
callTimeout · SOLARI_CALL_TIMEOUT
ツール呼び出しを待つ秒数。既定は 150。
catalogTimeout · SOLARI_CATALOG_TIMEOUT
ツール一覧を待つ秒数。既定は 8。つながらないサーバーにぶら下がらず、すぐに失敗します。
SOLARI_HOME
SOLARI のファイルを ~/.solari 以外の場所に置きます。
SOLARI_NO_UPDATE_CHECK=1
1 日 1 回の更新チェックを完全に無効化します。NO_UPDATE_NOTIFIER=1 も同じ効果です。

ツール一覧はまず自分のマシンから答えます。そのため閲覧やパラメータの確認は一瞬で終わります。写しが上の時間より古くなると、裏で自動的に更新されます。写しが知らないパスはその場でサーバーに問い合わせるので、サーバー側で追加されたツールもすぐ使えます。

エージェント

コマンドを実行するエージェントをすでにお使いなら、この 1 行を渡すだけで、このページは閉じて構いません。人ではなくエージェント向けに書いた短いセットアップページを取得し、あとは自分で進めます — 接続またはインストール、サインインの案内、このマシンのツールへの SOLARI の登録まで。

set up solari.sh/get-started.md

以下はそのページが行う内容です。手作業で進めたい場合はこのままお読みください。

solari init は、このマシンの AI エージェントに CLI の存在を伝えます。すると Instagram・TikTok データの質問が出たとき、エージェントが自分でこれを選ぶようになります。Claude Code 用の skill、Codex の AGENTS.md 内で管理するセクション、zsh のタブ補完を設定します。solari init --remove ですべて元に戻せます。

solari init            # claude + codex + zsh, with a confirmation for each
solari init claude     # just one target
solari init --remove

ターミナルやスクリプト、そしてコマンドを自分で実行するエージェントには CLI を使ってください。Claude Desktop や ChatGPT のように、アプリ自身がサーバーにつなぐ場合は MCP をお使いください。

機械可読なドキュメント

このサイトのすべてのページには、同じアドレスの末尾に .md を付けた Markdown 版があります。リファレンス全体を 1 ファイルで受け取り、そのままモデルに渡すこともできます。

/get-started.md
このセクション冒頭の 1 行が指すセットアップページ。読むためではなく、エージェントが実行するために書いたものです。
/llms.txt
llms.txt 形式でまとめたドキュメントの索引。
/llms-full.txt
ガイドとツール全体を 1 つの Markdown ファイルに連結したもの。
/docs/tools.md
任意のページを Markdown で。?lang=ko や ?lang=ja を付けると他の言語で取得できます。

エラーと終了コード

エラーメッセージは次に何をすればよいかを伝えます。終了コードはスクリプトで分岐できるほど安定しています。

0
成功。
1
ツールまたはサーバー側で失敗しました。
2
CLI が受け付けられない入力です。存在しないパス、抜けている引数、不正な値のいずれかです。
3
サインインが必要です。ブラウザでのサインインは人にしか完了できないため、エージェントは再試行を続けず利用者に伝えてください。

よく見るツールエラー

auth expired, reconnect the connector
サインインの有効期限が切れました。solari auth login を実行し直すか、アプリでコネクタをつなぎ直してください。
SOLARI access denied (403)
SOLARI が呼び出しを拒否しました。すべてのツールはサインイン済みのアカウントに開かれているため、これはアカウント側の問題です。サインインし直し、それでも続くようならご連絡ください。
rate limited, retry shortly
短い時間に呼び出しが多すぎました。少し待ってから再試行してください。
SOLARI upstream timed out
呼び出しに時間がかかりすぎました。ほとんどのツールは 90 秒、集計とトレンドクラスターのツールは 120 秒です。範囲を狭めるか limit を下げて再試行してください。

データカバレッジ

SOLARI が答えられる範囲は、どのツールを使うかで変わります。重要な制限は 2 つ。どのリージョンを対象にするか、そしてどこまで過去を見られるかです。

  • キーワード検索と集計(両プラットフォームの content search・content aggregate)は KR・JP・US・TW の 4 リージョンを対象とし、直近およそ 6 か月分を保持します。それより前の日付を指定すると、扱える最も古い日付まで引き上げられ、実際に使われた日付がレスポンスで示されます。
  • アカウント・ブランド・投稿の参照は履歴全体を使うため、4 リージョンや 6 か月の制限を受けません。
  • リージョンの中では KR のカバレッジが最も深くなっています。
  • 検索結果の件数は 10,000 まで正確で、それ以上は増えません。TikTok 検索は 9,800 でページ送りが止まるため、さらに先を見るには期間を狭めてください。

識別子

  • account_id はプラットフォームごとに発行される SOLARI アカウント UUID です。同じブランドでも Instagram の account_id と TikTok の account_id は別の値であり、相互に置き換えることはできません。
  • アカウントを受け取る引数は account_id UUID と username の両方を受け付け、両方指定した場合は account_id が優先されます。
  • post_id も同様にプラットフォームごとの SOLARI 投稿 UUID です。公開側の対応物は slug(Instagram の shortcode)または video_id(TikTok の数値 id)です。

よくある質問

CLI で SOLARI のデータを変更できますか?

いいえ。すべてのツールは読み取り専用で、CLI にも MCP サーバーにも書き込む機能はありません。

Claude のようなエージェントでも使えますか?

はい。solari init でこのマシンのエージェントに CLI を知らせるか、MCP サーバーに直接つないでください。どちらも読み取り専用です。

検索が何も返さないのはなぜですか?

アカウント検索はハンドルを先頭から、表示名は中のどこでも照合します。入力した語がそのどちらかに実際に含まれている必要があるため、通称や略称では見つかりません。アカウント自身が使っている綴りで試してください。コンテンツ検索なら、リージョンが KR・JP・US・TW のいずれかか、日付が直近 6 か月以内かをご確認ください。

料金はかかりますか?

いまは無料でご利用いただけます。変更がある場合は事前にご案内します。

ツールリファレンス

SOLARI CLI と MCP サーバーが提供するすべてのツールを、パラメータ・レスポンスフィールド・実際の呼び出し例とともにまとめました。ツール名は solari_<platform>_<group>_<name> の規則に従い、CLI では同じパスを空白区切りで書きます。

ツールリファレンス