テーマ:
KAMUI CODE ドキュメント 要件定義
バージョン: 1.0 / 更新日: 2025-08-24 / 公開形態: GitHub Pages(静的HTML)
KAMUI CODE トップ

1. 概要

KAMUI CODE は、MCP(Model Context Protocol)に準拠した複数のサーバー群を統合的に提供するソリューションです。クリエイティブ、開発、ビジネスの3領域を横断し、上位のベースURL配下に各サーバーのエンドポイントを階層的に配置します。本書は、KAMUI CODE のコンセプト、エンドポイント設計、サーバーカタログ、使い方、および設定ファイル(mcp/config.json)とパッケージング方針を整理し、GitHub Pages で公開できる単一HTMLのドキュメントとしてまとめたものです。

2. コンセプトと対象領域

  • クリエイティブ領域: 生成・編集・評価(画像/テキスト/ドキュメント等)。
  • 開発領域: コード生成/解析、リファクタリング、レビュー、ドキュメント化。
  • ビジネス領域: 翻訳、要約、レポーティング、データ分析補助。

上記領域を共通のプロトコルと設計原則で統一し、サーバー追加・差し替え・組合せを安定して行えることを目指します。

コンセプト図

3. UI遷移図

UI遷移図

4. UI/画面(参考デザイン画像)

以下は同梱の参考デザイン画像です(相対パスで読込)。

kamui-docs-ui-pattern1-dark
kamui-docs-ui-pattern1-dark.png
kamui-docs-ui-pattern2-gradient
kamui-docs-ui-pattern2-gradient.png
kamui-docs-ui-pattern3-minimal
kamui-docs-ui-pattern3-minimal.png
kamui-docs-ui-pattern4-cyberpunk
kamui-docs-ui-pattern4-cyberpunk.png
kamui-docs-ui-pattern5-japanese
kamui-docs-ui-pattern5-japanese.png
kamui-v2-1-dark-neonblue
kamui-v2-1-dark-neonblue.png
kamui-v2-2-white-enterprise
kamui-v2-2-white-enterprise.png
kamui-v2-3-split-darklight
kamui-v2-3-split-darklight.png
kamui-v2-4-terminal-green
kamui-v2-4-terminal-green.png
kamui-v2-5-white-pastel
kamui-v2-5-white-pastel.png
kamui-white-1
kamui-white-1.png
kamui-white-2
kamui-white-2.png
kamui-white-3
kamui-white-3.png
kamui-white-4
kamui-white-4.png
kamui-white-5
kamui-white-5.png

5. アーキテクチャとエンドポイント設計

実URL構造は提供JSONのmcpServers[*].urlに準拠します。ベースドメインは https://{BASE_URL} で、先頭にカテゴリ(例: t2i, i2i, t2v, i2v, v2v, r2v, t2s, t2m, v2a, uploader, train, video-analysis, requirement, storyboard)が続き、ベンダ・モデル・モード等が後続します。

BASE_URL = https://{BASE_URL}

一般パターン:
  {BASE_URL}/{category}/{vendor}/{model-or-service}/[variant|mode|action]

例(JSONより抽出):
  テキスト→画像: {BASE_URL}/t2i/fal/bytedance/dreamina/v3.1/text-to-image
  画像→画像:     {BASE_URL}/i2i/fal/flux/kontext/max
  テキスト→動画: {BASE_URL}/t2v/fal/wan/v2.2-5b/text-to-video/fast-wan
  画像→動画:     {BASE_URL}/i2v/fal/minimax/hailuo-02/fast
  動画→動画:     {BASE_URL}/v2v/fal/pixverse/lipsync
  参照→動画:     {BASE_URL}/r2v/fal/vidu/q1
  テキスト→音声: {BASE_URL}/t2s/minimax/speech-2-5-turbo-preview
  テキスト→音楽: {BASE_URL}/t2m/google/lyria
  動画→音声:     {BASE_URL}/v2a/fal/thinksound/audio/standard
  動画解析:       {BASE_URL}/video-analysis/google/gemini
  学習:           {BASE_URL}/train/fal/flux/kontext
  アップロード:   {BASE_URL}/uploader/fal
  ドキュメント:   {BASE_URL}/requirement
  ストーリーボード:{BASE_URL}/storyboard

認証は環境に応じて Authorization: Bearer <TOKEN> または x-api-key 等を想定します。レート制御・タイムアウト・同期/非同期は各サーバーの特性に合わせクライアント指針を定義します。

