Ruflo
Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.
Project memory for AI agents: read and keep the user's Listspace boards up to date.
Pick the AI app you use, then copy the settings.
Passed 5/5 checks · What you ask goes through the maker’s server (mcp.listspace.app)
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude · about 2 min
No key, nothing to install · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1
CustomizeConnectors
Copy each value into the field with the same name in Claude, then click Continue
Listspacehttps://mcp.listspace.appLeave Authentication as Claude detected it, then click Add
+ConnectorsListspace
Use Listspace and tell me what you can do for me, then show me one thing✓ If Claude says it is using Listspace or shows a Listspace tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with ChatGPT on business plans only
ChatGPT Business, Enterprise or Edu on the web, added by a workspace admin or owner · On Free, Plus or Pro: your ChatGPT plan cannot connect MCP yet
Plugins+Add custom MCP server
Enter a name, paste the address under Connection, tick the risk warning and click Create as a plugin
Listspacehttps://mcp.listspace.appStart a new chat and pick Listspace from your plugins before typing
Use Listspace and tell me what you can do for me, then show me one thing✓ If ChatGPT says it is using Listspace or shows a Listspace tool in the answer, you are connected
Menu names checked against OpenAI’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Claude Code · about 2 min
No key, nothing to install
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --transport http listspace https://mcp.listspace.appYou should see Listspace listed as connected
Use Listspace and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using Listspace or shows a Listspace tool in the answer, you are connected
Menu names checked against Anthropic’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with Cursor · about 2 min
No key, nothing to install
Use Listspace and tell me what you can do for me, then show me one thing✓ If Cursor says it is using Listspace or shows a Listspace tool in the answer, you are connected
Menu names checked against Cursor’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Works with VS Code · about 2 min
No key, nothing to install
Use Listspace and tell me what you can do for me, then show me one thing✓ If VS Code says it is using Listspace or shows a Listspace tool in the answer, you are connected
Menu names checked against VS Code’s help page on Nov 11, 2026 · your screen may differ slightly by app version
Other apps that use MCP, such as Windsurf, Zed or Gemini CLI, each add servers differently. See how in the app list.
Address for apps that connect over the web
https://mcp.listspace.appJSON settings are under “For developers” below
Claude Code
claude mcp add --transport http listspace https://mcp.listspace.appCursor (~/.cursor/mcp.json)
{
"mcpServers": {
"listspace": {
"url": "https://mcp.listspace.app"
}
}
}VS Code (mcp.json)
{
"servers": {
"listspace": {
"type": "http",
"url": "https://mcp.listspace.app"
}
}
}These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.
Based on how this server connects and on each app’s own docs, checked Nov 10, 2026.
Connect over the internet in
ClaudeChatGPTGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatOpen WebUIRaycast
The server asks you to sign in before it lists its tools.
We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 12, 2026
The registry name was verified against the domain listspace.app (the registry checks domain ownership)
Code last changed 13 days ago
Uses MIT
Responded in 863 ms (HTTP 401)
Declares OAuth sign-in, so your AI app can take you to log in
Not checked yet; we read the tool list when we check the endpoint
Ask, share a tip or report that it does not work. Sorted by what people marked helpful.
No posts yet. Be the first to ask or share.
Posts here are written by users, not the PopNx team.
No reviews yet
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 5 of 5 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.
The registry does not list a required key, though some servers ask you to sign in on first use.
It runs in the maker’s cloud. Connect over the internet with nothing to install, but what you send passes through the maker’s servers.
The GitHub repo last changed 13 days ago, and the latest version (2.0.0) reached the registry 35 days ago.
Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT Business and above.
In the same category: Ruflo, Context7, Metabase
Servers in the same category from other makers, sorted by stars.
Reading a card:↓ Downloads per weeki★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi
Agent teams, swarms, memory and hooks for Claude Code and Codex, served over MCP.
Feeds AI the latest docs for libraries and frameworks before it answers, so code it writes does not use outdated, removed functions.
Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.
The pieces that let an agent use a Listspace board as its project memory. This folder is public as github.com/listspace/agent, and the CLI is on npm as listspace. Install and sign in with:
npx listspace login # paste a personal token from Listspace: Settings > Your AI > API tokens
npx listspace boards
| Path | What it is |
|---|---|
skills/listspace/ | The skill: SKILL.md (the work loop) plus reference/ (tools, agent access, CLI), loaded only when needed. Follows the Agent Skills format, so npx skills add can install it. This is the source copy. |
cli/ | listspace, a small Node CLI for agents without the MCP server: short commands over the REST API (https://api.listspace.app/v1), and call for every MCP tool through the MCP server (https://mcp.listspace.app). TypeScript bundled into one ESM file, no runtime dependencies, Node 20 or later. |
claude-code-plugin/ | A Claude Code plugin: the skill (a copied file set) and .mcp.json, which registers the remote MCP server https://mcp.listspace.app. |
.claude-plugin/marketplace.json | A marketplace file listing the plugin, so this folder can be added as a local marketplace now and as a GitHub one later. |
AGENTS.md.snippet | Lines a user pastes into a repo's AGENTS.md or CLAUDE.md to point agents at the right board. |
scripts/ | sync-skill.mjs copies the skill into the plugin; check-agent.mjs (in CI) checks the copy, the frontmatter, the versions and the MCP entry. |
The MCP server is also listed in the MCP Registry as app.listspace/listspace and on Smithery.
Edit skills/listspace/ only, then run:
node agent/scripts/sync-skill.mjs
node agent/scripts/check-agent.mjs
The plugin gets a real copy, not a symlink, so the plugin folder still works when it is copied or downloaded on its own. CI fails when the two differ. Keep SKILL.md short: steps and rules there, detail in reference/.
One version runs through cli/package.json, cli/src/version.ts, plugin.json and the skill's metadata.version; the check fails when they differ.
cd agent/cli
npm ci npm run build node dist/listspace.mjs login # paste a token from Listspace: Settings > Your AI > API tokens node dist/listspace.mjs whoami node dist/listspace.mjs session " " node dist/listspace.mjs add " " ideas "Try dark mode" --description "Seen in settings"
npm link in agent/cli puts listspace on the PATH. LISTSPACE_TOKEN overrides the saved token for one run, and LISTSPACE_API_URL and LISTSPACE_MCP_URL point the CLI at another server. Every command takes --json. The token is saved in the OS config directory (%APPDATA%\listspace on Windows, ~/Library/Application Support/listspace on macOS, ~/.config/listspace elsewhere) as credentials.json, mode 600.
Tests: npm test (node:test with a fake fetch, no network). npm run typecheck runs the strict type check.
Any agent that reads Agent Skills:
npx skills add ./agent -s listspace # the skills CLI reads skills/ in a local folder
or copy agent/skills/listspace to ~/.claude/skills/listspace for Claude Code. Connect the MCP server separately (claude mcp add --transport http listspace https://mcp.listspace.app), or use the CLI above.
For one session:
claude --plugin-dir ./agent/claude-code-plugin
Or as a local marketplace, which keeps it installed:
claude plugin marketplace add ./agent
claude plugin install listspace@listspace
Then run /mcp, pick the listspace server and sign in (OAuth through Listspace). The skill shows up as /listspace:listspace and Claude loads it on its own when the project has a board. claude plugin validate ./agent/claude-code-plugin checks the manifest.
If you already added the Listspace MCP server yourself, Claude Code may show both; remove one.
The plugin also has a small check that runs at the end of each of Claude's turns (hooks/hooks.json, hooks/decision-check.mjs). When the user picks an option, says yes to a proposal or corrects a fact, and Claude records no decision in that turn, Claude is sent back once with one line: if it was a decision that affects future work, record it with record_decision as Proposed; otherwise end the turn without comment.
The rules lean to silence. A yes to an offer to act ("Want me to commit?" "yes"), a maybe, and a bug report or a place in the code ("no, it's still failing", "the bug is in the parser") are not decisions. A yes counts only when Claude's last message offered a choice or made a proposal (recommend, suggest, propose, options, which one, a lettered list).
stop_hook_active), so it cannot loop.; exit 0, so without Node.js the check does nothing and Claude Code shows no hook error (sh, Git Bash and PowerShell).CLAUDE_PLUGIN_DATA, readable only by the user) and removes them after a week. An ordinary prompt writes nothing. A prompt that reads like a decision leaves its first line, cut at 80 characters, for that turn only. Of Claude's last message it keeps only whether it offered a choice. Without the data folder the check does nothing.node --test agent/scripts/decision-check.test.mjs. check-agent.mjs checks hooks.json.A second check at the end of each turn (hooks/progress-check.mjs) keeps the board in step with the work. When a turn changed files (Edit, Write, MultiEdit, NotebookEdit), committed, pushed or merged with git, opened or merged a pull request with gh, or deployed, and Claude made no Listspace write after that work, Claude is sent back once with one line: "Update the Listspace board: what did you start or finish this turn? Move the item, add a short comment."
stop_hook_active), so it cannot loop.move_item, add_comment, complete_item, record_decision, capture and the rest); reads do not.; exit 0 rules as the decision check.node --test agent/scripts/progress-check.test.mjs.The board rules arrive with the Listspace server's instructions at the start of a session, and a long session, most of all one whose conversation was compacted, can lose them. hooks/board-hooks.mjs adds them back to Claude's context at the moments that matter. It only adds context: it never blocks anything and never changes a command or its output.
get_account and start_session, update the items in unfinished_from_last_sessions first, and keep the board current.compact): the board rule, and to call get_account (or start_session) before going on, since claimed_by_you and started_by_you list the items Claude was working on.gh pr create, gh pr merge or a deploy command that worked, one line says to move the matching item (to Doing for a new pull request, to Done after a merge or a deploy) and add a short comment.Listspace board: line (in the folder or one above it, up to the repository root), or in a session that used a Listspace tool (the progress check's note). From the file it takes only a link to a Listspace board, never other text.; exit 0 rules as the decision check.node --test agent/scripts/board-hooks.test.mjs.POST /auth/device), but the CLI does not use it yet. login already separates "how the token is obtained" from saving it; a TODO in cli/src/cli.ts marks where pairing goes. --token and a piped token stay for scripts..mcp.json has no headers on purpose. A token would ship to every user; sign-in through /mcp is per user. The check script refuses headers there.bin/): left out, because claude.ai and Cowork do not install plugins with a top-level bin/ and the MCP server covers Claude Code.listspace/agent holds this folder at its root, so npx skills add listspace/agent works.listspace (0.6.0). To release a new version: bump the one version (see "Editing the skill"), check the package contents with npm pack --dry-run, then npm publish from agent/cli with an npm account with 2FA. prepublishOnly runs the type check, tests and build..claude-plugin/marketplace.json), so users run /plugin marketplace add listspace/agent and /plugin install listspace@listspace. Listing in Anthropic's plugin directory is a separate submission; the owner decides on it, with privacy policy and terms URLs for that listing.Sources: Claude Code plugin manifest reference (https://code.claude.com/docs/en/plugins-reference), plugin loading and --plugin-dir (https://code.claude.com/docs/en/plugins/loading), marketplace reference (https://code.claude.com/docs/en/plugins/marketplace-reference), skills (https://code.claude.com/docs/en/skills), Agent Skills specification (https://agentskills.io/specification), the skills CLI (https://github.com/vercel-labs/skills), and Postiz's agent repo as the model (https://github.com/gitroomhq/postiz-agent).