Stript MCP Bridge
The Stript MCP Bridge locally connects Claude to the Stript desktop app so it can anonymize files, fetch anonymized results, and restore placeholders without exposing real PII to chat.
Check Stript app status, AI-integration readiness, license tier, and remaining free evaluations (
stript_status).Anonymize a document file via path in auto or review mode, returning anonymized text and metadata (
stript_anonymize_file).Fetch an anonymization result by document id or latest document, waiting through
pending_reviewas needed (stript_fetch_result).Restore original values into placeholder text, writing to clipboard or a local file and never to chat (
stript_restore).Restore placeholders in a file, writing restored output to Stript's output folder and returning counts/path only (
stript_restore_file).Requires the Stript desktop app with AI integrations enabled and explicit allowed folders for file access; all content handling is local/loopback.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Stript MCP Bridge Anonymize the file on my desktop: ~/Desktop/report.docx"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Stript MCP Bridge
@stript/mcp is a local Model Context Protocol server that lets
Claude (Desktop and Code) anonymize documents through the Stript desktop app on your own
machine — so personal data never enters the conversation.
Requires the Stript desktop app with AI integrations enabled in Settings. The bridge does nothing on its own; it is a thin, local client to the app.
What it does
Claude hands the bridge a local reference — a file path, the clipboard, or an existing Stript
document id. The bridge asks the local Stript app to detect personal data and replace it with
consistent placeholders like [PERSON_1]. Only the anonymized text is returned to the conversation.
Restored (real-PII) output is written to your clipboard or a local file and is never returned to
the model.
Related MCP server: docuprivado
Install
Claude Desktop — install the signed Stript.mcpb from the Stript app
(Settings → Install for Claude Desktop), or from https://downloads.stript.io/Stript.mcpb.
Claude Code:
claude mcp add stript -- npx -y @stript/mcpAllowed folders (required before file access)
Stript reads files only from folders you explicitly allow. There is no default folder list:
until you allow at least one folder, the bridge starts and stript_status works, but every
file-reading tool answers with guidance instead of file content (fail-closed).
Claude Desktop: set Folders Stript may read documents from in the extension settings.
Claude Code / npx: set
STRIPT_MCP_ALLOWED_DIRS(path-separator-joined list of absolute paths), e.g.STRIPT_MCP_ALLOWED_DIRS="$HOME/Documents:$HOME/Desktop".
Keep the list as narrow as your workflow allows. Relative paths and unresolved placeholders are ignored rather than guessed.
Tools
Tool | Purpose | Nature |
Check the Stript app status | Confirm the app is running and reachable | read-only |
Anonymize a document with Stript | Detect + replace PII in a file on disk | writes anonymized output |
Anonymize the clipboard text with Stript | Same, for the current clipboard (opt-in; Claude asks first) | writes anonymized output |
Fetch a Stript anonymization result | Retrieve a completed result | read-only |
Restore original values into placeholder text | Put the real values back (to clipboard or a local file) | writes locally, never to chat |
Restore original values into a file | Restore a full file on disk | writes locally, never to chat |
How it works — privacy by design
The bridge talks only to
127.0.0.1: the Stript app's local backend and a loopback broker inside the signed app. It makes no external network calls with your content.A per-launch, scope-restricted token gates every call; ports and token rotate on each launch.
Restored real values never enter tool results — they are written to your clipboard or a local file only.
New documents meter through the same local path as the app; the bridge keeps only a small local usage-metering mirror and nothing else persistent.
Privacy Policy
Stript is local-first. From the Stript Privacy Policy:
"Your documents are processed exclusively on your own device."
"No document content, file name, path, document identifier, source commitment, mapping, detection result, entity information, or export activity is transmitted to us or any third party."
This bridge inherits that guarantee:
Collects and transmits no document content. All detection and anonymization run locally in the Stript app; the bridge only shuttles data between Claude and the local app over loopback.
Stores nothing beyond a local usage-metering mirror on your own machine.
Shares nothing with third parties — it makes no off-device network calls.
The broader Stript product's data handling — optional account email, payment processing via Lemon Squeezy, hosting and privacy-preserving analytics via Cloudflare, transactional email via Resend, and the associated retention periods and contact details — is described in full in the Privacy Policy. Direct privacy questions to the contact listed there.
Build from source
npm ci
npm run build # bundles dist/index.js (esm, node20)
npm test # vitest
npm run check # tsc --strict (bridge + card UI)License
MIT. The Stript desktop app this bridge connects to is a separate, proprietary product.
Available Tools
5 toolsstript_anonymize_fileAnonymize a document with StriptA
Use this when the user wants to work with a document that may contain personal data, for example summarize it, translate it, or draft a reply. Ask the user for the file path. Never ask the user to paste document content into the chat. Stript detects and replaces personal data locally and only the anonymized text enters the conversation. Placeholders like [PERSON_1] can be restored later with stript_restore. Set mode to review when the user wants to check the detections in the Stript app first, Stript then opens the document and you wait for the user. Processing a new document uses one of the 5 Free Evaluation documents, already processed documents are free.
Inputs: path (required), mode, project. Returns: next, types, status, warnings, +10 more
stript_fetch_resultFetch a Stript anonymization resultARead-only
Use this to fetch the anonymized result of a Stript document, for example after a pending_review status or after the app was restarted mid-review. If the document is still in review, this call WAITS for the user to finish the review in Stript and returns the result as soon as they click Anonymize. When it returns pending_review instead, call it again immediately to keep waiting, and repeat while the result says pending_review and the user has not cancelled. The document_id is optional, without it the most recent document in the project is fetched, so a plain "fetch my Stript result" works. Returns only anonymized content, never the original document text. Reading a stored result is free, it never consumes an evaluation document.
Inputs: document_id. Returns: next, types, status, warnings, +10 more
stript_restoreRestore original values into placeholder textA
Use this when an AI answer that contains Stript placeholders like [PERSON_1] or [EMAIL_2] should get the original values back. The restored text never appears in the chat. It is written to the user clipboard by default or to a local file, always tell the user where it went. This tool returns replacement counts only. Restoring is free, it never consumes an evaluation document.
Inputs: text (required), project, filename, destination. Returns: path, destination, exact_restore, ambiguous_skipped, +2 more
stript_restore_fileRestore original values into a fileA
Use this to restore original values into a file that contains Stript placeholders like [PERSON_1], keeping the file format where possible. Ask the user for the file path, do not ask them to paste file content into the chat. The restored file is written to the Stript output folder and its content never appears in the chat. This tool returns replacement counts and the output path only. Restoring is free, it never consumes an evaluation document.
Inputs: path (required), project, output_filename. Returns: path, format, warnings, exact_restore, +3 more
stript_statusCheck the Stript app statusARead-only
Use this to check whether the Stript desktop app is running with AI integrations enabled, which license tier is active, and how many Free Evaluation documents remain. Call it before anonymizing when the state is unclear. It consumes no evaluation document and changes nothing.
Inputs: no named parameters. Returns: tier, guidance, app_running, app_version, +4 more
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelog…
TDQS
Scored across 5 tools
The tools are largely distinct: anonymize_file initiates new processing, fetch_result retrieves existing results, restore and restore_file handle inverse operations for text and files, and status checks the app state. Some minor overlap exists between anonymize_file and fetch_result (both return anonymized content) and between the two restore tools, but the descriptions provide sufficient differentiation.
All tools share the 'stript_' prefix and use snake_case, but the pattern is inconsistent: most are verb_noun (stript_anonymize_file, stript_fetch_result, stript_restore_file), while stript_restore lacks an object and stript_status is a noun rather than a verb. This makes the naming somewhat predictable but not uniform.
With 5 tools, the server is well-scoped for its purpose: anonymize, fetch result, restore (both text and file), and check status. This is within the ideal 3-15 range and each tool serves a necessary step in the Stript workflow without unnecessary bloat.
The tool set covers the full lifecycle: anonymizing files, fetching results (including waiting for review), restoring placeholders in AI responses or files, and checking system status. There are no obvious dead ends or missing operations for the stated purpose of bridging Stript anonymization into MCP.
Maintenance
Related MCP Connectors
Detect and redact PII and secrets (API keys, tokens) in text, HTML or PDF before it reaches an LLM.
Stateless PII redaction over MCP/REST. Free ≤1000 words or $0.01/call; file upload supported.
Read and search folders on your own computer with explicit consent. Files are never uploaded.
Detect and redact PII and secrets before text reaches an LLM, with reversible placeholders.
Related MCP Servers
- AlicenseBqualityBmaintenanceZero-Trust local PII & secrets masking MCP (ZTDS RFC v1.0). Zero server logs. Features: 23 zero-trust tools, 30 industry profiles, offline OCR, RAM-only masking. Run: npx -y @privacyscrubber/mcp-server. Website: https://privacyscrubber.com SDK: https://www.npmjs.com/package/@privacyscrubber/sdk423822 npm3MIT

docuprivadoofficial
AlicenseNot gradedqualityBmaintenanceEnables Claude Desktop to redact and count personal data in PDFs and images, strip hidden metadata from photos, anonymize Word and text files, prepare watermarked ID copies, and compare contract versions using only user-approved local folders. All processing runs offline on the user's computer, creating new copies instead of modifying or deleting the originals.Apache 2.0- AlicenseAqualityBmaintenanceEnables an AI assistant to redact text and, more importantly, files without reading them, since file redaction and restoration happen locally and only counts are reported, keeping personal data out of the conversation. It exposes tools for redacting text, writing a redacted copy of a UTF-8 file with an owner-only restore mapping, and putting original values back offline.3MIT
- FlicenseNot gradedqualityFmaintenanceEnables Claude to work on documents containing personal data by pseudonymizing names, addresses, IBANs, health data and other GDPR categories locally before they are sent, then restoring the real values on your own machine. Supports Word, Excel, PowerPoint, PDF, CSV, Markdown, e-mail and other formats with consistent pseudonyms per project and no data leaving the computer.-