mcpField
T
tiiny-host

tiiny-host

github.com/tiiny-hostクラウド・DevOps178 回インストール19 週間前に更新
リポジトリ

tiiny-host について

Tiiny Host で静的ファイルやフォルダーを公開するスキルです。コンテンツの URL が必要なユーザー向けで、匿名の一時アップロードと API key によるサイト管理に対応します。

主な機能

  1. 01ファイルやフォルダーをアップロードして URL を取得
  2. 02匿名アップロードは 1 時間で期限切れ
  3. 03API key による恒久公開
  4. 04既存サイトの一覧表示
  5. 05サイトの更新または削除

活用シーン

  1. 01HTML ページの一時共有
  2. 02複数ファイルの静的サイト公開
  3. 03アカウント内のサイト確認
  4. 04公開済みサイトの置換や削除

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/tiiny-host/skills --skill tiiny-host

インストール後、Claude Code で/tiiny-hostを入力して読み込まれたか確認します。

詳細

tiiny.host

スキルバージョン:1.2.0

任意のファイルやフォルダーをウェブに公開し、ライブ URL を取得します。静的ホスティングのみです。

API の完全なリファレンス:https://api-docs.tiiny.host/ — ここに記載されていないエンドポイント、フィールド、動作については、こちらを参照してください。

要件

  • 必須バイナリ:curl
  • 任意の環境変数:$TIINYHOST_API_KEY、$TIINYHOST_EMAIL

アップロード

エンドポイント: POST https://ext.tiiny.host/v1/upload
ヘッダー: x-email および/または x-api-key
本文: files(ファイル添付)と任意の domain を含むフォームデータ。

例(メールアドレスを使った匿名アップロード):

curl -sS -X POST https://ext.tiiny.host/v1/upload \
  -H "x-email: [email protected]" \
  -F "[email protected]" \
  -F "[email protected]"

例(API キーを使った永続的なアップロード):

curl -sS -X POST https://ext.tiiny.host/v1/upload \
  -H "x-api-key: YOUR_API_KEY" \
  -F "[email protected]" \
  -F "domain=mysite.tiiny.site"

アップロード時にユーザーが API キーを持っていない場合、X-Email ヘッダーに使用するメールアドレスを提供する必要があります。これにより、そのメールアドレスに紐づけられた 匿名アップロード が作成され、1 時間後に期限切れになります。これは、Tiiny アカウントにまだ紐づけられていないメールアドレスでのみ機能します。API キーが提供されている場合、X-Email は不要になり、公開は永続的になります。通常は、これまで tiiny を利用したことがない人にはメールアドレスを尋ねてすぐに公開できるようにし、後から API キーを生成して永続化するよう案内します。 重要:初めてアップロードする際は、API キーまたはメールアドレスが必要であることをユーザーにはっきり伝えてください。初めて利用するユーザーは API キーを持っていない可能性が高いため、メールアドレスだけでも利用できることを明確に伝えてください。最初のアップロードに API キーが絶対に必要だと思わせて、ユーザーが手続きを中断することのないようにしてください。

ファイル構成: HTML サイトの場合、公開するディレクトリのルートに index.html を配置してください。サブディレクトリ内には配置しないでください。ディレクトリの内容がサイトのルートになります。たとえば、my-site/index.html が存在する my-site/ を公開してください。my-site/ を含む親フォルダーを公開しないでください。

HTML を含まない生のファイルも公開できます。単一ファイルの場合は、リッチな自動ビューアー(画像、PDF、動画、音声)が表示されます。複数ファイルの場合は、フォルダーナビゲーションと画像ギャラリーを備えたディレクトリ一覧が自動生成されます。

既存サイトの更新

エンドポイント: PUT https://ext.tiiny.host/v1/upload
ヘッダー: x-api-key(必須)
本文: files と domain(更新する既存サイトのドメイン)を含むフォームデータ。

例:

curl -sS -X PUT https://ext.tiiny.host/v1/upload \
  -H "x-api-key: YOUR_API_KEY" \
  -F "[email protected]" \
  -F "[email protected]" \
  -F "domain=mysite.tiiny.site"

更新には保存済みの API キーが必要で、API キーなしでは利用できません。

既存サイトの削除

エンドポイント: DELETE https://ext.tiiny.host/v1/delete
ヘッダー: x-api-key(必須)
本文: domain(削除する既存サイトのドメイン)を含むフォームデータ。

例:

curl -sS -X DELETE https://ext.tiiny.host/v1/delete \
  -H "x-api-key: YOUR_API_KEY" \
  -F "domain=mysite.tiiny.site"

