SDK と MCP

SDK と MCP

8 つの公式言語 SDK(Node、Python、Go、Rust、Ruby、PHP、Swift、Kotlin)に加えて AI エージェント用の MCP サーバー — インストールパス、パッケージマネージャーへのリンク、スタックごとのクイックスタートスニペット。

最終更新:

FloopFloop SDKs & MCP

FloopFloop は8 つの公式言語 SDK と AI エージェント向けのMCP サーバーを提供しています。すべての API は同じ/api/v1/*バックエンドを対象としています — Node SDK で 作成したプロジェクトは、MCP 経由で動作する LLM が見るものと完全に同じです。

スタックに合ったものを選んでください:

  • アプリやバックエンドを構築する場合: お使いの言語の SDK を使用してください。
  • AI エージェントやチャットボットを構築する場合: Claude Desktop、Cursor、Zed、Copilot CLI、またはその他の MCP 対応ホストで @floopfloop/mcp サーバーを使用してください。
  • ターミナルから操作する場合: FloopFloop CLI を使用してください。

MCP サーバー — AI エージェント向け

@floopfloop/mcp— Model Context Protocol サーバー。FloopFloop API を 23 のツールとしてラップし、 MCP 対応の LLM ホストから呼び出せます。

ツールはプロジェクトのライフサイクル全体をカバーしています:create_project refine_projectupload_from_path(添付ファイル)、cancel_project reactivate_projectwait_for_live list_secrets / set_secret / remove_secretlist_library_projects / clone_library_project current_subscriptionusage_summary、さらに サブドメイン確認と API キー管理。各ツールは読み取り専用かdestructiveHint でマークされており、状態を変更する前にホストが ユーザーに確認を促せます。

Claude Desktop 設定スニペット

{
  "mcpServers": {
    "floopfloop": {
      "command": "npx",
      "args": ["-y", "@floopfloop/mcp"],
      "env": { "FLOOP_API_KEY": "flp_..." }
    }
  }
}

~/Library/Application Support/Claude/claude_desktop_config.json (macOS)または %APPDATA%\Claude\claude_desktop_config.json(Windows)に 追加し、Claude Desktop を再起動して、“FloopFloop で <X> のサイトを作って” と尋ねてください。

プレイブックのために floop-skills と組み合わせる

MCP は機能を公開します。floop-skills は Anthropic スタイルのマークダウンスキルを提供し、ワークフロー — どのツールをどの順番で、どの引数で呼ぶか — を説明します。 最良のエージェント体験のために両方をインストールしてください:

mkdir -p ~/.claude/skills
git clone https://github.com/FloopFloopAI/floop-skills.git /tmp/floop-skills
cp -r /tmp/floop-skills/skills/* ~/.claude/skills/

リンク: npm · GitHub · floop-skills

言語 SDK

8 つすべてで同じ API を提供:client.projects.create() refinewaitForLive / ストリーミング、 secretsuploadslibrary apiKeyssubscriptions.current usage.summarysubdomains user.me。各 SDK は言語固有のイディオム(Python では同期 + 非同期、 Kotlin では Flow、Swift では AsyncThrowingStreamなど)で提供されますが、ワイヤーコントラクト — エラーコード、レスポンスエンベロープ、終端状態のセマンティクス — はすべて同一です。

Node / TypeScript — @floopfloop/sdk

Node 20 以上。ネイティブ fetch、完全な TypeScript 型、 ストリーミング用 AsyncIterator。標準 SDK であり、 MCP サーバーはこれを直接ラップしています。

npm install @floopfloop/sdk

import { FloopClient } from "@floopfloop/sdk";

const floop = new FloopClient({ apiKey: process.env.FLOOP_API_KEY! });
const { project } = await floop.projects.create({
  prompt: "a cat-cafe blog with three sample posts",
});
const live = await floop.projects.waitForLive(project.id);
console.log(live.url);

リンク: npm · GitHub · クックブック

Python — floopfloop

Python 3.10 以上。httpx.Client 上の同期 FloopClient httpx.AsyncClient 上の非同期 AsyncFloopClient— 同じ 9 つのリソースアクセサー、projects.stream 上の async for

pip install floopfloop

from floopfloop import FloopClient

floop = FloopClient(api_key=os.environ["FLOOP_API_KEY"])
created = floop.projects.create(prompt="a cat cafe landing page")
live = floop.projects.wait_for_live(created["project"]["id"])
print(live["url"])

リンク: PyPI · GitHub · クックブック

Go — github.com/FloopFloopAI/floop-go-sdk

Go 1.22 以上。慣用的な context.Context を第 1 引数に取り、 型付きコードフィールドを持つ *Error、チャネルフレンドリーな ストリーミング。

go get github.com/FloopFloopAI/floop-go-sdk@latest

client := floop.NewClient(os.Getenv("FLOOP_API_KEY"))
res, err := client.Projects.Create(ctx, floop.CreateProjectInput{
    Prompt: "a cat cafe landing page",
})
if err != nil { log.Fatal(err) }
live, err := client.Projects.WaitForLive(ctx, res.Project.ID, nil)
fmt.Println(live.URL)

リンク: pkg.go.dev · GitHub · クックブック

Rust — floopfloop

Rust 2021 / 1.75 以上。tokio ベースの非同期、クライアントの ビルダーパターン、型付き FloopErrorCode 列挙型、 すべてのメソッドで Result<T, FloopError>

# Cargo.toml
floopfloop = "0.1.0-alpha.4"

use floopfloop::{Client, CreateProjectInput};

let client = Client::new(std::env::var("FLOOP_API_KEY")?)?;
let res = client.projects().create(CreateProjectInput {
    prompt: "a cat cafe landing page".into(),
    ..Default::default()
}).await?;
let live = client.projects().wait_for_live(&res.project.id, None).await?;
println!("{}", live.url.unwrap_or_default());

リンク: crates.io · docs.rs · GitHub · クックブック

Ruby — floopfloop

Ruby 3.0 以上。Net::HTTP トランスポート、ハッシュベースのレスポンス (意見的な型付きラッパーなし)、ストリーミング用のブロック渡し。

gem install floopfloop

require "floopfloop"

client = FloopFloop::Client.new(api_key: ENV.fetch("FLOOP_API_KEY"))
res = client.projects.create(prompt: "a cat cafe landing page")
live = client.projects.wait_for_live(res["project"]["id"])
puts live["url"]

リンク: RubyGems · GitHub · クックブック

PHP — floopfloop/sdk

PHP 8.1 以上。純粋な stdlib トランスポート(ext-curl 不要)、 名前付き引数フレンドリーなコンストラクタ、型付きコードを持つFloopFloop\Error 例外クラス。

composer require floopfloop/sdk

$client = new FloopFloop\Client(apiKey: getenv('FLOOP_API_KEY'));
$res = $client->projects()->create(prompt: 'a cat cafe landing page');
$live = $client->projects()->waitForLive($res['project']['id']);
echo $live['url'];

リンク: Packagist · GitHub · クックブック

Swift — FloopFloop (SPM)

Swift 5.9 以上。全体を通じた async/awaitCodable 型、ストリーミング用 AsyncThrowingStream。 iOS 17+ / macOS 14+ / tvOS 17+ / watchOS 10+ / visionOS 1+ 対応。 サーバーサイド・デスクトップは現在対応済み。モバイルアプリ配布は バックエンドで異なる認証フローが必要です(ロードマップ)。

// Package.swift
.package(url: "https://github.com/FloopFloopAI/floop-swift-sdk.git", from: "0.1.0-alpha.2")

import FloopFloop

let client = FloopFloop(apiKey: ProcessInfo.processInfo.environment["FLOOP_API_KEY"]!)
let res = try await client.projects.create(.init(prompt: "a cat cafe landing page"))
let live = try await client.projects.waitForLive(res.project.id)
print(live.url ?? "")

リンク: SPM タグ · GitHub · クックブック

Kotlin / JVM — floop-kotlin-sdk

Kotlin 2.0 以上 / JVM 11 以上。OkHttp + kotlinx-serialization + kotlinx-coroutines。全体を通じた suspend 関数、 コールド Flow<StatusEvent> によるストリーミング。 JitPack 配布(Maven Central は予定)。

// build.gradle.kts
repositories {
    maven("https://jitpack.io")
}
dependencies {
    implementation("com.github.FloopFloopAI:floop-kotlin-sdk:0.1.0-alpha.3")
}

import com.floopfloop.sdk.FloopFloop
import com.floopfloop.sdk.resources.CreateProjectInput

val client = FloopFloop(apiKey = System.getenv("FLOOP_API_KEY"))
val res = client.projects.create(CreateProjectInput(prompt = "a cat cafe landing page"))
val live = client.projects.waitForLive(res.project.id)
println(live.url)

リンク: JitPack · GitHub · クックブック

API キー

すべての SDK は認証にプログラマティックな flp_… API キーを使用します。 これはインタラクティブなログインに使用する CLI のデバイストークンとは異なります。 API キーの発行には Business プランが必要です。アカウント → API キー からキーを 発行し、シークレットマネージャーや環境変数に保存して、SDK コンストラクタに渡してください。

キーモデル(スコープ、レート制限、ローテーションパターン)の詳細は API 認証をご覧ください。

ソース & リリース

8 つの SDK リポジトリすべてと MCP、スキルは github.com/FloopFloopAI に MIT ライセンスでオープンソース公開されています。 各リリースはタグプッシュ時に言語固有の標準レジストリ(npm、PyPI、crates.io、 RubyGems、Packagist、Go modules、JitPack、SPM タグ)に公開されます。 各 SDK の CHANGELOG は各リポジトリに、クロス SDK のリリース調整は モノレポで管理されています。