GLP Audit Trail for MCP - Setup and Verification

    1

    Set up the open-source mcp-glp-audit-proxy: deny-by-default policy, hash-chained audit trail, chain verification, OQ-style report and reconciliation SOP.

    $39

    Secure checkout via Stripe

    Money-back guarantee

    Converts to your local currency at checkout

    Security scanned

    Works with the AI Agents you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    GLP Audit Trail for MCP - Setup and Verification

    Example session with this skill installed

    An approver must sign off before a write goes to the Excel server. Walk me through the human approval flow in mcp-glp-audit-proxy.

    • Read your context and instructions
    • Compiled the glp audit trail

    Human approval applies when require_approval_for_writes is true and the tool matches write_tools.

    Approval flow

    1. The operator calls the write tool as usual (with a reason). The proxy does not forward it. It logs a pending_approval entry and replies with approval_id=<uuid> args_hash=<sha256>. The approval expires after approval_ttl_seconds (default 3600).
    2. A different person, running the proxy with GLP_PRINCIPAL_ROLE=approver, calls glp_approve. Input schema: approval_id (string, required) and meaning (required, one of approved, reviewed, rejected):
    {"approval_id": "3f0c9a2e-7b1d-4c55-9e1a-2d6f8b0c4e11", "meaning": "approved"}
    
    1. The operator repeats the exact same call (same tool, identical arguments) and adds the id in _meta:
    {
      "name": "excel__write_cell",
      "arguments": {"cell": "B2", "value": 42, "_glp_reason": "Correct transcription error"},
      "_meta": {"io.github.antonio-castellon/approvalId": "3f0c9a2e-7b1d-4c55-9e1a-2d6f8b0c4e11"}
    }
    

    The call is forwarded only if all checks pass; otherwise it is refused and logged as approval refused (<problem>):

    • unknown: no such approval id.
    • self: the requester cannot approve their own write (glp_approve also refuses this directly).
    • role: the decision was not made by the approver role.
    • meaning: only approved authorises. reviewed is recorded but does not authorise the write.
    • rejected: the approver rejected it.
    • mismatch: tool name or SHA-256 of the canonical {tool, arguments} differs from the request. Any change to arguments needs a new approval.
    • expired: past expires_at.

    Next steps

    • Anchor the log head outside the machine: mcp-glp-audit-proxy-verify data/audit.jsonl --print-head prints one stdout line: seq=<n> entry_hash=<hash>.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    mcp-glp-audit-proxy is a free, open-source (MIT) local MCP proxy that sits between your MCP host and your MCP servers (Excel, ELN, LIMS, databases, instruments). It applies an allow/deny policy and writes every mediated call, including denials and failures, to an append-only, RFC 8785 canonical, SHA-256 hash-chained JSONL audit trail. It is designed to support GLP / 21 CFR Part 11 / EU GMP Annex 11 workflows.

    This skill is the setup and validation companion. It saves the day of reading you would otherwise spend getting a defensible configuration and evidence pack together.

    What your agent learns:

    • Install the proxy (Python 3.11+, pip or uv) and wire it into Cursor, Claude Desktop or any stdio MCP host, with per-person identity via GLP_PRINCIPAL_* variables.
    • Write a deny-by-default policy: allow/deny globs on tool names, write tools that require a reason, and optional human approval by a second person before a write is forwarded.
    • Use the roles correctly (operator, approver, qa, admin) and the local tools for verify, search, export, approve and policy change.
    • Verify the chain with mcp-glp-audit-proxy-verify, read every result (chain ok, head lag, chain invalid), filter and export.
    • Anchor the log head outside the machine with --print-head (ticket, email or LIMS record) - the control that catches coordinated truncation.
    • Generate the OQ-style verification report (tests, traceability matrix, coverage, dependency hashes, report SHA-256) as evidence for your own validation records.
    • Understand fail closed, the blocked latch and "refusing to start", and follow a step-by-step reconciliation SOP when an upstream write may have been applied while the audit append failed.
    • State the residual risks honestly: tamper-evident is not tamper-proof, the approval record is not an electronic signature, arguments are stored in full.

    The skill and the proxy produce evidence that supports your own validation, SOPs and reviews.

    Repo: https://github.com/antonio-castellon/mcp-glp-audit-proxy PyPI: https://pypi.org/project/mcp-glp-audit-proxy/ License (server): MIT. Contact: antonio@castellon.ch

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    Money-back guarantee

    Doesn't do what its page promises? You get your money back.

    Trust & safety

    Security scanned

    Verified clean 1 day ago

    • Passed all security checks, Safe to install

    Requires

    Python 3.11+
    pip or uv
    Glp Audit Proxy (PyPI) MCP
    Any Stdio Host (Cursor, Claude Desktop) MCP
    Python

    Listed1 day ago

    What's inside

    Frequently Asked Questions