TRISMAG / IN YOUR WORKFLOW

Put the check
before the context.

Start with where your content should go: keep it on your machine, or send it to the hosted API. Then choose how your application or workflow requires the check.

LOCAL / PYTHON + CLI

Keep the content with you.

Trismag 0.4.11 runs offline with Python 3.10 or newer. The installed engine has no third-party runtime dependencies, telemetry, account or API key. It inspects text, conversations and supplied tool metadata without contacting our servers.

Local downloads are coming with paid access. When checkout opens, every paid purchase will include the local package and updates for 12 months from that purchase date. A later purchase refreshes that date; unused time does not stack. Your downloaded version will keep working after update access ends. Purchase access and protected downloads are not available yet.

SHA-256 checksum · Full local guide · Release details

Install, then inspect.

Once downloads open and you have the wheel, run these commands in a Python virtual environment from the folder containing it. This installs the downloaded file; it does not require a PyPI release.

python -m pip install ./trismag-0.4.11-py3-none-any.whl
python -m trismag --version
python -m trismag triage --text "The meeting is on Thursday."
python -m trismag triage --file document.txt --untrusted

The trismag command is also installed. Use --file - for UTF-8 stdin, --messages messages.json for a JSON array of up to eight messages, or --tools tools.json for supplied MCP tool metadata. Larger or incomplete inputs are refused rather than silently truncated.

Require the check in Python.

from trismag import inspect_or_raise

# Keep the document outside model context until this returns.
released = inspect_or_raise(document)
# Pass only released to your model. Let exceptions stop this path.

inspect_or_raise returns the unchanged text only after a complete LOW scan with untrusted provenance. Warnings raise ContentHeld; invalid or incomplete inputs raise InspectionError. For your own policy, use triage, triage_messages or triage_tools and inspect the JSON-compatible result.

For terminal workflows: exit 0 means complete LOW; exit 1 means hold or review; exit 2 means invalid input or no complete verdict. A failed process, missing result or malformed response must also stop the path. LOW does not authorize a tool action.

The wheel includes the same detector source used by the API, but releases can be installed or deployed at different times. Compare engine_version locally with detector_version in the hosted response. A packaged local HTTP server, Docker image, native executable and npm package are not included in this release.

HOSTED / HTTPS

Let us run the service.

Call the hosted API from your server in any language. Content is sent to Trismag for inspection; read the hosted privacy policy before sending it. Anonymous previews show risk; a free key adds findings.

curl https://api.trismag.dev/v1/triage   -H "Content-Type: application/json"   -d '{"text":"The meeting is on Thursday."}'

Get a free hosted key → · Read the API quickstart → · Hosted allowances →

Your application must check the response before releasing content. Stop on errors, timeouts, exhausted quotas and incomplete scans. Local use does not consume hosted scan credits.

INTEGRATIONS / WHO REQUIRES THE CHECK?

Fit inspection into your workflow.

These hosted integrations connect to the API. The n8n starter holds content until its inspection policy releases it. MCP offers scanning tools that an agent can choose to call; connecting it does not automatically intercept other content.

Require inspection with n8n → · Add optional MCP scanning → · HTTP and Make options →

01 / N8N

Fetch. Inspect. Release or hold.

The starter fetches a harmless example document, scans its text and releases that same text only after a usable LOW response. Errors stop execution. Warnings and invalid verdicts never reach the release output.

Fetch documentTrismag inspectionRelease / hold
Download n8n workflow
  1. Get a free key. Use Trismag’s key form. Current allowance: 500 scans per calendar month, with limited free usage continuing after September 30, 2026.
  2. Import the JSON into n8n. In the Trismag HTTP node, create a Header Auth credential. Header name: Authorization. Value: Bearer YOUR_TRISMAG_KEY. Store your key in n8n Credentials, not the workflow file.
  3. Run the included document. The ordinary sample should reach RELEASE. Change the fetch URL to the attack sample to exercise HOLD. The known limitation intentionally returns LOW.
  4. Connect your content source and model. Prepare untrusted text must output a text string. Connect only RELEASE to the model, and use only that step’s $json.text. Keep HOLD disconnected from the model.
  5. Check the failure paths. A missing key, exhausted allowance, timeout, bad JSON or incomplete response must not produce a released item. Never enable Continue On Fail, Always Output Data or Ignore Response Code to get around a failed inspection.