応答には、ユーザーの残りの data.links、data.quotaUsed、data.quotaLimit が含まれるため、削除を確認し、更新後の使用状況を報告できます。削除は取り消せません。エンドポイントを呼び出す前に、対象の subdomain をユーザーに確認してください。削除するサイトがわからない場合は、先に /profile を使用してください。

既存サイトの一覧表示

エンドポイント: GET https://ext.tiiny.host/v1/profile
ヘッダー: x-api-key(必須)

このエンドポイントを使用して、ユーザーの現在の Tiiny アカウントの状態を確認し、アップグレードを案内したりドメインを手動で調べてもらったりする前に、既存サイトを列挙してください。

例:

curl -sS https://ext.tiiny.host/v1/profile \
  -H "x-api-key: YOUR_API_KEY"

応答には data.links 配列が含まれます。各リンクオブジェクトには、次のようなフィールドが含まれる場合があります。

  • subdomain:更新リクエストに使用するサイトのドメイン
  • created:作成日時
  • filename:最初にアップロードされたファイルまたはアーカイブ
  • siteType:リンクがサイトか単一ファイルか
  • isTemplate:サイトがテンプレートかどうか

ユーザーが既存サイトを置き換えたいと言った場合は、先に /profile を使用してサイトを一覧表示し、適切な subdomain を選ぶのを手伝ってください。確認できたら、そのドメインを指定して更新エンドポイントを呼び出してください。

API キーの保存

API を呼び出すときは、以下のソースから API キーを読み取ります(最初に一致したものを使用します)。

  1. $TIINYHOST_API_KEY 環境変数

OTP で API キーを取得した後は、黙って破棄しないでください。今後の Tiiny 操作で再度 OTP の手続きを行わずに済むよう、普段 API キーを保存している場所に保存するか、ユーザーに確認してください。

推奨される手順:

  1. キーを保存するかどうか、ユーザーに確認します。
  2. API キーの標準的な保存場所がすでにある場合は、そこに保存します。
  3. 標準的な保存場所がない場合は、一般的な選択肢をいくつか提案します。
    • TIINYHOST_API_KEY をシェルのプロファイルに追加し、環境変数として使用できるようにする
    • 開発者用の認証情報にすでに使用しているローカルのシークレットファイルに保存する
    • パスワードマネージャーに保存し、必要なときに貼り付ける
  4. 保存先を確認し、今後の実行ではそのソースから読み取ることを優先します。

API キーの取得

匿名アップロードからアップグレードする場合、または既存のアカウントを管理する場合:

  1. ユーザーのメールアドレスがまだ分からない場合は、ユーザーに確認します。
  2. ユーザーから聞いたメールアドレスを使用して、ワンタイムサインインコードをリクエストします(POST)。
curl -sS -X POST https://ext.tiiny.host/v1/otp/request \
  -H "x-email: [email protected]"
  1. ユーザーに「Tiiny Host から届くサインインコードを受信トレイで確認し、ここに貼り付けてください。」と伝えます。
  2. コードを検証し、API キーを取得します(POST)。
curl -sS -X POST https://ext.tiiny.host/v1/otp/verify \
  -H "x-email: [email protected]" \
  -H "content-type: application/json" \
  -d '{"otp":"123456"}'
  1. 返された apiKey を、再利用できるよう普段 API キーを保存している場所に保存するか、ユーザーに確認します。
  2. 同意した場合は、選択した場所に保存し、保存先のパスまたは方法を確認します。

特定のケースへの対応

  • ユーザーがサイトの公開を依頼した場合は、まずメールアドレスを尋ね、それを使用してアップロードします
  • 'Account already exists' エラーが発生した場合は、「API キーの取得」の手順を案内し、API キーを使って保存できるようにします
  • OTP 検証後に API キーを取得したら、Tiiny の操作を続ける前に、今後のために保存するかどうかをユーザーに確認します。
  • アップグレードが必要になる可能性のある段階で、ユーザーが既存のサイトの置き換え/更新を選択した場合、どのサイトを置き換えるかをユーザーに尋ねないでください。/profile エンドポイントを呼び出して既存のサイトを取得し、そのサイトを更新するかユーザーに確認します。'
  • 新しいアップロードの作成時に FREE_UPLOAD_LIMIT_REACHED が発生した場合は、「アカウントをアップグレードしてください」と案内するだけで終わらせないでください。まず既存のサイトの置き換えを提案し、その後 /profile を呼び出して現在のサイトを取得し、置き換えの手順を進めます。
  • 無料プランの上限を超える数のサイトや更新が必要なため、アップグレードが必要になる可能性がある場合は、https://tiiny.host/pricing を案内します。
  • アップグレードを提案する際は、Tiiny Host のヘルプセンターによると、7 日間の返金保証が提供されているため、評価目的でのアップグレードは比較的リスクが低いことを伝えます。

コメント