Spree Commerce developer docs for AI agents
Spree Commerce docs for AI coding agents: build headless B2B and marketplace ecommerce on its APIs.
Description from the maker (original English)
Rent GPUs, launch spot instances and run serverless inference on the Xcelsior marketplace.
These three are never merged into one score: opinions, measurements and popularity are different things.
We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.
Pick the AI app you use, then copy the settings.
XCELSIOR_ACCESS_TOKEN, XCELSIOR_API_URLValues marked secret are keys to your account. Never share them or paste them into a chat.
You need
Which app do you use?
Pick your app above. We remember it, so next time the button says “Install in …”.
Works in Claude on the web, desktop and mobile:
https://mcp.xcelsior.ca/mcpOpen Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json
{
"mcpServers": {
"xcelsior": {
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}Run this in your terminal
claude mcp add --transport http xcelsior https://mcp.xcelsior.ca/mcpclaude mcp add xcelsior --env XCELSIOR_ACCESS_TOKEN=your-value --env XCELSIOR_API_URL=your-value -- npx -y @xcelsior-gpu/mcpFill in the empty values before running it.
Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"xcelsior": {
"url": "https://mcp.xcelsior.ca/mcp"
}
}
}Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json
{
"mcpServers": {
"xcelsior": {
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
Paste into .vscode/mcp.json in your project
{
"servers": {
"xcelsior": {
"type": "http",
"url": "https://mcp.xcelsior.ca/mcp"
}
}
}Paste into .vscode/mcp.json in your project
{
"servers": {
"xcelsior": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@xcelsior-gpu/mcp"
],
"env": {
"XCELSIOR_ACCESS_TOKEN": "your-value",
"XCELSIOR_API_URL": "your-value"
}
}
}
}Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.
ChatGPT connects only to servers on the internet:
https://mcp.xcelsior.ca/mcpMenu names can differ slightly by plan and over time.
Your choice stays on this device in a cookie; no account needed.
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
Run on your computer in
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
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 10, 2026
The registry name was verified with the GitHub account aabiro, which owns the repo
Code last changed today
We have not read this repo from GitHub yet
Responded in 500 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
Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.
It passed 4 of 4 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: XCELSIOR_ACCESS_TOKEN
Either way works: install it on your computer or connect to the cloud version.
The GitHub repo last changed today, and the latest version (2.0.1) reached the registry 5 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 in developer mode.
In the same category: Spree Commerce developer docs for AI agents, Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP
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.
Open-source B2B and marketplace ecommerce; new stores include an MCP server for AI agents.
Stripe’s official server lets AI view and manage customers, products, payments and invoices. Connect to Stripe’s cloud and sign in with OAuth.
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.
Hosted Model Context Protocol server for the Xcelsior GPU platform.
Requires Node.js ^20.20.0 or >=22.22.0 (the pinned PostHog MCP beta no longer supports Node 18).
cd mcp
npm ci XCELSIOR_MCP_API_URL=http://127.0.0.1:8000 npm run dev
Liveness: GET http://localhost:8770/health Readiness: GET http://localhost:8770/readyz MCP endpoint: http://localhost:8770/mcp
npx tsx scripts/check-live-surface.ts /path/to/private/token-file
The file contains a bearer token or an agent-key JSON response. The checker authenticates, lists tools, and compares names, annotations and output-schema presence with the customer registry in this checkout. It never invokes a tool handler or prints the token. This gives monorepo-aware coverage when a source scanner cannot discover the registrations; it does not prove handler behavior.
The canonical connector URL is `https://mcp.xcelsior.ca/mcp`.
Paste that URL into Claude, ChatGPT, Grok, Copilot Studio, Cursor, or VS Code and press connect. The client discovers everything it needs on its own:
/mcp with no credentials and gets 401 plus WWW-Authenticate: Bearer realm="xcelsior", resource_metadata="…"./.well-known/oauth-protected-resource, which names the authorization server and the exact resource identifier.client_id is an HTTPS URL serving the client's own metadata), by RFC 7591 dynamic registration at /oauth/register, or with the pre-provisioned public client xcelsior-connector./oauth/token (application/x-www-form-urlencoded) for a ~1h access token bound to https://mcp.xcelsior.ca/mcp, plus a 30-day refresh token.No client secret is involved, and nothing has to be pasted by hand.
client_credentialsFor CI, scripts, and headless agents where no human is present to consent. Create a machine client in Dashboard → Settings → Connect AI Agents, then:
curl -s -X POST https://xcelsior.ca/oauth/token \
-H 'Content-Type: application/x-www-form-urlencoded' \ -d 'grant_type=client_credentials' \ -d 'resource=https://mcp.xcelsior.ca/mcp' \ -d "client_id=$MCP_CLIENT_ID" -d "client_secret=$MCP_CLIENT_SECRET"
{
"mcpServers": { "xcelsior": { "url": "https://mcp.xcelsior.ca/mcp", "headers": { "Authorization": "Bearer YOUR_ACCESS_TOKEN" } } } }
client_credentials is fully supported and is not going away — it is simply not the front door for a person connecting an assistant.
https://mcp.xcelsior.ca/mcp — the exact URL a user pastes, path included. Protected-resource metadata, the resource parameter on authorization and token requests, and the aud claim all carry that one value. Tokens issued before the migration carry the bare origin https://mcp.xcelsior.ca and remain valid until 2026-11-30, after which they are rejected like any other wrong-audience token.
One codebase, one image, two exposed surfaces (XCELSIOR_MCP_TOOL_PROFILE):
| Profile | Where | Tools |
|---|---|---|
customer (default) | https://mcp.xcelsior.ca/mcp, submitted to directories | Tenant workflows only |
operator | Separate unlisted host | Adds platform-global host and control-plane tools |
Operator tools are not registered at all under the customer profile, so they cannot appear in tools/list and cannot be called by name. A token without operator scopes never enumerates them even on the operator host.
| Variable | Default | Description |
|---|---|---|
XCELSIOR_MCP_API_URL | http://127.0.0.1:8000 | Upstream FastAPI base URL |
XCELSIOR_MCP_RESOURCE_AUDIENCE | https://mcp.xcelsior.ca/mcp | Canonical RFC 8707 token audience |
XCELSIOR_MCP_LEGACY_RESOURCE_AUDIENCE | origin of the above | Pre-migration audience, accepted until sunset |
XCELSIOR_MCP_LEGACY_AUDIENCE_SUNSET | 2026-11-30T00:00:00Z | When the legacy audience stops being accepted |
XCELSIOR_MCP_RESOURCE_METADATA_URL | derived | What the 401 challenge points at |
XCELSIOR_MCP_TOOL_PROFILE | customer | customer or operator |
XCELSIOR_MCP_COMPANY_KNOWLEDGE | 0 | Register ChatGPT company-knowledge search/fetch |
XCELSIOR_MCP_POSTHOG_PROJECT_API_KEY | browser project key, then disabled | PostHog phc_ project key for MCP analytics |
XCELSIOR_MCP_POSTHOG_HOST | browser host or https://us.i.posthog.com | PostHog ingestion host |
XCELSIOR_DOCS_URL | https://docs.xcelsior.ca | Documentation corpus for company knowledge |
MCP_HOST | 0.0.0.0 | Bind address |
MCP_PORT | 8770 | Listen port |
MCP_PATH | /mcp | HTTP path |
MCP_RATE_LIMIT_PER_MIN | 60 | Per-token tool call budget |
@posthog/mcp is pinned to 0.11.4 because its pre-1.0 API may change. When a PostHog project key is configured, the server instruments both hosted HTTP and STDIO MCP traffic and emits the standard $mcp_* lifecycle/tool events. The authenticated Xcelsior user_id is used as distinct_id (with OAuth subject and tenant id as machine-principal fallbacks), so calls remain grouped across the hosted service's stateless per-request server instances.
Analytics is metadata-only: Xcelsior removes tool arguments, tool results, and exception messages before send, disables GeoIP and exception fan-out, and does not inject PostHog's context or conversation_id arguments into the reviewed tool schemas. The Streamable HTTP transport uses JSON responses so the SDK can carry its signed Mcp-Session-Id token across replicas. The shared posthog-node client is flushed during graceful shutdown.
If MCP analytics identifies users, production must also set XCELSIOR_POSTHOG_PERSONAL_API_KEY and XCELSIOR_POSTHOG_PROJECT_ID for the privacy-deletion worker. Startup validation rejects identification without those deletion credentials.
list_available_gpus, get_spot_prices, get_pricing_reference, search_marketplace, list_tierslist_instances, get_instance, get_instance_logs, create_instance, cancel_instance, terminate_instanceget_wallet_balance, estimate_job_cost, list_invoicesshould_i_run_this (estimate + wallet + optional max_hourly_cad)run_training_job, schedule_under_budgetlist_serverless_endpoints, create_serverless_endpoint, run_serverless_job, get_serverless_job_statuswatch_instance (poll status + telemetry + logs)explain_instance_placement, simulate_instance_placement, get_instance_timeline, get_active_lease, get_mcp_action_statusretry_instance, reconcile_instanceOperator profile only: get_scheduler_health, get_host_capacity, list_reconciliation_findings, drain_host, undrain_host, evict_host_workloads, retry_agent_command.
Company knowledge (optional, off by default): search and fetch, with OpenAI's exact schemas, over the documentation site, llms.txt, the pricing table, and live marketplace listings. Every result carries an absolute, human-openable URL and an internal id. Enable with XCELSIOR_MCP_COMPANY_KNOWLEDGE=1; it is deliberately not on for the base directory submission.
Resources: xcelsior://docs/llms, xcelsior://pricing/reference Prompts: cheapest-gpu-now, ca-fine-tune, serverless-inference
create_instance and create_serverless_endpoint always create a server-bound action plan first. confirm:true expresses intent but never replaces approval; execute with the returned plan_id after standing-policy or human approval. A confirmed call without a plan safely prepares a plan and returns approval_required. Host draining never evicts workloads; eviction has its own scope and action plan.
npx @xcelsior-gpu/mcp
Requires XCELSIOR_ACCESS_TOKEN. See mcp-cli/README.md.
Production promotion is blue/green across ports 8770/8771. Deployment runs readiness, bearer-authenticated protocol initialize, and tools/list against the standby before switching Nginx; a failure leaves the previous MCP serving.
MCP_CLIENT_ID=... MCP_CLIENT_SECRET=... python3 scripts/mcp_smoke.py
npx @modelcontextprotocol/inspector@latest
Point at http://localhost:8770/mcp with your MCP-audience Bearer token.