Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
diverta avatar

Kuroco Admin Api

  • 32 installs
  • 1 repo stars
  • Updated July 27, 2026
  • diverta/kuroco-skills

Explore and call Kuroco headless CMS admin APIs from the CLI when you need to create or update site content without guessing endpoints.

About

Kuroco Admin API is an agent skill for solo builders who manage content on Kuroco, a Japanese headless CMS, and need reliable admin API discovery instead of trial-and-error HTTP calls. It documents how to use the kuroco-admin CLI: advise for goal-to-endpoint guidance when module or controller names are unknown, discover to list modules and controllers programmatically, and help to pull request properties, types, and required fields in JSON Schema form. The skill emphasizes relationships such as topics_group_id before topics operations, and shows when to run exec for extended column schemas. It fits indie teams shipping marketing sites, member portals, or inquiry flows where the agent must list parents, validate payloads, and execute edits safely. Intermediate complexity assumes CMS credentials and basic REST familiarity; outputs are structured API steps and field definitions agents can turn into scripts or one-off maintenance tasks during build and later operate iterations.

  • Three API exploration paths: advise (natural-language steps), discover (module/controller map), and help (JSON Schema fi
  • advise returns system-generated endpoint and api_spec to reduce hallucinated routes.
  • Parent–child module map (TopicsGroup→Topics, MemberGroup→Member, etc.) with required ID fields before child calls.
  • exec with MODE=schema for ext_col-aware edit schemas when help alone is insufficient.
  • JSON-first CLI (--json) for agent-driven automation against mt/ct controllers.

Kuroco Admin Api by the numbers

  • 32 all-time installs (skills.sh)
  • Ranked #3,359 of 4,347 Backend & APIs skills by installs in the Skillselion catalog
  • Security screen: MEDIUM risk (skills.sh audit)
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/diverta/kuroco-skills --skill kuroco-admin-api

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs32
repo stars1
Security audit1 / 3 scanners passed
Last updatedJuly 27, 2026
Repositorydiverta/kuroco-skills

What it does

Explore and call Kuroco headless CMS admin APIs from the CLI when you need to create or update site content without guessing endpoints.

Files

SKILL.mdMarkdownGitHub ↗

Kuroco Admin API Skill

概要

Kuroco管理API(admin_api)を kuroco-admin CLIで操作するスキル。

admin_apiの5つのモード:

  • whoami: セッション情報の取得 — member_id, name, group_ids を返す
  • discover: 利用可能なモジュール・コントローラの探索
  • schema: コントローラ/サービスのリクエスト・レスポンススキーマ取得
  • advise: 自然言語でやりたいことを伝えると、呼ぶべきAPIと手順をAIが回答
  • execute: APIの実行(GET/POST) — --columnsでレスポンスカラム選択可能

認証方式: kuroco-admin login でセッションCookieを ~/.kuroco-admin/cookies.txt に永続化。以降のコマンドは自動的にCookieを送信。

前提条件:

  • Bun ランタイムがインストール済み
  • kuroco-admin CLI がビルド済みまたはPATHに追加済み
  • kuroco-admin login --url <管理画面URL> でログイン済み
  • すべての操作はログイン中ユーザーの権限で実行される
最小操作フロー(読み取り: 2-3回、書き込み: 3-4回の tool call):
1. Bash: 認証チェック(kuroco-admin whoami --json
2. Bash: API構造把握(kuroco-admin discover --json または kuroco-admin advise "やりたいこと" --json
3. (書き込み時) Bash: スキーマ取得(kuroco-admin help topics/topics_edit --json
4. Bash: API実行(kuroco-admin exec ...

>

advise が最も効率的。 やりたいことを自然言語で伝えるだけで、呼ぶべきAPI・手順・パラメータをAIが回答する。mt/ctが不明な場合はまず advise を使う。

---

セットアップ

インストール

# CLI ソースディレクトリ
cd /path/to/admin_cli

# ビルド(スタンドアロンバイナリ)
bun build --compile kuroco-admin.ts --outfile kuroco-admin

# PATHに追加(任意)
cp kuroco-admin /usr/local/bin/

ログイン

kuroco-admin login --url https://example.g.kuroco-mng.app
# → メールアドレスとパスワードを対話的に入力
# → ~/.kuroco-admin/config.json と cookies.txt が保存される

---

操作フロー

すべてのAPI操作はこのフローに従うこと。

Step 1: 認証チェック

kuroco-admin whoami --json
  • 成功(exit 0){"success":true,"data":{"member_id":...}} が返る → Step 2 へ
  • 失敗(exit 2) → セッション切れ。kuroco-admin login --url <URL> で再ログイン

Step 2: API構造把握

目的に応じて3つの方法を使い分ける:

方法A: advise(AI支援、推奨)

やりたいことを自然言語で伝えると、呼ぶべきAPIと手順をAIが回答:

kuroco-admin advise "記事を新しく作成したい" --json

レスポンスの steps にmt/ct/http_method/mode/endpointが含まれる。endpointapi_spec はシステム自動生成(ハルシネーションなし)。summary, description, body_example はAI生成。

方法B: discover(モジュール・コントローラ一覧)
# 全モジュール一覧
kuroco-admin discover --json

# 特定モジュールのコントローラ一覧
kuroco-admin discover --mt topics --json
方法C: help(スキーマ取得)

特定コントローラのリクエスト/レスポンススキーマ:

kuroco-admin help topics/topics_edit --json
使い分け:
| 方法 | 用途 |
|------|------|
| advise(推奨) | やりたいことからAPI手順をAIが提案(mt/ctが不明な場合) |
| discover | プログラム的にモジュール/コントローラを列挙 |
| help | 特定コントローラのフィールド定義・型・必須項目を確認 |

Step 3: スキーマ取得(書き込み操作では必須)

書き込み操作(INSERT/UPDATE)では必ずスキーマを取得してフィールド構造を確認:

kuroco-admin help topics/topics_edit --json

レスポンスはJSON Schema形式。data.request.properties にフィールド定義、data.request.required に必須フィールドが格納される。

ext_colを含むスキーマが必要な場合:

help コマンドでは topics_group_id を指定できないため、exec で直接取得:

kuroco-admin exec --param MODE=schema --mt topics --ct topics_edit --param topics_group_id=99 --json
注意:
- topics_group_id を省略すると汎用フィールドのみ(ext_colが含まれない)
- topics_group_id を指定するとブロックエディタ・拡張項目のフィールド名(ext_1, ext_14 等)、型、必須フラグが取得できる
- list系コントローラ(topics_list等)はスキーマが空を返すため、書き込み用コントローラ(topics_edit)を指定すること
- レスポンスの x-kuroco-type でフィールドの種類(wysiwyg, json, checkbox, file 等)がわかる

Step 4: API実行

認証確認・構造把握が完了したら、API実行パターンに従ってAPIを実行する。

Step 5: 認証失敗・セッション切れ対応

exit code 2(AUTH_ERROR / SESSION_EXPIRED / LOGIN_REQUIRED)が返った場合: 1. ユーザーに再ログインが必要な旨を伝える 2. kuroco-admin login --url <URL> を実行 3. ログイン後に再度操作

複数ステップの操作中に認証エラーが発生した場合: 1. 即座に操作を停止 2. どこまで成功したかをユーザーに報告 3. 再ログインを案内 4. 再認証後、未完了の操作から再開

---

API実行パターン

パラメータ形式

kuroco-admin exec では module/controller のショートハンド形式、または --mt/--ct 個別指定が使える。

パラメータ説明
mtモジュール名(小文字)topics, member, inquiry
ctコントローラ名topics_list, topics_edit, member_list
# ショートハンド形式(推奨)
kuroco-admin exec topics/topics_list --json

# 個別指定
kuroco-admin exec --mt topics --ct topics_list --json
注意: model/method 形式は使用しないこと。HTMLが返却される場合がある。必ず mt/ct 形式を使用する。

GETリクエスト(一覧取得・検索)

# 基本的な一覧取得(columns + cnt で最小限のレスポンス)
kuroco-admin exec topics/topics_list \
  --param "topics_group_id[]=1" \
  --param cnt=10 \
  --columns topics_id,subject,ymd \
  --json

# 検索・フィルタリング
kuroco-admin exec topics/topics_list \
  --param "topics_group_id[]=1" \
  --param keyword=検索語 \
  --param cnt=20 \
  --columns topics_id,subject \
  --json

# ページネーション
kuroco-admin exec topics/topics_list \
  --param "topics_group_id[]=1" \
  --param pageID=2 \
  --param cnt=20 \
  --json
columns原則: GETリクエストでは常に --columns を指定。対応エンドポイントではサーバー側フィルタリング、非対応でも無視されるだけなので常に指定して問題ない。

POSTリクエスト(作成・更新・削除)

# 新規作成(INSERT)
kuroco-admin exec topics/topics_edit_api \
  --MODE INSERT \
  --data '{"subject":"タイトル","contents":"本文","topics_group_id":1}' \
  --json

# 更新(UPDATE)
kuroco-admin exec topics/topics_edit_api \
  --MODE UPDATE \
  --data '{"topics_id":123,"subject":"更新後タイトル"}' \
  --json

# 削除(DELETE)
kuroco-admin exec topics/topics_edit_api \
  --MODE DELETE \
  --data '{"topics_id":123}' \
  --json

dry-run(プレビュー)

実行前にリクエスト内容を確認:

kuroco-admin exec topics/topics_edit_api \
  --MODE INSERT \
  --data '{"subject":"テスト"}' \
  --dry-run

サービス呼び出し

コントローラ(小文字開始)とサービス(大文字開始)を自動判別:

# コントローラ: 小文字開始
kuroco-admin exec topics/topics_list --json

# サービス: 大文字開始(PHP側で自動検出)
kuroco-admin exec Email/send --data '{"to":"user@example.com","subject":"件名"}' --json

重要なルール

ルール説明
--json フラグAI agent からの呼び出しでは常に --json を指定
GET配列パラメータ--param "topics_group_id[]=1" のように [] suffix必須
POST配列パラメータ--data 内でネイティブJSON配列(例: {"topics_group_id": [1]}
件数制限レスポンスが大きい場合は --param cnt=N で制限
columns指定--columns col1,col2 でレスポンスカラムを最小限にする
変更操作の確認INSERT/UPDATE/DELETEは実行前にユーザーに確認すること
dry-run活用書き込み操作の前に --dry-run でリクエスト内容を確認
詳細は references/cli-commands.md を参照

---

レスポンス構造

成功レスポンス(--json)

{
  "success": true,
  "data": { ... },
  "errors": []
}

エラーレスポンス(--json)

{
  "success": false,
  "data": null,
  "errors": [{ "code": "API_ERROR", "message": "..." }]
}

リストレスポンスのキー

レスポンス内のリスト配列のキーは ct に対応:

ctレスポンスのリストキー
topics_listdata.topics_list
topics_group_listdata.topics_group_list
member_listdata.member_list

ページネーション

{
  "pageInfo": {
    "totalCnt": 150,
    "perPage": 20,
    "totalPageCnt": 8,
    "pageNo": 1
  }
}

---

エラーハンドリング

Exit Codes

Code意味対処
0成功
1一般エラー(INVALID_PARAM, NETWORK_ERROR, API_ERROR)エラーメッセージ確認、パラメータ修正
2認証エラー(AUTH_ERROR, SESSION_EXPIRED, LOGIN_REQUIRED)kuroco-admin login で再ログイン
詳細は references/error-handling.md を参照

---

モジュール関係マップ

主要な親子関係。親のIDが子の操作に必須:

TopicsGroup → Topics         (topics_group_id 必須)
MemberGroup → Member         (group_id 必須)
InquiryForm → InquiryMessage (inquiry_id 必須)
TagCategory → Tag            (tag_category_id 必須)

操作前に親のlistで利用可能なグループを確認:

kuroco-admin exec topics/topics_group_list --columns topics_group_id,group_nm --json
詳細は references/api-discovery.md を参照

---

セキュリティ注意事項

  • Cookie値を表示・ログ出力しないこと~/.kuroco-admin/cookies.txt はmode 0o600で保護
  • `--verbose` の出力をユーザーに見せない — HTTPヘッダーにCookie値が含まれる
  • 変更操作は必ずユーザー確認後に実行 — INSERT/UPDATE/DELETEは取り消しが困難
  • `--dry-run` を活用 — 書き込み前にリクエスト内容をプレビュー
  • APIレスポンスのファイル保存はユーザー同意必須 — 個人情報を含む可能性

---

アンチパターン

やりがち問題推奨
--json を付けずに実行人間向けフォーマットでパースしにくいAI agentでは常に --json
--columns を指定せずにGETレスポンスが巨大常に --columns を指定
exit code を確認しない認証切れに気づかないexit code 2 なら再ログイン
schema なしで書き込み必須フィールド漏れhelp でスキーマ確認後に実行
--verbose 出力をログに残すCookie値が漏洩するデバッグ時のみ使用、出力は共有しない
model/method 形式でAPI指定HTMLが返却される場合がある必ず mt/ct 形式を使用

---

並列実行

独立したAPI呼び出しは複数の Bash tool call を同時に発行して並列実行可能:

# 別々のBash tool callで同時発行
kuroco-admin exec topics/topics_group_list --columns topics_group_id,group_nm --json
kuroco-admin exec member/member_group_list --columns group_id,group_nm --json

---

他スキルとの連携

スキル用途使い分け
/kuroco-api-contentフロントエンドAPI設計・認証パターン、コンテンツCRUDパターンエンドユーザー向けAPI
/kuroco-frontend-integrationNuxt.js/Next.js統合、AI自動デプロイフロントエンド実装
/kuroco-docsKurocoドキュメント参照公式ドキュメント検索

本スキルはCLI経由のadmin_api実行に特化。 フロントエンドAPI(*.g.kuroco.app)の操作には上記の関連スキルを使用。

Related skills

FAQ

Is Kuroco Admin Api safe to install?

skills.sh reports 1 of 3 security scanners passed. Review the Security Audits panel on this page before installing in production.

Backend & APIsbackendintegrations

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.