Raziel
NPM · @TIDEORG/MCP · 2 COMPONENTS
MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis
Available components
Last scanned (12 hours ago)
Scores higher than 64% of npm servers
Category Security
How this component scores in each security and reliability category. Every signal is checked automatically from public evidence about the published package, including repeated runs of it in an isolated sandbox, and we only credit what we can confirm. How we score → Why this is hard to score →
Supply Chain Security98
- No malware found by supply-chain analysis.Pass
- No known CVEs affecting this package version or its production dependencies.Pass
- No install/post-install scripts declared.Pass
- 30 of 92 dependencies flagged as unhealthy. View diagnostics → Partial
Provenance & Transparency32
- Source repository is publicly reachable at the declared URL. View diagnostics → Pass
- Provenance check failed: no build-provenance attestation is published. See how to fix → View diagnostics → Fail
- Licence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.Unverified
- Actively maintained (last published 8 days ago).Pass
- Disclosure check failed: no security disclosure policy was found in the source repository. See how to fix → Fail
Schema Quality & AI Usability80
- 100% of prompts and resources have a non-trivial description (not blank, and not just the item's name).Pass
- AI-judged instruction clarity (excellent).Pass
- Context-footprint check failed: tool/resource definitions use about 3565 tokens (~162/item across 22 items; 22 tools + 0 resources), over budget; trim descriptions and params. See how to fix → Fail
- Usage-examples check failed: none of the tools include examples. See how to fix → Fail
Stability & Change Management83
- Stability observed for 25 of 30 days with no destabilising changes; credit accrues until the full window elapses.Partial
Tool Coverage100
- 100% of tools have a non-trivial description (not blank, and not just the tool's name).Pass
- 100% of tool parameters carry a description.Pass
Tool Safety100
- No prompt-injection markers were found in the server instructions, tool names or descriptions we captured.Pass
- We read all 22 captured tool definition(s), and no name or description among them implies an irreversible operation.Pass
- An AI judge read all 23 captured unit(s) of tool text and found none that tries to manipulate the model reading it.Pass
Capabilities100
- Implements a supported MCP spec version (2025-11-25); the latest is 2026-07-28.Pass
Checks we ran (15)
- Malware scan
- Known CVEs
- Install scripts
- Dependency health
- Source repository
- Provenance
- Maintenance
- Security disclosure
- Schema quality
- Stability
- Tool coverage
- Injection markers
- Destructive annotations
- Judged manipulation
- MCP protocol
Checks we could not complete (1)
These are gaps on our side, not findings about this package. We only credit what we can confirm, so a category made up entirely of them scores 0.
- License in Provenance & TransparencyLicence could not be checked: the licence is shipped as a file inside the package, not declared as a standard (SPDX) licence identifier, so we cannot tell whether it is OSI-approved.
Does not apply to this package (2)
- Endpoint SecurityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
- Transport & ReachabilityScored on hosted endpoints only. A package has no live endpoint of its own for us to probe.
The score does not measure everything. What the score does not measure →
Every change we have recorded for this component, newest first. Security-relevant changes are always shown. ▲ marks a change for the better, ▼ a change for the worse; unmarked changes are neutral.
- 7 Nov 26 +1
No change was recorded against any check on this day. Stability & Change Management went from 80 to 83. That category is still filling its 30-day observation window: 24 days of observed history at the previous scan, 25 at this one. The score rises as the window fills, whether or not the server changes.
- 6 Nov 26 −3
- Stability: pass → 0.80 functional
- 5 Nov 26 0
- Security disclosure: unverified → fail ▼ functional
- 2 Nov 26 0
- Security disclosure: fail → unverified ▼ functional
- 31 Oct 26 0
- Stability: 0.97 → pass security
- 30 Oct 26 0
- Stability: pass → 0.97 functional
- 29 Oct 26 +5
- CVE-2023-54404 no longer affects this package ▲ security
- Known CVEs: fail → pass ▲ security
- Security disclosure: fail → unverified ▼ functional
- Package version: 1.9.33 → 1.9.34 functional
- 27 Oct 26 0
- Security disclosure: unverified → fail ▼ functional
Diagnostic detail from the automated scan of this channel: what the scanner observed at each step, so you can see exactly where a check passed or failed. It is informational only and never changes the trust score.
Captured 7 Nov 2026 · Analysed npm/@tideorg/mcp@1.9.34
Provenance No attestation
The registry publishes no build provenance for this version, so there is nothing to verify.
| Result | No attestation |
|---|---|
| Ecosystem | npm |
Background: How many MCP packages publish verified provenance →
Dependencies 92 packages
| Packages resolved | 92 |
|---|---|
| Stale | 30 |
| Tree resolution | Complete |
Background: SBOMs and build attestations, explained →
The tools this component advertises to a client, with an estimated token cost for each. Expand a tool to see its parameters and schema. The per-tool counts are indicative and are not scored directly; the schema's total context footprint is one signal in Schema Quality & AI Usability. A tool's description is untrusted text the model reads on every call, which is what makes this list a security surface and not just an inventory: how tool poisoning works →
tide_adapter ~46
Read an adapter instruction file (AGENTS, CLAUDE, replit)
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Adapter file name. Available: AGENTS, CLAUDE, replit |
No output schema declared.
No examples provided.
tide_blast_radius ~180
Run a Blast Radius Assessment of an EXISTING app: an adversarial, vendor-neutral map of where authority is concentrated to a single point (whoever obtains that one thing obtains everything it governs), scored by blast radius (Total/Systemic/Contained/Limited) across three cores — Identity, Governance, Access — and delivered as a director-facing PDF. Phase 1 names no vendor; an opt-in Phase 2 companion explains how TideCloak shrinks each blast radius. Use this when the user wants to 'assess', 'red team', 'threat model', 'find the security gaps in', or make a before/after security case for an existing application.
| Name | Type | Req | Description |
|---|---|---|---|
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_branding ~272
BRAND THE ENCLAVE FOR THE USER — generate a logo + background and upload them so the Tide login/approval screen is branded. Returns a single ready-to-run command that generates the assets (no image model needed), validates them, uploads both, and saves+signs the IdP settings. Also returns the VERIFIED upload contract (multipart parts, the png/jpg/jpeg/gif/webp allowlist with SVG REJECTED, the 5 MB cap, set-branding = save AND re-sign, IGA-exempt) plus image-model prompts for agents that can generate images. Pass realm/accent/appName to get the command pre-filled. CALL THIS whenever branding, a logo, a background, theming or 'skinning' the enclave or login screen comes up — then RUN the command; do not just describe it.
| Name | Type | Req | Description |
|---|---|---|---|
| accent | string | – | Hex accent colour without '#', e.g. '2f6f4e'. Default 1f6feb. |
| appName | string | – | App name. Deterministically varies the mark's geometry so realms look distinct. |
| realm | string | – | Realm to brand, e.g. 'myapp'. Fills in the command. |
| tidecloakUrl | string | – | Base URL. Default http://localhost:8080. |
No output schema declared.
No examples provided.
tide_canon ~213
Read a canon file (invariants, anti-patterns, concepts, framework-matrix, feature-mapping, troubleshooting, tidecloak-bootstrap, etc.)
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Canon file name. Available: agent-authority, anti-patterns, breach-precedents, concepts, custom-contracts, feature-mapping, framework-matrix, hosting-options, iga-change-requests-api, invariants, red… |
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
| section | string | – | Return only the section(s) whose heading contains this text, e.g. 'AP-62' or 'T-26'. Use it when another document points you at one entry. |
No output schema declared.
No examples provided.
tide_choose_playbook ~47
Recommend the right playbook for a given situation
| Name | Type | Req | Description |
|---|---|---|---|
| situation | string | yes | Describe what the builder wants to do, e.g. 'add login to a new Next.js app' |
No output schema declared.
No examples provided.
tide_choose_scenario ~49
Match a user request to a known scenario pattern before falling back to generic playbooks
| Name | Type | Req | Description |
|---|---|---|---|
| situation | string | yes | Describe the app or problem, e.g. 'build an organisation password manager' |
No output schema declared.
No examples provided.
tide_doctor ~313
FIND AND FIX WHAT IS WRONG WITH A TIDE APP, IN ONE COMMAND. Returns the command that checks an app for the faults behind most broken logins and unprotected APIs. It REPAIRS the mechanical ones itself (re-copies the DPoP page byte-exact, corrects a wrong rewrite path, gitignores .env) and prints the exact fix for the rest, which YOU apply — do not pass the list to the user. Covers: DPoP page missing/stale/served without its headers, useDPoP passed as a JSX prop (silently OFF), createTideCloakProxy called without protectedRoutes (protects nothing), adapter without its embedded key, remote JWKS, Bearer-only token parsing, no server-side verification, secrets about to be committed, a destructive change request pending. CALL THIS after scaffolding or changing auth code, BEFORE telling the user it works, and FIRST whenever a login or an API check misbehaves. This tool call itself only returns the command.
| Name | Type | Req | Description |
|---|---|---|---|
| appDir | string | – | App directory. Default: the current directory. |
| appUrl | string | – | URL of the RUNNING app, e.g. http://localhost:3000. Adds checks of what is actually served. |
| checkOnly | boolean | – | Report only and change nothing (for CI). Default false: mechanical faults are repaired. |
| realm | string | – | Realm name. Adds read-only realm checks (needs the admin password in .env). |
No output schema declared.
No examples provided.
tide_dpop_asset ~172
Returns the exact command that installs `public/tide_dpop_auth.html` — the DPoP relay page the Tide enclave loads during login — plus its sha256, the required next.config.ts rewrite/CSP wiring, and how to verify. `@tidecloak/js` ships the file from 0.14.34; older SDKs and the TideCloak container do not, and a GitHub search finds a STALE copy that posts to window.parent, which breaks the popup fallback and fails login with TIDE-SWE-UNHANDLED. CALL THIS whenever DPoP is enabled (it is on by default), whenever a login fails with TIDE-SWE-UNHANDLED or 'Popup DPoP verification failed to load', and before copying this file from anywhere else.
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tide_gaps ~58
Read the gap register — what is still uncertain or unresolved in the pack
| Name | Type | Req | Description |
|---|---|---|---|
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_hosting ~210
Where TideCloak runs: local Docker vs partner-hosted (Skycloak managed TideCloak-as-a-service). Returns the local-vs-hosted decision with the honest trade-offs, the trust model, the verified Skycloak API reference (correct cluster field names and the required version), and the full provisioning playbook. CALL THIS BEFORE STARTING ANY TIDECLOAK DEPLOYMENT — the choice must be made up front (I-17) because a realm cannot be moved between local and hosted afterwards. Triggers: 'deploy to production', 'deploy TideCloak', 'go live', 'host this somewhere', 'managed option', 'stable URL', 'can someone host TideCloak for us', or any request to stand up an instance where local-vs-hosted has not been settled.
| Name | Type | Req | Description |
|---|---|---|---|
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_list ~38
List all available content in the Tide agent pack by category
| Name | Type | Req | Description |
|---|---|---|---|
| category | string | yes | Which category to list, or 'all' for everything |
No output schema declared.
No examples provided.
tide_list_scenarios ~21
List all available scenario patterns under reference-apps/
Input schema present but exposes no named parameters.
No output schema declared.
No examples provided.
tide_onboarding ~303
STOP KEYCLOAK'S 'UPDATE ACCOUNT INFORMATION' PAGE and collect the details in-app instead. Tide asserts ONLY a username (the vuid) -- no email, no name -- so Keycloak blocks new users on an unstyled form showing a 64-hex username. Returns: a read-only DIAGNOSTIC that identifies which of FOUR mechanisms is causing the page (they need different fixes), the script that fixes it, and a ready-to-drop React modal that collects the details AFTER login via the Account API. CALL THIS whenever signup, onboarding, 'Update Account Information', a profile/details form, or 'what users see after they create an account' comes up -- and ALSO proactively once a realm is bootstrapped, because the default is that every new user hits that page.
| Name | Type | Req | Description |
|---|---|---|---|
| appName | string | – | App name, e.g. 'Mood Garden'. Used in the modal's copy. |
| componentPath | string | – | Where to WRITE the component, e.g. 'src/components/ProfileOnboarding.tsx'. |
| fields | array | – | Which fields to collect. ASK THE USER FIRST — do not guess. Default ['firstName','lastName']. |
| framework | string | – | Controls the mounting snippet. Default nextjs-app. |
| realm | string | – | Realm, e.g. 'vialproof'. Fills in the commands. |
| tidecloakUrl | string | – | Base URL. Default http://localhost:8080. |
No output schema declared.
No examples provided.
tide_playbook ~194
Read a step-by-step playbook for a specific Tide task
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Playbook name. Available: add-auth-nextjs-existing, add-auth-nextjs-fresh, add-rbac-nextjs, bootstrap-realm-from-template, configure-e2ee-roles-and-policies, deploy-forseti-policy, deploy-tidecloak-d… |
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_prompt ~62
Read a reusable starter prompt from the pack
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Prompt file name. Available: add-admin-approval-flow, build-private-customer-portal, migrate-generic-auth-to-tide, red-team-review, secure-existing-app, security-gap-analysis |
No output schema declared.
No examples provided.
tide_scaffold ~225
START A NEW TIDE APP FROM A WORKING TEMPLATE. Returns the exact commands to copy a complete, building app — login, the DPoP page and its wiring, server-side token AND proof verification, and the realm bootstrap script — then install, bootstrap and check it. CALL THIS when building a new app, BEFORE writing any auth code: the code that most often goes wrong (provider config, DPoP, route and API protection) is then copied, not retyped. Pass `situation` and it picks the template; or name one. Not for adding Tide to an existing app.
| Name | Type | Req | Description |
|---|---|---|---|
| appDir | string | – | Directory to create the app in. Default: the current directory. |
| appName | string | – | Lowercase name, e.g. 'mood-garden'. Becomes the package name, and so the realm and client names. |
| situation | string | – | What the user wants to build, in their words. Used to pick the template. |
| template | string | – | Choose a template explicitly instead of from `situation`. |
No output schema declared.
No examples provided.
tide_scenario ~110
Read a scenario summary from reference-apps/<scenario>/scenario.md
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Scenario name. Available: attestation, attested-provenance-registry, encrypted-communication, git-pr-signing-service, iga-admin-governance, organisation-password-manager, policy-governed-signing, rel… |
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_scenario_bootstrap ~81
Read a scenario bootstrap sequence from reference-apps/<scenario>/bootstrap-sequence.md
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Scenario name. Available: attestation, attested-provenance-registry, encrypted-communication, git-pr-signing-service, iga-admin-governance, organisation-password-manager, policy-governed-signing, rel… |
No output schema declared.
No examples provided.
tide_scenario_manifest ~77
Read a scenario manifest from reference-apps/<scenario>/manifest.yaml
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Scenario name. Available: attestation, attested-provenance-registry, encrypted-communication, git-pr-signing-service, iga-admin-governance, organisation-password-manager, policy-governed-signing, rel… |
No output schema declared.
No examples provided.
tide_scenario_roles ~82
Read a scenario role-policy matrix from reference-apps/<scenario>/role-policy-matrix.md
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Scenario name. Available: attestation, attested-provenance-registry, encrypted-communication, git-pr-signing-service, iga-admin-governance, organisation-password-manager, policy-governed-signing, rel… |
No output schema declared.
No examples provided.
tide_security_analysis ~162
Analyze an EXISTING (possibly non-Tide) system for security gaps and map them to Tide capabilities. Returns the Security Analyst role instructions, the security gap mapping table (SG-01…SG-18), and the runtime-probe procedures. Use this when the user asks 'do a security analysis', 'where is my auth weak', or 'what would Tide change about my security'.
| Name | Type | Req | Description |
|---|---|---|---|
| include_runtime_probes | boolean | – | Include the runtime-confirmation probe procedures (canon/security-runtime-probes.md). Only relevant when the operator is authorized to probe a live target. Defaults to true. |
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
No output schema declared.
No examples provided.
tide_skill ~171
Read a composable skill definition
| Name | Type | Req | Description |
|---|---|---|---|
| name | string | yes | Skill name. Available: grc-review, tide-diagnostics, tide-integration, tide-learning-capture, tide-mcp-qa, tide-rbac-and-e2ee, tide-red-team, tide-reviewer, tide-route-and-api-protection, tide-scenar… |
| part | integer | – | Which part to return when the document is delivered in several parts. Omit for part 1; the response says how many there are. |
| section | string | – | Return only the section(s) whose heading contains this text, e.g. 'AP-62' or 'T-26'. Use it when another document points you at one entry. |
No output schema declared.
No examples provided.
How do I install the Raziel MCP server?
Raziel runs locally as an npm package, launched with npx -y @tideorg/mcp. Ready-made configuration for Claude, Cursor, VS Code, Codex and 5 more is on this page, copied from each client's own documentation.
npm · @tideorg/mcp
claude mcp add tide-foundation-raziel -- npx -y @tideorg/mcp
What is the Raziel MCP server?
Raziel is an MCP server listed in the public MCP registry as io.github.tide-foundation/raziel. MCP server teaching AI agents to implement TideCloak: auth, E2EE, IGA, security analysis. This page covers its npm package (@tideorg/mcp).
Is the Raziel MCP server safe to use?
Raziel scores 80 out of 100 on VerifyMCP. We found no known CVEs affecting it as of 7 November 2026. It declares no install or post-install scripts. That is a record of what we were able to check automatically, not an endorsement. The category breakdown on this page shows every signal behind the number, including the ones we could not confirm.
What tools does the Raziel MCP server expose?
Raziel exposes 22 tools: tide_list, tide_canon, tide_playbook, tide_skill, tide_prompt, and 17 more. Their descriptions and schemas cost roughly 3,086 tokens of context every time the server is loaded.
Is the Raziel MCP server still maintained?
Raziel is still listed as active in the MCP registry. We last reached this channel on 7 November 2026. Those dates come from our own scans of the registry and the channel itself, not from anything the publisher announced.
What did VerifyMCP test on the Raziel MCP server?
VerifyMCP ran 15 checks on Raziel, covering Malware scan, Known CVEs, Install scripts, Dependency health and 11 more. One item could not be completed, a gap on our side rather than a finding about Raziel: License. Endpoint Security and Transport & Reachability do not apply to an npm package, so they were not tested. The score does not measure everything, and the scoring documentation lists what it leaves out.