Model Context Protocol server for the FloopFloop API — lets Claude Desktop, Cursor, Zed, and any other MCP-aware LLM host build, poll, and refine FloopFloop projects on the user's behalf.
Wraps the official @floopfloop/sdk and exposes a curated subset of its surface as MCP tools.
| Tool | What it does |
|---|---|
list_projects |
List every project you have access to |
get_project |
Fetch a project by id or subdomain |
project_status |
Cheap status snapshot — safe to poll |
create_project |
Kick off a new build from a natural-language prompt |
refine_project |
Send a refinement message to an existing project |
wait_for_live |
Block until the project reaches a terminal state |
check_subdomain |
Is a given slug available? |
suggest_subdomain |
Generate a friendly slug from a prompt |
list_secrets |
List secret keys on a project (names only) |
set_secret |
Create/overwrite a project secret |
remove_secret |
Delete a project secret |
list_library_projects |
Browse the public project library |
clone_library_project |
Duplicate a library project into the user's account |
usage_summary |
Plan limits + current-period credit / build / storage usage |
list_api_keys |
List the user's API keys (never returns the raw secret) |
create_api_key |
Mint a new API key — raw secret returned ONCE |
remove_api_key |
Revoke an API key by id or name |
whoami |
Show the authenticated user |
Grab an API key: floop keys create mcp-host (via the floop CLI) or the dashboard → Account → API Keys. Business plan required to mint new keys.
The server reads FLOOP_API_KEY from the environment. Optionally override FLOOP_API_URL to point at staging.
~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %AppData%\Claude\claude_desktop_config.json (Windows):
{
"mcpServers": {
"floopfloop": {
"command": "npx",
"args": ["-y", "@floopfloop/mcp"],
"env": { "FLOOP_API_KEY": "flp_..." }
}
}
}Restart Claude Desktop; the tools show up under the 🔌 icon.
~/.cursor/mcp.json (or Cursor Settings → Tools & Integrations → MCP):
{
"mcpServers": {
"floopfloop": {
"command": "npx",
"args": ["-y", "@floopfloop/mcp"],
"env": { "FLOOP_API_KEY": "flp_..." }
}
}
}Any host that speaks the MCP stdio transport can run the server:
FLOOP_API_KEY=flp_... npx -y @floopfloop/mcpThe package is pulled in automatically via npx -y @floopfloop/mcp in the config snippets above. If you prefer a pinned install:
npm install -g @floopfloop/mcp
which floop-mcpcreate_projectstarts a build right away. Follow up withwait_for_live(blocks) orproject_status(poll) to know when it's up.wait_for_livedefaults to a 10-minute ceiling (bounded bytimeoutMs, capped at 30 min). Most builds finish in under two minutes.set_secret/remove_secretare markeddestructiveHint: true— hosts may ask the user to confirm before they run.list_secretsonly returns names, never values. Secret values cannot be retrieved once written; rotate them by re-setting.- On failure, tools return an MCP
isErrorcontent result rather than tearing down the session, so the host displays the error to the user.
git clone https://github.com/FloopFloopAI/floop-mcp.git
cd floop-mcp
npm install
npm run typecheck
npm run build
FLOOP_API_KEY=flp_... node dist/index.jsTo smoke-test the stdio handshake without an LLM host:
printf '%s\n' \
'{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
'{"jsonrpc":"2.0","method":"notifications/initialized"}' \
'{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
| FLOOP_API_KEY=flp_dummy node dist/index.js 2>/dev/null.github/workflows/release.yml publishes to npm with provenance whenever
a tag matching mcp-v* is pushed. One-time setup before the first
release:
- Create an automation npm token on the
@floopfloopscope (publishes bypass 2FA by design when tokens are marked automation). - Add it as the repo secret
NPM_TOKEN:gh secret set NPM_TOKEN --repo FloopFloopAI/floop-mcp # paste token when prompted — do NOT use --body, which can leak it to # shell history.
- Tag + push:
npm version 0.1.0-alpha.1 --no-git-tag-version # if needed git tag mcp-v$(node -p "require('./package.json').version") git push --follow-tags
The workflow typechecks, builds, runs the stdio smoke test, verifies the
tag matches package.json, then publishes and cuts a GitHub Release
(prerelease, auto-generated notes).
MIT