VITNA MCP
VITNA is a containment layer for AI agents that wraps stdio MCP servers. It intercepts risky tool calls, waits for human approval, and produces Ed25519-signed compliance receipts for agent actions. It supports guard mode for blocking unapproved actions and cooperative mode for pre-action checks, integrating with various agent frameworks.
Package and access
Local package with source-attributed installation metadata. Koskamo does not execute packages during review.
What you can do with it
- Intercept and block risky AI agent tool calls
- Generate verifiable compliance receipts for agent actions
- Integrate with MCP clients like Claude Desktop and Cursor
- Monitor agent activity via real-time event feeds
Source and maintenance
- Maintenance checked
Packages and installation
Source-provided package data. Koskamo has not executed or live-probed this package.
@costrinity/vitna-compliance-mcp 0.5.6
{
"version": "0.5.6",
"transport": "stdio",
"identifier": "@costrinity/vitna-compliance-mcp",
"registryType": "npm",
"registryBaseUrl": "https://registry.npmjs.org",
"environmentVariables": [
{
"name": "VITNA_OWNER_ID",
"description": "Your VITNA operator UUID. Optional: if unset, the first tool call self-provisions a restricted trial key. The old VIGIL_OWNER_ID name is still accepted."
},
{
"name": "VITNA_API_KEY",
"description": "Your VITNA API key (new keys vitna_..., legacy vigil_... keys remain valid). Optional: self-provisioned if unset. The old VIGIL_API_KEY name is still accepted."
},
{
"name": "VITNA_EMAIL",
"description": "Email to own the self-provisioned trial account. Optional: a throwaway is used if unset. It does not claim the account: claim it with GitHub or a passkey. The old VIGIL_EMAIL name is still accepted."
},
{
"name": "VITNA_BASE_URL",
"default": "https://vitna.costrinity.xyz",
"description": "VITNA base URL; override only for self-hosted. The old VIGIL_BASE_URL name is still accepted."
},
{
"name": "VITNA_OPEN_CLAIM",
"description": "Set to 1 to have the trial's claim link opened in your default browser when a trial starts. Either way the link is printed in the MCP server log, and the agent is never sent it."
}
]
}Tools
Reported by the attributed source; not independently observed by Koskamo.
Connect from your client
Each snippet configures the same source-provided package; replace placeholders before use.
Cursor
{
"mcpServers": {
"vitna-mcp": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp@0.5.6"
],
"env": {
"VITNA_OWNER_ID": "<YOUR_VITNA_OWNER_ID>",
"VITNA_API_KEY": "<YOUR_VITNA_API_KEY>",
"VITNA_EMAIL": "<YOUR_VITNA_EMAIL>",
"VITNA_BASE_URL": "<YOUR_VITNA_BASE_URL>",
"VITNA_OPEN_CLAIM": "<YOUR_VITNA_OPEN_CLAIM>"
}
}
}
}Cline
{
"mcpServers": {
"vitna-mcp": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp@0.5.6"
],
"env": {
"VITNA_OWNER_ID": "<YOUR_VITNA_OWNER_ID>",
"VITNA_API_KEY": "<YOUR_VITNA_API_KEY>",
"VITNA_EMAIL": "<YOUR_VITNA_EMAIL>",
"VITNA_BASE_URL": "<YOUR_VITNA_BASE_URL>",
"VITNA_OPEN_CLAIM": "<YOUR_VITNA_OPEN_CLAIM>"
}
}
}
}VS Code
{
"servers": {
"vitna-mcp": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp@0.5.6"
],
"env": {
"VITNA_OWNER_ID": "<YOUR_VITNA_OWNER_ID>",
"VITNA_API_KEY": "<YOUR_VITNA_API_KEY>",
"VITNA_EMAIL": "<YOUR_VITNA_EMAIL>",
"VITNA_BASE_URL": "<YOUR_VITNA_BASE_URL>",
"VITNA_OPEN_CLAIM": "<YOUR_VITNA_OPEN_CLAIM>"
}
}
}
}Claude Desktop
{
"mcpServers": {
"vitna-mcp": {
"command": "npx",
"args": [
"-y",
"@costrinity/vitna-compliance-mcp@0.5.6"
],
"env": {
"VITNA_OWNER_ID": "<YOUR_VITNA_OWNER_ID>",
"VITNA_API_KEY": "<YOUR_VITNA_API_KEY>",
"VITNA_EMAIL": "<YOUR_VITNA_EMAIL>",
"VITNA_BASE_URL": "<YOUR_VITNA_BASE_URL>",
"VITNA_OPEN_CLAIM": "<YOUR_VITNA_OPEN_CLAIM>"
}
}
}
}Let your agent find its tools
Find servers like VITNA MCP from your agent. Add Koskamo once to search the index for endpoints, access requirements, and client setup. Public discovery needs no key.