Scripe relaunch is live.See what's new

API v1 · 4xx

feature_unavailable

HTTPWhen
403A listed MCP tool cannot run for this workspace or this connection, for a reason other than the plan or a missing admin role.

Some tools are switched on per workspace, or only run inside Scripe. When one of them is called where it cannot run, nothing is read or written, and the call is refused with this code. The refusal never changes on a second call: details.retryable is false, and details.reason says what would have to change.

details.reasonWhat it meansWhat to tell the user
pilotThe tool is part of Scripe's Signals pilot, which is not switched on for this workspace.It becomes available once Scripe enables Signals for their workspace.
flagThe tool is part of a rollout that has not reached this workspace yet.It is not available to them yet; the Scripe dashboard does the same job.
surfaceThe tool runs only inside Scripe, not over MCP.Do it in the Scripe dashboard.
partsVersionThe tool needs a newer Scripe client than the one making the call.Update the app, or use the Scripe dashboard.
customThe tool cannot run in this workspace or for this connection right now.Do it in the Scripe dashboard, which explains what is missing.
json
{
  "error": {
    "code": "feature_unavailable",
    "message": "\"Get ideal customer\" is part of Scripe's Signals pilot, which is not switched on for this workspace. Nothing was read or written. Do not retry: tell the user it becomes available once Scripe enables Signals for their workspace.",
    "details": {
      "capability": "get_icp",
      "reason": "pilot",
      "retryable": false
    },
    "request_id": "mcp-…",
    "docs_url": "https://scripe.io/developers/api/v1/errors#feature_unavailable"
  }
}

Two other locks have codes of their own, and carry the same retryable: false:

  • A tool the workspace's plan does not include answers plan_not_eligible (details.reason: "plan"). Upgrading lifts it.
  • A tool limited to workspace admins answers admin_required (details.reason: "role"). An admin has to do it.

Only the MCP server answers this code; no REST route returns it, and today the server answers it rarely. The tools behind pilot and flag are served only to connections they can run for — a connection outside the Signals pilot is not served get_icp or update_icp — and a tool that runs only inside Scripe is not on the MCP server at all, so a call to one of those by name, from an older tool list, answers that the tool does not exist. Switch on this code anyway: it is what every lock that is not a plan or a role answers with. See MCP § Limits and quotas.