Masks personal data and secrets in AI agent tool calls by routing requests through a secure node that enforces privacy policies.
Also known as ernesthausmann15/vrymdor-node-python, vrymdor-node-python, vrymdor-node
- Stars
- 0
- Tools
- —
- Downloads, 30 days
- —
- Latest version
- 1.2.2
- Last commit
- Nov 12, 2026
- License
- MIT
What is Vrymdor AI Node MCP?
Vrymdor AI Node masks personal data and secrets in AI agent tool calls by routing requests through a secure node that enforces privacy policies.
Summary generated from the project's README
About Vrymdor AI Node MCP server
Protecting sensitive information during AI agent interactions is the primary function of Vrymdor AI Node. It acts as a secure bridge that intercepts tool calls to remove personally identifiable information and secrets before they reach external services. Developers use this to enforce privacy policies by routing requests through a central node that verifies agent identity and status while generating metadata-only audit records.
To set this up, you must register an agent in the Vrymdor app to obtain an agent ID and a one-time agent secret. The server can be run locally as an MCP bridge for desktop clients like Claude Desktop, Cursor, or VS Code using the uvx command. It requires the VRYMNOX_NODE_URL, VRYMNOX_AGENT_ID, and VRYMNOX_AGENT_SECRET environment variables to function. The system handles token renewal automatically and provides specific error codes like tool_not_allowed or held_by_policy when actions conflict with your established privacy rules.
What you can do with it
- 1Redact sensitive user dataAsk the AI to process a customer message while ensuring email addresses are masked.
- 2Audit agent tool usageMaintain a record of all agent activities through metadata-only logs.
Written from the project's README. Every use case is checked against a quote from it.
How to install Vrymdor AI Node MCP
Formats verified 10 Nov 2026Install Vrymdor AI Node MCP in Claude Code
$ claude mcp add --env VRYMNOX_AGENT_SECRET=<YOUR_VRYMNOX_AGENT_SECRET> --env VRYMNOX_AGENT_ID=<VRYMNOX_AGENT_ID> --env VRYMNOX_NODE_URL=<VRYMNOX_NODE_URL> vrymdor-node-python -- uvx vrymdor-nodeInstall Vrymdor AI Node MCP in Cursor
~/.cursor/mcp.json
{
"mcpServers": {
"vrymdor-node-python": {
"command": "uvx",
"args": [
"vrymdor-node"
],
"env": {
"VRYMNOX_AGENT_SECRET": "<YOUR_VRYMNOX_AGENT_SECRET>",
"VRYMNOX_AGENT_ID": "<VRYMNOX_AGENT_ID>",
"VRYMNOX_NODE_URL": "<VRYMNOX_NODE_URL>"
}
}
}
}Install Vrymdor AI Node MCP in VS Code
.vscode/mcp.json
{
"servers": {
"vrymdor-node-python": {
"type": "stdio",
"command": "uvx",
"args": [
"vrymdor-node"
],
"env": {
"VRYMNOX_AGENT_SECRET": "<YOUR_VRYMNOX_AGENT_SECRET>",
"VRYMNOX_AGENT_ID": "<VRYMNOX_AGENT_ID>",
"VRYMNOX_NODE_URL": "<VRYMNOX_NODE_URL>"
}
}
}
}Install Vrymdor AI Node MCP in Claude Desktop
claude_desktop_config.json
{
"mcpServers": {
"vrymdor-node-python": {
"command": "uvx",
"args": [
"vrymdor-node"
],
"env": {
"VRYMNOX_AGENT_SECRET": "<YOUR_VRYMNOX_AGENT_SECRET>",
"VRYMNOX_AGENT_ID": "<VRYMNOX_AGENT_ID>",
"VRYMNOX_NODE_URL": "<VRYMNOX_NODE_URL>"
}
}
}
}Install Vrymdor AI Node MCP in Codex
~/.codex/config.toml
[mcp_servers.vrymdor-node-python] command = "uvx" args = ["vrymdor-node"] [mcp_servers.vrymdor-node-python.env] VRYMNOX_AGENT_SECRET = "<YOUR_VRYMNOX_AGENT_SECRET>" VRYMNOX_AGENT_ID = "<VRYMNOX_AGENT_ID>" VRYMNOX_NODE_URL = "<VRYMNOX_NODE_URL>"
Install Vrymdor AI Node MCP in Gemini CLI
~/.gemini/settings.json
{
"mcpServers": {
"vrymdor-node-python": {
"command": "uvx",
"args": [
"vrymdor-node"
],
"env": {
"VRYMNOX_AGENT_SECRET": "<YOUR_VRYMNOX_AGENT_SECRET>",
"VRYMNOX_AGENT_ID": "<VRYMNOX_AGENT_ID>",
"VRYMNOX_NODE_URL": "<VRYMNOX_NODE_URL>"
}
}
}
}Configuration
VRYMNOX_AGENT_SECRETRequiredSecretThe Agent Secret (vrym_agent_...) shown once when you add the agent
VRYMNOX_AGENT_IDRequiredThe Agent ID (agt_...) from AI agents in the Vrymdor dashboard
VRYMNOX_NODE_URLRequiredYour Node Host URL from the Vrymdor dashboard, for example https://node.vrymdor.com/t/abc123def456
| Name | Description | |
|---|---|---|
| VRYMNOX_AGENT_SECRET | The Agent Secret (vrym_agent_...) shown once when you add the agent | RequiredSecret |
| VRYMNOX_AGENT_ID | The Agent ID (agt_...) from AI agents in the Vrymdor dashboard | Required |
| VRYMNOX_NODE_URL | Your Node Host URL from the Vrymdor dashboard, for example https://node.vrymdor.com/t/abc123def456 | Required |
Automated checks
Ran Nov 14, 2026Full report →Passed our automated checks. That is not a security audit: read the code and give the server the narrowest access it needs. How checks work
- Source repository linked and reachableernesthausmann15/vrymdor-node-python is public and reachablegithub.com/ernesthausmann15/vrymdor-node-python ↗Pass
- Package names this repository as its sourcevrymdor-node names ernesthausmann15/vrymdor-node-python as sourcepypi.org/project/vrymdor-node/ ↗Pass
- Build provenance (Sigstore attestation)Sigstore attestation for vrymdor-nodepypi.org/project/vrymdor-node/ ↗Pass
- Open source license (OSI)MITspdx.org/licenses/MIT.html ↗Pass
- Commit or release in the last yearLast commit or release 2026-11-14github.com/ernesthausmann15/vrymdor-node-python ↗Pass
- OpenSSF ScorecardNot checked
- Package name not close to a popular packageNo popular package one edit away from vrymdor-nodePass
- No critical advisory in the package or its dependenciesthe package checked; no critical advisoryosv.dev ↗Pass
- No hidden instructions to the model0 tool descriptions and the README read; no override phrases, credential paths or hidden charactersPass
- Destructive tools are labelledNot checked
- Remote endpoint answers the MCP handshakeNot checked
README
View on GitHubvrymdor-node
The Python client for the Vrymdor AI Node by Vrymnox Systems LLC. Every call goes through your node's checks: the agent's identity and status, your policy, removal of PII (personally identifiable information) and secrets, a signed request and a metadata-only audit record. One module, one dependency (httpx).
Install
pip install vrymdor-node # the client
pip install "vrymdor-node[langchain]" # plus LangChain tools
pip install "vrymdor-node[llamaindex]" # plus LlamaIndex tools
Use
You need your node's address and an agent registered in the Vrymdor app (AI agents, Register an agent). The agent secret is shown once.
from vrymnox_node import VrymnoxNode
node = VrymnoxNode("http://vrymdor-node:8080", agent_id="agt_...", agent_secret="vrym_agent_...")
node.sanitize("Customer jane@acme.io called") # "Customer [REDACTED:EMAIL] called"
node.tool("github", "create_issue", {"title": "Login fails"})
node.llm("anthropic", "v1/messages", {"model": "...", "messages": [...]})
tools = node.langchain_tools() # one LangChain StructuredTool per tool your policy allows
tools = node.llamaindex_tools() # the same, as LlamaIndex FunctionTools
A refusal raises VrymnoxError with a stable code (for example tool_not_allowed, rate_limited,
agent_stopped) and retryable. An action your policy holds raises VrymnoxHeld (code
held_by_policy): it did not run, and a held action is never released. Change the policy to allow it.
Documentation: https://docs.vrymdor.com/ai-node.html
MCP: Claude Desktop, Cursor and VS Code, no Docker
The package includes vrymdor-mcp, the bridge desktop MCP clients start as a local command. It relays each MCP
message to your node and renews the agent's token by itself. The easiest way to run it is uvx, which also fetches
a matching Python for you: install uv once (macOS and Linux: curl -LsSf https://astral.sh/uv/install.sh | sh;
Windows PowerShell: powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex").
Test the agent first (it prints "Connected: ..." or the reason it is not):
VRYMNOX_NODE_URL=https://node.vrymdor.com/t/abc123def456 VRYMNOX_AGENT_ID=agt_... \
VRYMNOX_AGENT_SECRET=vrym_agent_... uvx --from vrymdor-node vrymdor-mcp --check
Claude Desktop (claude_desktop_config.json) and Cursor (mcp.json):
{
"mcpServers": {
"vrymdor": {
"command": "uvx",
"args": ["--from", "vrymdor-node", "vrymdor-mcp"],
"env": {
"VRYMNOX_NODE_URL": "https://node.vrymdor.com/t/abc123def456",
"VRYMNOX_AGENT_ID": "agt_...",
"VRYMNOX_AGENT_SECRET": "vrym_agent_..."
}
}
}
}
VS Code (.vscode/mcp.json): the same block under "servers", with "type": "stdio" added.
If the client says it cannot find uvx (Claude Desktop on macOS starts commands without your shell's PATH), put
the full path in command: the output of which uvx (macOS, Linux) or where uvx (Windows).
License
MIT. The Vrymdor AI Node itself is licensed separately under your Vrymnox agreement.
License and terms
Copyright (c) 2026 Vrymnox Systems LLC. This client is open source under the MIT License (LICENSE). Using the Vrymdor AI Node service it connects to is governed by the Vrymdor Master Subscription Agreement (https://vrymdor.com/msa) and the Acceptable Use Policy in the agreement set you accept when you sign up.
Vrymdor AI Node MCP questions
How do I add Vrymdor AI Node MCP to Claude Code?
Run claude mcp add --env VRYMNOX_AGENT_SECRET=<YOUR_VRYMNOX_AGENT_SECRET> --env VRYMNOX_AGENT_ID=<VRYMNOX_AGENT_ID> --env VRYMNOX_NODE_URL=<VRYMNOX_NODE_URL> vrymdor-node-python -- uvx vrymdor-node in your terminal. Add --scope user to make it available in every project.
How do I add Vrymdor AI Node MCP to Cursor?
Open ~/.cursor/mcp.json and add the server under mcpServers, using the Cursor config shown in the install section above.
What does the Vrymdor AI Node do to protect data?
It performs checks on agent identity, enforces policies, removes personally identifiable information (PII) and secrets, and creates signed requests with metadata audit records.
What happens if a tool call is blocked by a policy?
A refusal will raise a VrymnoxError with a specific code, or if the policy holds the action, it raises a VrymnoxHeld error and the action is not executed.