MCP server

MCP server

Connect any MCP client and drive Floom with 58 tools.

Overview

Floom is a Model Context Protocol (MCP) server. Point any MCP client — Claude Code, Cursor, Codex, Windsurf, Continue — at Floom and your assistant can run workers, read runs, edit the company brain, manage connections, and resolve approvals, all scoped to one workspace.

The server exposes 58 tools across 11 categories. Most tools wrap a REST endpoint, so the MCP surface stays close to the REST API. Secrets and tokens are automatically redacted from tool results.

Connect a client

The CLI writes the right config for your client. Install it once, then add Floom:

$ npm install -g @floomhq/floom
$ floom mcp install --target claude

Run floom login --cloud first so the server has a token. For clients that take a raw URL, point them at your workspace endpoint with a token header (see below). Verify any time with floom mcp test.

Transport & auth

Floom Cloud serves MCP over HTTP JSON-RPC at a per-workspace endpoint. Authenticate with a Bearer token — a personal/workspace API token is ideal because, unlike a session JWT, it does not expire and suits static client config.

MCP client config (generic)
{
  "mcpServers": {
    "floom": {
      "url": "https://workeros-api.floom.dev/mcp/<workspace_id>",
      "headers": { "Authorization": "Bearer <floom_token>" }
    }
  }
}
  • EndpointPOST https://workeros-api.floom.dev/mcp/{workspace_id}. The path’s workspace must match your token’s workspace.
  • AuthAuthorization: Bearer <token> (API token recommended; Supabase JWT also accepted).
  • Self-hosted — the OSS server runs over stdio (the floom-mcp binary) using x-floom-secret or x-floom-token.
Tip
floom mcp install fills in the URL, workspace, and token for you — reach for the raw config only when a client isn’t a supported target.

Tool annotations

Each tool carries standard MCP hints so clients can render and gate it appropriately:

  • readOnlyHint — the tool only reads (e.g. workers.list, runs.get).
  • destructiveHint — the tool deletes or irreversibly changes state (e.g. workers.delete).
  • idempotentHint — repeating the call with the same args is safe.
  • openWorldHint — the tool reaches external systems (e.g. running a worker, testing a connection).

Tool reference

58 tools, grouped by category. Names are the registered tool names; some clients render dots as underscores when they namespace tools (e.g. workers.listworkers_list).

Workers · 16

Create, inspect, edit, version, and run workers.

workers.listList all workers in the workspace.
No parameters.
workers.getGet one worker’s full record.
idstringrequired
Worker id.
workers.createCreate a worker from its source files.
worker_ymlstringrequired
The worker.yml contract (schema_version, name, title, version, exec, trigger …).
run_pystringrequired
Python source for run.py. Skill/agent workers pass a minimal stub.
skill_mdstring
Agent system prompt (SKILL.md) for skill/agent-mode workers.
workers.updateUpdate a worker’s settings (trigger, schedule, inputs, capabilities).
idstringrequired
Worker id.
trigger_typestring
manual | cron | webhook.
cron_exprstring
Cron expression for cron workers.
cron_timezonestring
IANA timezone for cron workers.
input_valuesobject
Saved default inputs.
capabilitiesobject
Capability/permission overrides.
webhook_secret_rotateboolean
Rotate the webhook secret.
workers.deleteDelete a worker.
idstringrequired
Worker id.
workers.runStart a manual run.
idstringrequired
Worker id.
inputsobject
Input values for the run. Default: {}.
trigger_sourcestring
Recorded trigger source. Default: manual.
workers.write_fileWrite or update worker files (must include worker.yml).
idstringrequired
Worker id.
filesarrayrequired
List of { path, content } entries.
workers.logsCross-run logs for a worker.
idstringrequired
Worker id.
levelstring
info | warning | error | debug.
sincestring
ISO-8601 lower bound.
limitnumber
Max log lines (1–1000). Default: 200.
workers.archiveArchive a worker (hidden from the active list, skips schedules).
idstringrequired
Worker id.
workers.restoreRestore an archived worker.
idstringrequired
Worker id.
workers.versionsList a worker’s versions.
idstringrequired
Worker id.
limitnumber
Max versions (1–100). Default: 50.
workers.rollbackRestore a worker to a previous version.
idstringrequired
Worker id.
version_idstringrequired
Target version.
workers.statsRun statistics for the last 7 days.
idstringrequired
Worker id.
workers.timeseriesDaily run counts and status breakdown.
idstringrequired
Worker id.
daysnumber
Window in days (1–90). Default: 30.
workers.sample_inputExample input values for a worker.
idstringrequired
Worker id.
workers.reloadReload workers from disk (self-hosted only).
No parameters.

Worker alerts · 3

Notify a webhook or email on worker events.

workers.alerts.listList a worker’s alerts.
idstringrequired
Worker id.
workers.alerts.createAdd an alert to a worker.
idstringrequired
Worker id.
onstring[]required
Events, e.g. ["failed", "approval_required"].
urlstring
Webhook URL to POST to.
email_tostring[]
Email recipients.
workers.alerts.deleteRemove a worker alert.
idstringrequired
Worker id.
alert_idstringrequired
Alert id.

Runs · 5