graph TB subgraph "クライアント層" C1[MCPクライアント] C2[HTTPクライアント] C3[SDK/ライブラリ] end subgraph "ゲートウェイ層" GW["KAMUI CODE ゲートウェイ
({BASE_URL})"] end subgraph "サービスルーター" RT["カテゴリ別ルーティング
(t2i, i2i, t2v 等)"] end subgraph "プロバイダーサービス" direction TB P1[FAL.ai サービス] P2[Google サービス] P3[MiniMax サービス] P4[Runway サービス] P5[ByteDance サービス] end subgraph "モデルエンドポイント" M1[Imagen4 Ultra] M2[Flux モデル群] M3[Veo3] M4[Hailuo-02] M5[Dreamina v3.1] end C1 --> GW C2 --> GW C3 --> GW GW --> RT RT --> P1 RT --> P2 RT --> P3 RT --> P4 RT --> P5 P1 --> M1 P1 --> M2 P2 --> M3 P3 --> M4 P5 --> M5 style GW fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff style RT fill:#2d2d2d,stroke:#4a4a4a,stroke-width:1px
図: KAMUI CODE システムアーキテクチャ
flowchart LR subgraph "URL構造" BASE["{BASE_URL}"] --> CAT["/{カテゴリ}"] CAT --> VEND["/{ベンダー}"] VEND --> MODEL["/{モデル}"] MODEL --> VAR["/{バリアント}"] end subgraph "例" E1["t2i/fal/imagen4/ultra"] E2["i2v/fal/minimax/hailuo-02/fast"] E3["v2v/fal/pixverse/lipsync"] E4["t2s/minimax/speech-25-turbo"] end VAR --> E1 VAR --> E2 VAR --> E3 VAR --> E4 style BASE fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff
図: エンドポイントURL階層構造

6. サーバーカタログ(例・カード一覧)

以下のJSON(パッケージ)から実データを読み込み、サーバー一覧カードを自動生成します。

7. パッケージ一覧(JSON)

パッケージ化されたMCP定義JSONをカード表示します。クリックでJSONを開けます。

8. 使い方(HTTP・MCPクライアント)

HTTPダイレクト利用の例(curl)。実URLと認証ヘッダは環境に合わせて置換してください。

# 画像生成(例)
curl -X POST "{BASE_URL}/api/creative/image/v1/generate" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "夕暮れの富士山、浮世絵スタイル",
    "size": "1024x1024"
  }'

# コード解析(例)
curl -X POST "{BASE_URL}/api/dev/code/v1/analyze" \
  -H "Authorization: Bearer <TOKEN>" \
  -H "Content-Type: application/json" \
  -d '{
    "language": "ts",
    "source": "function add(a:number,b:number){return a+b}"
  }'
        

MCP対応クライアントでの利用(概略):

  1. 本リポジトリの mcp/config.json を取得します(後述)。
  2. クライアント側で設定ファイルの参照先を指定します。
  3. クライアントのツール一覧に、定義済みサーバーが表示されます。
sequenceDiagram participant User as ユーザー participant Client as MCPクライアント participant Gateway as KAMUIゲートウェイ participant Provider as プロバイダーAPI participant Model as AIモデル User->>Client: 生成リクエスト Client->>Client: mcp/config.json読み込み Client->>Gateway: POST /t2i/fal/imagen4/ultra Note over Gateway: 認証 & ルーティング Gateway->>Provider: FAL APIへ転送 Provider->>Model: Imagen4 Ultra実行 Model-->>Provider: 生成画像 Provider-->>Gateway: 結果返却 Gateway-->>Client: URLレスポンス Client-->>User: 結果表示
図: API呼び出しシーケンス
flowchart LR A[ユーザー入力] --> B{カテゴリ?} B -->|画像生成| C[t2i エンドポイント] B -->|動画生成| D[t2v/i2v エンドポイント] B -->|音声/音楽| E[t2s/t2m エンドポイント] B -->|解析| F[video-analysis] C --> G[プロバイダー選択] D --> G E --> G F --> G G --> H{同期/非同期?} H -->|同期| I[直接レスポンス] H -->|非同期| J[ジョブキュー] J --> K[ステータス確認] K --> L{完了?} L -->|いいえ| K L -->|はい| M[結果取得] I --> N[ユーザーへ返却] M --> N style A fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff style N fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff
図: リクエスト処理フロー

9. 機能要件(ドキュメント/配布物)

  • GitHub Pages でホスト可能な単一HTML(本ファイル)。
  • サーバーカタログをカード表示し、各エンドポイントの説明を掲載。
  • 使い方(HTTP/MCP)と設定ファイルのサンプルを提供。
  • テーマ切替(黒/白)、目次ナビ、全文検索(クライアント側)。

10. 非機能要件

  • 静的配信: ローカル/Pages/Cloudflare 上で動作、外部API不要。
  • 可読性: PC/モバイルでのレスポンシブ表示、テーマ切替。
  • 保守性: セクション追加・順序変更が容易な構造。
  • セキュリティ: 公開情報は機密を含まない。サンプルに秘密情報を含めない。

11. 設定ファイル(mcp/config.json)

複数のMCPサーバーをまとめて配布するための設定例です。必要に応じてIDやURL、認証方式を調整します。

