# @stratta/mcp

MCP server exposing the engineering norms your firm is licensed for (SIA / Eurocodes) to any MCP client, via Stratta TreeRAG.

- **Type:** MCP server
- **Trust:** 60/100 (B), scored on the package rubric
- **Verification:** community-indexed — nobody has claimed this listing
- **Version:** 0.9.7
- **Author:** SmartFlow
- **License:** UNLICENSED
- **npm:** @stratta/mcp
- **Source:** https://github.com/hugogebel-boop/stratta-v2
- **Compatible clients:** claude-code, cursor, copilot, gemini (basis: transport)

## Trust

60/100 (B), scored on the package rubric
- Publisher verified: no
- Install scripts: nothing suspicious found
- Prompt-injection scan: not run
- Obfuscation scan: not run
- Evidence age: 0 days

## Security scan

- **Status:** clean
- **Scanned:** 2026-08-29T02:09:29.172Z
- **Version scanned:** 0.9.7
- **CVEs:** none found by OSV at scan time

## Tools

23 declared. Statically extracted from the shipped source — a floor on the surface, not a census.
- `list_dossiers` — List the dossiers of YOUR organisation, most recently touched first. A dossier is a project record: what was decided, what it rests on, and what is still open. 
- `open_dossier` — Open the dossier for a project, creating it if it does not exist yet. IDEMPOTENT on the name: calling it twice with the same name returns the same dossier rathe
- `save_finding`
- `load_dossier` — Reload everything a dossier holds: retained values, what they rest on, site observations, open questions and the comments a colleague left. UNRESOLVED QUESTIONS
- `resolve_question` — Mark a question entry as settled, once it actually is. The entry stays in the dossier — the trail of what was once uncertain is part of the record — but it stop
- `ingest_status` — Check whether a norm (by code) already exists in YOUR workspace and how many sections it has. Call before creating to avoid duplicates.
- `ingest_create_document` — Create a draft norm document in YOUR workspace. Returns the documentId used by subsequent ingest_* calls. You must hold a valid licence for the norm you ingest.
- `ingest_create_sections` — Bulk-insert sections into a draft document. Parent links resolve via parentNodeId within the batch + already-inserted sections. Returns a map of nodeId → sectio
- `ingest_attach_formula` — Attach a LaTeX formula to a section.
- `ingest_attach_table` — Attach a structured table to a section. `data` is { headers: string[], rows: string[][] }.
- `ingest_attach_cross_ref` — Attach a cross-reference from a section to another norm/section.
- `ingest_upload_figure` — Upload a figure image (base64) and attach it to a section. mimeType must be image/png, image/jpeg or image/webp; max 8 MB.
- `ingest_normalize_cross_refs` — Scan all sections of a document and (re)build cross-references to other norms detected in the text. Idempotent.
- `ingest_publish` — Publish a draft document so it becomes queryable via the read tools in YOUR workspace.
- `ingest_delete` — Delete a document and all its sections/figures/tables/formulas/cross-refs. Use before re-ingesting.
- `get_methodology`
- `list_norms` — List all engineering norms (SIA, Eurocodes, etc.) available in YOUR workspace. Returns code, year, title, and language for each. Workflow: call get_methodology 
- `get_toc` — Get the high-level table of contents for a norm. By default returns only top-level chapters (depth=1) to stay light. Call get_subtree on a specific chapter's pa
- `get_subtree` — Drill down into a specific chapter or section. Returns the subtree rooted at `path` with optional depth limit (relative to the root). Use this after get_toc to 
- `get_section` — Fetch the full enriched content of a section: markdown text with formulas in LaTeX and tables inline, pageStart/pageEnd, figures (call get_figure for the image)
- `search_in_norm` — Full-text search within a norm. Returns up to `limit` matches in relevance order, with path, title and a snippet. Matching is by term, not substring: "charges v
- `get_cross_refs` — List outgoing cross-references from a section to other norms (e.g. SIA 261 §4.2 → SIA 263). For compound questions you MUST follow these refs: fetch each target
- `get_figure` — Retrieve a figure (image) referenced in a section. Returns the image inline (base64) so you can see and reason about it. Use the `id` returned by get_section in

## Install

**Verdict: review** — Installable, but 1 thing to check first: No publisher has proved control of this listing; it is indexed, not vouched for.
**Cautions** (coverage gaps and advisories — never blocking)
- No publisher has proved control of this listing; it is indexed, not vouched for.
**Config** (claude-code):
```json
"{\n  \"mcpServers\": {\n    \"mcp\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"@stratta/mcp\"\n      ],\n      \"env\": {\n        \"STRATTA_API_KEY\": \"<YOUR_STRATTA_API_KEY>\"\n      }\n    }\n  }\n}"
```
**Credentials it will ask for** (names only — Forge never holds a value):
- `STRATTA_API_KEY` — Stratta API Key (optional)
Placeholders only. Forge never holds, brokers, or transmits a credential value — replace each <YOUR_NAME> in your own config file. Do not send a value back to Forge; no Forge endpoint accepts one.
- This entry needs 1 credential (0 required). The generated config carries placeholders, so it will fail in the editor rather than at runtime if they are left unset.

## Blast radius

Extensive blast radius — deletes data; holds an api key.
- Floor 53, ceiling 53 (tier: extensive)
- This is impact, not likelihood. A high radius is not a defect: a filesystem server is supposed to write files. It is never part of the trust score.

## Machine-readable views of this entry

- Signed JSON: https://forgeregistry.com/api/v1/packages/%40stratta%2Fmcp
- Install plan: https://forgeregistry.com/api/v1/packages/%40stratta%2Fmcp/install-plan
- Alternatives: https://forgeregistry.com/api/v1/alternatives/%40stratta%2Fmcp
- HTML page: https://forgeregistry.com/registry/%40stratta%2Fmcp
- MCP: POST https://forgeregistry.com/api/mcp → `forge_get_package` / `forge_install_plan`

## About this document

Generated by Forge (https://forgeregistry.com) — a compact rendering of the same record served, signed, at the JSON URL above. Trust and scan facts are the registry's own measurements; anything Forge did not measure is named as unmeasured rather than omitted.
