Skip to content

Vigil — an outside witness for AI agents

by vigilnotary.com · remote · no sign-in to list tools · v0.1.0 · published by com.vigilnotary

Agent leases, signed receipts, watchdogs, and optional paid source-verification evidence.

Deletes · 10Final · 1Changes · 8

26 tools: 10 can delete or cancel things, 1 do something that can't be undone, 8 change things and 7 only read.

Scanned Oct 21, 2026

17 checks matched something in the tool definitions. No finding is not a safety guarantee. How the checks work.

claude mcp add --transport http vigil https://vigilnotary.com/mcp

Findings

Matches of fixed checks, with the text they matched.

17 info
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
Show 11 more findings
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The description mentions "credentials".

    Matched text

    description: "...he offline recheck window. Keep renewal credentials outside the controlled agent."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for
  • The input schema at properties.vigil_key.description mentions "credential".

    Matched text

    inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

    What this check looks for

Tools

Open a tool for its reasons and full description. Descriptions are the publisher's own words, shown as they are.

26 tools

Deletes or cancels 10Claude Code: deny
  • vigil_delete_watchdogRemove a watchdog.1 finding

    Why it is in this group

    • The name "vigil_delete_watchdog" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Remove a watchdog. Destructive: deletes its configuration and stops future alerts. No undo or restoration of the previous timer is provided.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • vigil_grant_leaseGrant a short-lived, Ed25519-signed LEASE authorizing an agent to perform an action until it expires.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Grant a short-lived, Ed25519-signed LEASE authorizing an agent to perform an action until it expires. A customer-run gateway verifies the lease offline (fail-closed) before letting the action through. This is the guard on a money/data-moving action. Free tier: 1 active lease (guarded agent). Security-sensitive: grants authority. Keep this account key outside the controlled agent. A signed lim string is enforced only by the customer's gateway.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • vigil_heartbeat'Still alive.' Reset a watchdog's timer.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    'Still alive.' Reset a watchdog's timer. Call this at least once per interval. Resets the deadline and delivery state, potentially suppressing an overdue alert or rearming delivery.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • vigil_journal_deleteDelete a journal slot.1 finding

    Why it is in this group

    • The name "vigil_journal_delete" says "delete": a word for removing or ending something.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Delete a journal slot. Destructive: removes stored bytes with no undo through the API.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • vigil_journal_putStore an opaque blob under a slug (overwrites).1 finding

    Why it is in this group

    • The name "vigil_journal_put" says "put": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Store an opaque blob under a slug (overwrites). Encrypt client-side: the server stores exactly the bytes supplied and cannot enforce client encryption. Send bytes as base64. Free tier: 4 slots, 64KB each. Destructive when the slug exists: previous bytes are replaced with no version history or undo.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • vigil_renew_leaseExtend a lease with a fresh signed token and new expiry.2 findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The description mentions "credentials".

      Matched text

      description: "...he offline recheck window. Keep renewal credentials outside the controlled agent."

      What this check looks for
    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Extend a lease with a fresh signed token and new expiry. Renewing is how a healthy agent keeps acting; stop renewing (or revoke) and it lapses. Security-sensitive: extends authority and refreshes the offline recheck window. Keep renewal credentials outside the controlled agent.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: false
  • vigil_revoke_keyRevoke your own key.1 finding

    Why it is in this group

    • The name "vigil_revoke_key" says "revoke": a word for removing or ending something.
    • The description says "Irreversible".
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Revoke your own key. It stops authenticating immediately. Irreversible. Irreversible: also revokes the account's leases and deletes its watchdogs. Private journal access is lost; public receipts remain. It does not cancel a Stripe subscription.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • vigil_revoke_leaseRevoke a lease.1 finding

    Why it is in this group

    • The name "vigil_revoke_lease" says "revoke": a word for removing or ending something.
    • The description says "Irreversible".
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Revoke a lease. A compliant v2 gateway refuses the old offline token at recheck_by_ms (at most 30 seconds after issue/renewal), or earlier if it polls revocation. Revocation is not instantaneous. Irreversible for this lease ID; it cannot be renewed again. Already admitted actions are not undone.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: true
    • openWorldHint: false
  • vigil_set_watchdogArm a dead-man switch.1 finding

    Why it is in this group

    • The name "vigil_set_watchdog" says "set": a word for a change.
    • The server marks it destructive (destructiveHint: true).

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Arm a dead-man switch. Register an interval and an https webhook; then call vigil_heartbeat before each interval elapses. Miss one and Vigil attempts a signed 'absence' payload to your webhook, retrying failed delivery. Free tier: 1 watchdog. Overwrites an existing watchdog and resets its timer and delivery state. A missed heartbeat sends the supplied message to an external HTTPS recipient; failed delivery is capped at five attempts per armed interval.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
  • vigil_verify_sourcePaid source-local verification with exact evidence and signed receipt.No findings

    Why it is in this group

    • The description says "irreversibly".
    • The server marks it destructive (destructiveHint: true).
    Description, as the server wrote it
    Paid source-local verification with exact evidence and signed receipt. Does not establish absolute truth. Read price and payment requirements before authorizing; settlement spends USDC irreversibly and there is no automatic refund. Identical tool arguments alone are NOT idempotent: retry with the identical arguments, same vigil/idempotency-key metadata and original payment proof.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: true
    • idempotentHint: false
    • openWorldHint: true
