{"id":46401334,"url":"https://github.com/mrmtsu/mcms-cli","last_synced_at":"2026-05-17T08:02:13.633Z","repository":{"id":339571411,"uuid":"1161391865","full_name":"mrmtsu/mcms-cli","owner":"mrmtsu","description":"Unofficial microCMS CLI for Content API and Management API automation with stable JSON output and deterministic exit codes.","archived":false,"fork":false,"pushed_at":"2026-04-26T07:01:04.000Z","size":567,"stargazers_count":5,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-26T09:09:48.086Z","etag":null,"topics":["cli","headless-cms","microcms","microcms-cli"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mrmtsu.png","metadata":{"files":{"readme":"README.ja.md","changelog":"CHANGELOG.ja.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-02-19T03:49:08.000Z","updated_at":"2026-04-26T07:01:09.000Z","dependencies_parsed_at":"2026-04-26T09:03:35.333Z","dependency_job_id":null,"html_url":"https://github.com/mrmtsu/mcms-cli","commit_stats":null,"previous_names":["mrmtsu/mcms-cli"],"tags_count":10,"template":false,"template_full_name":null,"purl":"pkg:github/mrmtsu/mcms-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrmtsu%2Fmcms-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrmtsu%2Fmcms-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrmtsu%2Fmcms-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrmtsu%2Fmcms-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mrmtsu","download_url":"https://codeload.github.com/mrmtsu/mcms-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mrmtsu%2Fmcms-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33129101,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-16T18:38:32.183Z","status":"online","status_checked_at":"2026-05-17T02:00:05.366Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","headless-cms","microcms","microcms-cli"],"created_at":"2026-03-05T11:08:58.355Z","updated_at":"2026-05-17T08:02:13.628Z","avatar_url":"https://github.com/mrmtsu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mcms-cli\n\n[English](./README.md) | 日本語\n\n\u003e 非公式プロジェクトです。このCLIは microCMS 公式とは無関係であり、承認・運営されていません。\n\n`--json` の安定出力と終了コード設計を備えた、microCMS向けの AI/CI フレンドリー CLI です。\n\n## 命名の整理\n\n- GitHub リポジトリ名: `mcms-cli`\n- npm パッケージ名: `@mrmtsu/mcms-cli`\n- 実際に実行するコマンド名: `microcms`\n- ローカル保存時の識別子（configディレクトリ / keychain service）: `mcms-cli`\n\n`microcms` を実行コマンド名にしているのは可読性のためです。  \n非公式であることは README 先頭に明記しています。\n\n## インストール\n\n```bash\nnpm i -g @mrmtsu/mcms-cli\n# or\nnpx @mrmtsu/mcms-cli --help\n```\n\n## Agent Skill\n\nこのリポジトリには、リポジトリ内の source から生成される Agent Skill `skills/mcms-cli/SKILL.md` を同梱しています。\nこの skill は open Agent Skills format に従っており、npm パッケージにも含めて配布します。\n\n```bash\nnpx skills add mrmtsu/mcms-cli --skill mcms-cli\n```\n\n開発時:\n\n```bash\nnpm run skill:generate\nnpm run skill:check\n```\n\n## FAQ\n\n### これは microCMS 公式の CLI ですか？\n\nいいえ。これは非公式のコミュニティ製プロジェクトで、microCMS 公式とは無関係です。\n\n### 最短でインストールするには？\n\n`npm i -g @mrmtsu/mcms-cli` を実行し、`microcms --help` で確認できます。\n\n### `mcms-cli` / `@mrmtsu/mcms-cli` / `microcms` の違いは？\n\n`mcms-cli` はリポジトリ/ローカル識別子、`@mrmtsu/mcms-cli` は npm パッケージ名、`microcms` は実行コマンド名です。\n\n## 認証\n\n現状は API キー認証のみです（OAuth は未対応）。\n\n```bash\n# CI / 非対話実行の推奨:\nexport MICROCMS_SERVICE_DOMAIN=\u003cservice-domain\u003e\nexport MICROCMS_API_KEY=\u003capi-key\u003e\n\n# 任意: named profile\nmicrocms auth profile add \u003cprofile-name\u003e --service-domain \u003cservice-domain\u003e --set-default\nmicrocms auth profile list --json\n# 注意: profile add は service domain のみ保存します。API キーは別途 login が必要です。\nprintf '%s' '\u003capi-key\u003e' | microcms auth login --profile \u003cprofile-name\u003e --api-key-stdin\n\n# キーチェーン保存:\nprintf '%s' '\u003capi-key\u003e' | microcms auth login --service-domain \u003cservice-domain\u003e --api-key-stdin\n# TTY 対話入力（非表示）:\nmicrocms auth login --service-domain \u003cservice-domain\u003e --prompt\nmicrocms auth status --json\n```\n\nAPI キー解決順:\n1. `--api-key` / `--api-key-stdin`\n2. `MICROCMS_API_KEY`\n3. 選択中 profile の OS キーチェーン\n4. 解決済み service domain の OS キーチェーンエントリ\n\nservice domain 解決順:\n1. `--service-domain`\n2. `MICROCMS_SERVICE_DOMAIN`\n3. config の選択 profile（`--profile`, `MICROCMS_PROFILE`, default profile）\n4. config ファイル値（`$XDG_CONFIG_HOME/mcms-cli/config.json`）\n\n## コマンド\n\n### API 操作\n\n```bash\nmicrocms api list --json\nmicrocms api info \u003cendpoint\u003e --json\nmicrocms api schema inspect \u003cendpoint\u003e --json\nmicrocms api schema export \u003cendpoint\u003e --out \u003cendpoint\u003e-api-schema.json --json\nmicrocms member get \u003cmemberId\u003e --json\n\nmicrocms content list \u003cendpoint\u003e --json\nmicrocms content list \u003cendpoint\u003e --all --json\nmicrocms content get \u003cendpoint\u003e \u003cid\u003e --json\nmicrocms content pull \u003cendpoint\u003e --all --out managed-content --format managed-json --json\nmicrocms content verify \u003cendpoint\u003e --dir managed-content --only-changed --json\nmicrocms content push \u003cendpoint\u003e --dir managed-content --json\nmicrocms content push \u003cendpoint\u003e --dir managed-content --execute --json\nmicrocms content sync-status \u003cendpoint\u003e --dir managed-content --json\nmicrocms content meta list \u003cendpoint\u003e --json\nmicrocms content meta get \u003cendpoint\u003e \u003cid\u003e --json\nmicrocms content status set \u003cendpoint\u003e \u003cid\u003e --status PUBLISH --json\nmicrocms content created-by set \u003cendpoint\u003e \u003cid\u003e --member \u003cmemberId\u003e --json\nmicrocms content create \u003cendpoint\u003e --file payload.json --json\nmicrocms content create \u003cendpoint\u003e --file payload.json --dry-run --json\nmicrocms content update \u003cendpoint\u003e \u003cid\u003e --file payload.json --json\nmicrocms content delete \u003cendpoint\u003e \u003cid\u003e --json\nmicrocms content diff \u003cendpoint\u003e \u003cid\u003e --draft-key \u003cdraftKey\u003e --json\nmicrocms content export \u003cendpoint\u003e --out backup/notes.json --json\nmicrocms content export \u003cendpoint\u003e --out backup/notes.csv --format csv --json\nmicrocms content export --all --out backup/ --json\nmicrocms content import \u003cendpoint\u003e --file backup/notes.json --json\nmicrocms content import \u003cendpoint\u003e --file backup/notes.json --dry-run --json\nmicrocms content import \u003cendpoint\u003e --file backup/notes.json --dry-run --strict-warnings --json\nmicrocms content import \u003cendpoint\u003e --file backup/notes.json --upsert --interval 200 --json\nmicrocms content bulk --file operations.json --json\nmicrocms content bulk --file operations.json --dry-run --json\nmicrocms content bulk --file operations.json --dry-run --validate-payload --json\nmicrocms content bulk --file operations.json --dry-run --strict-warnings --json\nmicrocms content bulk --file operations.json --stop-on-error --json\nmicrocms content bulk --file operations.json --continue-on-error --json\n\nmicrocms media list --json\nmicrocms media list --limit 20 --image-only --file-name logo --json\nmicrocms media list --token \u003ctoken\u003e --json\nmicrocms media upload \u003cpath\u003e --json\nmicrocms media upload \u003cpath\u003e --dry-run --json\nmicrocms media delete --url \u003cmedia-url\u003e --json\nmicrocms validate \u003cendpoint\u003e --file payload.json --json\n```\n\n- `content export --all` は list API を対象にエクスポートし、object API はスキップします。\n- `content pull` / `content verify` / `content push` / `content sync-status` は、file-based なコンテンツ運用向け managed-json first cut です。\n- managed-json v1 は list API のみ対応です。object API、media 同期、hooks/revalidate、自動マージは対象外です。\n- `content push` はデフォルトで verify のみ行い、remote 書き込みは `--execute` 指定時だけ行います。\n- managed-json の delete は明示 tombstone 方式です。record file を消しただけでは remote delete されません。\n- `content create/update --dry-run` は取得できる場合に API schema で検証し、元の `payload` と書き込み時の `normalizedPayload` を出力します。\n- `content bulk --dry-run` は API 呼び出しなしで操作定義ファイルの構造のみ検証します。\n- スキーマに基づく payload 検証が必要な場合は `--validate-payload`（または `--strict-warnings`）を指定してください。\n- single select フィールドは CLI payload では `\"value\"` と `[\"value\"]` の両方を受け付けます。managed-json は string で保存し、書き込み実行時に API 互換の配列 shape へ正規化します。\n\n### ドキュメント / エージェント参照（APIキー・service domain不要）\n\n```bash\nmicrocms search \"api schema\" --scope all --json\nmicrocms docs get --category management-api --file \"APIスキーマ取得API（フィールド定義やカスタムフィールド）.md\" --json\nmicrocms docs list --source auto --json\nmicrocms docs get --category content-api --file \"コンテンツ一覧取得API.md\" --json\nmicrocms search \"content list\" --scope all --json\nmicrocms spec --json\nmicrocms task list --json\nmicrocms task suggest \"schema export\" --json\nmicrocms task guide api-schema-export --json\nmicrocms task suggest \"delete content\" --json\nmicrocms task guide content-delete --json\n```\n\n- 仕様確認やエージェント導線は、まず `docs` / `search` / `task` / `spec` を使って CLI 上で完結させてください。通常の discovery で外部 MCP を直接使う必要はありません。\n- `docs get`: CLI 経由で microCMS 公式ドキュメント本文（Markdown）を取得します。\n- `search`: コマンド仕様とドキュメントのメタデータ（タイトル/ファイル名）を検索し、次に打つべき推奨コマンドも返します。本文は返しません。\n- `task suggest` / `task guide`: エージェント/CI向けにタスク単位の実行手順を返します。\n\n### Schema / Types 補助\n\n```bash\nmicrocms schema pull --out microcms-schema.json --json\nmicrocms schema pull --format api-export --endpoints blogs --out blogs-api-schema.json --json\nmicrocms schema pull --format json-schema --out schema.json --json\nmicrocms schema pull --format json-schema --include-extensions --out schema.json --json\nmicrocms schema pull --format json-schema --endpoints blogs --out blogs-schema.json --json\nmicrocms schema diff --baseline microcms-schema.json --json\nmicrocms schema diff --baseline microcms-schema.json --exit-code --json\nmicrocms types generate --schema microcms-schema.json --out microcms-types.d.ts --json\nmicrocms types sync --out microcms-types.d.ts --json\nmicrocms types sync --out microcms-types.d.ts --schema-out microcms-schema.json --json\n```\n\n`schema pull` が canonical なスキーマ出力コマンドです。単一 endpoint を API インポート互換 shape で保存したいときは discoverability alias の `api schema export` を使えます。\n\n`--format json-schema` は [`@mrmtsu/microcms-schema-adapter`](https://github.com/mrmtsu/microcms-schema-adapter) を使用して microCMS スキーマを JSON Schema (draft-07) に変換します。\n\n型生成を主目的に使う場合は、[wato787/microcms-cli](https://github.com/wato787/microcms-cli) の利用を推奨します。\nリレーション解決、リピーターの discriminated union、カスタムフィールドの再帰展開など、複雑なスキーマの型生成に優れています。\n\n### 設定と補完\n\n```bash\nmicrocms config doctor --json\nmicrocms completion install zsh --json\nmicrocms completion uninstall --json\nnpm run hooks:install\nnpm run preflight:pr\n```\n\n### 認証プロファイル管理\n\n```bash\nmicrocms auth profile list --json\nmicrocms auth profile add \u003cname\u003e --service-domain \u003cservice\u003e [--set-default] --json\nmicrocms auth profile use \u003cname\u003e --json\nmicrocms auth profile remove \u003cname\u003e --json\n```\n\n`validate` は API メタデータが取得できる場合、required/unknown/type/enum 相当チェックを行います。\n\n## グローバルオプション\n\n- `--json`\n- `--plain`\n- `--table`\n- `--select \u003cfields\u003e`\n- `--profile \u003cname\u003e`\n- `--service-domain \u003cserviceDomain\u003e`\n- `--api-key \u003capiKey\u003e`（非推奨: シェル履歴/プロセス一覧に露出しうる）\n- `--api-key-stdin`\n- `--timeout \u003cms\u003e`\n- `--retry \u003ccount\u003e`\n- `--retry-max-delay \u003cms\u003e`\n- `--verbose`\n- `--no-color`\n\n補完では `microcms completion endpoints` を使って endpoint 候補を動的取得します。\n`--retry` はデフォルトで retry-safe なリクエスト（GET）に適用されます。\n\n## JSON 契約 (v0)\n\nSuccess:\n\n```json\n{\n  \"ok\": true,\n  \"data\": {},\n  \"meta\": {\n    \"requestId\": null,\n    \"version\": \"0.x\"\n  }\n}\n```\n\nError:\n\n```json\n{\n  \"ok\": false,\n  \"error\": {\n    \"code\": \"AUTH_FAILED\",\n    \"message\": \"...\",\n    \"retryable\": false\n  },\n  \"meta\": {\n    \"requestId\": null,\n    \"version\": \"0.x\"\n  }\n}\n```\n\n`error.details` は `--verbose` 指定時に含まれます。\nただし、payload 検証失敗（`validate`、payload 検証付きの `content import` / `content bulk`）では、\n原因特定のため `error.details` を常時返します。\nJSON mode の microCMS API 失敗では、取得できる場合に API response body を `error.details` に含めます。\n\n## 終了コード\n\n- `0`: success\n- `2`: invalid input\n- `3`: auth error\n- `4`: permission error\n- `5`: network/timeout\n- `6`: conflict\n- `1`: unknown error\n\n## 開発\n\n```bash\nnpm install\nnpm run skill:check\nnpm run lint\nnpm run format:check\nnpm run typecheck\nnpm run test\nnpm run build\n```\n\n## 補足\n\n- `api list/info` と `media list/upload` は microCMS Management API を利用します。\n- Management API base URL のデフォルト: `https://\u003cserviceDomain\u003e.microcms-management.io`\n- `MICROCMS_MANAGEMENT_API_BASE_URL` で上書き可能です。\n- Content API base URL: `https://\u003cserviceDomain\u003e.microcms.io`\n- `MICROCMS_CONTENT_API_BASE_URL` で上書き可能です（主にテスト用途）。\n- ネットワーク不要の contract テストでは `MICROCMS_CONTENT_MOCK_FILE` を使えます。\n- `MICROCMS_*_BASE_URL` の override 先は localhost または microcms ドメインのみ許可します。\n- ドキュメント系コマンドは、同梱された `microcms-document-mcp-server` を既定で利用します（追加セットアップ不要）。\n- `docs` / `search` / `spec` は `MICROCMS_API_KEY` や `MICROCMS_SERVICE_DOMAIN` なしで実行できます。\n- `docs` / `search` / `task` / `spec` は、CLI から見える唯一の discovery surface として使う想定です。内部の docs runtime を意識する必要はありません。\n- `search` はコマンド仕様とドキュメントのメタデータ（タイトル/ファイル名）向けです。公式ドキュメント本文（Markdown）は `docs get` を使って取得してください。\n- 必要に応じて `MICROCMS_DOC_MCP_COMMAND` で実行コマンドを上書きできます。\n\n## 免責事項\n\n- 本プロジェクトは非公式のコミュニティ製ツールであり、microCMS 公式とは無関係です。\n- 本ソフトウェアは MIT License の下で「現状有姿（as is）」で提供され、いかなる保証もありません。\n- 本番利用前に、必ずご自身の環境で検証し、必要なバックアップを取得してください。\n- API キーの管理および本CLIで実行した操作の責任は利用者にあります。\n\n## OSS ドキュメント\n\n- [Contributing](./CONTRIBUTING.md)\n- [Security](./SECURITY.md)\n- [Changelog](./CHANGELOG.md)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmtsu%2Fmcms-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmrmtsu%2Fmcms-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmrmtsu%2Fmcms-cli/lists"}