List runs, watch them stream, cancel, and replay.

runs.listList runs.
worker_idstring
Filter by worker.
statusstring
Filter by status.
limitnumber
Page size (1–500). Default: 50.
offsetnumber
Offset for pagination. Default: 0.
runs.getGet a run’s detail (status, outputs, logs, approvals).
idstringrequired
Run id.
runs.watchPoll a run until it reaches a terminal status (blocks up to timeout_ms; poll runs.get for longer waits).
idstringrequired
Run id.
timeout_msnumber
Max wait in ms (1000–30000; Cloud caps at 30s). Default: 30000.
runs.cancelCancel a queued or running run.
idstringrequired
Run id.
runs.replayReplay a completed or failed run.
worker_idstringrequired
Worker id.
run_idstringrequired
Run to replay.

Approvals · 3

Resolve runs that are paused for a human decision.

approvals.listList pending approvals.
limitnumber
Page size (1–200). Default: 50.
approvals.approveApprove a pending run.
run_idstringrequired
Run id.
commentstring
Optional note.
approvals.rejectReject a pending run.
run_idstringrequired
Run id.
commentstring
Optional reason.

Secrets · 4

Manage encrypted credentials referenced by name.

secrets.listList secret names and status (values redacted).
No parameters.
secrets.setCreate or update a secret.
keystringrequired
Secret name.
valuestringrequired
Secret value (write-only).
secrets.deleteDelete a secret.
keystringrequired
Secret name.
secrets.testVerify a secret exists and is reachable.
keystringrequired
Secret name.

Connections · 5

List app/MCP connections, register MCP servers, and check health.

connections.listList configured app and MCP connections.
No parameters.
connections.add_mcpRegister a custom MCP server as a connection.
labelstringrequired
Display label.
transportstring
streamable_http | sse | stdio. Default: streamable_http.
urlstring
Server URL (HTTP transports).
commandstring
Executable (stdio transport).
argsstring[]
Command arguments (stdio). Default: [].
envobject
Environment variables (stdio). Default: {}.
cwdstring
Working directory (stdio).
auth_secretstring
Bearer/auth secret for the server.
allowed_toolsstring[]
Restrict to these tool names (empty = all). Default: [].
connections.deleteRemove a connection.
connection_idstringrequired
Connection id.
connections.statusCheck a connection’s health/auth.
connection_idstringrequired
Connection id.
connections.testLive connectivity check (lists reachable tools).
connection_idstringrequired
Connection id.

Contexts (brain) · 9

Read and write the file packs workers draw on at run time.

contexts.listList context packs.
No parameters.
contexts.readRead a context file (UTF-8 inline, or metadata + download URL for binary).
namestringrequired
Context name.
pathstringrequired
File path within the pack.
contexts.writeCreate or update a UTF-8 text file.
namestringrequired
Context name.
pathstringrequired
File path.
contentstringrequired
File content.
contexts.uploadCreate or update a binary file (base64).
namestringrequired
Context name.
pathstringrequired
File path.
base64_bytesstringrequired
Base64-encoded bytes.
contexts.createCreate a context pack.
namestringrequired
Context name.
writeableboolean
Allow workers to write to it. Default: false.
sensitiveboolean
Mark as containing sensitive data. Default: true.
contexts.deleteDelete a context and its files.
namestringrequired
Context name.
forceboolean
Delete even if referenced. Default: false.
contexts.delete_fileDelete a single file from a context.
namestringrequired
Context name.
pathstringrequired
File path.
contexts.versionsList a context’s versions.
namestringrequired
Context name.
limitnumber
Max versions (1–100). Default: 50.
contexts.rollbackRestore a context to a previous version.
namestringrequired
Context name.
version_idstringrequired
Target version.

Workspace agent · 5

Talk to the workspace agent and manage its instructions.

workspace.chatSend a message to the workspace agent and get its reply + tool calls.
messagestringrequired
Your message.
conversation_idstring
Continue an existing conversation.
timeout_msnumber
Max wait for the reply. Default: 120000.
workspace.instructions.getRead the workspace agent’s system instructions.
No parameters.
workspace.instructions.setUpdate the workspace agent’s instructions.
contentstringrequired
New instructions.
workspace.versionsList instruction versions.
limitnumber
Max versions (1–100). Default: 20.
workspace.rollbackRestore instructions to a previous version.
version_idstringrequired
Target version.

Conversations · 2

Browse past workspace-agent conversations.

conversations.listList past conversations.
limitnumber
Max conversations (1–100). Default: 20.
conversations.getGet a conversation’s full message history.
idstringrequired
Conversation id.

Integrations & triggers · 2

Browse the catalog of apps, actions, and triggers.

integrations.catalogBrowse available integrations (apps, actions, triggers).
No parameters.
triggers.listList integration triggers.
worker_idstring
Scope to a worker’s connections.
appstring
Filter by app slug.

System · 4

Workspace-wide snapshots, stats, and platform info.

system.overviewFull dashboard snapshot (workers, runs, approvals, scheduler).
No parameters.
system.statsAggregate workspace statistics (last 7 days).
No parameters.
system.infoPlatform version, deployment mode, and feature flags.
No parameters.
system.alertsActive system-wide alerts.
No parameters.