Can't be undone 1Claude Code: ask
  • vigil_notarizeNotarize work: POST the sha256 (64 hex chars) of anything and get back an Ed25519-signed, timestamped, hash-chained, serial-numbered receipt.1 finding

    Why it is in this group

    • The description says "Irreversibly".

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Notarize work: POST the sha256 (64 hex chars) of anything and get back an Ed25519-signed, timestamped, hash-chained, serial-numbered receipt. Chain position orders submitted records; the timestamp is a signed assertion of Vigil's clock. Free tier: 10/day. Irreversibly publishes the digest, label and account handle in the public chain; no deletion tool exists. It proves signed-data integrity, not that an action happened or a claim is true.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
Changes things 8Claude Code: ask
  • vigil_anchorPRO: anchor the current chain head to OpenTimestamps on demand (the chain is auto-anchored every few hours regardless).1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    PRO: anchor the current chain head to OpenTimestamps on demand (the chain is auto-anchored every few hours regardless). Sends the public chain-head digest to external OpenTimestamps calendars; submission is not verified Bitcoin confirmation.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: true
  • vigil_anchorsPublic timestamp submissions to OpenTimestamps calendars.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Public timestamp submissions to OpenTimestamps calendars. A submission is pending, not an independently verified Bitcoin confirmation. No key required.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_infoService description, the Ed25519 signing pubkey to verify receipts against, current chain head, and free-tier limits.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Service description, the Ed25519 signing pubkey to verify receipts against, current chain head, and free-tier limits. No key required.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_pricingThe plans and per-tier limits (free, dev, pro).No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    The plans and per-tier limits (free, dev, pro). No key required.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_registerCreate a key.No findings

    Why it is in this group

    • The description's first verb is "create": a word for a change.
    Description, as the server wrote it
    Create a key. Returns a bearer key shown ONCE — store it; it is your only identity. No email, no account. Starts on the free tier. Creates a persistent identity. The returned key grants full account control; provision it in a trusted client, not a model transcript.

    Annotations the server declares

    • readOnlyHint: false
    • destructiveHint: false
    • idempotentHint: false
    • openWorldHint: false
  • vigil_usageYour current tier, its limits, and how much you've used today.1 finding

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Your current tier, its limits, and how much you've used today. Requires your key.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_verify_leaseOffline, FAIL-CLOSED check of a lease token against a mandatory, independently pinned Ed25519 public key.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Offline, FAIL-CLOSED check of a lease token against a mandatory, independently pinned Ed25519 public key. Returns allow=true only for a valid signature before expiry and recheck_by_ms. It does not authenticate the calling agent, enforce action/amount policy, or query live revocation; a customer gateway must do those checks before every provider action. Checks signature, expiry and the signed recheck deadline only. It does not check live revocation, agent identity, action, amount or gateway policy; those checks are mandatory at the gateway.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_verify_receiptVerify a receipt's hash and Ed25519 signature against a mandatory, independently pinned Ed25519 public key.No findings

    Why it is in this group

    • Nothing in its name or description says what it does, so it is counted as a write.
    • The server marks it read-only (readOnlyHint: true), but an annotation never lowers a class.
    Description, as the server wrote it
    Verify a receipt's hash and Ed25519 signature against a mandatory, independently pinned Ed25519 public key. The key must not come from the receipt being checked. Returns valid=false for tampering, forgery, a wrong signer, or malformed input. Read-only and local to Vigil.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
