mcpField
B
blink-backend

blink-backend

github.com/blink-new開発441 回インストール2 週間前に更新
リポジトリ

blink-backend について

blink-backendは、Blinkのバックエンドエンドポイントの構築とデプロイを支援するスキルです。Honoアプリの構成、シークレット、JWT検証、フロントエンドからの呼び出し、Webhookなどのサーバー側タスクを扱います。

主な機能

  1. 01Honoバックエンド構成のガイド
  2. 02バックエンド利用可否の確認
  3. 03シークレット管理のガイド
  4. 04JWTトークンの検証
  5. 05フロントエンドからの呼び出し例
  6. 06デプロイとエラーのトラブルシューティング

活用シーン

  1. 01Webhookエンドポイントの実装
  2. 02サードパーティコールバックの処理
  3. 03サーバーキーのフロントエンド露出防止
  4. 04Blinkバックエンドのデプロイ

MCP 対応

バックエンドの状態確認、デプロイ、ログ表示に使うMCPツールとして、`blink_backend_status`、`blink_backend_deploy`、`blink_backend_logs`が記載されています。

インストール

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

$npx skills add https://github.com/blink-new/blink-plugin --skill blink-backend

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

詳細

MCP ツール

blink_backend_status · blink_backend_deploy · blink_backend_logs

使用する場面

  • 認証、データベース、ストレージ、AI には SDK を優先してください(約 95% のケース)
  • 次の場合はバックエンドを使用してください:Webhook、サーバーサイドのシークレット、サードパーティのコールバック、負荷の高い処理
  • CRUD のためだけにバックエンドを作成しないでください。代わりに blink.db を使用してください

はじめに

# Check backend eligibility (Pro/Max/Team)
blink backend status

# Create the entry point
mkdir -p backend
# Write backend/index.ts (see below)

# Deploy
blink backend deploy

# View logs
blink backend logs

構成

backend/
├── index.ts          ← REQUIRED: export default Hono app
├── routes/
│   ├── stripe.ts
│   └── webhooks.ts
└── lib/
    └── auth.ts

backend/index.ts(必須のエントリーポイント)

import { Hono } from "hono"
import { cors } from "hono/cors"
import { createClient } from "@blinkdotnew/sdk"

const app = new Hono()
app.use("*", cors())

const getBlink = (env: Record<string, string>) =>
  createClient({
    projectId: env.BLINK_PROJECT_ID,
    secretKey: env.BLINK_SECRET_KEY,  // server key, not publishableKey
  })

app.get("/health", (c) => c.json({ ok: true }))

app.post("/api/example", async (c) => {
  const blink = getBlink(c.env as Record<string, string>)
  const body = await c.req.json()
  return c.json({ success: true })
})

export default app

シークレット

自動注入(ハードコードしないでください):BLINK_PROJECT_ID、BLINK_SECRET_KEY、BLINK_PUBLISHABLE_KEY

ユーザーシークレット(サードパーティのキー):プロジェクト設定または CLI から追加し、c.env.MY_SECRET としてアクセスします。

JWT の検証

app.post("/api/protected", async (c) => {
  const blink = getBlink(c.env as Record<string, string>)
  const auth = await blink.auth.verifyToken(c.req.header("Authorization"))
  if (!auth.valid) return c.json({ error: auth.error }, 401)
  return c.json({ userId: auth.userId })
})

フロントエンドからの呼び出し

// Direct fetch
const res = await fetch("https://{projectId8}.backend.blink.new/api/example", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({ key: "value" }),
})

// Via SDK
const data = await blink.functions.invoke("api/example", { body: { key: "value" } })

projectId8 = 完全なプロジェクト ID の末尾 8 文字です。

デプロイのフロー

# 1. Check eligibility
blink backend status

# 2. Write backend/index.ts

# 3. Deploy (reads all backend/ files, bundles with esbuild, deploys to CF Workers)
blink backend deploy

# 4. URL is printed: https://{projectId8}.backend.blink.new

よくあるエラー

エラー原因修正
BACKEND_REQUIRES_PROFree/Starter ワークスペースPro 以上にアップグレードする
MISSING_ENTRYPOINTbackend/index.ts がないexport default app で作成する
CORS エラーミドルウェアがないapp.use("*", cors()) を追加する
blink-apis で 401キーが間違っているpublishableKey ではなく secretKey を使用する

チェックリスト

  • backend/index.ts が default app をエクスポートしている
  • app.use("*", cors()) がある
  • createClient で secretKey を使用している(publishableKey ではない)
  • blink backend deploy でデプロイしている
  • すべての外部 fetch() 呼び出しに AbortController のタイムアウトを設定している

コメント