{
  "version": 1,
  "servers": [
    {
      "id": "creative-image",
      "name": "画像生成サーバー",
      "category": "creative",
      "baseUrl": "{BASE_URL}/api/creative/image/v1",
      "endpoints": {
        "generate": "/generate",
        "variants": "/variants"
      },
      "auth": { "type": "bearer", "env": "KAMUI_TOKEN" }
    },
    {
      "id": "dev-code",
      "name": "コード支援サーバー",
      "category": "dev",
      "baseUrl": "{BASE_URL}/api/dev/code/v1",
      "endpoints": {
        "analyze": "/analyze",
        "refactor": "/refactor"
      },
      "auth": { "type": "bearer", "env": "KAMUI_TOKEN" }
    },
    {
      "id": "biz-translate",
      "name": "翻訳サーバー",
      "category": "biz",
      "baseUrl": "{BASE_URL}/api/biz/translate/v1",
      "endpoints": {
        "translate": "/translate"
      },
      "auth": { "type": "apiKey", "header": "x-api-key", "env": "KAMUI_API_KEY" }
    }
  ]
}
        

配布形態: リポジトリ内の mcp/config.json を固定パスで公開し、クライアントからURL指定で読み込み可能にします。

クライアント別サンプル(MCP設定JSON)

各クライアントでMCPサーバーの記述方法や配置パスが異なります。以下は代表的な例です(カードをクリックするとJSONを表示)。

12. パッケージング指針

  • 単一ファイル: mcp/config.json に全サーバーを集約(推奨)。
  • 分割構成: 領域別(creative/dev/biz)JSONを用意し、ビルドで結合。
  • バージョン付与: servers[].version などで互換性を明示。
  • 配布: GitHub Release/Pages で静的配布。改訂履歴をCHANGELOGに記録。

13. デプロイ(GitHub Pages / Cloudflare)

  • GitHub Pages: 本ファイル index.html をリポジトリ直下に配置 → Settings → Pages → Branch を main / docs に設定。
  • 独自ドメイン: Pages の Custom domain を設定。必要なら Cloudflare DNS に A/AAAA/CNAME を追加。
  • Cloudflare: Pages/Workers のいずれでも静的配信可。キャッシュTTL・圧縮を有効化。
  • セキュリティ: HTTPS 強制、適切なキャッシュ制御(HTMLは短め、画像は長め)。
flowchart LR subgraph "開発" A[ローカル開発] --> B[Git コミット] B --> C[GitHub へプッシュ] end subgraph "CI/CD パイプライン" C --> D[GitHub Actions] D --> E{テスト成功?} E -->|はい| F[静的ファイルビルド] E -->|いいえ| G[問題修正] G --> B end subgraph "デプロイ" F --> H[GitHub Pages] F --> I[Cloudflare Pages] H --> J["docs.{BASE_URL}"] I --> K["{BASE_URL}"] end subgraph "CDN/配信" J --> L[グローバル CDN] K --> L L --> M[エンドユーザー] end style D fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff style M fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff
図: デプロイメントパイプライン

14. 運用・保守

  • サーバー追加・改廃時は catalogmcp/config.json を同時更新。
  • 非互換変更は /v{major} を上げ、旧版を一定期間並行運用。
  • 秘密情報はリポジトリに含めず、クライアント側で環境変数参照。
flowchart LR subgraph "監視" M1[ヘルスチェック] --> M2{ステータスOK?} M2 -->|はい| M3[メトリクス記録] M2 -->|いいえ| M4[チームへ通知] end subgraph "インシデント対応" M4 --> I1[問題診断] I1 --> I2{緊急度?} I2 -->|高| I3[即座に修正] I2 -->|低| I4[修正予定] I3 --> I5[ホットフィックスデプロイ] I4 --> I6[更新計画] end subgraph "メンテナンス" I6 --> U1[サービス更新] U1 --> U2[変更テスト] U2 --> U3[ステージングデプロイ] U3 --> U4{テスト成功?} U4 -->|はい| U5[本番デプロイ] U4 -->|いいえ| U6[ロールバック] I5 --> U5 end style M1 fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff
図: 運用監視とインシデント対応フロー
flowchart LR A[新規サービス要求] --> B[API評価] B --> C{互換性あり?} C -->|いいえ| D[アダプター作成] C -->|はい| E[エンドポイント定義] D --> E E --> F[config.json更新] F --> G[カタログ追加] G --> H[テスト作成] H --> I[ステージングデプロイ] I --> J[統合テスト] J --> K{成功?} K -->|いいえ| L[問題修正] L --> H K -->|はい| M[本番デプロイ] M --> N[ドキュメント更新] N --> O[ユーザー通知] style A fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff style O fill:#4a9eff,stroke:#2563eb,stroke-width:2px,color:#fff
図: 新規サービス追加ワークフロー

15. 受入基準

  • 左の目次から全セクションへ遷移できること。
  • カード/コード/JSON がレイアウト崩れなく表示されること(黒/白)。
  • mcp/config.json サンプルがバリデーションを通ること(形式)。
  • GitHub Pages で正しく公開・閲覧できること。

16. 付録

プレースホルダ({BASE_URL}、<TOKEN> など)は環境に合わせて置換してください。実エンドポイント/仕様は導入時の合意に基づき最新へ更新します。