概要
SOLARI CLI・MCP を使えば、SOLARI が集めた Instagram、TikTok、Threads などのデータを、使いたい場所で自由に扱えます。catalog はすでに集めているアカウントや投稿を探し、insight は SOLARI が作った順位・類似・広告・トレンドを返し、fetch はハンドルをアカウントまたは投稿として 1 件カタログに入れます。
$ solari insight instagram account similar username=oliveyoung_official limit=10
$ solari insight instagram brand lookalike content username=innisfreeofficial limit=10
$ solari insight instagram content trend clusters region=KR since_days=7インストール
curl -fsSL https://solari.sh/install | sh$ solari --version
1.0.0-alpha.9クイックスタート
$ solari auth login # opens a browser; sign in with your SOLARI account
$ solari # catalog, insight, and fetch
$ solari catalog instagram account # a group path lists its tools
$ solari catalog instagram account search --help # parameters, without calling
$ solari catalog instagram account search query=oliveyoung brands_only=true limit=3account_id を取って、他のツールに渡します:
$ solari catalog 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 insight instagram brand ad stats username=innisfreeofficial
$ solari insight instagram brand top collaborators username=innisfreeofficial limit=20query_type=bio は、アカウントが自分について書いた文言を探します:
$ solari catalog instagram account search query="협찬 문의" query_type=bio region=KR limit=10
$ solari catalog instagram account search query=skincare query_type=bio brands_only=true limit=20コマンド構造
$ solari insight instagram brand # lists the group
$ solari brand overview --help # unambiguous trailing paths resolve while browsing
$ solari insight instagram brand overview username=innisfreeofficial # calls引数は key=value のペア。配列は JSON でもカンマ区切りリストでも受け付けます。
solari catalog instagram content batch post_ids='["019f505f-…","019f5060-…"]'
solari catalog instagram content batch post_ids=019f505f-…,019f5060-…solari help all- すべてのコマンド・ツール・パラメータを 1 ページに出します。--json で機械可読になります。
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 をコピーし、待機しているプロンプトに貼り付けてください。
出力とパイプ
結果は標準出力、案内は標準エラーです。パイプにはデータだけが流れます。
--json- 生の JSON。実データは content[0].text の JSON 文字列です。
--ndjson- 1 行に JSON オブジェクト 1 つ。total などの囲みは標準エラーへ。
--refresh- ローカルの写しを飛ばしてサーバーからツール一覧を取ります。
--verbose, -v- 進行状況を標準エラーに出します。秘匿値は伏せます。
$ solari insight 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 set server https://solari.sh
$ solari config unset serverserver · 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_TOKEN- solari auth token で得たアクセストークン。すべてのコマンドで保存済みサインインの代わりに使われます。「自分のコードから」を参照。
SOLARI_HOME- SOLARI のファイルを ~/.solari 以外の場所に置きます。
SOLARI_NO_UPDATE_CHECK=1- 1 日 1 回の更新チェックを完全に無効化します。NO_UPDATE_NOTIFIER=1 も同じ効果です。
エージェント
set up solari.sh/get-started.mdsolari init はこのマシンのエージェントに CLI を登録します。solari init --remove で元に戻せます。
solari init # checkbox of every CLI (all on; space toggles, enter installs)
solari init claude # just one target
solari init --yes # skip the picker, install all
solari init --removeターミナルやスクリプト、そしてコマンドを自分で実行するエージェントには CLI を使ってください。Claude Desktop や ChatGPT のように、アプリ自身がサーバーにつなぐ場合は MCP をお使いください。
機械可読なドキュメント
どのページの URL にも .md を付けられます。リファレンス全体を 1 ファイルでも受け取れます。
/get-started.md- エージェント向けセットアップページ。
/llms.txt- llms.txt 形式でまとめたドキュメントの索引。
/llms-full.txt- ガイドとツール全体を 1 つの Markdown ファイルに連結したもの。
/docs/tools.md- 任意のページを Markdown で。?lang=ko や ?lang=ja を付けると他の言語で取得できます。
自分のコードから
CLI が実行する読み取り専用ツールは、そのまま REST API(https://solari.sh/mcp/api/v1)としても提供されます。その上に公式 TypeScript・Python SDK があり、エージェント向けには MCP サーバーがあります。アクセストークンひとつで全部使えます。
トークンを取得する
$ solari auth token
$ solari auth token --jsonサインイン中のアカウントのアクセストークンを出力します。期限切れなら先に更新します。--json を付けると期限、エンドポイント、アカウントも出ます。トークンは 8 時間有効で、その間は自分の SOLARI アカウントを読めるので秘密として扱ってください。
ブラウザなしで CLI を使う
$ export SOLARI_TOKEN=<token from a signed-in machine>
$ solari catalog instagram account search query=nike --jsonSOLARI_TOKEN があれば、そのマシンではサインインなしで全コマンドが動きます — CI、コンテナ、ブラウザのないサーバー。このとき CLI は ~/.solari/credentials.json に触れず、ツールキャッシュもトークン単位に分かれるので、別アカウントのアプリツールが混ざりません。トークンの寿命より長く動くジョブなら、サインイン済みの ~/.solari を(または SOLARI_HOME で指して)使ってください。CLI が自動で更新します。
REST API を呼ぶ
$ curl -sS https://solari.sh/mcp/api/v1/tools/solari_catalog_instagram_account_search \
-H "Authorization: Bearer $(solari auth token)" \
-H "Content-Type: application/json" \
-d '{"query":"nike","limit":3}'ツールの引数を JSON オブジェクトとして /tools/<名前> に POST すると、レスポンスがツールの JSON 結果です。GET /tools は全ツールと入力スキーマを返し、エラーは { error: { code, message } } で返ります。エラーコードを含む完全なリファレンスは API ページにあります。
SDK を使う
import { Solari } from "@brandazine/solari-sdk";
const solari = new Solari({ token: process.env.SOLARI_TOKEN });
const hits = await solari.tools.catalog.instagram.account.search({ query: "nike", limit: 3 });from solari_sdk import Solari
solari = Solari() # reads SOLARI_TOKEN
hits = solari.tools.catalog.instagram.account.search(query="nike", limit=3)npm install @brandazine/solari-sdk、または pip install solari-sdk。どちらも REST API を薄く包んだ依存関係なしのライブラリです。ドット区切りのパスが solari_ 接頭辞の下でツール名に結合されます。
コードから MCP で
どの MCP クライアントも同じ bearer トークンで https://solari.sh/mcp を直接呼べます。エンドポイントはステートレスなので、initialize なしの tools/call 一発で動きます。
エラーと終了コード
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 を下げて再試行してください。
データカバレッジ
- content search・content aggregate: KR・JP・US・TW、直近およそ 6 か月。
- アカウント・ブランド・投稿ツール: 履歴全体、リージョン制限なし。
- リージョンの中では KR のカバレッジが最も深くなっています。
- 件数は 10,000 まで正確。TikTok 検索のページ送りは 9,800 で止まります。
識別子
- account_id はプラットフォームごと。Instagram と TikTok の id は互換しません。
- account_id か username。両方あると account_id が優先です。
- post_id もプラットフォームごと。公開 id は slug(Instagram) か video_id(TikTok)。
よくある質問
SOLARI のデータを変更したいです。
いいえ。すべてのツールは読み取り専用です。
Claude などのエージェントでも使いたいです。
はい。solari init でこのマシンのエージェントに CLI を知らせるか、MCP サーバーに直接つないでください。
検索結果がないと出ます。
アカウント検索はユーザー名・表示名にその文字がある必要があります。コンテンツ検索は KR・JP・US・TW、直近 6 か月です。
料金が気になります。
いまは無料でご利用いただけます。変更がある場合は事前にご案内します。
ツールリファレンス
CLI と MCP が提供するすべてのツールです。catalog は集めた行、insight は SOLARI が計算した答え、fetch はハンドルをアカウントまたは投稿として 1 件入れる入口です。CLI は空白、MCP 名はアンダースコアです。
ツールリファレンス