Greymatter.ioGreymatter.io
Start for Free
Greymatter.ioGreymatter.io Why Greymatter.io?
Pricing Start for Free
Platform • AI Guardrails

Guardrails and DLP for every AI agent.

Keep agents inside their role and people inside their token budget. Record the sensitive data their calls carry, with no extra gateway to run.

ztfabric82 svc · 9 nsSearch 776 objects across 8 types⌘K× 10 failing▲ 10 degraded● 748 healthyThe Grid›jupyterhub›jupyterhub-edge-version-mainAccessApp GuardBlast RadiusListenersLogsPeersSecurityJupyterhub Edge(spiffe://greymatter.io/ztfabric.ztfabric.jupyterhub-edge)DEPLOYMENTztfabric · jupyterhubhttp_auto · tcpHuman CuratedCRTLSmTLSFIPSPost-quantum readySPIREListener0.0.0.0:10908GuardrailsDLPWAFRange1h6h12h24h7dGuardrailsDetection only0.0.0.0:10908Nov 2 12:29–Nov 3 12:29 UTC · 1h buckets · latest record 12:25Would have been blockedi169180 critical · 78% of matchesMatched a rule218no earlier window to compareRules triggered387 modulesLargest rule37%9500151· 1 source address · 17pathsOver timeone row per outcome, each on its own scale · hover a bar for countsWould have been blockedpeak 68 / hAudited (recorded, never blocks)peak 15 / hNov 2 12:29Nov 3 00:29Nov 3 12:29 UTCRules5 of 38 rules · the read returns the top 10Show top 10RuleMatchesShareSourcesPaths9500151LLM05 Output Handling: Long base64 blob in model output (possible encoded exfil)8037%1179500152LLM05 Output Handling: Long hex string in model output (possible encoded exfil)7032%179500120LLM05 Output Handling: HTML/JS injection in model output6831%1109500901LLM05 Output Handling: XSS / HTML-injection anomaly score threshold exceeded6831%110WHAT IS HAPPENINGIts one pod is running and ready.No destination it calls isfailing. Every data plane is connected to the control plane.1 pod · 1 ready3 listenershttp_auto · tcp0 destinations failingPods ready1 of 1Data planesall healthyControl plane1 of 1 connectedSPIRE certificateiRotating automaticallyFile certificateiNov 2, 2027 · 364 daysFailed connectionsinoneRequestsi121 in 2m 30s · 0 server errors (0%)Sources failingnoneDestinations failingnoneApp Guardi465 events · 24hWAFi261 events · 24hSPIRE1 of 1 connected · 0 silentTRIAGEDeployment · 1 pod · 1/1 ready · nothing to show+1 more pod · RunningShow all 1 podAsk
ztfabric82 svc · 9 nsSearch 776 objects across 8 types⌘K× 10 failing▲ 10 degraded● 748 healthyThe Grid›jupyterhub›jupyterhub-edge-version-mainAccessApp GuardBlast RadiusListenersLogsPeersSecurityJupyterhub Edge(spiffe://greymatter.io/ztfabric.ztfabric.jupyterhub-edge)DEPLOYMENTztfabric · jupyterhubhttp_auto · tcpHuman CuratedCRTLSmTLSFIPSPost-quantum readySPIREListener0.0.0.0:10908GuardrailsDLPWAFRange1h6h12h24h7dGuardrailsDetection only0.0.0.0:10908Nov 2 12:29–Nov 3 12:29 UTC · 1h buckets · latest record 12:25Would have been blockedi169180 critical · 78% of matchesMatched a rule218no earlier window to compareRules triggered387 modulesLargest rule37%9500151· 1 source address · 17pathsOver timeone row per outcome, each on its own scale · hover a bar for countsWould have been blockedpeak 68 / hAudited (recorded, never blocks)peak 15 / hNov 2 12:29Nov 3 00:29Nov 3 12:29 UTCRules5 of 38 rules · the read returns the top 10Show top 10RuleMatchesShareSourcesPaths9500151LLM05 Output Handling: Long base64 blob in model output (possible encoded exfil)8037%1179500152LLM05 Output Handling: Long hex string in model output (possible encoded exfil)7032%179500120LLM05 Output Handling: HTML/JS injection in model output6831%1109500901LLM05 Output Handling: XSS / HTML-injection anomaly score threshold exceeded6831%110WHAT IS HAPPENINGIts one pod is running and ready.No destination it calls isfailing. Every data plane is connected to the control plane.1 pod · 1 ready3 listenershttp_auto · tcp0 destinations failingPods ready1 of 1Data planesall healthyControl plane1 of 1 connectedSPIRE certificateiRotating automaticallyFile certificateiNov 2, 2027 · 364 daysFailed connectionsinoneRequestsi121 in 2m 30s · 0 server errors (0%)Sources failingnoneDestinations failingnoneApp Guardi465 events · 24hWAFi261 events · 24hSPIRE1 of 1 connected · 0 silentTRIAGEDeployment · 1 pod · 1/1 ready · nothing to show+1 more pod · RunningShow all 1 podAsk
Console view · sample data. We masked names and identifiers.
In practice

Guardrails for what agents actually do.

Three ways agents go wrong, and what Guardrails does about them.

01Rogue agents 02Token budgets 03Sensitive data

Keep each agent inside the job you gave it.

✓The MCP Router shows each role only the tools it holds. A tool an agent cannot use never appears in its list, so the model never plans around it
✓Guardrails flag calls to destructive tools, unlisted methods, open schemas, and oversized arguments, and block them when your team chooses
✓Guardrails catch instructions hidden in a document, a tool result, or an image before the agent acts on them

An agent cannot delete, write, or run commands outside its role, even when a prompt tells it to.

greymatter-edgeMCP RouterPlatform ManagedTLSmTLSFIPSPost-quantum readySPIRE0 of 2 MCP servers reachable. 2 had no calls in the last 5 minutes.CallsToolsRange1h6h12h24h7dTIMESOURCEREQUESTDECISION7:59:37 PMp●●●●.s●●●Ran tool get_doc_metadata on docsAllowed7:59:37 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:25 PMp●●●●.s●●●Ran tool read_doc on docsAllowed7:59:22 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:22 PMp●●●●.s●●●Ran tool get_schema on docsAllowed7:59:16 PMp●●●●.s●●●Ran tool get_schema on docsAllowed7:59:16 PMp●●●●.s●●●Ran tool read_doc on docsAllowed7:59:09 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:04 PMp●●●●.s●●●Ran tool get_doc_metadata on docsAllowedgreymatter-edgeMCP RouterTLSmTLSSPIREPost-quantum0 of 2 MCP servers reachable.2 had no calls in the last 5 minutes.CALLS · LAST 24Hp●●●●.s●●●AllowedRan tool get_doc_metadata on docs7:59:37 PMp●●●●.s●●●AllowedRan tool search_docs on docs7:59:37 PMp●●●●.s●●●AllowedRan tool read_doc on docs7:59:25 PMp●●●●.s●●●AllowedRan tool search_docs on docs7:59:22 PMp●●●●.s●●●AllowedRan tool get_schema on docs7:59:22 PMp●●●●.s●●●AllowedRan tool get_schema on docs7:59:16 PMp●●●●.s●●●AllowedRan tool read_doc on docs7:59:16 PM
greymatter-edgeMCP RouterPlatform ManagedTLSmTLSFIPSPost-quantum readySPIRE0 of 2 MCP servers reachable. 2 had no calls in the last 5 minutes.CallsToolsRange1h6h12h24h7dTIMESOURCEREQUESTDECISION7:59:37 PMp●●●●.s●●●Ran tool get_doc_metadata on docsAllowed7:59:37 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:25 PMp●●●●.s●●●Ran tool read_doc on docsAllowed7:59:22 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:22 PMp●●●●.s●●●Ran tool get_schema on docsAllowed7:59:16 PMp●●●●.s●●●Ran tool get_schema on docsAllowed7:59:16 PMp●●●●.s●●●Ran tool read_doc on docsAllowed7:59:09 PMp●●●●.s●●●Ran tool search_docs on docsAllowed7:59:04 PMp●●●●.s●●●Ran tool get_doc_metadata on docsAllowedgreymatter-edgeMCP RouterTLSmTLSSPIREPost-quantum0 of 2 MCP servers reachable.2 had no calls in the last 5 minutes.CALLS · LAST 24Hp●●●●.s●●●AllowedRan tool get_doc_metadata on docs7:59:37 PMp●●●●.s●●●AllowedRan tool search_docs on docs7:59:37 PMp●●●●.s●●●AllowedRan tool read_doc on docs7:59:25 PMp●●●●.s●●●AllowedRan tool search_docs on docs7:59:22 PMp●●●●.s●●●AllowedRan tool get_schema on docs7:59:22 PMp●●●●.s●●●AllowedRan tool get_schema on docs7:59:16 PMp●●●●.s●●●AllowedRan tool read_doc on docs7:59:16 PM
OWASP LLM Top 10
10/10

Stop chasing AI risks one tool at a time.

Cover all ten OWASP risks for AI apps where your agents actually work.

OWASP LLM Top 10 risk 01 of 10 · covered
The threat
Prompt Injection

Guardrails catch a hidden instruction that tries to take over an agent, even when attackers disguise it.

The Greymatter response Enforceable

With blocking on, Greymatter refuses the request. Set it to hold traffic until the scan decides, and the threat never reaches the model or the user. Turn blocking on after your team confirms accuracy in detect mode.

Guardrails · Engine On In the path · blocks
Analyst · /v1/chat/completions live traffic
Guardrails inspects ↓
RULE 9001 · CRITICAL · LLM01 Prompt Injection
BLOCKED
stopped in-line · forensic event written
Select a category to open its threat file. ←Swipe to change rule→
Data loss prevention

Know what sensitive data your agents move, and for whom.

DLP reads prompts, tool calls, tool results, and model answers. It records each finding with the person behind it, and it never blocks a business flow. A false block on a valid patient record or shipping manifest can stop real work.

claims-assistant → outside AI model6 findings · delivered
Summarize the claim for J. Alvarez, born 04/12/19791, SSN ●●●-●●-48212. Diagnosis E11.93, last A1C of 8.2%4. The card ●●●● 44175 was declined. Ship the replacement meter in MSKU 482●●●●6 before Friday.
1Dates of birthDisclosure2US Social Security numbersDisclosure3ICD-10Health data4Lab resultsHealth data5Payment card numbersDisclosure6Container numbersLogistics
Recorded with the person who asked. Request delivered. Click a finding to find it in the catalog. Click it again to clear.
Check the catalog
56 of 56 detectors
Personal data and secrets · 29

US Social Security numbers, Passport numbers, Driver license numbers, US tax IDs, Canadian Social Insurance numbers, UK National Insurance numbers, German, Spanish, and Austrian social security numbers, French NIR, Italian codice fiscale, Danish CPR numbers, Payment card numbers, IBANs, US bank routing numbers, Dates of birth, Email addresses, Phone numbers, Home addresses, Race, Religion, Political opinion, Union membership, Sexual orientation, Biometric data, Cloud access keys, Code host tokens, Chat tokens, Payment API keys, JWTs, Private keys

Protected health information · 14

ICD-10, CPT, HCPCS, NDC, LOINC, DEA numbers, Medicare beneficiary IDs, Patient-linked diagnoses, Medication notes, Lab results, FHIR Patient resources, Clinical trial IDs, Device identifiers, Genomic variants

Mission and supply data · 8

Hazardous material UN numbers, Bills of lading, Container numbers, Customs codes, Fleet GPS, Hours-of-service data, Requests for fleet telematics, Requests for infrastructure plans

Special handling · 5

Banners, Portion marks, Control markings, Attempts to draw out sensitive information, Requests for sensitive details

Real values only
A number that fails its official check, such as a card check digit, is not a finding. The record stays worth reading.
From question to leak
When a request asks a model to dump records and the answer carries them, DLP links the two into one finding.
Both directions, every hop
DLP reads what goes out to a model or tool and what comes back, and names the person each time.
Ask Greymatter

Our own AI assistant runs inside these guardrails.

Ask Greymatter answers questions about your platform in plain language. It uses the same path, checks, and budgets as your agents. Your team can watch every control work before you approve your own AI apps.

Reads as the person who asked
Its tools read the platform through the MCP Router as that person. An answer shows only what their role allows.
Tools by group
Health, Security, Traffic, Changes, and Docs. A person turns each group on or off for the model.
Inspected and on budget
Guardrails and DLP check the model's calls and answers, and token budgets apply.
Explore Ask Greymatter →
2026-11-03 13:27:04f●●●●●●●-9●●●-4●●●-9●●●-e●●●●●●●●●●●2026-11-03 13:27:03a●●●●●●●-5●●●-4●●●-9●●●-6●●●●●●●●●●●2026-11-03 13:27:015●●●●●●●-f●●●-4●●●-b●●●-0●●●●●●●●●●●2026-11-03 13:26:486●●●●●●●-e●●●-4●●●-b●●●-0●●●●●●●●●●●2026-11-03 13:26:43e●●●●●●●-7●●●-4●●●-9●●●-2●●●●●●●●●●●2026-11-03 13:26:249●●●●●●●-5●●●-4●●●-8●●●-a●●●●●●●●●●●Error serving request [&{GET /api/vote?choice=:doughnut: HTTP/1.1 ... User-Agent:[Go-http-client/1.1] X-Forwarded-Client-Cert:[By=spiffeEach line has this shape (trace, span, and audit-chain ids differ perrequest):Ask GreymatterIs emojivoto-web healthy, and what depends on it?Which services have security gaps?What changed in the mesh in the last day?Which services are unhealthy right now, and why?Is emojivoto-web healthy, and what depends on it?Try askingToolsHealthSecurityTrafficChangesDocsChoose the groups of tools the modelcan use to read the platform. With everygroup off, the model answers alone.2Modelgrok-4.7AskNew conversation
2026-11-03 13:27:04f●●●●●●●-9●●●-4●●●-9●●●-e●●●●●●●●●●●2026-11-03 13:27:03a●●●●●●●-5●●●-4●●●-9●●●-6●●●●●●●●●●●2026-11-03 13:27:015●●●●●●●-f●●●-4●●●-b●●●-0●●●●●●●●●●●2026-11-03 13:26:486●●●●●●●-e●●●-4●●●-b●●●-0●●●●●●●●●●●2026-11-03 13:26:43e●●●●●●●-7●●●-4●●●-9●●●-2●●●●●●●●●●●2026-11-03 13:26:249●●●●●●●-5●●●-4●●●-8●●●-a●●●●●●●●●●●Error serving request [&{GET /api/vote?choice=:doughnut: HTTP/1.1 ... User-Agent:[Go-http-client/1.1] X-Forwarded-Client-Cert:[By=spiffeEach line has this shape (trace, span, and audit-chain ids differ perrequest):Ask GreymatterIs emojivoto-web healthy, and what depends on it?Which services have security gaps?What changed in the mesh in the last day?Which services are unhealthy right now, and why?Is emojivoto-web healthy, and what depends on it?Try askingToolsHealthSecurityTrafficChangesDocsChoose the groups of tools the modelcan use to read the platform. With everygroup off, the model answers alone.2Modelgrok-4.7AskNew conversation
Turn on Guardrails and DLP and see what your agents do.

Findings start on the first request. Nothing is blocked until your team turns blocking on, one module at a time.

Download the Guardrails and DLP white paper
Turn on Guardrails and DLP and see what your agents do.

Findings start on the first request. Nothing is blocked until your team turns blocking on, one module at a time.

Download the Guardrails and DLP white paper
Related resources

Where AI Guardrails connects across the platform

Use case
AI & Agent Control
Learn More →
Use case
Sensitive Data Detection
Learn More →
Blog
Beyond Agent Washing: Building Real Agentic Infrastructure
Learn More →
Swipe for more
FAQs
Questions worth answering directly

Greymatter runs Guardrails and data loss prevention (DLP) right beside each app, on traffic coming in, going out, or both. They read prompts, answers, and AI tool calls in one pass, after the caller is verified. Guardrails maps its modules to all ten OWASP risks for AI apps and can block. DLP records sensitive data and never blocks.

No. Greymatter inspects AI calls where they start, inside your network. A gateway at the edge sees only the traffic that crosses the edge. Calls between an agent and a tool inside your network never reach it. Greymatter also names who sent the call, and it adds no hop and no app changes.

Greymatter starts all modules in detect mode, where they report what they would block. Your team turns on blocking one module at a time. If a scan runs past its deadline, the traffic goes through and the record shows a coverage gap. For the strictest apps, your team can hold traffic until the scan decides.

Yes. With MCP inspection on, Greymatter reads the method, the tool, and every argument of each tool call. Your team keeps lists of approved and blocked tools. A blocked agent gets a clear error that names the rule.

Yes. Greymatter records the model and the input, output, and total tokens for a call, with the person who sent it. Token budgets give each person a daily total. Point several models at one budget, and it covers them all. A person over budget gets a standard quota error.