Syl Guardian
Server Details
Causal check on AI agent claims, from ad-spend/ROAS lift to any decision: pass, caution or hold.
- Status
- Healthy
- Uptime
- 100.0% over the last 24 hours
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- connor274/syl-guardian-mcp
- GitHub Stars
- 0
- ChatGPT
- –
- Claude
- –
TDQS
Scored across 2 tools
The two tools have clearly distinct roles: one prepares a large dataset upload and the other performs the causal review. The descriptions explicitly explain when to use the upload helper instead of passing CSV/data directly to the review tool.
Both names use the same guardian_ prefix and snake_case action-oriented convention. guardian_request_upload and guardian_review are predictable and readable together.
Two tools is slightly thin, but the server has a focused purpose: guardian_review is the core operation and guardian_request_upload is a necessary helper for large datasets. Each tool earns its place without unnecessary surface area.
The review tool covers the core causal-check lifecycle including data input, confounder adjustment, estimator selection, sensitivity, subgroup effects, and deterministic stamping. Minor gaps exist around dataset management such as cancellation or listing, but the main workflow is complete.
Publisher details
- Operator
- Syl AI · Publisher source
- Operator website
- https://sylai.io/ · Publisher source
- Vendor relationship
- Independent
- Documentation
- https://sylai.io/guardian/docs · Publisher source
- Trust center
- Not available
- Restrictions
- Trial plan for 100 calls, paid plans for increased limits · Publisher source
Available Tools
2 toolsguardian_request_uploadAInspect
Get a pre-signed URL for uploading a large CSV (more than ~200 rows).
Use this instead of pasting rows into guardian_review. Returns upload_url,
dataset_id and a ready-to-run curl command: run it (replace data.csv
with your file; gzip is accepted with Content-Encoding: gzip), then call
guardian_review with dataset_id (and no csv/data). The URL is
single-use and expires after 30 minutes; the dataset is only usable by the same API
key, and is single-use too: it is deleted when guardian_review reads it (even if
that review fails), so request a new upload to retry. This call does not consume
review quota.
Inputs: no named parameters.
guardian_reviewAInspect
Sanity-check a causal claim ("cause drove effect") before acting on it.
Provide exactly one of csv (CSV text), data (list of row objects) or
dataset_id (a dataset uploaded via guardian_request_upload; use this for
more than ~200 rows; single-use, deleted when reviewed) containing columns named by
cause and effect. Returns a verdict --
pass (act), caution (act carefully), or hold (do not act; the effect
looks confounded or unsupported) -- with the naive correlational effect versus the
confounder-adjusted causal effect and its confidence interval, the confounders
adjusted for, a confidence score, a plain-English interpretation, and a
recommended action, plus the estimator used and the inferred causal DAG. All numbers
are deterministic statistics (never LLM-generated); the LLM may only choose an
estimator id from a fixed whitelist and write the interpretation prose.
Args:
cause: Treatment column the claim says drives the outcome (e.g. "ad_spend").
effect: Outcome column (e.g. "new_customers").
csv: Dataset as CSV text (header row required).
data: Dataset as a list of row records (alternative to csv).
dataset_id: ID returned by guardian_request_upload after uploading the CSV
(alternative to csv/data; for datasets above ~200 rows). Single-use:
the dataset is deleted when reviewed, so re-upload to retry.
known_confounders: Columns to adjust for; otherwise discovered automatically.
context: Free-text business context, e.g. "Q3 promo evaluation".
units: Display-only unit hints by column, e.g. {"ad_spend": "USD"}.
step: A concrete treatment step (e.g. 1000 for a $1,000 spend increase) to
restate the effect in business terms (cost per incremental outcome, ...).
time_col: Column to order rows by for time series (autocorrelation-robust
standard errors and adstock).
adstock: Opt-in geometric-adstock transform for a lagged/carryover treatment.
se: Standard-error flavor; "auto" diagnoses autocorrelation when time_col
is given.
test_design: true (or an options object) also returns how many periods a
spend-cut test needs to confirm the effect.
estimator: Primary-effect estimator. Omit (or "auto") to follow
config.estimator (default "rule": the deterministic choice); "llm" lets
the server's LLM pick from a fixed whitelist (falls back to the rule if no
LLM is configured); or force "ols_adjusted", "aipw", "ipw", "psm" or
"dml_forest" (always wins over config). The response reports the
estimator used (estimator.id, .source, .rationale, .fallback_reason)
and the inferred dag.
config: Per-step engine config, an object with optional keys cleaning,
discovery, estimator, summary, each "rule" (deterministic, no
LLM) or "llm". Defaults when omitted or partial: cleaning="llm",
discovery="llm", estimator="rule", summary="rule". The LLM never computes a
number: cleaning proposes derived columns / null-imputation strategies
(pandas computes the values), discovery prunes/orients the discovered DAG
(cause/effect are always yours), estimator picks a whitelisted id, summary
writes the prose ("rule", the default, is a fixed template that explains the
why with no AI). An "llm" step falls back to "rule" when the server has no
Gemini key or the call fails; the response's engine_steps reports
requested vs used per step with a fallback reason. Unknown keys or values
are rejected. Use all "rule" for a fully deterministic, reproducible run.
seed: Optional base random seed (default 42) for every seeded step; the seeds
used are returned in stamp.seeds.
cate: Opt-in list of dataset columns to stratify by for subgroup effects
(returned in cate); columns are validated against the dataset.
sensitivity: Opt-in; true also returns sensitivity checks (sensitivity).
Every response carries `stamp` (core/guardian versions, estimator, resolved
config, seeds, data_fingerprint) and `llm_decisions` (audit/replay records):
a changed answer with an unchanged `stamp.data_fingerprint` came from a Syl
release or config change, not from your data. Only cleaning/discovery/estimator
set to "llm" can change a number; summary never does.
Inputs: cause (required), effect (required), se, csv, +14 more.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
Related MCP Connectors
Runtime gate for AI agent claims. Catches sycophantic drift, circular self-validation, causal errors
Independent AI-agent reviews: trust checks, evidence scorecards, incident registry, recommendations.
Fit, compatibility and recall checks for AI agents before they buy: verdicts, evidence, receipts.
Domain attribution and correlation for AI agents, with confidence and per-signal evidence.
Related MCP Servers
- AlicenseNot gradedqualityBmaintenanceEnables AI agents to test load-bearing assumptions through an evidence-driven pipeline, detect sycophancy and causal errors, calibrate confidence, and route decisions to act, revise, or halt.MIT
- AlicenseBqualityCmaintenanceEnables AI agents to verify technical claims against supplied evidence, identify unsupported assumptions and contradictions, and recommend the smallest next check before acting.5MIT
- AlicenseNot gradedqualityCmaintenanceEnables AI agents to run evidence QC gates mid-workflow—checking claims, sources, prose, and vault hygiene deterministically before research ships.MIT
- FlicenseNot gradedqualityBmaintenanceA performance marketer's verdict for AI agents — four tools that return a deterministic run / fix_first / kill call on ad creative, campaign structure, targeting, and live performance, so your agent only ships ads worth the spend.-
Glama MCP Gateway
Add one secure layer between your agents and this server.