Solid Commerce in Claude Code
Value. Run Solid Commerce operations from the same terminal where you already manage code and infrastructure — query inventory, push listings, or fulfill an order without leaving Claude Code.
Choose this when your team is technical (developers, operations engineers, technical founders) and already uses Claude Code daily for engineering work.
Install
1. Create an API key. In your Solid Commerce workspace, open Developer →
API keys → New (the /developer/keys page) and copy the secret — it is shown
only once.
2. Add the MCP server to Claude Code over stdio, passing your key:
claude mcp add solidcommerce \
--transport stdio \
--env SOLIDCOMMERCE_API_KEY=YOUR_KEY \
--env SOLIDCOMMERCE_API_BASE_URL=https://api.takeoffcommerce.com \
-- npx -y @solidcommerce/mcp-server@alpha
Or add it directly to your Claude config:
{
"mcpServers": {
"solidcommerce": {
"command": "npx",
"args": ["-y", "@solidcommerce/mcp-server@alpha"],
"env": {
"SOLIDCOMMERCE_API_KEY": "YOUR_KEY",
"SOLIDCOMMERCE_API_BASE_URL": "https://api.takeoffcommerce.com"
}
}
}
}
Both variables are required: SOLIDCOMMERCE_API_BASE_URL points the server at
the Solid Commerce platform API host.
A hosted remote server (
https://mcp.solidcommerce.com/mcp) with per-user OAuth is coming for the non-terminal surfaces (Claude UI, ChatGPT, and so on).
Prefer the CLI?
The @solidcommerce/cli is a
companion tool for running commands yourself. It uses interactive OAuth rather
than an API key:
npx -y @solidcommerce/cli@alpha auth login
A browser opens the Solid Commerce consent screen (scopes in plain English, plus a company picker if you belong to more than one company); the token is stored in your OS keychain.
Try it
Ask Claude Code in natural language — "how many orders came in today?", "reprice listing li_1234 to $19.99 because a competitor dropped" — or script against the SDK directly:
1. List today's orders
A read-only call — safe to run the moment you connect.
import { SolidCommerceClient } from '@solidcommerce/sdk';
const client = new SolidCommerceClient({
baseUrl: 'https://api.solidcommerce.com',
auth: { kind: 'bearer', token: process.env.SC_TOKEN! },
});
const since = new Date(Date.now() - 86_400_000).toISOString();
const { data } = await client.raw.GET('/v1/orders/orders', {
params: { query: { created_after: since, limit: 50 } },
});
console.log(`${data?.data.length ?? 0} orders in the last 24h`);2. Reprice a listing
A write — the audited reason is captured even if you forget to mention it. In a conversational host this surfaces a confirmation prompt first (every write tool is annotated destructiveHint).
await client.raw.PATCH('/v1/listings/list-items/{listItemId}/automation', {
params: { path: { listItemId: 'li_1234' } },
body: { list_price: 19.99, metadata: { price_change_reason: 'competitor match' } },
});3. Check inventory across warehouses
Another read — see stock for every warehouse in one call.
const { data } = await client.raw.GET('/v1/inventory/warehouses');
for (const wh of data?.data ?? []) {
console.log(wh.name, wh.available_units);
}Availability
Claude Code is the lowest-friction surface — install the plugin and go. See the Claude Code plugin marketplace. Review our Privacy Policy and Terms.