Skip to content
scrubber.ioGet an API key
MCP server

Scrubber MCP — Salesforce tech-debt intelligence for your coding agent.

Scrubber MCP exposes your Salesforce org’s findings, remediation guidance, and dependency graph as deterministic Model Context Protocol tools. Your coding agent identifies and fixes issues directly in your editor — no context-switching to a web UI, no copy-pasting screenshots.


How it works

Three primitives, one HTTP endpoint.

Auth

Static Authorization: Bearer sk-… keys, scoped to a single org and a fixed allowlist of toolsets. Stored encrypted, rotatable, and every call is logged for security review.

Security →
Surface

18 tools across 5 toolsets. Clients opt in via the X-Scrubber-Toolsets header; the request can narrow but never widen the per-key allowlist.

Browse the toolsets →
Output

Every response wraps the same envelope (apiVersion: "2026-04"). Deterministic JSON, sub-second response times, no surprises.

Tool reference →

Toolsets at a glance

Pick the toolsets your agent needs.

ToolsetStatusToolsPurpose
coreAlways available2Orient and identify the connected org.
findingsAvailable5Triggered signals, offender lists, and the per-component-per-signal finding.
change-safetyAvailable3Pre-deployment factual analysis split per change kind (field, permset).
field-qualityAvailable3Per-field data-quality and inventory queries.
dependenciesAvailable5Dependency graph, blast radius, semantic search, and a single-call full-context explorer.

core is always on, even when callers pass an empty toolset list. Each findings response embeds the matching remediation advisory inline, so there’s no separate toolset to wire up.


Featured tools

What an agent should reach for first.

get_org_health_snapshotcore

Start here — composite score, per-pillar scores, totals for the connected org.

get_signal_findingsfindings

Drill into one signal: full offender list plus the embedded remediation advisory.

get_component_findingfindings

Returns the finding for one component and one signal in a single call — everything you need to fix it.

get_component_full_contextdependencies

One call returns description, grouped dependencies, every signal, and per-signal advisories.

search_components_semanticdependencies

Find a component by describing it in plain English — no API name required.


Quickstart

Three steps from zero to a tool list.

01

Get an API key.

Sign in at /api-keys, click New API key, set a label, and submit. The raw key is shown once; copy it immediately. Self-serve keys cover the read-only intelligence toolsets. For change-safety tools, ask your admin to issue a key from /admin/api-keys. See the setup guide for key shape, scopes, and rotation.

02

Configure your client.

Point your client at https://mcp.scrubber.io/api/mcp. Pick the snippet for your editor:

Cursor
// ~/.cursor/mcp.json
{
  "mcpServers": {
    "scrubber": {
      "url": "https://mcp.scrubber.io/api/mcp",
      "headers": {
        "Authorization": "Bearer sk-...",
        "X-Scrubber-Toolsets": "core,findings,dependencies"
      }
    }
  }
}
Claude Code (CLI)
claude mcp add --transport http scrubber https://mcp.scrubber.io/api/mcp \
  --header "Authorization: Bearer sk-..." \
  --header "X-Scrubber-Toolsets: core,findings,dependencies"
Salesforce Vibes
// a4d_mcp_settings.json
{
  "name": "scrubber",
  "url": "https://mcp.scrubber.io/api/mcp",
  "bearer_token_env_var": "SCRUBBER_API_KEY",
  "http_headers": { "X-Scrubber-Toolsets": "core,findings,dependencies" }
}

Full Cursor / Claude Code / Vibes configuration: setup guide.

03

Verify with a stdio probe.

Pipe a tools/list JSON-RPC request into the stdio binary. Two responses on stdout means the server is alive and returning your toolset selection.

bash
printf '%s\n' \
  '{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2025-06-18","capabilities":{},"clientInfo":{"name":"smoke","version":"0"}}}' \
  '{"jsonrpc":"2.0","method":"notifications/initialized"}' \
  '{"jsonrpc":"2.0","id":2,"method":"tools/list"}' \
  | npx scrubber-mcp --toolsets core,findings

Read more

Documentation.