HTML Publisher

ChatGPTなどで生成した単一HTMLファイルをAPI経由で公開し、URLを取得できます。 保存先は GCS で、永続モード と 揮発モード(最終アクセスから一定時間で自動削除) の2種類。

Authentication

APIキーは ?key=... クエリ または x-api-key ヘッダで提示します。

状態挙動
認証済み永続/揮発どちらも作成可能。永続モードの更新・一覧は、そのキーで作成したツールのみ
匿名(キー未提示)既定では作成・更新は 401(閲覧のみ)。サーバーが ALLOW_ANONYMOUS_WRITE=true なら揮発モード強制で作成・更新でき、ephemeral 指定は無視され常に揮発。永続モードの更新は 403
拒否(キー不正)全リクエスト 401

API Reference

GET /api/tools

APIキー必須。そのキーで作成した永続モードのツールを、更新日時の新しい順に取得します(最大10件)。揮発モード(ID が e- で始まる)はプライバシー保護のため一覧に含まれません。

[
  {
    "id": "abc123...",
    "name": "コンパスアプリ",
    "memo": "方位を表示",
    "trust": true,
    "url": "https://your-domain.com/tool-trust/abc123...",
    "updatedAt": "2024-01-15T12:00:00Z",
    "mode": "persistent"
  }
]

POST /api/tools

HTMLを登録し、公開URLを取得します。

{
  "html": "<!DOCTYPE html>...",
  "name": "ツール名",      // 任意
  "memo": "変更メモ",      // 任意
  "trust": false,         // 任意: trueでlocalStorage等を許可
  "ephemeral": false      // 任意: trueで揮発モード(自動削除)
}

Response:

{
  "id": "abc123...",                  // 揮発モードは "e-" プレフィックス
  "url": "https://your-domain.com/tool/abc123...",
  "trust": false,
  "mode": "persistent"                // "persistent" | "ephemeral"
}

GET /api/tools/:id

登録済みHTMLの情報を取得します。永続/揮発のID形式から自動判別します。

{
  "id": "abc123...",
  "html": "<!DOCTYPE html>...",
  "url": "https://your-domain.com/tool/abc123...",
  "name": "ツール名",
  "memo": "変更メモ",
  "trust": false,
  "mode": "persistent",
  "updatedAt": "2024-01-15T12:00:00Z"
}

PUT /api/tools/:id

既存ツールのHTMLを上書き更新します。匿名アクセス時は揮発モード(e- で始まるID)のみ更新可能。永続モードの更新は 403(別のキーで作成したツールも 403)、同時に更新された場合は 409 を返します。

{
  "html": "<!DOCTYPE html>...",
  "name": "ツール名",      // 任意
  "memo": "変更メモ",      // 任意
  "trust": true           // 任意: URLパスが変わる
}

GET /api/qr/:id

ツール公開URLのQRコードをPNG画像で返します。?size=300でサイズ指定(100-500、デフォルト300)。

GET /api/openapi

OpenAPI仕様を取得します。ChatGPT Actions等で利用可能。?format=jsonでJSON形式。

Viewer

/tool/:id通常モード - iframe sandbox内で表示
/tool-trust/:id信頼モード - localStorage等が使用可能
/qr/:id共有用QRコードを中央に表示するページ(?size=でサイズ指定可)

MCP Server

Claude、Cursor等のAIエージェントから直接利用可能。 APIキー無しでも接続できますが、揮発モードのみ書き込み可能になります。

{
  "mcpServers": {
    "html-publisher": {
      "url": "https://your-domain.com/api/mcp/mcp?key=your-api-key"
    }
  }
}

提供ツール: how_to_use get_status security_check create_tool get_tool update_tool update_tool_meta list_recent_tools get_qr_code

まず how_to_use を呼ぶと、現在の認証状態と利用可能な操作が冒頭に含まれた使い方ガイドが返ります。