Free & packs
$0, or $29 a pack
No card, no subscription
400 at signup, $29 per 400 after
Get started freeOne MCP server over Ghost, WordPress, Shopify and Webflow. Every publish is previewed, version-locked and reversible.
Install
The key begins with sk_specter_, is shown once, and is scoped to that
one workspace. It authenticates MCP and REST alike, and is revocable from the
screen that made it.
Run it in a terminal.
claude mcp add --transport http spectersync https://app.spectersync.com/api/mcp \
--header "Authorization: Bearer sk_specter_YOUR_KEY" Registers the server for the current project. Add --scope user to register
it for every project instead.
Edit the config file, then restart the app.
{
"mcpServers": {
"spectersync": {
"command": "npx",
"args": [
"-y",
"mcp-remote",
"https://app.spectersync.com/api/mcp",
"--header",
"Authorization:${SPECTERSYNC_KEY}"
],
"env": { "SPECTERSYNC_KEY": "Bearer sk_specter_YOUR_KEY" }
}
}
} The file is at ~/Library/Application Support/Claude/ on macOS and
%APPDATA%\Claude\ on Windows. It takes local commands rather than URLs, so the
hosted endpoint is reached through the mcp-remote bridge — which needs Node 18
or later, because that is what supplies npx.
Put it in ~/.cursor/mcp.json.
{
"mcpServers": {
"spectersync": {
"url": "https://app.spectersync.com/api/mcp",
"headers": { "Authorization": "Bearer sk_specter_YOUR_KEY" }
}
}
} That covers every project. For one project only, use .cursor/mcp.json in
the repo root instead.
Open Cascade's MCP panel and edit the file it points at.
{
"mcpServers": {
"spectersync": {
"serverUrl": "https://app.spectersync.com/api/mcp",
"headers": { "Authorization": "Bearer sk_specter_YOUR_KEY" }
}
}
} The file is ~/.codeium/windsurf/mcp_config.json; refresh the panel
afterwards so Cascade reconnects. Windsurf's docs take serverUrl or
url, and their own remote example uses serverUrl.
Put it in ~/.gemini/settings.json.
{
"mcpServers": {
"spectersync": {
"httpUrl": "https://app.spectersync.com/api/mcp",
"headers": { "Authorization": "Bearer sk_specter_YOUR_KEY" }
}
}
} Or .gemini/settings.json in a repo root for that project only. Restart the
CLI and run /mcp to see the tools it picked up. The streamable-HTTP key is
httpUrl — url is the SSE one.
Put it in ~/.gemini/config/mcp_config.json.
{
"mcpServers": {
"spectersync": {
"serverUrl": "https://app.spectersync.com/api/mcp",
"headers": { "Authorization": "Bearer sk_specter_YOUR_KEY" }
}
}
} Or .agents/mcp_config.json for one workspace. Antigravity reads
serverUrl only — its docs say url and httpUrl are not
supported, so a config copied from another editor will fail here.
Settings → Connections → MCP servers → Add a custom MCP.
Server URL https://app.spectersync.com/api/mcp
Header key Authorization
Header value Bearer sk_specter_YOUR_KEY Devin takes a remote server through a form rather than a file. Set the transport type to HTTP (the docs call it Streamable HTTP in prose), paste the three values below, and set Authentication method to Auth Header. Adding a custom server needs the Manage MCP Servers permission; without it the button is not there, and an org admin has to grant it — or you can use Suggest MCP Integration to ask.
Put it in .vscode/mcp.json.
{
"servers": {
"spectersync": {
"type": "http",
"url": "https://app.spectersync.com/api/mcp",
"headers": { "Authorization": "Bearer ${input:spectersync-key}" }
}
},
"inputs": [
{
"type": "promptString",
"id": "spectersync-key",
"description": "Spectersync API key (sk_specter_…)",
"password": true
}
]
} Or run MCP: Open User Configuration from the command palette to apply it
everywhere. The inputs block makes VS Code prompt for the key once and store it
securely, so a config you commit never carries the key itself.
Export the key, then run it in a terminal.
codex mcp add spectersync \
--url https://app.spectersync.com/api/mcp \
--bearer-token-env-var SPECTERSYNC_KEY export SPECTERSYNC_KEY=sk_specter_YOUR_KEY first. The command writes an
[mcp_servers.spectersync] block into ~/.codex/config.toml with
url and bearer_token_env_var, and Codex builds the
Authorization: Bearer … header from that variable at connect time, so the key
never lands in the file. Codex's
MCP docs
cover the same server under config.toml; the flags come from the CLI's help.
ChatGPT cannot reach Spectersync today. No config
ChatGPT speaks MCP through a custom connector, and a connector will not take a bearer key: it authenticates over OAuth, over no authentication, or a mix of the two, per OpenAI's developer-mode guide. A key is what Spectersync issues, so there is no configuration here that would work if you pasted it. The route that needs no OAuth is a Custom GPT with an Action over the REST surface, and that surface is not live either. Both are being built.
List my connected sites in Spectersync. Do not change anything.
Restart the client first so it picks the server up. The prompt should call
list_connections and come back with the CMSes on your workspace. A key
that is wrong or revoked returns 401 instead, which tells you the same
thing faster than a failed write would.
When you ask it to change something, it drafts into a working copy and then calls
create_review, which hands you one link with a card per change: before,
after, and accept, reject or skip. Nothing reaches your CMS until you accept, and
the link expires within a day. That is the whole publish path on the free plan —
publish with confirm: true, publishing without the round
trip through you, is part of Pro.
Pricing
Reading, previews, rollbacks and the review link cost nothing. Publishing costs 1 credit per document; recipes 1, or 2 for analysis. Signing up grants 400 credits, once, and Pro replaces the meter with a fair-use ceiling.
$0, or $29 a pack
No card, no subscription
400 at signup, $29 per 400 after
Get started free$99/mo
Billed monthly, cancel anytime
Unlimited, fair use 5,000 docs/mo
Get started freeContact for quote
Set to your volume
Contact sales| Feature | Free & packs | Pro | Enterprise |
|---|---|---|---|
| Snapshot on publish, and one-call revert | |||
| Snapshot history kept | 7 days | 90 days | 90 days |
| AI recipes, single and bulk | — | ||
| Analysis recipes | — | ||
| Site index — edits that know the rest of your content | — | ||
| AI credits | 400 at signup, $29 per 400 after | Unlimited, fair use 5,000 docs/mo | Set to your volume |
| Additional users | — | $49/mo each | Included in the quote |
| Support | Onboarding + named contact |
Free and credit packs share one feature set: the safe path. Pro adds recipes, bulk and the site index. All plan detail →
The workspace
---
title: Winter service intervals
slug: winter-service-intervals
status: published
tags: [maintenance, seasonal]
--- - Service intervals | Blog
+ When to book a winter service, and what
+ a workshop checks at each interval. FAQ
409 and nothing changes. On Shopify and Webflow, whose APIs have no such lock, Spectersync re-reads the live item and compares first.snapshotId; one call puts the page back. If the snapshot cannot be saved, the publish does not happen.