The wiring is the boundary. A model that can fetch the document directly, reference an earlier node, or receive it through memory or another branch can bypass this workflow. Review every content path and keep independent action approvals.

Saved success, error and manual execution data are disabled in this template. n8n still processes content and can display it while debugging; your instance logs, credentials, backups and retention settings are separate from Trismag’s privacy practices.

Updating an older import? Download and review this version, then replace your earlier workflow. Existing imports do not update automatically. The earlier starter checked only the risk label; this one also validates the response and rejects explicit incomplete scans.

Validated with 21 local executions in n8n 2.38.7. Verification scope is published in the n8n execution report. Local CLI execution is not a test of every n8n Cloud version or your downstream model. Make remains an earlier starting blueprint; it has not received this n8n runtime verification.

A SHORT WALKTHROUGH / RECORDED RESULTS

See where the content goes.

These examples explain the local test outcomes. Selecting one does not call the API or a model. They demonstrate both a useful warning and a known miss.

DOCUMENT TEXT
The quarterly planning meeting is on Thursday.
LOWRELEASE

The original inspected text can continue. Permissions and action approvals still apply.

Ordinary document: LOW, RELEASE.

02 / MCP

One endpoint. Optional inspection.

Connecting is not automatic protection. Trismag does not intercept your other MCP servers. A model can skip the scan or ignore its result. For enforced inspection, use the workflow above or an application-controlled check before content enters context. Read the full boundary.

Remote Streamable HTTP endpoint: https://api.trismag.dev/mcp. Tools: check_text, check_conversation and check_tool_descriptions. Use your Trismag key in an Authorization header; Trismag does not provide an OAuth sign-in flow.

Cursor

Set TRISMAG_API_KEY in the environment Cursor inherits, then restart Cursor. The install link contains only an environment-variable reference, never your key. Cursor will ask you to review the configuration.

Add Trismag to Cursor
Manual configuration

Merge this entry into your existing .cursor/mcp.json; preserve other servers.

CURSOR / MCP CONFIG
{
  "mcpServers": {
    "trismag": {
      "url": "https://api.trismag.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${env:TRISMAG_API_KEY}"
      }
    }
  }
}

Based on Cursor’s install-link format and environment interpolation. The Cursor application installation itself has not been tested on this machine.

Claude Code

Set TRISMAG_API_KEY in the environment that launches Claude Code. Merge this entry into the project’s .mcp.json, review the server approval, then check its status with /mcp. Never commit a literal key.

CLAUDE CODE / MCP CONFIG
{
  "mcpServers": {
    "trismag": {
      "type": "http",
      "url": "https://api.trismag.dev/mcp",
      "headers": {
        "Authorization": "Bearer ${TRISMAG_API_KEY}"
      }
    }
  }
}

Configuration follows Claude Code’s remote HTTP documentation. The live protocol checks use the official MCP SDK, not a Claude Code session. Claude Desktop and other clients may have different remote-server and authentication support; no universal one-click compatibility is claimed.

Verify the connection

Confirm all three tools appear. Ask for a check_text call on the ordinary sample and inspect the actual tool result. A timeout, authentication failure, quota error, protocol error or isError: true is no verdict. Keep untrusted results out of context if your integration is meant to enforce inspection.

The SDK passed all three tool checks against a local synthetic account. Live discovery and error handling passed; live scan verdicts were unavailable because the test IP exhausted its public allowance.

Start small. Keep the evidence.

Use synthetic content first. Review missed attacks and benign warnings alongside successful detections. Neither this workflow nor an MCP connection guarantees complete protection.