Search documentation

Search documentation

MCP overview

How the Stratta MCP server authenticates, resolves your key, and exposes its tools.

The Stratta MCP server (@stratta/mcp) connects your Claude client to your Stratta workspace. It speaks the Model Context Protocol over stdio and exposes 18 tools: 8 for reading norms and 10 for ingesting them.

Package@stratta/mcp
Binarystratta-mcp
Transportstdio
RuntimeNode.js ≥ 20
AuthenticationAPI key (sk_strt_…)

Authentication#

Every tool call is authenticated with your API key. The server validates the key against the Stratta backend, resolves it to your user and organization, and scopes all reads and writes accordingly. The organization is derived from the key. It is never a parameter a client can set.

How your key is resolved#

The server looks for your key in this order and uses the first it finds:

  1. STRATTA_API_KEY environment variable

    If set, it takes precedence. Best for ephemeral or CI-style usage.

  2. ~/.stratta/config.json

    Written by npx -y @stratta/mcp login or the first-use prompt. Stored owner-only (mode 0600):

    { "apiKey": "sk_strt_xxx" }
  3. First-use prompt (elicitation)

    If no key is found and your client supports it, the server asks for the key on the first tool call, validates it, and saves it to the config file.

Environment variables#

STRATTA_API_KEYstring

Your API key from stratta.ch/api-keys. Optional: if unset, the server falls back to ~/.stratta/config.json or prompts on first use.

STRATTA_CONVEX_URLstringdefault: Stratta production backend

Override the backend URL. Only needed if you self-host Stratta.

How Claude uses the tools#

Claude is guided to navigate norms in a deterministic order so that every answer is backed by a real citation:

  1. get_methodology

    The mandatory first call: it loads the persona, navigation rules, and citation format.

  2. list_norms

    See which norms are available in your workspace.

  3. get_toc → get_subtree

    Open the table of contents and drill into the relevant chapter.

  4. get_section

    Read the full content of a section (text, formulas, tables, figures, cross-refs).

  5. get_cross_refs → get_section

    Follow links to other norms and read those too, for compound questions.

  6. get_figure

    Retrieve a diagram when the answer depends on it.

Use search_in_norm whenever the section path is unknown.

Usage tracking#

After each successful tool call, the server records a usage event (tool name, status, duration) against your key. This powers your dashboard stats and future billing. Tracking happens only after authentication and uses the key as proof of possession. Usage can't be attributed to someone else's key.

Tool reference#