Only reads 7Claude Code: allow
  • vigil_chainRead a range of receipts to audit chain continuity.No findings

    Why it is in this group

    • The description's first verb is "read": a word for reading.
    Description, as the server wrote it
    Read a range of receipts to audit chain continuity. Max 1000 per call.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_get_receiptFetch a receipt by serial number.No findings

    Why it is in this group

    • The name "vigil_get_receipt" says "get": a word for reading.
    Description, as the server wrote it
    Fetch a receipt by serial number. Public — anyone can read any receipt.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_journal_getFetch a journal blob by slug.1 finding

    Why it is in this group

    • The name "vigil_journal_get" says "get": a word for reading.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Fetch a journal blob by slug. Returns base64 (decrypt client-side).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_journal_listList your journal slots (slug, size, last-updated).1 finding

    Why it is in this group

    • The name "vigil_journal_list" says "list": a word for reading.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    List your journal slots (slug, size, last-updated).

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_lease_statusPublic status of a lease (active / expired / revoked).No findings

    Why it is in this group

    • The name "vigil_lease_status" says "status": a word for reading.
    Description, as the server wrote it
    Public status of a lease (active / expired / revoked). What a gateway polls for revocation. No key required.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_leasesList your leases and their states.1 finding

    Why it is in this group

    • The description's first verb is "list": a word for reading.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    List your leases and their states.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false
  • vigil_watchdog_statusRead a watchdog's state: interval, last beat, whether it is overdue, fired, or exhausted.1 finding

    Why it is in this group

    • The name "vigil_watchdog_status" says "status": a word for reading.

    Findings

    • Info

      The input schema at properties.vigil_key.description mentions "credential".

      Matched text

      inputSchema.properties.vigil_key.description: "DEPRECATED legacy account-wide credential, including deletion and permission issu..."

      What this check looks for
    Description, as the server wrote it
    Read a watchdog's state: interval, last beat, whether it is overdue, fired, or exhausted.

    Annotations the server declares

    • readOnlyHint: true
    • destructiveHint: false
    • idempotentHint: true
    • openWorldHint: false

This is not a safety rating, and no finding is not a safety guarantee. The groups and findings come from fixed checks of the tool definitions the server returned on the date shown, not from its code or what it does when called. How the checks work.

Install

Pinned to version 0.1.0. Values in angle brackets are yours to fill in.

claude mcp add --transport http vigil https://vigilnotary.com/mcp

Run in a terminal.

Claude Code permissions

Allow the reads, ask before a change, deny the deletes. Paste into .claude/settings.json.

.claude/settings.json
{
  "permissions": {
    "allow": [
      "mcp__vigil__vigil_get_receipt",
      "mcp__vigil__vigil_chain",
      "mcp__vigil__vigil_watchdog_status",
      "mcp__vigil__vigil_lease_status",
      "mcp__vigil__vigil_leases",
      "mcp__vigil__vigil_journal_get",
      "mcp__vigil__vigil_journal_list"
    ],
    "ask": [
      "mcp__vigil__vigil_info",
      "mcp__vigil__vigil_register",
      "mcp__vigil__vigil_pricing",
      "mcp__vigil__vigil_usage",
      "mcp__vigil__vigil_notarize",
      "mcp__vigil__vigil_verify_receipt",
      "mcp__vigil__vigil_verify_lease",
      "mcp__vigil__vigil_anchors",
      "mcp__vigil__vigil_anchor"
    ],
    "deny": [
      "mcp__vigil__vigil_set_watchdog",
      "mcp__vigil__vigil_heartbeat",
      "mcp__vigil__vigil_delete_watchdog",
      "mcp__vigil__vigil_grant_lease",
      "mcp__vigil__vigil_renew_lease",
      "mcp__vigil__vigil_revoke_lease",
      "mcp__vigil__vigil_journal_put",
      "mcp__vigil__vigil_journal_delete",
      "mcp__vigil__vigil_revoke_key",
      "mcp__vigil__vigil_verify_source"
    ]
  }
}

Tools that only read are allowed, tools that change things ask first, tools that delete or cancel are denied. It assumes the server is installed as vigil. Review it before you use it.