inmake DOCS
Docs / MCP / Stdio bin

Stdio bin

Running drop-core-mcp locally: variables, Claude Code, retargeting.

drop-core-mcp is the same server as the hosted endpoint, run locally over stdio. It ships prebuilt in the Starter (vendor/mcp.mjs launcher) and as the bin of the drop-core-generative package.

Configuration#

Everything comes from environment variables:

Variable Meaning
DROP_STORE The store id the server starts scoped to (required).
DROP_ENV demo (default) or prod — the initial environment.
DROP_ACCESS_TOKEN The token for the initial environment.
DROP_ACCESS_TOKEN_DEMO / DROP_ACCESS_TOKEN_PROD Per-environment tokens; an environment is switchable only when its token is present.
DROP_ALLOW_PROD Must be 1 before useStore may switch to Production.
DROP_STORES Comma-separated allowlist of store ids useStore may target.
DROP_API_BASE / DROP_STORAGE_BASE Explicit hosts (an emulator) for the initial environment only.
GEMINI_KEY Enables the generateImage tool.
DROP_IMAGE_MODEL Optional image model override: gemini-3.1-flash-lite-image (Nanobanana Lite, the default) or gemini-3-pro-image (Nanobanana Pro); any other value runs the default.

Store locales are not configured — they are read from the store document at runtime.

The Starter's launcher (vendor/mcp.mjs) also takes DROP_PAT — a personal access token instead of a store token: with no DROP_ACCESS_TOKEN_* set, it exchanges the PAT at start for your own store token of DROP_STORE (and of Production too when DROP_ALLOW_PROD is set) and pins DROP_STORES to that store. DROP_CONSOLE_BASE overrides the console host it exchanges against (default https://inmake.dev). The bare drop-core-mcp bin does not read DROP_PAT.

Claude Code#

DROP_ENV=demo DROP_STORE=my-store DROP_ACCESS_TOKEN=<token> \
  claude mcp add drop-core -- node vendor/mcp.mjs

Or in .mcp.json (the Starter ships one preconfigured):

{
  "mcpServers": {
    "drop-core": {
      "command": "node",
      "args": ["vendor/mcp.mjs"],
      "env": { "DROP_ENV": "demo", "DROP_STORE": "my-store", "DROP_ACCESS_TOKEN": "<token>" }
    }
  }
}

Retargeting#

Unlike the hosted endpoint, the stdio bin offers useStore (move the active store/env for everything after it) and accepts optional store / env arguments on every tool — one call can read from a Demo store and the next write to a Production one, fenced by DROP_STORES and DROP_ALLOW_PROD. Every result echoes the env, store and tokenScope it actually ran on; a master token is warned about on stderr.