Search documentation

Search documentation

Ingest your own norm

Add a norm you are licensed for to your private Stratta workspace, agentically from your own Claude.

Stratta doesn't ship a shared library of norms. Instead, you bring the norms your organization is licensed for and ingest them into your private workspace. Ingestion runs from your own Claude using the ingest_* tools: your subscription, your PDF, your workspace.

Licensing is your responsibility. Only ingest norms your organization holds a valid licence for. SIA standards and Eurocodes are copyrighted. See the Terms.

How it works#

The @stratta/mcp package ships an ingest-norm skill: a guided workflow that turns a norm PDF into a navigable tree inside your workspace. When you ask Claude to ingest a norm, it:

  1. Reads the PDF.
  2. Builds the table-of-contents tree (chapters, sections, annexes).
  3. Extracts formulas (as LaTeX), tables, figures, and cross-references.
  4. Writes everything to your workspace via the ingest_* tools.
  5. Publishes the norm so the read tools can query it.

Because the agent does the heavy lifting, ingestion is reproducible without a manual data pipeline. It runs on your Claude subscription's session tokens and requires no separate API billing.

Prerequisites#

  • The Stratta MCP server is installed and authenticated (see Install in Claude Code).
  • The norm PDF is available locally on your machine.
  • Optional, for extracting figures: the poppler tools (pdftoppm, pdfimages).

Ingest a norm#

In Claude Code, from a context where the PDF is reachable, simply ask:

Ingest the norm at C:\norms\SIA_263_2013.pdf into my Stratta workspace.

Claude loads the ingest-norm skill and walks through the workflow below. A full norm takes a while. It reads every page and enriches each section.

The ingestion workflow#

This is what the skill does, step by step. You don't run these tools by hand; Claude calls them. Understanding the flow helps you review the result.

  1. Check for an existing copy

    ingest_status { code } reports whether the norm already exists in your workspace. To re-ingest, the old copy is removed first with ingest_delete.

  2. Plan the tree

    Claude reads the PDF and builds a PageIndex-style hierarchy: chapters (depth 0), sections, sub-sections, and annexes. Each node gets a stable id, a human path (e.g. 4.2.1, Annexe B.1), a short summary, and a page range. Annexes are never skipped because they hold key numeric values.

  3. Create the document

    ingest_create_document { code, year, title, language, totalPages } returns a documentId used by every following call.

  4. Insert sections in batches

    ingest_create_sections bulk-inserts the tree (30 to 50 sections per call) and returns a map from each node id to its stored section id.

  5. Enrich each section

    ingest_attach_formula (LaTeX), ingest_attach_table (headers + rows), and ingest_attach_cross_ref (links to other norms) add the technical content.

  6. Upload figures

    ingest_upload_figure stores each diagram (PNG, JPEG, or WebP, up to 8 MB) and links it to its section.

  7. Normalize cross-references (optional)

    ingest_normalize_cross_refs scans the text for references to other norms (SIA, SN EN, EN, ISO, DIN…) and rebuilds the cross-reference index.

  8. Publish

    ingest_publish makes the norm queryable via the read tools in your workspace.

See the ingestion tools reference for every parameter.

Quality matters#

The accuracy of future citations depends on the ingestion:

  • Paths and page ranges must be correct. They are the citation itself.
  • Summaries drive how Claude navigates the tree, so they should be specific (mention key formulas or values).
  • Content must stay faithful to the source and never be invented.

After ingestion, spot-check a few sections by asking Claude questions you already know the answer to, and confirm the citations land on the right pages.

Next steps#