Ruflo

Agent swarms with shared vector memory and task routing for Claude Code and other MCP clients

By rUv (individual) JavaScript Local · stdio AI and MLKnowledge and memoryDeveloper tools

89 popularity score ★ 81k ↓ 87k/wk

Connect your client

Local (npm)

Add in one click

Opens the app, which asks before it adds the server.

Or add it by command or config

Claude CodeTerminal
claude mcp add ruflo -- npx -y ruflo@latest mcp start
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "ruflo": {
      "command": "npx",
      "args": [
        "-y",
        "ruflo@latest",
        "mcp",
        "start"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "ruflo": {
      "command": "npx",
      "args": [
        "-y",
        "ruflo@latest",
        "mcp",
        "start"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "ruflo": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "ruflo@latest",
        "mcp",
        "start"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.ruflo]
command = "npx"
args = ["-y", "ruflo@latest", "mcp", "start"]
Gemini CLITerminal
gemini mcp add --scope user ruflo npx -- -y ruflo@latest mcp start

Settings 8

CLAUDE_FLOW_MCP_TOOLS Optional: Comma-separated tool names, categories or prefixes to advertise. The --tools flag overrides it. Default all.
ANTHROPIC_API_KEY secret Optional: Anthropic key for agents that call Claude. CLAUDE_API_KEY is read as a fallback. For agent_execute, managed_agent_*.
RUFLO_MCP_HTTP_TOKEN secret Optional: Bearer token of 16+ characters that HTTP clients must send. Needed for a non-loopback --host. For HTTP transport.
RUFLO_MCP_ALLOW_UNAUTHENTICATED_HTTP Optional: Set to 1 to allow a non-loopback bind without a token. For HTTP transport.
CLAUDE_FLOW_MCP_TRANSPORT Optional: Transport to report and use: stdio, http or websocket. Default stdio.
CLAUDE_FLOW_HTTP_FETCH_ALLOW_AUTH Optional: Set to 1 to let http_fetch send Authorization, Cookie and X-Auth headers. For http_fetch.
RUFLO_X_ADMIN_TOKEN secret Optional: Admin token for writes made as the federation gateway. For x_federation_publish.
CLAUDE_FLOW_STRICT_GUARDRAIL Optional: Set to true to turn on the strict tool-loop guardrail.

What it does

Ruflo, from rUv (ruvnet), is an orchestration layer that sits around Claude Code or another MCP client. You get tracked agents you can spawn, swarms with a chosen topology, a task board, a SQLite-backed memory that is searched by meaning, pattern learning from finished work, and federation between installations on different machines.

The MCP server is the `mcp start` subcommand of the ruflo CLI. The npm package is a thin wrapper that loads @claude-flow/cli, which registers all tools in one table in src/mcp-client.ts. The README counts 406 tools, and the registry at the released tag comes to about the same. Not everything is coordination state, though. terminal_execute runs shell commands on your machine, hooks_fast-apply patches files in the project, the github_* tools call the gh CLI, and http_fetch makes outbound requests. agent_execute and the managed_agent_* tools call the Anthropic API with your key.

You can cut down what a client sees with `--tools` or CLAUDE_FLOW_MCP_TOOLS. Either one takes exact tool names or prefixes such as `memory`. Only the advertised list shrinks, and the full set stays registered underneath.

In Claude Code the README's main route is the plugin marketplace (ruflo-core is the one that carries the server). From a terminal on Claude Code 2.1.292 or later, `claude plugin install ruflo-core@ruflo --marketplace ruvnet/ruflo` does it in one step. ruflo-core registers the same MCP server, and its tools then appear under the mcp__plugin_ruflo-core_ruflo__ prefix. Further plugins in the repository connect to outside services, for example a ChatGPT federation publisher or swarm agents running on ruOS cloud desktops. They are installed on their own and are not part of the npm server.

What it needs

RuntimeNode.js 20+
Runs onmacOS, Windows, Linux
Anthropic APIPaid planOnly for agent_execute and the managed_agent_* tools. The managed agents also need Claude Managed Agents beta access.
Also
  • gh CLI on PATH for the github_* tools
  • agent-browser on PATH for the 23 browser_* automation tools

Coordination, memory and routing tools run without any key. Run `npx ruflo@latest init wizard` in the project first if you want the hooks and project files the README describes. Over HTTP, set RUFLO_MCP_HTTP_TOKEN (16 or more characters) so that clients must send a bearer token.

Limits

  • Limit The browser_* automation tools are only registered when the agent-browser program answers on PATH at startup.
  • Limit The HTTP transport binds to localhost:3000 by default and refuses a non-loopback --host unless RUFLO_MCP_HTTP_TOKEN is set or RUFLO_MCP_ALLOW_UNAUTHENTICATED_HTTP=1.
  • Rate limit Over HTTP the defaults allow 120 requests per IP and 50 per session per minute. Flags such as --rate-limit-per-ip change them.
  • Size cap http_fetch reads at most 256 KB of a response by default (1 MB cap) and times out after 30 s (60 s cap).
  • Not covered http_fetch blocks loopback, private and link-local addresses and strips Authorization or Cookie headers unless CLAUDE_FLOW_HTTP_FETCH_ALLOW_AUTH=1.
  • Not covered Over MCP only policy_evaluate and policy_status are exposed. Changing policies is left to the local CLI.
  • Limit x_federation_publish and the other gateway writes refuse to run until RUFLO_X_ADMIN_TOKEN is set.
  • Limit The --tools filter only hides tools from the advertised list. Every tool stays registered in the server.

Who it suits

A good fit for developers who already work in Claude Code or Codex and want several agents sharing memory, a task board and routing on their own machine. It runs locally, and it holds shell, file-edit and GitHub tools as well as the coordination ones, so expect a large tool list unless you trim it with --tools. If all you want is memory or a single integration, a smaller server with a short tool list will cost fewer tokens per request and asks less trust of you. It is a community project by rUv and is not published by Anthropic or OpenAI.

Tools 31 of 406

14 only read, 15 change things, 2 can delete or overwrite. A ? marks an optional parameter.

swarm_init changes
Start a swarm with a topology and an agent limit.topology?: stringmaxAgents?: numberstrategy?: stringconfig?: object
swarm_status
Report the state of the current swarm.
swarm_shutdown changes
Stop a swarm.
agent_spawn changes
Create a tracked agent of a given type, optionally in a swarm and with a model.agentType: stringagentId?: stringname?: stringswarmId?: stringmodel?: stringtask?: string
agent_execute changes
Send a prompt to a spawned agent through the Anthropic Messages API.agentId: stringprompt: stringsystemPrompt?: stringmaxTokens?: numbertemperature?: number
agent_list
List tracked agents.
agent_terminate changes
Stop a tracked agent.
task_create changes
Add a task with type, priority and assigned agents.type: stringdescription: stringpriority?: stringassignTo?: arraytags?: array
task_status
Look up one task.
memory_store changes
Save a value under a key with an embedding so it can be found by meaning later.key: stringvalue: anynamespace?: stringtags?: arrayttl?: numberupsert?: booleandbPath?: string
memory_search
Find stored entries by semantic similarity.query: stringnamespace?: stringlimit?: numberthreshold?: numbersmart?: booleandbPath?: string
memory_retrieve
Read one entry by key.
memory_delete deletes
Remove an entry by namespace and key.key: stringnamespace?: stringdbPath?: string
memory_export
Write memory entries out for backup or transfer.
neural_train changes
Train a local pattern model on supplied data.modelType: enummodelId?: stringepochs?: numberlearningRate?: numberdata?: object
neural_predict
Query a trained pattern model.
hooks_route
Suggest whether a task needs a codemod, a cheap model or a stronger one.task: stringcontext?: stringuseSemanticRouter?: boolean
hooks_fast-apply changes
Merge a rewritten code snippet into a project file, or into raw code passed in.edit: stringfile?: stringcode?: stringlanguage?: stringminConfidence?: numberdryRun?: boolean
terminal_execute deletes
Run a shell command in a stored terminal session and capture its output.command: stringsessionId?: stringtimeout?: numbercaptureOutput?: boolean
terminal_create changes
Open a terminal session with a working folder and environment.
aidefence_scan
Check text for prompt injection, jailbreak attempts and personal data.input: stringquick?: boolean
aidefence_has_pii
Tell whether text holds emails, ID numbers, keys or passwords.input: string
claims_claim changes
Mark an issue as taken by a person or an agent.issueId: stringclaimant: stringcontext?: stringttlMs?: number
claims_board
Show the board of claimed and open issues.
github_pr_manage changes
List, create, review, merge or close pull requests through the gh CLI.
github_repo_analyze
Summarise a repository's activity.
http_fetch
Make a GET, HEAD or POST request to a public URL with size and time caps.
x_federation_publish changes
Publish a signed message to the federation as the gateway, admin token needed.msgType: stringpayload: object
x_federation_roster
List members of the federation.
managed_agent_create changes
Start an Anthropic-hosted cloud agent session.
managed_agent_terminate changes
End a hosted cloud agent session.

Similar servers