MCP server reference

@stepskit/mcp is the StepsKit MCP server, published on npm. It runs locally inside your MCP client (Claude Code, Cursor, Codex, Claude Desktop, VS Code, and others) and talks to the StepsKit API with a per-project access token. Through it, your agent can install the embed and author tours, tooltips, NPS surveys, and announcements from your codebase.

This page documents the package itself. For per-client setup steps, see Connect your agent; for what you can and can't ask it to do, see Capabilities & limits.

Running it

The server is always started the same way, regardless of client:

npx -y @stepskit/mcp

Your MCP client launches this command and communicates over stdio — you never run it by hand. A minimal config (the mcpServers JSON shape most clients use):

{
  "mcpServers": {
    "stepskit": {
      "command": "npx",
      "args": ["-y", "@stepskit/mcp"],
      "env": { "STEPSKIT_TOKEN": "sk_live_..." }
    }
  }
}

Environment variables

VariableRequiredDescription
STEPSKIT_TOKENYesPer-project access token (sk_live_...), minted on your project's AI page in the dashboard.
STEPSKIT_API_URLNoAPI base URL. Defaults to https://stepskit.com.

Tools

31 tools across seven groups. Every tool carries a full JSON schema, and get_capabilities returns the authoritative can/can't list — so your agent always knows the current surface without relying on docs.

Setup & integration

ToolWhat it does
get_integration_statusCall first — returns onboarding state (embed installed?, allowed domains, tour count) plus a ready-to-paste install snippet.
verify_integrationConfirms the embed has actually pinged StepsKit after install.
add_allowed_domainWhitelists a production domain so experiences play there (localhost is always allowed).
suggest_url_patternTurns a concrete URL into a wildcard url_pattern for dynamic routes (/items/123/edit/items/*/edit).
get_capabilitiesLists what the MCP can and can't do right now.

Tours

ToolWhat it does
create_tourAuthors a complete tour (settings, visibility, theme, ordered steps) in one call — always as an unpublished draft.
list_toursLists the project's tours.
get_tourReads one tour's full editable state — settings, visibility, theme, and steps with ids.
update_tour_configRenames a tour and edits behavior settings (buttons, labels, progress, keyboard, overlay-click, completion redirect).
update_tour_visibilitySets targeting, page URL pattern, minimum screen width, show-once frequency, and trigger. Sent complete — replaces, not merges.
update_tour_themeOverrides one tour's theme (colors / overlay / progress / highlight). Merged; the rest inherits the project theme.

Steps

ToolWhat it does
add_stepAdds a callout (anchored to a CSS selector) or modal step.
update_stepEdits a step's content and behavior. Keeps the step id and its analytics — prefer over delete + add.
delete_stepRemoves a step. Destructive — requires confirm: true.
reorder_stepsReorders a tour's steps.

Tooltips

ToolWhat it does
create_tooltipCreates an unpublished tooltip — anchor selector, indicator style (?/info glyph, dot/pulse, or NEW/BETA badge), popover content, open trigger, optional CTA.
list_tooltips / get_tooltipFind and read a tooltip's full editable state.
update_tooltipEdits content, indicator, CTA, visibility, or per-tooltip theme.
delete_tooltipRemoves a tooltip. Destructive — requires confirm: true.

NPS surveys

ToolWhat it does
create_surveyCreates an unpublished bottom-corner NPS survey — question, rating scale (0–10, 1–5, or emoji), follow-up, thank-you, re-survey window.
list_surveys / get_surveyFind and read a survey's full editable state.
update_surveyEdits question, scale, labels, position, visibility, or card theme.

Announcements

ToolWhat it does
create_announcementCreates an unpublished top/bottom banner — title, body, optional CTA and icon, optional schedule window (start_at / end_at).
list_announcements / get_announcementFind and read an announcement's full editable state.
update_announcementEdits content, CTA, icon, position, schedule, visibility, or banner theme.
delete_announcementRemoves an announcement. Destructive — requires confirm: true.

Project theme

ToolWhat it does
get_project_themeReads the global theme every tour and tooltip inherits.
update_project_themeSets the global theme — brand colors, overlay, progress, highlight. Merged; reset restores defaults.

Guardrails

The agent composes the plan; the server validates it and persists it. By design:

  • It never publishes. Everything it creates arrives unpublished — publishing is a deliberate human action in the dashboard.
  • Destructive operations require confirm: truedelete_step, delete_tooltip, and delete_announcement refuse to run without it.
  • No media uploads and no analytics reads — those stay in the dashboard.

Token security

The token is a long-lived, per-project credential:

  • Keep it out of committed files — use your MCP client's env config, not a checked-in JSON. For project-scoped config files (like .mcp.json), make sure the file is gitignored or use an env-var reference if your client supports it.
  • Tokens are prefixed sk_live_ so secret scanners recognize a leak.
  • Tokens are stored hashed — they're shown once at mint time and can't be recovered, only replaced.
  • Revoke a token any time from the dashboard's AI page; a revoked token stops working immediately.

Source & issues

The package source lives at github.com/nikitabobers/stepskit-mcp (MIT licensed) and is synced from the StepsKit monorepo on every release. Issues and bug reports are welcome there.