Anythink all-in-one backend: data, auth, files, workflows, payments, APIs について
Anythink CLIは、開発者や創業者がプロジェクト、データ、バックエンド機能を管理するためのAnythinkプラットフォーム用コマンドラインツールです。エンティティやフィールドの設定、レコードのインポートとエクスポートに対応し、MCPサーバーも同梱します。
主な機能
- 01アカウント、プロジェクト、設定の管理
- 02エンティティ作成とフィールド設定
- 03データレコードのCRUD操作
- 04CSV、JSON、JSONLの入出力
- 05ワークフロー、ユーザー、ファイルの管理
活用シーン
- 01ターミナルでのバックエンドプロジェクト作成と切替
- 02データベースのエンティティとフィールドの設定
- 03プロジェクトレコードの一括インポートとエクスポート
MCP 対応
配布物にはanythink-mcp MCPサーバーも含まれます。提供されたREADMEには、具体的なツールや公開機能の説明はありません。
設定
リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。
https://mcp.anythink.cloud/mcpclaude mcp add --transport http cloud-anythink-anythink https://mcp.anythink.cloud/mcp{"mcpServers":{"cloud-anythink-anythink":{"type":"http","url":"https://mcp.anythink.cloud/mcp"}}}Cursor で開く{"servers":{"cloud-anythink-anythink":{"type":"http","url":"https://mcp.anythink.cloud/mcp"}}}VS Code で開く{"mcpServers":{"cloud-anythink-anythink":{"type":"http","url":"https://mcp.anythink.cloud/mcp"}}}{"mcpServers":{"cloud-anythink-anythink":{"serverUrl":"https://mcp.anythink.cloud/mcp"}}}コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。
ツール
詳細
Anythink CLI
Anythink の公式コマンドラインインターフェイスです。開発者や創業者向けのヘッドレスバックエンドプラットフォームです。ターミナルを離れることなく、プロジェクト、エンティティ、データ、ワークフロー、ユーザー、ファイル、決済を管理できます。
░███ ░██ ░██ ░██ ░██
░██░██ ░██ ░██ ░██
░██ ░██ ░████████ ░██ ░██ ░████████ ░████████ ░██░████████ ░██ ░██
░█████████ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██░██ ░██ ░██ ░██
░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██ ░██░██ ░██ ░███████
░██ ░██ ░██ ░██ ░██ ░███ ░██ ░██ ░██ ░██░██ ░██ ░██ ░██
░██ ░██ ░██ ░██ ░█████░██ ░████ ░██ ░██ ░██░██ ░██ ░██ ░██
░██
░███████
目次
インストール
anythink CLI と anythink-mcp サーバーは、セットで配布されています。両方を最も手軽に入手する方法は Homebrew です。
Homebrew(macOS / Linux)— 推奨
brew install anythink-cloud/tap/anythink
これにより、両方のコマンドが PATH にインストールされます。
anythink— CLIanythink-mcp— MCP サーバー(MCP サーバーを参照)
または、先に tap してからインストールします。
brew tap anythink-cloud/tap
brew install anythink
最新リリースに更新します。
brew upgrade anythink
アンインストールします。
brew uninstall anythink
macOS / Linux — バイナリをダウンロード
Releases ページから、お使いのプラットフォーム向けの最新リリースをダウンロードします。
| プラットフォーム | バイナリ |
|---|---|
| macOS(Apple Silicon) | anythink-osx-arm64 |
| macOS(Intel) | anythink-osx-x64 |
| Linux(x86_64) | anythink-linux-x64 |
| Linux(ARM64) | anythink-linux-arm64 |
# Example — macOS Apple Silicon
curl -Lo anythink https://github.com/anythink-cloud/anythink-cli/releases/latest/download/anythink-osx-arm64
chmod +x anythink
sudo mv anythink /usr/local/bin/
MCP サーバーは同じリリースに、対応する anythink-mcp-<platform> バイナリとして含まれています。同じ方法でダウンロードしてインストールしてください(例:anythink-mcp-osx-arm64)。
リリースアセット内の checksums.txt と照合して、ダウンロードを検証します。
sha256sum -c checksums.txt --ignore-missing
.NET グローバルツール
.NET 8 SDK がインストールされている場合:
dotnet tool install --global anythink-cli
ソースからビルド
git clone https://github.com/anythink-cloud/anythink-cli
cd anythink-cli
dotnet build
dotnet run --project src/AnythinkCli.csproj -- --help
はじめに
# 1. Create an account (or log in if you already have one)
anythink signup
# 2. Create a billing account
anythink accounts create --name "My Company"
# 3. Create a project
anythink projects create "My App" --region lon1
# 4. Connect to the project
anythink projects use <project-id>
# 5. Start building
anythink entities list
anythink workflows list
認証情報とプロジェクトプロファイルは ~/.anythink/config.json に保存されます。projects use を実行して切り替えることで、複数のプロジェクトを管理できます。
コマンドリファレンス
signup / login / logout
anythink signup Create a new Anythink account
anythink login Log in to the platform
anythink logout Remove saved credentials for a project profile
signup と login は対話形式で動作します。メールアドレスとパスワードの入力を求め、初回実行時には課金アカウントとプロジェクトへの接続手順を案内します。
accounts
課金アカウントを管理します。課金アカウントは、1 つ以上のプロジェクトをまとめるコンテナであり、サブスクリプションと支払いの詳細を保持します。
anythink accounts list List your billing accounts
anythink accounts create Create a new billing account
anythink accounts use <id> Set the active billing account
例
anythink accounts create --name "Acme Ltd" --email [email protected]
anythink accounts use a1b2c3d4
projects
Anythink プロジェクトを作成・管理します。各プロジェクトは、それぞれ独自のデータベース、認証、ファイル、ワークフローを持つ独立したバックエンドインスタンスです。
anythink projects list List projects in the active billing account
anythink projects create <name> Create a new project
anythink projects use <id> Connect to a project (sets it as the active profile)
anythink projects delete <id> Delete a project
オプション — projects create
| フラグ | 説明 |
|---|---|
--region <id> | デプロイリージョン(例:lon1) |
--plan <id> | プラン ID(anythink plans を参照) |
例
anythink projects create "My App" --region lon1
anythink projects use a1b2c3d4
anythink projects delete a1b2c3d4 --yes
config
保存済みの CLI プロファイルを表示・管理します。
anythink config show List all profiles and platform settings
anythink config use <profile> Set the active project profile
anythink config remove <profile> Remove a profile
プロファイル名にはプロジェクトのエイリアスまたは ID が使われ、~/.anythink/config.json に保存されます。
entities
アクティブなプロジェクトのエンティティ(データベーステーブル)を管理します。
anythink entities list List all entities
anythink entities get <name> Get entity details and fields
anythink entities create <name> Create a new entity
anythink entities update <name> Update entity settings
anythink entities delete <name> Delete an entity and all its data
オプション — entities create
| フラグ | 説明 |
|---|---|
--rls | 行レベルセキュリティを有効にします |
--public | エンティティを一般公開して読み取り可能にします |
--lock | 新しいレコードをロックします(直接作成を防止します) |
--junction | 中間テーブル(多対多)として設定します |
例
anythink entities create orders --rls
anythink entities get customers
anythink entities delete temp_data --yes
fields
エンティティのフィールドを管理します。フィールドはデータベースの列に直接対応します。
anythink fields list <entity> List fields on an entity
anythink fields add <entity> <name> Add a field
anythink fields delete <entity> <id> Delete a field
オプション — fields add
| フラグ | 説明 |
|---|---|
--type <type> | フィールドの型:varchar、text、int、float、bool、datetime、json、uuid |
--required | フィールドを必須にします |
--unique | 一意制約を適用します |
--indexed | データベースインデックスを追加します |
--default <value> | デフォルト値 |
例
anythink fields list customers
anythink fields add customers email --type varchar --unique --required
anythink fields add products price --type float --required
anythink fields delete customers 1234 --yes
data
エンティティレコードに対する CRUD 操作を行います。
anythink data list <entity> List records
anythink data get <entity> <id> Get a single record by ID
anythink data create <entity> Create a new record
anythink data update <entity> <id> Update a record
anythink data delete <entity> <id> Delete a record
anythink data export <entity> <file> Export records to CSV, JSON or JSONL
anythink data import <entity> <file> Create records from CSV, JSON or JSONL
オプション — data list
| フラグ | 説明 |
|---|---|
--limit <n> | 1 ページあたりのレコード数(デフォルト:20) |
--page <n> | ページ番号(デフォルト:1) |
--filter <expr> | フィールドフィルター — JSON({"status":"draft","total":{"gte":10}})または field=value の組み合わせ(status=draft&total=GTE:10)。下記を参照してください。 |
--json | テーブル形式ではなく、生の JSON を出力します |
--all | すべてのページを順次 JSON オブジェクトとしてストリーム出力します(--json が必要、メモリ使用量は一定) |
フィルター演算子(JSON 形式) — {"field": value} は完全一致、{"field": [a, b]} はいずれかに一致、{"field": null} は空の値に一致します。それ以外の場合は、{"price": {"gte": 10, "lt": 100}} のように演算子オブジェクトを使用します。
| 演算子 | 意味 | field=value 形式 |
|---|---|---|
eq / ne | 等しい / 等しくない | x=v / x=!v |
gt gte lt lte | 比較 | x=GT:v … |
contains / not_contains | 大文字と小文字を区別しない部分文字列 | x=C:v / x=NC:v |
starts_with / ends_with | 大文字と小文字を区別しない前方一致/後方一致 | x=SW:v / x=EW:v |
in | リスト内のいずれか | x=IN:a,b |
null: true / null: false | 空 / 空ではない | x=NULL: / x=NNULL: |
exists: true / exists: false | 関連レコードがある / ない | x=EXISTS: / x=NOT_EXISTS: |
オプション — data create / data update
| フラグ | 説明 |
|---|---|
--data <json> | フィールド値の JSON オブジェクト |
例
anythink data list blog_posts --limit 10
anythink data get blog_posts 42
anythink data create blog_posts --data '{"title":"Hello World","status":"draft"}'
anythink data update blog_posts 42 --data '{"status":"approved"}'
anythink data delete blog_posts 42 --yes
エクスポートとインポート — data export はレコードをページごとにファイルへストリーミングし、data import は行ごとに 1 件のレコードを作成します。インポートは必ず最初に --dry-run を付けて実行してください。すべての行が検証され、何も送信されません。
anythink data export customers customers.csv
anythink data export orders orders.jsonl --filter 'status=paid' --fields id,total
anythink data import customers customers.csv --dry-run
anythink data import customers customers.csv --errors rejected.csv --yes
フラグ(export) | 説明 |
|---|---|
--format <fmt> | csv、json、jsonl。デフォルトは拡張子(.csv、.json、.jsonl、.ndjson)から判定します。ファイルに - を指定すると標準出力へ書き込みます(--format が必要です) |
--filter <expr> | data list --filter と同じ構文です |
--fields a,b | エクスポートする列とその順序です。CSV ではデフォルトでエンティティのフィールドを使用します |
--page-size <n> | 1 リクエストあたりのレコード数(デフォルト 200、最大 1000) |
--force | 既存のファイルを上書きします。指定しない場合、既存のファイルには一切変更を加えません。ファイルは一時的な名前で書き込まれ、成功時に名前が変更されるため、エクスポートに失敗しても不完全なファイルは残りません |
--no-formula-guard | CSV のみ:以下を参照してください |
フラグ(import) | 説明 |
|---|---|
--format <fmt> | csv、json(オブジェクトの配列)、jsonl。デフォルトは拡張子から判定し、拡張子がない場合は最初の文字([ または {)から判定します |
--dry-run | 検証して結果を報告します。何も送信されません |
--concurrency <n> | 作成処理の並列数(デフォルト 4、最大 16) |
--errors <file> | スキップまたは失敗した行を、_error 列またはプロパティ付きで書き込みます。修正して再インポートできます |
--ignore-unknown | エンティティのフィールドにない列を拒否せずに削除します |
--yes | 確認プロンプトをスキップします。対話形式で実行しない場合(CI、スクリプト、エージェント)に必要です。それ以外の場合、インポートは何も書き込む前に拒否されます |
値の処理方法:
- CSV は RFC 4180 に準拠します:カンマ、引用符、改行を含むセルは引用符で囲み、引用符は二重にします。引用符で囲まれたセルは複数行にまたがることがあります。オブジェクト、配列、JSON フィールド、リレーションは、コンパクトな JSON テキストとして記述されます。
- 数式ガード(エクスポート):
=,+,-,@、タブ、またはキャリッジリターンで始まる CSV テキストには'が先頭に付加され、スプレッドシートで数式として実行されないようにします。数値は変更されません。これには+44 20 7946 0000のような電話番号や、先頭が+または-のテキストが含まれます。このガードは一方向です。--no-formula-guardを指定してエクスポートしたファイルでない限り、ファイルをインポートすると'はそのまま保持されます。 - 型はエンティティのフィールドに従います。 テキストは文字を正確に保持します(
00123は00123のままです)。整数と小数は小数点として.を使って解析されます(1,5は拒否され、推測による解釈は行われません)。ブール値にはtrue/false、1/0、yes/noを指定できます。日付は ISO 8601 形式である必要があります(2025-03-31、2025-03-31T09:30:00Z。タイムゾーンオフセットがない場合は UTC です)。JSON フィールドには有効な JSON が必要です。 - 空の CSV セルは
nullとして送信されます。 JSON および JSONL 入力では、空文字列は空文字列のままです。 - 不正な行はスキップされ、送信されません。 行番号(CSV:レコード番号。ヘッダーは 1 行目、JSONL:行番号、JSON:配列内の位置)とともに報告され、skipped としてカウントされます。サーバーが拒否した行は failed としてカウントされます。スキップまたは失敗した行がある場合、終了コードは 0 以外になります。
- 再試行:
400、409、422は再試行されないため、作成が繰り返されることはありません。再試行の対象については、以下の不確実な失敗を参照してください。 - システム列はインポート時に無視されます:
id、created_at、updated_at、tenant_id、lockedは送信されず、インポート時に無視した列が示されます。そのため、エクスポートを同じプロジェクトに再度インポートすると、新しい ID とタイムスタンプで重複レコードが作成され、元のレコードは更新されません。 - 一対多のコレクションとシークレットフィールドはインポート時にスキップされます(インポート時に一覧表示されます)。一対多の列は、
--fieldsで指定しない限りエクスポートから除外されます。多対多、ファイル、ユーザーの列は ID としてコピーされますが、同じプロジェクト内でのみ意味を持ちます。インポート時には列ごとに一度だけ警告が表示されます。 - 空のブール値セルは
falseではなくnullとして送信されます。 - 不確実な失敗:再試行されるのは、
429/503のレスポンスと、サーバーに到達しなかったリクエスト(DNS、接続、TLS の失敗)のみです。リクエストがタイムアウトした場合、または送信後に接続が切断された場合、その行はエラーファイルにもUNCERTAIN: may have been createdとして報告されます。再インポートする前にプロジェクトを確認してください。レート制限による待機中はすべてのワーカーが一時停止し、あきらめるまで 1 分以上再試行します。 - Ctrl+C を押すとファイルの読み込みが停止し、すでにキューに入っている行の処理を終えてから部分的な概要が表示されます(終了コード 1)。エクスポートが中断された場合、一時ファイルは削除されます。
data importとdata exportはローカルファイルの読み書きを行うため、ホスト型(HTTP)MCP サーバーでは利用できません。
未対応:キーによる既存レコードの更新またはアップサート、自然キーによるリレーションの検索(関連レコードの ID を使用してください)、ファイルのアップロード。
検索
すべてのエンティティを対象とした全文検索と、インデックスのライフサイクル管理を行います。
anythink search query <text> Run a search
anythink search similar <entity> <id> Find similar documents
anythink search rehydrate [<entity>] Rebuild the search index (admin)
anythink search purge [<entity>] Wipe the search index (admin)
anythink search audit <entity> Compare configured public-searchable fields
with what public search actually returns
オプション — search query
| フラグ | 説明 |
|---|---|
--entities <list> | エンティティ名をカンマ区切りで指定します。デフォルトでは、インデックスに登録されたすべてのエンティティが対象です。 |
--filter <expr> | フィルター式を指定します。例:"status=published AND category=news"。_geoRadius に対応しています。 |
--sort <list> | ソートフィールドをカンマ区切りで指定します。例:"created_at:desc,id:asc"。 |
--facet <fields> | ファセット数を算出するフィールドをカンマ区切りで指定します。 |
--highlight | 検索結果内で一致した用語をハイライト表示します。 |
--page N | ページ番号を指定します(デフォルト:1)。 |
--limit N | 1ページあたりの結果数を指定します(1~100、デフォルト:20)。 |
--public | 認証不要の /search/public エンドポイントを使用します(公開対象としてマークされたフィールドのみ)。 |
--json | 生のレスポンス JSON を出力します。 |
インデックスのライフサイクル
rehydrate と purge は、検索インデックスに対する管理操作です。
search rehydrate— データベースからインデックスを再構築します(データ損失はなく、再同期のみ行います)search purge— インデックスを削除します(再作成するには、その後rehydrateを実行してください)
どちらの操作もデフォルトでは確認を求めます。自動化でプロンプトを省略するには、-y / --yes を指定してください。
search audit — 公開検索のデータ漏えいチェック
エンティティのスキーマ上、公開検索可能であるべきもの(publicly_searchable=true のフィールドと、エンティティ自身の is_public=true)と、/search/public が実際に返す内容を比較します。許可リストにないフィールドが公開検索の結果に含まれている場合、漏えいとして報告します。
漏えいが検出されると、終了コード 1 で終了します。CI/CD での利用に便利です。
使用例
# Browse everything
anythink search query "*"
# Filtered search with sorting
anythink search query "anythink" --filter "status=published" --sort "created_at:desc"
# Compare what public visitors see vs what's in the database
anythink search audit posts
anythink search audit users --query "alice" --sample 10
# Reindex after a schema change
anythink search rehydrate posts
anythink search rehydrate --yes # everything (admin)
# Geo search (radius in metres)
anythink search query "*" --filter "_geoRadius(51.5074,-0.1278,5000)"
workflows
自動化ワークフローを管理します。ワークフローには、cron スケジュール、エンティティイベント、API ルート、手動実行など、複数のトリガーを設定できます。
anythink workflows list List all workflows (--json for a compact summary)
anythink workflows get <id> Get workflow details and steps (--json for the full definition)
anythink workflows create <name> Create a new workflow
anythink workflows update <id> Rename a workflow or change its description
anythink workflows enable <id> Enable a workflow
anythink workflows disable <id> Disable a workflow
anythink workflows trigger <id> Manually trigger a workflow
anythink workflows delete <id> Delete a workflow
トリガーの種類 — workflows create --trigger <type>(大文字と小文字は区別されません。デフォルトは Manual です)
| Type | 発生タイミング | 必須フラグ | その他のフラグ |
|---|---|---|---|
Manual | エンティティ上で手動実行したとき | --entity <name> | |
Event | レコードの作成など、イベント発生時 | Entity... イベントでは --entity <name> | --event <event>、--filter <json> |
Timed | cron スケジュールに従って | --cron <expr> | |
Api | API ルートが呼び出されたとき | --api-route <route> |
--event(大文字と小文字は区別されません)には、EntityCreated(デフォルト)、EntityUpdated、EntityDeleted、UserRegistered、UserInvited、SubscriptionCreated、SubscriptionActivated、SubscriptionExpired、PaymentCreated、PaymentSucceeded、PaymentFailed、PaymentMethodCaptured、PaymentMethodCaptureFailed、PaymentMethodRemoved、PushActionTaken を指定できます。--entity が必要なのは、3 つの Entity... イベントのみです。必須フラグが指定されていないトリガーは、何も送信される前に拒否されます。選択した種類に適用されないフラグは、警告とともに無視されます。
その他のオプション — workflows create
| フラグ | 説明 |
|---|---|
--description <text> | ワークフローの説明 |
--enabled | ワークフローをすぐに有効化 |
--filter-file <path> | Event フィルターの JSON をファイルから読み込みます |
例
anythink workflows create daily-sync --trigger Timed --cron "0 6 * * *"
anythink workflows create on-post --trigger Event --entity blog_posts --event EntityUpdated
anythink workflows create import-hook --trigger Api --api-route hooks/import
anythink workflows create review-posts --entity blog_posts
anythink workflows trigger 76
anythink workflows disable 83
users
アクティブなプロジェクトのユーザーを管理します。
anythink users list List all users
anythink users me Show the currently authenticated user
anythink users get <id> Get a user by ID
anythink users invite <email> <first> <last> Create a user and send an invitation email
anythink users delete <id> Delete a user
オプション — users invite
| フラグ | 説明 |
|---|---|
--role-id <id> | 新しいユーザーにロールを割り当てます |
例
anythink users list
anythink users invite [email protected] Alice Smith --role-id 3
anythink users delete 42 --yes
files
アクティブなプロジェクトにアップロードされたファイルを管理します。
anythink files list List uploaded files
anythink files get <id> Get file metadata by ID
anythink files upload <path> Upload a file
anythink files delete <id> Delete a file
オプション — files list
| フラグ | 説明 |
|---|---|
--page <n> | ページ番号 |
--limit <n> | 1 ページあたりのファイル数(デフォルト:25) |
オプション — files upload
| フラグ | 説明 |
|---|---|
--public | ファイルを公開アクセス可能にします |
例
anythink files list
anythink files upload logo.png --public
anythink files upload export.csv
anythink files delete 12 --yes
メール
プロジェクトのトランザクションメールテンプレート(確認、招待、リカバリーなど)と、すべてのメール本文を囲む HTML シェルを表示・編集します。メールコマンドにはプロジェクトのメール権限が必要です。API は、サインインしているユーザーに対してこれらの権限を適用します。
anythink email templates list List the project's email templates
anythink email templates show <type> Show a template's subject and content
anythink email templates update <type> Change a template's subject and/or content
anythink email preview Render an unsaved draft and print the HTML
anythink email shell show Show the shell HTML (custom or platform default)
anythink email shell update Save new shell HTML, or reset it
オプション — email templates show
| フラグ | 説明 |
|---|---|
--rendered | ソースの代わりにレンダリング済み HTML(サンプルデータ付き)を出力します |
オプション — email templates update
| フラグ | 説明 |
|---|---|
--subject <text> | 新しい件名 |
--content <path> | 新しいコンテンツを含むファイル(標準入力を読み込むには - を使用します) |
--content-text <html> | インラインで指定する新しいコンテンツ(--content ではなく、こちらを使用します) |
件名またはコンテンツの少なくとも一方を指定します。省略した項目は現在の値が維持されます。空のコンテンツは拒否されます。
オプション — email preview(サーバー上でレンダリングし、何も保存しません)
| フラグ | 説明 |
|---|---|
--subject <text> | レンダリングする件名(デフォルト:Preview) |
--content <path> | コンテンツを含むファイル(標準入力には - を使用します) |
--content-text <html> | インラインで指定するコンテンツ |
--wrapper <path> | レンダリングに使用する任意のシェル HTML(標準入力には - を使用します) |
--wrapper-text <html> | インラインで指定する任意のシェル HTML |
オプション — email shell update(いずれか1つだけ指定します)
| フラグ | 説明 |
|---|---|
--html <path> | 新しいシェル HTML を含むファイル(標準入力には - を使用します) |
--html-text <html> | インラインで指定する新しいシェル HTML |
--reset | プラットフォームのデフォルトシェルに戻します |
HTML の上限は 1,000,000 文字です。シェルコマンドとテンプレートコマンドは生の HTML を出力するため、ファイルにリダイレクトできます。MCP サーバー経由ではファイルオプションが提供されないため、エージェントは content_text、wrapper_text、html_text を使用して HTML をインラインで渡します。
例
anythink email templates list
anythink email templates show confirmation --rendered > confirmation.html
anythink email templates update confirmation --subject "Welcome aboard"
anythink email templates update confirmation --content ./confirmation.html
cat confirmation.html | anythink email templates update confirmation --content -
anythink email preview --subject "Hi" --content ./draft.html --wrapper ./shell.html
anythink email shell show > shell.html
anythink email shell update --html ./shell.html
anythink email shell update --reset
ロール
アクティブなプロジェクトのロールを管理します。ロールによって、認証済みユーザーがアクセスできる内容が決まります。
anythink roles list List all roles
anythink roles create <name> Create a new role
anythink roles delete <id> Delete a role
オプション — roles create
| フラグ | 説明 |
|---|---|
--description <text> | ロールの人が読んで理解できる説明 |
例
anythink roles list
anythink roles create editor --description "Can edit content"
anythink roles delete 5 --yes
api-keys
CI パイプライン、スクリプト、連携など、非対話型アクセス用の API キーを発行・管理します。各キーには権限セットが設定され、有効期限があり、作成したユーザーに紐付けられます。
キーの生の値は作成時に一度だけ表示され、後から取得することはできません。すぐに保存するか、--save-as を使って CLI プロファイルに直接書き込んでください。
anythink api-keys list List your API keys
anythink api-keys create <name> --permissions ... Create a new key
anythink api-keys revoke <id> Revoke a key
オプション — api-keys create
| フラグ | 説明 |
|---|---|
--permissions <list> | 必須。カンマ区切りの権限名。例:data:read,data:create |
--expires-in <days> | 有効期限までの日数(デフォルト:90、最大:365) |
--no-expiry-cap | --expires-in に365日を超える値を指定できるようにします |
--save-as <profile> | 新しいキーを表示する代わりに、CLI プロファイルに直接保存します |
--json | 応答を JSON として stdout に出力します(キーもこの出力に含まれるため、慎重に扱ってください) |
-y, --yes | 確認プロンプトをスキップします |
出力の動作
デフォルトでは、成功メッセージはstdoutに、生のキーは単独の行でstderrに出力されます。これにより、キーだけを簡単に取得できます。
anythink api-keys create ci-deploy --permissions data:read --yes 2> key.txt
現在のユーザーが要求された権限を持っていないため、サーバーがその一部を除外した場合、CLI は目立つ警告を表示します。これにより、気付かないうちに権限が不足したキーが作成されることを防げます。
例
# Create a 90-day key for CI
anythink api-keys create github-actions --permissions "data:read,data:create" --yes 2> key.txt
# Create a key and save it directly into a profile (key never echoes)
anythink api-keys create scraper --permissions data:read --save-as scraper-bot --yes
anythink --profile scraper-bot data list posts
# Revoke a key
anythink api-keys revoke 42 --yes
menus
アクティブなプロジェクトのダッシュボードのサイドバーメニューを管理します。メニューでは、Anythink ダッシュボードに表示するエンティティと、そのグループ分けを設定します。
anythink menus list List all menus with tree structure
anythink menus get <menu_id> [--json] Show one menu (and its role) with its items and child items
anythink menus create <name> <role_id> Create a menu shown to a role
anythink menus update <menu_id> [--name <text>] [--role <id>]
Rename a menu or change its role
anythink menus delete <menu_id> [--yes] Delete a menu and all of its items
anythink menus add-item <menu_id> <entity> Add an entity to a dashboard menu
anythink menus update-item <menu_id> <item_id> [options] Change an item's name, icon, link or parent
anythink menus remove-item <menu_id> <item_id> [--yes] Remove an item, along with its child items
anythink menus reorder-items <menu_id> <item_ids> Set the order of items that share a parent
anythink menus reorder <menu_ids> Set the order of menus
オプション — menus add-item
| フラグ | 説明 |
|---|---|
--icon <name> | Lucide のアイコン名(例:MessageCircle、Target) |
--name <text> | 表示名(デフォルトはエンティティ名をタイトルケースにしたもの) |
--parent <id> | グループ内にネストする親メニュー項目の ID |
オプション — menus update-item(渡したフィールドのみ変更されます)
| フラグ | 説明 |
|---|---|
--name <text> | 新しい表示名 |
--icon <name> | 新しい Lucide のアイコン名 |
--entity <name> | 項目のリンク先をエンティティのページにします(--href の代わり) |
--href <path> | 項目のリンク先を任意のパスにします(--entity の代わり) |
--parent <id> | ネスト先の親項目の ID。0 を指定すると最上位に移動します |
reorder-items と reorder には、希望する順序でカンマ区切りの ID を指定します(301,299,300)。指定した項目はグループ内の先頭に配置され、省略した項目は現在の順序でその後に続きます。reorder-items では、すべての項目が同じ親を持つ必要があります。ロックされた項目(組み込み項目)は変更、削除、移動できません。これらの位置は維持され、その間にある項目はそれぞれの位置番号を再利用します(同じ番号になった場合にのみ番号が振り直されます)。
add-item と update-item --entity は、まずエンティティを検索します(システムエンティティも対象です)。エンティティが存在しない場合にのみ処理を中止します。検索自体に失敗した場合(権限がない場合など)は、項目を保存し、エンティティを確認できなかったことを警告します。update-item --parent で項目を新しい親に移動すると、新しい兄弟項目の末尾に配置されます。
項目を削除すると、その直下の子項目も削除されます。コマンドはその旨を通知し、子項目がロックされている場合、または子項目を持つ場合は削除を拒否します。
ロールに表示されるメニューは最初の1つだけです。そのため、ロールにメニューがすでにある場合、create(および update --role)は警告します。delete はメニューに含まれるロック済みの組み込み項目も削除し、そのロールにメニューがなくなった場合はその旨を通知します。
使用例
# List all menus and their items
anythink menus list
# Show menu 250 with the item IDs you need for the commands below
anythink menus get 250
# Add "Check-ins" under the Profiles group (parent 168) in admin menu (250)
anythink menus add-item 250 check_ins --icon MessageCircle --parent 168
# Add a top-level menu item
anythink menus add-item 250 badges --icon Award
# Rename an item and give it another icon
anythink menus update-item 250 299 --name "Achievements" --icon Trophy
# Remove an item
anythink menus remove-item 250 299 --yes
# Put items 301, 299 and 300 first, in that order
anythink menus reorder-items 250 301,299,300
charts
アクティブなプロジェクトのダッシュボードに表示するチャートを作成、管理します。各コマンドでは --json を指定でき、次の手順で必要になる ID を含む簡潔な結果が出力されます。MCP サーバーでは、各コマンドが同じ名前のツール(charts_create、charts_preview など)になっています。
anythink charts list [--entity <name>] List charts, newest first
anythink charts get <id> Show a chart's configuration
anythink charts create <name> [options] Create a chart
anythink charts update <id> [options] Change a chart; options you leave out keep their value
anythink charts delete <id> [--yes] Delete a chart
anythink charts preview [options] Show the data a configuration would draw, without saving it
anythink charts platform-metrics List the usage metrics a platform chart can plot
オプション — charts create、charts update、charts preview
| フラグ | 説明 |
|---|---|
--entity <name> | チャートにレコードをプロットするエンティティ |
--type <type> | column(棒グラフ)、line、pie、area、stat、gauge、funnel のいずれか |
--group-by <field> | X 軸のフィールド、または円グラフのスライス |
--interval <size> | 日付の --group-by をバケット化します:hour、day、week、month、quarter、year のいずれか |
--measure <field> | 集計する数値フィールド(--agg が count でない場合に必要) |
--agg <how> | count(デフォルト)、sum、avg、min、max のいずれか |
--stack-by <field> | 各棒または点を別の内訳に分割するフィールド |
--filter <f:op:value> | status:eq:published のようなフィルター。演算子:eq ne gt gte lt lte contains in exists not_exists。複数のフィールドを指定する場合は繰り返します。チャートで設定できるフィルターはフィールドごとに 1 つです |
--timeframe <preset> | all、24h、7d、30d、90d、365d、custom(--from と --to を指定)のいずれか |
--limit <n>, --sort <asc|desc>, --cumulative <bool> | 行数の上限、並べ替え順、累積合計 |
--target <n>, --target-mode <goal|warning> | 統計チャートまたはゲージに設定する目標値または警告レベル |
--compare <bool>, --compare-days <n>, --compare-overlay <bool> | 前の期間と比較します |
--source <entity|platform|quota> | データの取得元。プラットフォームチャートでは --platform-metric(charts platform-metrics を参照)、クォータチャートでは --quota-metric を使用します |
--config <json> | その他の設定を JSON オブジェクトで指定します。例:ファネルの場合は {"funnelStages":[{"label":"Signed up"}]}。型指定されたオプションが優先されます |
--rows <n> | charts preview 専用:表示する最大行数(デフォルトは 50) |
値が指定されていない場合、または不明な値の場合は、その値を示すメッセージを表示して、送信前に処理を拒否します。charts create の前に charts preview でチャートを確認してください。同じオプションを受け取り、チャートの表示内容を確認できます。
例
# What would a pie of orders by status show?
anythink charts preview --entity orders --type pie --group-by status
# Save it, then a revenue chart with a filter
anythink charts create "Orders by status" --entity orders --type pie --group-by status
anythink charts create "UK revenue per month" --entity orders --type column --group-by created_at \
--interval month --measure total --agg sum --filter region:eq:uk --timeframe 365d
# A usage chart from the platform metrics
anythink charts create "Workflow runs" --source platform --platform-metric workflow_runs --type line
# Change one thing
anythink charts update 12 --timeframe 30d
ダッシュボード
ダッシュボードを作成、管理します。ダッシュボードは、12列のグリッド上に配置されたウィジェット(チャート、リスト、メモなど)のセットです。すべてのコマンドで --json を指定します。
anythink dashboards list List the dashboards you can see
anythink dashboards get <id> Show a dashboard with its widgets and their positions
anythink dashboards mine Show your landing dashboard, or the project default
anythink dashboards create <name> [options] Create a dashboard
anythink dashboards update <id> [options] Rename it, change who can see it, or replace its widgets and layout
anythink dashboards delete <id> [--yes] Delete a dashboard and its widgets (the charts are kept)
anythink dashboards add-chart <dashboard-id> <chart-id> Add a chart as a new widget
anythink dashboards remove-widget <dashboard-id> <widget-id> Remove a widget
anythink dashboards data <id> [--widget <id>] Show the data behind the widgets
anythink dashboards widget-preview --type <type> Show the data a widget would draw, without saving it
anythink dashboards set-home <id> Make it your landing dashboard
anythink dashboards promote-to-default <id> [--yes] Copy it over the project default (administrators only)
add-chart と remove-widget はダッシュボードを読み込み、対象のウィジェットだけを変更して、残りはそのまま書き戻します。
オプション
| コマンド/フラグ | 説明 |
|---|---|
create --chart <id> | 新しいダッシュボードにチャートを配置します。複数配置する場合は繰り返します |
create --description, --shared, --allow-shared-edit, --home, --default | 説明、閲覧または編集できるユーザー、および自分のランディングページまたはプロジェクトのデフォルトダッシュボードにするかどうか |
create/update --config <json> | その他の設定を JSON オブジェクトで指定します。widgets(それぞれに type、title、設定を含む)と layout を指定します。update では widgets がリスト全体を置き換えるため、維持するすべてのウィジェットとその id を含めてください |
update --name, --description, --shared <bool>, --allow-shared-edit <bool> | 変更するフィールドを指定します。その他のフィールドはそのままです |
add-chart --title <text> | ウィジェットのタイトル(デフォルトはチャート名です) |
add-chart --column, --row, --width, --height | グリッド上の位置とサイズ(デフォルトの幅は 4、高さは 3 で、既存のウィジェットの下に配置されます)。すべて省略すると、ダッシュボードがウィジェットを自動配置します |
data --widget <id>, --rows <n> | 対象のウィジェットのみを指定します。ウィジェットごとに表示する最大行数(デフォルトは 20) |
widget-preview --type, --chart, --config, --rows | ウィジェットの種類(chart、list、markdown など)、表示するチャート、またはウィジェット固有の設定を JSON で指定します |
例
# A dashboard with two charts already on it
anythink dashboards create Sales --chart 12 --chart 14
# Add a third, half the width of the grid
anythink dashboards add-chart 3 15 --width 6
# See what is on it, then take a widget off
anythink dashboards get 3
anythink dashboards remove-widget 3 41
# The numbers behind it
anythink dashboards data 3 --json
設定
アクティブなプロジェクトの設定を表示および変更します。これには、ブラウザーから API への呼び出しを許可するアプリケーションの URL(CORS)が含まれます。
anythink settings get [--json] Show all project settings
anythink settings set <key> <value> [--yes] Set a single project setting
anythink settings cors list List allowed application URLs
anythink settings cors add <url> [--yes] Add an allowed origin
anythink settings cors remove <url> Remove an allowed origin
キー — settings set
| キー | 値 |
|---|---|
name, description | テキスト |
require_email_confirmation | true / false |
allow_registrations | true / false |
default_role_id | 新規登録ユーザーに割り当てるロール ID |
enable_group_rls | true / false |
payment_success_url, payment_cancel_url | URL |
app_engagement_trial_enabled | true / false |
app_engagement_trial_days | 日数 |
ai_mode | platform または byok |
ai_byok_provider, ai_default_model | テキスト |
google_maps_key | テキスト |
オリジンは、ホストを含む http/https で、ポートは任意です。パス、クエリ、フラグメントは指定できず、末尾の / は削除されます。https://*.example.com のようなワイルドカードは、自分が管理するドメインでのみ安全に使用できます。そのため、共有ホスティングのドメイン(vercel.app、github.io など)やトップレベルドメイン直下のワイルドカードは、--yes を渡さない限り拒否されます。
一部の変更では、サインアップできるユーザーの範囲が広がります。管理者ロールを指す default_role_id は、--yes を渡さない限り拒否されます。また、allow_registrations true と require_email_confirmation false を設定すると確認が求められます(非対話的に実行する場合は --yes を渡してください)。
cors add と cors remove は、プロジェクトの CORS キャッシュをクリアするため、変更はすぐに適用されます。照合では大文字と小文字が区別されず、すでに存在する URL を追加しても何も起こりません。Aynthink 自身のドメインと localhost は常に許可されるため、追加する必要はありません。
例
# Allow a deployed front end to call the API
anythink settings cors add https://my-app.vercel.app
# Allow every subdomain of a domain you own
anythink settings cors add "https://*.example.com"
# Remove an origin
anythink settings cors remove https://my-app.vercel.app
# Let users sign up on their own
anythink settings set allow_registrations true
インテグレーション
インテグレーションを管理します。利用可能なプロバイダー(Claude、OpenAI、Slack、Google など)のカタログと、それらの認証情報を保持するアクティブな接続の両方を管理できます。
anythink integrations list List available providers
anythink integrations get <provider> Show details and operations for one provider
anythink integrations connections list [--provider <p>] List your active connections
anythink integrations connect <provider> Create an API-key connection (Claude, OpenAI, etc.)
anythink integrations oauth status <provider> Show OAuth client setup status
anythink integrations oauth configure <provider> Set the OAuth client ID + secret
anythink integrations oauth connect <provider> Connect via the browser OAuth flow
anythink integrations test <connection-id> Test a connection
anythink integrations enable <connection-id> Enable a connection
anythink integrations disable <connection-id> Disable a connection
anythink integrations disconnect <connection-id> Delete a connection
anythink integrations execute <provider> <operation> Run an operation on a connected provider
API キープロバイダー — integrations connect
| フラグ | 説明 |
|---|---|
--api-key <key> | プロバイダーの API キーです。省略すると、入力を求められます(入力内容は非表示です)。 |
--name <name> | この接続のわかりやすい名前です(デフォルト:<provider> connection) |
--user-connection | ユーザー単位の接続にします(現在のユーザーのみが表示できます)。デフォルトはテナント全体です。 |
OAuth プロバイダー — integrations oauth connect
CLI は http://localhost:8745/callback でローカル HTTP リスナーを起動し、ブラウザーでプロバイダーの認可 URL を開いて、返されたコードを接続に交換します。認証コードをコピーして貼り付ける必要はありません。
| フラグ | 説明 |
|---|---|
--name <name> | この接続のわかりやすい名前です |
--user-connection | ユーザー単位の接続にします |
--port <n> | ローカルのコールバックポートです(デフォルト:8745) |
--no-open | ブラウザーを開かず、URL のみを出力します |
--timeout <secs> | コールバックを待つ時間です(デフォルト:300) |
接続する前に、各プロバイダーの OAuth 認証情報を一度設定する必要があります。
anythink integrations oauth configure slack # prompts for client_id + secret (hidden)
anythink integrations oauth connect slack --name main
操作の実行 — integrations execute
| フラグ | 説明 |
|---|---|
--input <k=v> | key=value 形式の入力パラメーターです。繰り返し指定できます。 |
--inputs <json> | すべての入力を JSON オブジェクトとして指定します。 |
--json | JSON レスポンス全体を出力します(デフォルトでは、存在する場合は content フィールドのみを出力します)。 |
例
# Browse what's available
anythink integrations list
anythink integrations get claude
# API-key flow (Claude, OpenAI)
anythink integrations connect claude --name "main"
anythink integrations execute claude generate-text --input "prompt=Tell me a haiku"
# OAuth flow (Slack, Google, GitHub)
anythink integrations oauth configure slack
anythink integrations oauth connect slack --name main
# Manage connections
anythink integrations connections list
anythink integrations test <connection-id>
anythink integrations disable <connection-id>
anythink integrations disconnect <connection-id> --yes
pay
AnythinkPay — Stripe Connect、Apple アプリ内課金、決済、サブスクリプションプラン、現在有効なサブスクリプションを管理します。
anythink pay status Show Stripe Connect account status
anythink pay connect Set up a Stripe Connect account and start onboarding
anythink pay setup Guided setup: Stripe Connect, Apple IAP, and a first plan
anythink pay payments List recent payments
anythink pay methods List saved payment methods
anythink pay entitlement Show the current user's access / trial entitlement
anythink pay payment-options Show available payment providers for a platform/storefront
anythink pay trial status|enable|disable Manage the app engagement trial
anythink pay apple credentials set Set Apple IAP credentials (.p8 from a file)
anythink pay apple credentials show Show Apple IAP credentials (identifiers masked)
anythink pay apple credentials notification-url Print the URL to register in App Store Connect
anythink pay apple verify Verify an Apple transaction (testing)
anythink pay plans list|get|create|update|delete Manage subscription plans
anythink pay subscriptions list|get|events Inspect subscriptions and history
anythink pay subscriptions cancel|resume Standard lifecycle actions
anythink pay subscriptions delete|force-expire|relink|resync Admin recovery (project admin)
anythink pay offers list|get|create|update Manage promo and referral offers
anythink pay offers pause|activate Change an offer's status
anythink pay offers delete Permanently delete an offer, its codes and redemption records
anythink pay offers codes|add-code|redemptions Inspect and extend an offer
anythink pay offers user-code Look up a user's personal referral code
キャンセル、削除、期限切れ、再リンク、一時停止を行うコマンド(pay plans delete、pay subscriptions cancel|delete|force-expire|relink、pay offers pause|delete)では、確認が求められます。確認を省略するには -y/--yes を指定してください。非対話型のシェルでは、指定しないと実行されません。
pay plans update は、指定したフィールドのみを変更します。省略したフラグの項目は、プランの現在の通貨、間隔、タイプ、有効状態が維持されます。利用可能状態を変更するには、--active または --inactive を使用してください。
オプション — pay payments
| フラグ | 説明 |
|---|---|
--page <n> | ページ番号 |
--limit <n> | 1ページあたりの決済数(デフォルト:25) |
pay connect は対話型です。ビジネスタイプ、国、連絡先メールアドレスを尋ね、Stripe Connect アカウントを作成してから、ブラウザーで Stripe のオンボーディング URL を開きます。pay setup では、Stripe Connect、Apple IAP の認証情報、最初のプランを順に設定します。各ステップは省略可能です。
サブスクリプションプランには --apple-product-id(および任意の --apple-subscription-group-id)を設定できるため、1つのプランで Stripe と Apple の両方に対応できます。pay apple credentials set は、ファイルから App Store Connect の .p8 秘密鍵を読み取り、暗号化して保存します。鍵が表示またはログに記録されることはありません。
必要な権限
| コマンドの対象 | 権限 |
|---|---|
| プラン/サブスクリプションの読み取り、エンタイトルメント、決済オプション | anythink_subscription_plans:read |
| プランの書き込み | anythink_subscription_plans:create / :update / :delete |
| 決済の読み取り/書き込み | anythink_payments:read / :create |
Apple の認証情報、管理者による復旧(delete/force-expire/relink/resync) | プロジェクト管理者 |
例
anythink pay setup
anythink pay plans create --plan-name monthly --name Monthly --amount 9.99 --currency gbp --interval month --apple-product-id example_monthly
anythink pay apple credentials set --issuer-id <uuid> --key-id <id> --bundle-id com.example.app --private-key-file ./AuthKey.p8
anythink pay apple verify --signed-transaction <JWS>
anythink pay subscriptions events <subId>
anythink pay entitlement
oauth
アクティブなプロジェクトの OAuth ソーシャルサインインプロバイダーを設定します。
anythink oauth google status Show Google OAuth configuration status
anythink oauth google configure Set Google OAuth client ID and secret
Google OAuth を使用すると、プロジェクトのユーザーは Google アカウントでサインインできます。OAuth 2.0 の認証情報を作成した Google Cloud プロジェクトが必要です。Google Cloud Console を参照してください。
Google の認証情報で、認証済みリダイレクト URI を次のように設定してください。
https://api.my.anythink.cloud/org/<your-org-id>/auth/v1/google/callback
例
anythink oauth google status
anythink oauth google configure
api
アクティブなプロジェクトで利用できるすべての API エンドポイントを一覧表示します。プラットフォームのルートと、エンティティ用に動的に生成された REST ルートの両方が含まれます。
anythink api List all endpoints
anythink api --json Output as JSON (useful for AI tooling)
docs
CLI リファレンス全体を表示します。
anythink docs Print reference as markdown
anythink docs --json Print reference as JSON (for AI/tooling consumption)
migrate
あるプロジェクトプロファイルから別のプロジェクトプロファイルへ、エンティティスキーマ(エンティティとフィールド)をコピーします。ステージングから本番環境へスキーマを昇格させる場合に便利です。
anythink migrate --from <profile> --to <profile>
オプション
| フラグ | 説明 |
|---|---|
--from <profile> | コピー元プロファイル名(必須) |
--to <profile> | コピー先プロファイル名(必須) |
--dry-run | 変更を加えず、移行内容を表示します |
例
anythink migrate --from my-app-staging --to my-app-prod
anythink migrate --from my-app-staging --to my-app-prod --dry-run
plans
利用可能な Anythink プランを一覧表示します。
anythink plans List plans
anythink plans --json Output as JSON
MCP サーバー
Anythink MCP サーバーは、Model Context Protocol を介して AI アシスタント(Claude、Cursor など)にプラットフォームを提供します。
インストール
インストールは不要です。推奨される方法は、npx で必要なときに実行することです。
npx -y @anythink-cloud/mcp
PATH 上のネイティブバイナリを使いたい場合は、次のいずれかを使用できます。
# Homebrew (bundled with the CLI — see Installation above)
brew install anythink-cloud/tap/anythink
# .NET global tool (requires the .NET 8 SDK)
dotnet tool install -g anythink-mcp
# Or download the anythink-mcp-<platform> binary from the Releases page
設定
Claude Code の場合は、次のコマンドで登録できます。
claude mcp add anythink -- npx -y @anythink-cloud/mcp
または、MCP クライアントの設定(例:.mcp.json)に手動で追加します。
{
"mcpServers": {
"anythink": {
"command": "npx",
"args": ["-y", "@anythink-cloud/mcp"]
}
}
}
プロファイルを固定するには、args に追加します:["-y", "@anythink-cloud/mcp", "--profile", "my-project"]
あらゆる MCP クライアントで動作します。ほとんどのクライアントは、上記と同じ mcpServers JSON を使用します。クライアントの設定ファイルに追加してください。
| クライアント | 設定ファイル |
|---|---|
| Claude Code | claude mcp add anythink -- npx -y @anythink-cloud/mcp(または .mcp.json) |
| Claude Desktop | claude_desktop_config.json(設定 → 開発者 → 設定を編集) |
| Cursor | ~/.cursor/mcp.json(または上の Cursor に追加 ボタン) |
| VS Code | .vscode/mcp.json(または上の VS Code にインストール ボタン) |
| Cline | cline_mcp_settings.json(MCP サーバー → 設定) |
| Windsurf | ~/.codeium/windsurf/mcp_config.json |
一部のクライアントでは、異なる形式の設定を使用します。
Continue(YAML — mcpServers はリスト形式)
mcpServers:
- name: anythink
command: npx
args:
- -y
- "@anythink-cloud/mcp"
Zed(mcpServers ではなく、context_servers を使用)
{
"context_servers": {
"anythink": {
"source": "custom",
"command": "npx",
"args": ["-y", "@anythink-cloud/mcp"]
}
}
}
(npx の代わりにネイティブバイナリを使用する場合は、args を指定せずに "command": "anythink-mcp" を使用してください。)
接続したら、login ツールを実行し、続いて accounts_use / projects_use で作業コンテキストを選択します。
利用可能なツール
MCP サーバーには、認証、アカウント/プロジェクト管理、設定用の専用ツールに加え、任意の CLI コマンドを実行できる汎用の cli ツールが用意されています。
| ツール | 説明 |
|---|---|
signup | 新しい Anythink アカウントを作成 |
login | メールアドレスとパスワードでログイン |
login_direct | 認証情報を直接保存(組織 ID + API キーまたは JWT) |
logout | 保存済みのプロファイルを削除 |
config_show | すべてのプロファイルを一覧表示 |
config_use | アクティブなプロファイルを切り替え |
config_remove | プロファイルを削除 |
accounts_list | 請求アカウントを一覧表示 |
accounts_create | 請求アカウントを作成 |
accounts_use | アクティブな請求アカウントを設定 |
projects_list | プロジェクトを一覧表示 |
projects_create | プロジェクトを作成 |
projects_use | プロジェクトに接続 |
projects_delete | プロジェクトを削除 |
cli | 任意の CLI コマンドを実行(エンティティ、データ、ワークフロー、ロールなど) |
ホスト型 MCP サーバー(anythink-mcp --hosted)には、サインインやプロファイル用のツールはありません。accounts_list、accounts_create、plans、projects_create、projects_delete ツールは、サインイン中のユーザーとして実行され、ユーザーがアカウントへのアクセスを許可した場合にのみ表示されます。詳しくはMCP サーバーのドキュメントを参照してください。
コントリビュート
前提条件
- .NET 8 SDK
- Anythink アカウント(無料プランで利用できます)
セットアップ
git clone https://github.com/anythink-cloud/anythink-cli
cd anythink-cli
dotnet build
ローカルでの実行
dotnet run --project src/AnythinkCli.csproj -- --help
dotnet run --project src/AnythinkCli.csproj -- projects list
dotnet run --project src/AnythinkCli.csproj -- entities list
リリース
リリースは GitHub Actions で自動化されています。バージョンタグをプッシュすると、ビルドが開始されます。
git tag v1.2.0
git push origin v1.2.0
ワークフローでは、macOS(arm64、x64)および Linux(x64、arm64)向けの自己完結型バイナリをビルドし、SHA256 チェックサムを計算して、GitHub リリースとして公開します。
プロジェクト構成
anythink-cli/
├── src/ # CLI source
│ ├── Commands/ # Command implementations (signup, login, etc)
│ ├── Config/ # CliConfig.cs, Profile, ConfigService
│ ├── Models/ # ApiModels.cs, BillingModels.cs
│ ├── Client/ # HttpApiClient.cs, AnythinkClient.cs, BillingClient.cs
│ ├── Output/ # Renderer.cs (Spectre.Console helpers)
│ └── Program.cs # Application entry point & .env loader
├── mcp/ # MCP server source
│ ├── Tools/ # MCP tool implementations
│ ├── McpClientFactory.cs # Auth + client resolution
│ └── Program.cs # MCP server entry point
├── tests/ # CLI unit tests
├── mcp-tests/ # MCP unit tests
├── AnythinkCli.sln # Solution file
└── .gitignore
ライセンス
MIT — LICENSE を参照してください。これは、このリポジトリ内の Anythink CLI および MCP サーバーのソースを対象とします。別途 anythink.cloud に定められた条件に従う Anythink プラットフォーム、API、サービスの利用権を付与するものではありません。
Spectre.Console で構築 · Anythink を活用
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。