SDKs y MCP
SDKs y MCP
Ocho SDKs oficiales de lenguaje (Node, Python, Go, Rust, Ruby, PHP, Swift, Kotlin) más un servidor MCP para agentes de IA — rutas de instalación, enlaces a gestores de paquetes y snippets de inicio rápido por stack.
Última actualización:
FloopFloop SDKs & MCP
FloopFloop incluye ocho SDKs de lenguajes oficiales más un servidor MCP para agentes de IA. Cada superficie apunta al mismo backend /api/v1/*— así que un proyecto creado mediante el SDK de Node es el mismo proyecto que un LLM que use el MCP verá, byte a byte.
Elige la superficie adecuada para tu stack:
- ¿Construyendo una aplicación o backend? Usa el SDK de tu lenguaje.
- ¿Construyendo un agente de IA / chatbot? Usa el servidor
@floopfloop/mcpcon Claude Desktop, Cursor, Zed, Copilot CLI o cualquier host compatible con MCP. - ¿Trabajando desde la terminal? Usa el FloopFloop CLI.
Servidor MCP — para agentes de IA
@floopfloop/mcp— servidor de Model Context Protocol. Envuelve la API de FloopFloop como 23 herramientas que cualquier host LLM compatible con MCP puede llamar.
Las herramientas cubren el ciclo de vida completo del proyecto: create_project, refine_project, upload_from_path(archivos adjuntos), cancel_project, reactivate_project, wait_for_live, list_secrets / set_secret / remove_secret, list_library_projects / clone_library_project, current_subscription, usage_summary, además de comprobaciones de subdominio y gestión de claves de API. Cada herramienta es de solo lectura o está marcada como destructiveHint para que el host pueda solicitar confirmación al usuario antes de modificar el estado.
Fragmento de configuración para Claude Desktop
{
"mcpServers": {
"floopfloop": {
"command": "npx",
"args": ["-y", "@floopfloop/mcp"],
"env": { "FLOOP_API_KEY": "flp_..." }
}
}
}Añade esto a ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) o %APPDATA%\Claude\claude_desktop_config.json(Windows), reinicia Claude Desktop y pregunta “build me a FloopFloop site for <X>”.
Combínalo con floop-skills para el manual de uso
El MCP expone las capacidades; floop-skills incluye skills de markdown al estilo Anthropic que explican los flujos de trabajo — cuándo llamar a cada herramienta, en qué orden y con qué argumentos. Instala ambos para la mejor experiencia con agentes:
mkdir -p ~/.claude/skills
git clone https://github.com/FloopFloopAI/floop-skills.git /tmp/floop-skills
cp -r /tmp/floop-skills/skills/* ~/.claude/skills/Enlaces: npm · GitHub · floop-skills
SDKs de lenguajes
La misma superficie en los ocho: client.projects.create(), refine, waitForLive / streaming, secrets, uploads, library, apiKeys, subscriptions.current, usage.summary, subdomains, user.me. Cada SDK sigue el estilo nativo de su lenguaje (sync + async en Python, Flow en Kotlin, AsyncThrowingStreamen Swift, etc.) pero el contrato de red — códigos de error, envoltorios de respuesta, semántica de estados terminales — es idéntico.
Node / TypeScript — @floopfloop/sdk
Node 20+. fetch nativo, tipos TypeScript completos,AsyncIterator para streaming. El SDK canónico; el servidor MCP envuelve este directamente.
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);Enlaces: npm · GitHub · cookbook
Python — floopfloop
Python 3.10+. FloopClient síncrono sobre httpx.Client más AsyncFloopClient asíncrono sobre httpx.AsyncClient — los mismos nueve accesores de recursos, async for en 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"])Enlaces: PyPI · GitHub · cookbook
Go — github.com/FloopFloopAI/floop-go-sdk
Go 1.22+. Primer argumento idiomático context.Context, *Error con campo de código tipado, streaming compatible con canales.
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)Enlaces: pkg.go.dev · GitHub · cookbook
Rust — floopfloop
Rust 2021 / 1.75+. Async basado en tokio, patrón builder en el cliente, enum tipado FloopErrorCode, Result<T, FloopError> en cada método.
# 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());Enlaces: crates.io · docs.rs · GitHub · cookbook
Ruby — floopfloop
Ruby 3.0+. Transporte Net::HTTP, respuestas basadas en hashes (sin wrappers tipados dogmáticos), paso de bloques para 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"]Enlaces: RubyGems · GitHub · cookbook
PHP — floopfloop/sdk
PHP 8.1+. Transporte de stdlib puro (no se necesita ext-curl), constructor compatible con argumentos nombrados, clase de excepción FloopFloop\Error con código tipado.
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'];Enlaces: Packagist · GitHub · cookbook
Swift — FloopFloop (SPM)
Swift 5.9+. async/await en todo momento, tipos Codable, AsyncThrowingStream para streaming. iOS 17+ / macOS 14+ / tvOS 17+ / watchOS 10+ / visionOS 1+. Lado del servidor / escritorio hoy; la distribución en apps móviles requiere un flujo de autenticación diferente en el 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 ?? "")Enlaces: SPM tags · GitHub · cookbook
Kotlin / JVM — floop-kotlin-sdk
Kotlin 2.0+ / JVM 11+. OkHttp + kotlinx-serialization + kotlinx-coroutines. Funciones suspend en todas partes; streaming mediante Flow<StatusEvent> frío. Distribución mediante JitPack (Maven Central planificado).
// 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)Claves de API
Todos los SDKs usan claves de API programáticas flp_… para la autenticación, distintas de los tokens de dispositivo que el CLI usa para los inicios de sesión interactivos. La emisión de claves de API requiere el plan Business. Genera una clave desde Cuenta → Claves de API, guárdala en tu gestor de secretos / entorno y pásala al constructor del SDK.
Consulta Autenticación de API para conocer el modelo completo de claves (scopes, límites de tasa, patrón de rotación).
Código fuente & versiones
Los ocho repositorios de SDK más el MCP y las skills son de código abierto bajo la licencia MIT en github.com/FloopFloopAI. Cada versión se publica en el registro estándar de su lenguaje al hacer push de una etiqueta (npm, PyPI, crates.io, RubyGems, Packagist, módulos de Go, JitPack, SPM tags). Los CHANGELOGs por SDK están en cada repositorio; la coordinación de versiones entre SDKs se gestiona en el monorepo.