SDK's & MCP

SDK's en MCP

Acht officiële taal-SDK's (Node, Python, Go, Rust, Ruby, PHP, Swift, Kotlin) plus een MCP-server voor AI-agents — installatiepaden, links naar package managers en quickstart-snippets per stack.

Laatst bijgewerkt:

FloopFloop SDKs & MCP

FloopFloop levert acht officiële taal-SDK's plus een MCP-server voor AI-agents. Elk oppervlak richt zich op dezelfde /api/v1/*-backend — dus een project aangemaakt via de Node SDK is hetzelfde project dat een LLM via de MCP ziet, byte voor byte.

Kies het juiste oppervlak voor je stack:

  • Bouw je een app of backend? Gebruik de SDK voor jouw programmeertaal.
  • Bouw je een AI-agent of chatbot? Gebruik de @floopfloop/mcp-server met Claude Desktop, Cursor, Zed, Copilot CLI of een andere MCP-compatibele host.
  • Aansturen vanuit de terminal? Gebruik de FloopFloop CLI.

MCP-server — voor AI-agents

@floopfloop/mcp— Model Context Protocol-server. Verpakt de FloopFloop API als 23 tools die elke MCP-compatibele LLM-host kan aanroepen.

De tools bestrijken de volledige projectlevenscyclus: create_project, refine_project, upload_from_path(bijlagen), cancel_project, reactivate_project, wait_for_live, list_secrets / set_secret / remove_secret, list_library_projects / clone_library_project, current_subscription, usage_summary, plus subdomeincontroles en API-sleutelbeheer. Elke tool is alleen-lezen of gemarkeerd als destructiveHint zodat de host de gebruiker kan vragen om bevestiging voor het wijzigen van de status.

Claude Desktop-configuratiefragment

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

Voeg toe aan ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) of %APPDATA%\Claude\claude_desktop_config.json(Windows), herstart Claude Desktop en vraag: “bouw een FloopFloop-site voor <X>”.

Combineer met floop-skills voor het draaiboek

De MCP biedt de mogelijkheden; floop-skills levert drop-in Anthropic-stijl markdown-skills die de workflows uitleggen — welke tool wanneer te gebruiken, in welke volgorde en met welke argumenten. Installeer beide voor de beste agentervaring:

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

Links: npm · GitHub · floop-skills

Taal-SDK's

Hetzelfde oppervlak voor alle acht: client.projects.create(), refine, waitForLive / streaming, secrets, uploads, library, apiKeys, subscriptions.current, usage.summary, subdomains, user.me. Elke SDK volgt het native idioom van de taal (sync + async in Python, Flow in Kotlin, AsyncThrowingStreamin Swift, enz.) maar het wire-contract — foutcodes, respons-enveloppen, eindstatussemantiek — is identiek.

Node / TypeScript — @floopfloop/sdk

Node 20+. Native fetch, volledige TypeScript-types,AsyncIterator voor streaming. De canonieke SDK; de MCP-server verpakt deze direct.

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);

Links: npm · GitHub · cookbook

Python — floopfloop

Python 3.10+. Synchrone FloopClient op httpx.Client plus asynchrone AsyncFloopClient op httpx.AsyncClient — dezelfde negen resource-accessors, async for op projects.stream.

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"])

Links: PyPI · GitHub · cookbook

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

Go 1.22+. Idiomatisch context.Context als eerste argument, *Error met getypt codeveld, kanaalvriendelijke streaming.

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)

Links: pkg.go.dev · GitHub · cookbook

Rust — floopfloop

Rust 2021 / 1.75+. tokio-gebaseerde async, builder-patroon op de client, getypeerde FloopErrorCode-enum, Result<T, FloopError> op elke methode.

# 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());

Links: crates.io · docs.rs · GitHub · cookbook

Ruby — floopfloop

Ruby 3.0+. Net::HTTP-transport, op hashes gebaseerde responses (geen mening over getypeerde wrappers), block-passing voor streaming.

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"]

Links: RubyGems · GitHub · cookbook

PHP — floopfloop/sdk

PHP 8.1+. Puur stdlib-transport (geen ext-curl nodig), named-argument-vriendelijke constructor, FloopFloop\Error exception-klasse met getypeerde code.

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'];

Links: Packagist · GitHub · cookbook

Swift — FloopFloop (SPM)

Swift 5.9+. async/await door de hele SDK, Codable-types, AsyncThrowingStream voor streaming. iOS 17+ / macOS 14+ / tvOS 17+ / watchOS 10+ / visionOS 1+. Vandaag server-side / desktop; mobiele-appdistributie vereist een andere authenticatieflow op de backend (roadmap).

// 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 ?? "")

Links: SPM-tags · GitHub · cookbook

Kotlin / JVM — floop-kotlin-sdk

Kotlin 2.0+ / JVM 11+. OkHttp + kotlinx-serialization + kotlinx-coroutines. suspend-functies door de hele SDK; streaming via koude Flow<StatusEvent>. JitPack-distributie (Maven Central gepland).

// 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)

Links: JitPack · GitHub · cookbook

API-sleutels

Elke SDK gebruikt programmatische flp_… API-sleutels voor authenticatie, los van de apparaattokens die de CLI gebruikt voor interactieve logins. Het aanmaken van API-sleutels vereist het Business-plan. Maak een sleutel aan via Account → API-sleutels, sla hem op in je geheimenbeheerder / omgeving en geef hem door aan de SDK-constructor.

Zie API-authenticatie voor het volledige sleutelmodel (scopes, snelheidslimieten, rotatiepatroon).

Broncode & releases

Alle acht SDK-repositories plus de MCP en skills zijn open-source onder de MIT-licentie op github.com/FloopFloopAI. Elke release wordt naar het standaardregister van de taal gepubliceerd bij een tag-push (npm, PyPI, crates.io, RubyGems, Packagist, Go modules, JitPack, SPM-tags). Per-SDK CHANGELOG's in elk repository; cross-SDK releasecoördinatie wordt bijgehouden in de monorepo.