Build and mint a key

1

Build the server

2

Mint a caller key

Printed once and not recoverable — the keystore holds only a scrypt hash. Copy it now.

The two credentials

This trips up almost every first setup. They are unrelated and both may be needed.GHOSTCOPY_API_TOKEN is the dashboard’s tunnel_token from state/config.json. If your dashboard has no token, leave it empty — the gate is open.Getting this wrong produces a specific symptom: every HTTP-backed tool returns 401 while the Python-backed ones work fine. Invisible on a laptop with no tunnel, broken on any real deployment.

Claude Code

Create .mcp.json in the repository root (it is gitignored):
.mcp.json
Verify:
.mcp.json.example in the repository root is the maintained template — copy it rather than retyping this block.

Claude Desktop

Edit the Claude Desktop config (Settings → Developer → Edit Config), using absolute paths — Desktop does not expand ${workspaceFolder}:
Restart Claude Desktop fully — it does not reload config on the fly.

Cursor and Windsurf

Both read the same MCP schema. Use the Claude Desktop block with absolute paths, in the editor’s own MCP settings file.

First two calls

Returns your tier and live rate-limit counters — call it before any fan-out so an agent plans within its budget instead of discovering the ceiling by hitting it.
Reports server, bridge, and api.token_configured. If HTTP-backed tools are failing, check this before anything else.

Expect module_absent

On a master checkout, clustering, memecoin, and Sentry tools all report this. It means the engine is not installed, not that nothing was found. See Data states and the tool reference.

Prompting notes

Ask for the state

“Score this wallet and tell me which sources were unavailable” gets you a usable answer. Without it, a model may summarise around the gaps.

Zero clusters is an answer

Tell the model that an empty cluster result means “no evidence of a link”, so it does not report it as proof of independence.

Read-only, structurally

Every tool resolves to a reading function, and clustering runs with persist=False, asserted by a test. The only tool that queues work is log_signal_decision, and it is refused on the free tier. This matters because the caller is a language model acting on content it did not author — a write reachable from a prompt is a write reachable by anyone who can influence the prompt.
Scienter publishes impersonal market signals of general and regular circulation. Nothing here is investment, legal, or tax advice, or a recommendation to buy, sell, or hold any asset. Scienter is not a registered investment adviser or broker-dealer. Trading digital assets can result in the total loss of your funds — see Disclaimers for the full text.