Spree Commerce developer docs for AI agents
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Search, install and compose AI agent skills, loops and bundles from the LoopSkill marketplace.
Pick the AI app you use, then copy the settings.
Passed 3/5 checks · What you ask goes through the maker’s server (app.loopskill.io) · ✓ Commands checked Nov 13, 2026
First: which AI do you use?
Pick your app and the steps appear below.
Works with Claude · about 5 min
You need a LoopSkill key (create it on the maker’s site) · Set it up once on claude.ai or the desktop app, then use it in chat · free accounts can add 1 · on Team/Enterprise an Owner adds it
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
CustomizeConnectors
Copy each value into the field with the same name in Claude, then click Continue
LoopSkillhttps://app.loopskill.io/api/mcp/http/Under Request headers, add this name and value
x-api-key<paste your key here>Paste the key only into the app’s field, never into a chat or to anyone
Click Continue past the sign-in settings Claude detected · under Authentication choose what the maker says (Sign in now, Sign in when needed or No sign in), then click Add
+ConnectorsLoopSkill
Use LoopSkill and tell me what you can do for me, then show me one thing✓ If Claude says it is using LoopSkill or shows a LoopSkill 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
ChatGPT cannot connect LoopSkill yet
LoopSkill needs your own key to connect, but OpenAI’s help page only describes OAuth sign-in; there is no key option we could verify
A · Use an app that can connect LoopSkill
B · Others in Online shops & payments that work with ChatGPT
Picked from the most used in the same category, only ones that connect by address with no key
Works with Claude Code · about 5 min
You need a LoopSkill key (create it on the maker’s site)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
Mac: press Command+Space and type Terminal · Windows: open PowerShell
claude mcp add --transport http --scope user loopskill https://app.loopskill.io/api/mcp/http/ --header 'x-api-key: your-value'Replace “your-value” with your key before pressing Enter
Paste the key only into the app’s field, never into a chat or to anyone
You should see LoopSkill listed as connected
Use LoopSkill and tell me what you can do for me, then show me one thing✓ If Claude Code says it is using LoopSkill or shows a LoopSkill 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 5 min
You need a LoopSkill key (create it on the maker’s site)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
In the LoopSkill settings, x-api-key is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use LoopSkill and tell me what you can do for me, then show me one thing✓ If Cursor says it is using LoopSkill or shows a LoopSkill 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 5 min
You need a LoopSkill key (create it on the maker’s site)
Open the maker’s site, sign up and create an API key for the next step. Check the maker’s site for pricing and free plans.
In the LoopSkill settings, x-api-key is empty; add your key and save
Paste the key only into the app’s field, never into a chat or to anyone
Use LoopSkill and tell me what you can do for me, then show me one thing✓ If VS Code says it is using LoopSkill or shows a LoopSkill 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://app.loopskill.io/api/mcp/http/JSON settings are under “For developers” below
Claude Code
claude mcp add --transport http --scope user loopskill https://app.loopskill.io/api/mcp/http/ --header 'x-api-key: your-value'Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"loopskill": {
"url": "https://app.loopskill.io/api/mcp/http/",
"headers": {
"x-api-key": "your-value"
}
}
}
}VS Code (mcp.json)
{
"servers": {
"loopskill": {
"type": "http",
"url": "https://app.loopskill.io/api/mcp/http/",
"headers": {
"x-api-key": "your-value"
}
}
}
}Descriptions are as written by the maker.
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
ClaudeGooseLM 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 14, 2026
The registry name was verified with the GitHub account wisechef-ai, which owns the repo
Code last changed 2 days ago
Uses MPL-2.0
Refused access (HTTP 401) without offering OAuth sign-in. It may need a key, or it may be blocking bots; not confirmed.
Needs a key or token that you copy and paste yourself
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 3 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.
You need to fill in: x-api-key
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 2 days ago, and the latest version (0.9.65) reached the registry 34 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 on the web (full MCP on Business and above; Pro read-only).
In the same category: Spree Commerce developer docs for AI agents, Stripe MCP, Sessy — Amazon SES observability
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
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Stripe’s official server lets AI view and manage customers, products, payments and invoices. Connect to Stripe’s cloud and sign in with OAuth.
Read-only Amazon SES observability: search events, inspect bounces, pull delivery stats.
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.
A local CLI for skills you already have, plus a self-hostable registry to pull more from. Start with the CLI — it needs no account and makes no network call for import/diff.
Paste this into Claude Code, Codex, Cursor or any coding agent with a shell:
Clone https://github.com/wisechef-ai/loopskill-api, read AGENT_SETUP.md in it,
and follow it to install the loopskill CLI and verify it with the drift demo. Only set up the self-hosted registry (Docker) if I ask for it. Ask me before deleting any data, stopping containers or processes, using sudo, or writing into my real skill directories. Never paste API keys or tokens into this chat. When it works, show me the verify output and what to do next.
The agent will:
venv and the demo directory first, and stop on anything it would have to delete or overwrite;.venv and call it by path;The CLI above needs no key. The hosted registry's MCP endpoint (app.loopskill.io) does, and an agent can get a free one by itself, with no signup form. The enroller generates an Ed25519 key, signs the registration and saves the API key to ~/.config/loopskill/api_key (mode 600) without printing it. It needs bash, curl and OpenSSL 3, and works piped to sh or bash:
curl -fsSL https://app.loopskill.io/api/agents/enroll.sh | sh -s -- my-agent
export LOOPSKILL_API_KEY="$(cat ~/.config/loopskill/api_key)"
Read it first if you like: curl -fsSL https://app.loopskill.io/api/agents/enroll.sh | less. The signed-string protocol behind it is in /.well-known/agent.json (registration).
This is a literal, self-contained transcript. Paste every command below into a clean shell — it fabricates two fake "skill" installs, edits one and deletes the other to simulate drift, then diffs. You will get *exactly* this output; nothing here depends on skills you already have installed.
git clone https://github.com/wisechef-ai/loopskill-api && cd loopskill-api
python3 -m venv .venv && ./.venv/bin/pip install ./cli alias loopskill=./.venv/bin/loopskill # or add ./.venv/bin to PATH loopskill --version
mkdir -p /tmp/loopskill-demo/home/.claude/skills/agent-reach mkdir -p /tmp/loopskill-demo/home/.claude/skills/recipes cat > /tmp/loopskill-demo/home/.claude/skills/agent-reach/SKILL.md <<'EOF'
name: agent-reach description: Give your agent eyes on the internet.
Body v1. EOF cat > /tmp/loopskill-demo/home/.claude/skills/recipes/SKILL.md <<'EOF'
name: recipes description: Recipe search skill.
Body. EOF loopskill import --home /tmp/loopskill-demo/home -o /tmp/loopskill-demo/machine-a.lock.json
cat > /tmp/loopskill-demo/home/.claude/skills/agent-reach/SKILL.md <<'EOF'
name: agent-reach description: Give your agent eyes on the internet.
Body v2 — updated tool list. EOF rm -rf /tmp/loopskill-demo/home/.claude/skills/recipes
loopskill diff /tmp/loopskill-demo/machine-a.lock.json - --home /tmp/loopskill-demo/home
loopskill 0.3.0 loopskill import: wrote /tmp/loopskill-demo/machine-a.lock.json (2 skill(s) across 1 client(s)) loopskill diff: /tmp/loopskill-demo/machine-a.lock.json vs
[claude] DRIFT DETECTED
[codex] in sync (0 skill(s)) [cursor] in sync (0 skill(s)) [hermes] in sync (0 skill(s))
DRIFT FOUND
Exit code is 1 — drift found, script- and CI-friendly. Run loopskill diff again with nothing changed and exit code is 0. That's the whole pitch: two snapshots, one command, drift visible in the time it took to read this paragraph — on the skills you actually have, not a demo, once you drop --home.
import and diff make zero network calls — this isn't a promise in a docstring, it's a structural guarantee: the network-capable code lives in exactly one module (loopskill.pull) that import/diff never import, and cli/tests/test_loopskill_cli.py::test_import_and_diff_make_zero_network_calls proves it by breaking socket.socket for the duration of those commands.
Full CLI reference, lockfile format, and pull/apply (the two commands that DO touch the network, opt-in): [cli/README.md](cli/README.md).
Two things, and the CLI is the one to start with:
import/diff. Point it at any registry that serves the same well-known bundle-index shape for pull/apply, or never call those commands at all.pull/apply can optionally talk to, and that also serves a browsable catalog at loopskill.io. The registry is not the reason to start here — the CLI working on your own machine, before you've made an account, is.The registry also serves 10 vetted loops (scripts/seed_starter_catalog.py). POST /api/loops/{slug}/run is synchronous and works anywhere. Putting a loop on a *fleet member* so it fires on a schedule is a second path with two constraints worth knowing before you build on it:
scripts/loopskill-emit-run.sh. Nothing else observes a fire — not the scheduler, not the server. Omit that line and the loop runs forever while every dashboard shows zero. This is the reason loop_runs sat at 1 for a year.app/loop_apply.py writes the Hermes scheduler's ~/.hermes/cron/jobs.json, and nothing else speaks that format yet. On Codex, Claude or OpenCode hosts scripts/install-loop-apply.sh refuses rather than installing a cron that can never converge. The skill path is cross-vendor; the scheduled-loop path is not.Both are covered end to end in docs/SELF_HOST.md.
pull/apply against your own instance)git clone https://github.com/wisechef-ai/loopskill-api
cd loopskill-api && docker compose up
Zero-config: SQLite, auto-generated dev secrets, a seeded starter catalog. Your dev API key is printed on first boot. Full guide, including the Postgres/production path: [docs/SELF_HOST.md](docs/SELF_HOST.md).
Then run a loop — the runner is live (no LLM needed for verify-mode):
# the zero-config Docker Compose stack always boots with this dev key
curl -X POST localhost:8200/api/loops/hello-world-loop/run \ -H "x-api-key: rec_dev_wiserecipes_local_testing_key"
A fresh registry that doesn't just *list* a loop — it *executes* the loop's success check under enforced bounds and hands you a verdict.
349 app Python files, 85,567 lines of app code, 119 Alembic migrations, 513 test files (clean-checkout counts), 2 GitHub stars, 0 forks (measured 2026-08-21 via gh repo view wisechef-ai/loopskill-api --json stargazerCount,forkCount).
That ratio is real and it isn't a good one. Issue #68 asked about it; the honest answer — including why the codebase grew from a working recipe-search product's battle-tested auth/Stripe/sandbox stack rather than from a blank registry, and the concrete cuts committed as a result — is in docs/decisions/2026-08-11-bundles0811-p4-issue-68-codebase-size.md. Every number above is checked against a live filesystem measurement by tests/test_readme_claims.py on every run — it fails the build if this paragraph drifts from reality the way #68's original numbers did.
| Method | Path | Description |
|---|---|---|
GET | /api/healthz | DB health check |
GET | /api/skills/search | Full-text + vector hybrid skill search |
GET | /api/skills/{slug} | Skill detail + versions |
GET | /api/bundles/discover | Browse public bundles |
GET | /api/loops | List loops (with their safety contracts) |
GET | /api/loops/{slug} | Loop detail — contract, run count, rating |
POST | /api/loops | Publish a loop (validates the contract) |
POST | /api/loops/{slug}/run | Run the loop's verification → objective pass/fail |
POST | /api/loops/{slug}/rate | Rate a loop 1–5 (social-proof signal) |
GET | /api/personalities | List deployable personalities |
MCP-native: agents (Claude Code, Cursor, anything speaking MCP) discover and install over the protocol. There's also a signed-URL tarball path for direct fetch.
FastAPI + SQLAlchemy. The same alembic migration chain runs on SQLite (self-host) and Postgres (hosted) — no create_all drift; the SQLite boot replays the real migrations, so what you self-host is what production runs. Full module layout: [AGENTS.md](AGENTS.md).
APIKeyMiddleware.dispatch()
└─ validate_key(db, x-api-key) └─ request.state.auth_ctx = AuthContext(scope, user_id, tier, …) └─ REST routes / MCP tools / runner call authz.can_*() predicates
API keys are rec_-prefixed and passed in the x-api-key header. Most read endpoints (search, detail, discover) are unauthenticated. Free-tier skills install anonymously with no key (200 + tarball); installing a paid-tier skill, publishing, running, and rating all require a key.
python -m venv .venv && source .venv/bin/activate
pip install -r requirements.txt pre-commit install # ruff, bandit, mypy --strict, actionlint, yamllint
pytest -q # fast run pytest -n auto --cov=app --cov-fail-under=80 # the CI gate
alembic upgrade head # apply migrations before first start (non-SQLite) uvicorn app.main:app --reload --port 8201
Sandbox (Linux only): the kernel sandbox (
app/sandbox/) needs
firejail or bubblewrap.
Where neither is functional (macOS, hardened containers), the loop runner falls back to bounded
mode — POSIX rlimits + scrubbed env + isolated workspace — so loops still run; the response declares
which
confinementlevel it achieved. Multi-tenant fleet owners set `WR_LOOP_RUN_REQUIRE_SAND