mcpField
S
strac-mcp-dlp

strac-mcp-dlp

已认证精选本地服务
strac.ioAI 与智能体88 周前更新

关于 strac-mcp-dlp

strac-mcp-dlp 是面向 AI Agent 开发者的开源 MCP 服务,可检测并脱敏文本和本地文件中的敏感数据。它将请求转发至 Strac DLP API,由该 API 执行检测和脱敏。

主要功能

  1. 01脱敏文本中的敏感数据
  2. 02检测敏感数据但不修改文本
  3. 03使用 OCR 和分类器扫描本地文件
  4. 04写入脱敏后的文件副本
  5. 05解析获授权的 Strac 保管库令牌

适用场景

  1. 01在文本进入提示词前移除敏感值
  2. 02发送文本前检查敏感数据
  3. 03扫描本地 PDF 或图像中的敏感数据
  4. 04保留原文件并生成脱敏副本

MCP 相关

MCP 服务提供五种用于文本和文件检测、脱敏及令牌解析的工具。它使用 API 密钥通过 HTTPS 连接 Strac DLP API;处理在 Strac 端执行,而非本地执行。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

mcp.json · 通用配置
{
"mcpServers": {
"strac-mcp-dlp": {
"command": "uvx",
"args": [
"strac-mcp-dlp"
],
"env": {
"STRAC_API_KEY": "<STRAC_API_KEY>",
"STRAC_API_BASE": "<STRAC_API_BASE>",
"STRAC_API_TIMEOUT": "<STRAC_API_TIMEOUT>"
}
}
}
}
启动命令uvx strac-mcp-dlp
需要配置的环境变量
STRAC_API_KEY密钥Strac API key. Request one at https://www.strac.io/mcp-integrations. Keys are prefixed sk_live_ (production) or sk_test_ (sandbox).
STRAC_API_BASEOverride the Strac API base URL. Defaults to https://api.live.tokenidvault.com for sk_live_ keys and https://api.test.tokenidvault.com for sk_test_ keys.
STRAC_API_TIMEOUTRequest timeout in seconds. Defaults to 60.

本地服务需要在你的电脑上安装运行环境(如 Node.js 18+)。各客户端的配置文件位置不同,请参考客户端文档。

安装包
pypistrac-mcp-dlp0.1.1

工具

5

收录的工具列表 · 更新于 2 周前

参数类型必填说明
textstring是
redact_field_modeenum否REDACTED | BLANK | MASK_SEVEN_X | TOKEN_LINK_PLAINTEXT
include_matched_textboolean否

详细介绍

Strac MCP DLP — 为 AI Agent 脱敏 PII/PHI/PCI 和机密信息(MCP)

一个开源的 Model Context Protocol 服务,让任何 AI Agent——Claude、Cursor、VS Code 或你自己的 Agent——都能在敏感数据到达模型之前找到并移除这些数据。

Claude、OpenAI、Gemini 和 Copilot 通过 Strac 连接到 Slack、Google Workspace、Microsoft 365、Jira、GitHub、Salesforce、Box、Dropbox 等服务

让你的 Agent 使用它,redact_text 就能将

Please onboard the user with SSN 123-45-6789 and email [email protected]

转换为

Please onboard the user with SSN [REDACTED] and email [REDACTED]

……并附上一份结构化的检测结果列表。它也能以相同方式处理图像、PDF 和扫描文档。

这是一个基于 Strac DLP API 的轻量客户端。请自备 API 密钥;所有检测和脱敏操作都在 Strac 服务端完成。


为什么需要它

如今,Agent 已连接到收件箱、工单系统、CRM、数据库和文件存储。每次调用 MCP 工具,都可能把 SSN、银行卡号、患者记录或 AWS 密钥带入提示词——随后进入模型提供商的日志、向量存储、Slack 摘要或支持工单。

等模型看过数据之后再过滤就太迟了。此服务会在模型前进行检查:先检测,再脱敏,然后让 Agent 基于不再包含敏感值的文本进行推理。


此服务是通往 Strac 的一扇门

脱敏你交给它的字符串,只是 Strac 最基础的功能。Strac 的核心价值在于覆盖范围:将 Strac 连接到敏感数据所在的 SaaS 和云应用,它就能持续发现、分类、脱敏并修复这些应用中的数据;这一切都遵循你的策略,并保留审计记录,而不是等有人把数据粘贴到提示词里。

Slack、Google Workspace、Microsoft 365、Salesforce、Zendesk、Box、Dropbox、Jira、Confluence、GitHub、Notion、OneDrive、SharePoint、Snowflake、Databricks、BigQuery、Postgres、MongoDB、AWS、Azure、GCP、浏览器和终端——60 多种集成,无需 Agent,也无需编写代码。

当这些系统通过 MCP 访问时,这一点尤为重要。当 Agent——Claude Code、Claude Desktop、Cursor、GitHub Copilot、OpenAI Codex——通过 MCP 连接器获取 Salesforce 记录或 Drive 文件时,Strac 会在 Agent 收到数据之前,直接对敏感数据进行脱敏。这就是“要求 Agent 脱敏”与“无论 Agent 是否主动要求,都强制执行脱敏”之间的区别。

strac.io/mcp-integrations 就是这款产品。本仓库是面向开发者的一小部分:你可以从任何 MCP 客户端使用同一检测引擎,按需自行净化字符串或文件。

Strac MCP 风险控制台展示连接平台上的每一次大模型工具调用,并标记待审核的 PII 事件

记录并检查 Agent 发出的每一次 MCP 调用——调用的工具、读取的文件,以及提示词背后的身份。


60 秒快速入门

1. 安装

pip install strac-mcp-dlp

2. 申请 API 密钥

申请密钥,或发送邮件至 [email protected]。

生产环境密钥以 sk_live_ 为前缀,沙盒密钥以 sk_test_ 为前缀;服务会自动选择匹配的端点。

3. 将密钥添加到 MCP 客户端

Claude Desktop——macOS 上的 ~/Library/Application Support/Claude/claude_desktop_config.json,Windows 上的 %APPDATA%\Claude\claude_desktop_config.json:

{
  "mcpServers": {
    "strac-dlp": {
      "command": "strac-mcp-dlp",
      "env": {
        "STRAC_API_KEY": "sk_live_your_key_here"
      }
    }
  }
}

Claude Code:

claude mcp add strac-dlp --env STRAC_API_KEY=sk_live_your_key_here -- strac-mcp-dlp

Cursor——项目中的 .cursor/mcp.json,或全局配置 ~/.cursor/mcp.json:使用与 Claude Desktop 相同的配置块。

4. 重启客户端,并让它脱敏一些内容

使用 Strac,在我把下面内容粘贴到工单之前先对其进行脱敏:“客户 Jane Doe,SSN 123-45-6789,银行卡号 4111 1111 1111 1111。”

如果已安装 uv,则无需安装任何东西:

{
  "mcpServers": {
    "strac-dlp": {
      "command": "uvx",
      "args": ["strac-mcp-dlp"],
      "env": { "STRAC_API_KEY": "sk_live_your_key_here" }
    }
  }
}

请参阅 examples/ 中可直接复制使用的配置文件。


工具

  • redact_text

    • 对文本块中的 PII、PHI、PCI 和机密信息进行脱敏,返回脱敏后的字符串以及检测结果
    • 输入:
      • text(string):要脱敏的文本
      • redact_field_mode(string,可选):REDACTED(默认)、BLANK、MASK_SEVEN_X 或 TOKEN_LINK_PLAINTEXT
      • include_matched_text(boolean,可选):同时返回原始敏感值。默认关闭
    • 在将不可信或用户提供的文本放入提示词、日志行、工单或任何下游系统之前调用
    • redact_text(text="SSN 123-45-6789") → "SSN [REDACTED]"
  • detect_sensitive_data

    • 报告文本中包含哪些敏感数据类型,不更改文本
    • 输入:
      • text(string):要扫描的文本
      • include_matched_text(boolean,可选):同时返回原始值。默认关闭
    • 用它来判断文本是否可以安全地发送到下游
    • detect_sensitive_data(text="call me at [email protected]") → EMAIL
  • detect_file

    • 使用 Strac OCR 和分类器扫描本地文件,包括图像、PDF、扫描件、配置文件或源代码
    • 输入:
      • path(string):要扫描的文件路径
      • include_matched_text(boolean,可选):同时返回原始值。默认关闭
    • 文件绝不会被修改
    • detect_file(path="./w2.pdf") → TAX_ID_NUMBER, NAME, ADDRESS
  • redact_file

    • 将本地文件的脱敏副本写入磁盘
    • 输入:
      • path(string):要脱敏的文件路径
      • output_path(string,可选):写入副本的位置。默认在原文件旁添加 .redacted 后缀。拒绝将其指向源文件
      • overwrite(boolean,可选):允许替换现有目标文件。默认关闭
    • 原文件绝不会被修改
    • redact_file(path="./w2.pdf") → ./w2.redacted.pdf
  • detokenize

    • 为获得授权的调用方,将 Strac 保险库令牌(tkn_…)还原为其原始值
    • 输入:
      • token_ids(string[]):要还原的令牌标识符。每次调用最多 10 个
    • 实时模式下需要使用 IP 允许列表中的服务器到服务器密钥
    • detokenize(token_ids=["tkn_abc"]) → "111-22-3333"
脱敏样式

redact_text 接受 redact_field_mode:

模式结果
REDACTED(默认)[REDACTED]
MASK_SEVEN_XXXXXXXX
BLANK完全移除
TOKEN_LINK_PLAINTEXT<sensitive_data: https://…/detokenize/tkn_…> — 指向 Strac 保险库中该值的链接,以便获得授权的人员仍可检索该值
不会泄露信息的脱敏

默认情况下,这些工具返回的是检测到内容的类型和位置,而非具体值:

{
  "redacted_text": "Please onboard the user with SSN [REDACTED]",
  "detection_count": 1,
  "data_element_types": ["TAX_ID_NUMBER"],
  "detections": [{ "type": "TAX_ID_NUMBER", "begin_index": 33, "end_index": 44, "length": 11 }]
}

将匹配到的文本与脱敏后的文本一同返回,会把你刚移除的数据原样交给模型。只有在调用方确实需要原始值时,才传入 include_matched_text=true。


检测内容

Strac 内置 10 个类别、共 191 种数据元素,还支持通过正则表达式或自行训练的模型定义自定义元素:

类别元素数量示例
身份识别126SSN/TIN、护照、驾照和约 60 个国家/地区的国民身份证件——Aadhaar、PAN、PESEL、BSN、Fiscal Code、IRD——以及 NPI 和 DEA 注册号码
密钥30AWS 访问密钥和秘密密钥、GitHub 和 GitLab 令牌、Slack 令牌、GCP 凭据、Azure 存储密钥和服务主体密钥、私钥、JDBC 和 MongoDB 连接字符串、助记词
金融账户10卡号和卡号尾号、CVV、到期日、银行账户和路由号码、IBAN、SWIFT
广告标识符7Apple IDFA 和 IDFV、Google GAID、Roku、Amazon Fire OS、Huawei OAID
联系方式6姓名、地址、电子邮件、电话、出生日期、年龄
设备跟踪5IP 地址、MAC 地址、IMEI、网页 URL、日期/时间
资产3源代码、VIN、车辆牌照号码
文档属性2发票、受密码保护的文档
内容审核1冒犯性内容
知识产权1化学/分子结构

所有元素的逐项名称请参阅:Strac Catalog of Sensitive Data Elements。

检测可处理文本,也可通过 OCR 处理 PDF、JPEG、PNG、DOCX、XLSX、屏幕截图和 .msg 电子邮件文件;detect_file 和 redact_file 就是通过这种方式处理文件。

有一点需要提前说明:这些 MCP 工具返回的 type 值取决于响应的端点,而且两个端点对同一元素使用不同的词汇。例如,美国社会安全号码通过 redact_text 返回为 TAX_ID_NUMBER,通过 detect_sensitive_data 则返回为 SOCIAL_SECURITY_NUMBER,后者还会在 reported_element_types 中报告 SSN。两套词汇都会按原样返回,不会进行标准化,因此不会擅自编造任何信息。实际检测哪些元素取决于你的账户启用了哪些项目;上方的完整目录适用于你连接的各个应用,在这些应用中管理策略、修复措施和审计。


配置

变量必需默认值
STRAC_API_KEY是—
STRAC_API_BASE否对于 sk_live_ 密钥,为 https://api.live.tokenidvault.com;对于 sk_test_ 密钥,为 https://api.test.tokenidvault.com
STRAC_API_TIMEOUT否60 秒

未提供密钥时,每个工具都会返回:Set STRAC_API_KEY — request one at https://www.strac.io/mcp-integrations。

服务默认使用 stdio 通信。使用 strac-mcp-dlp --transport streamable-http 可改为通过 HTTP 提供服务。


工作原理

MCP 客户端会在本地启动此服务;服务使用你的 X-Api-Key,通过 HTTPS 将每次工具调用转发给 Strac API,并返回结果。你的机器不会进行分类或脱敏,本仓库也不包含检测模型。

你的数据元素定义、自定义策略、修复规则和审计记录都保存在 Strac 账户中,而非此代码库中——因此,提供这五种工具的同一个密钥也会管理所有已连接的应用。

MCP client  ──stdio──▶  strac-mcp-dlp  ──HTTPS──▶  Strac DLP API
(Claude, Cursor,        (this repo,                 (classifiers, OCR,
 your agent)             ~600 lines)                 vault, policies, audit)

API 的限制:内联内容为 4 MB,文档上传为 10 MB,每次去令牌化调用最多处理 10 个令牌。


开发

git clone https://github.com/strac-io/strac-mcp-dlp
cd strac-mcp-dlp
python3 -m venv .venv
.venv/bin/pip install -e ".[dev]"
.venv/bin/python -m pytest

测试套件使用 respx 模拟 Strac API,因此无需密钥即可运行。若要手动试用此服务:

STRAC_API_KEY=sk_test_… .venv/bin/python -m strac_mcp_dlp

也可以通过 MCP Inspector 连接:

STRAC_API_KEY=sk_test_… npx @modelcontextprotocol/inspector strac-mcp-dlp

常见问题

我需要 Strac 账户吗?

需要。这是 Strac DLP API 的轻量客户端,每次调用都需要身份验证,不提供匿名模式。请通过 strac.io/mcp-integrations 申请密钥,或发送电子邮件至 [email protected]。

我的数据会留在本机吗?

不会。你传递给这些工具的文本和文件会通过 HTTPS 发送到 Strac API 进行分类。本地不会进行任何分类——此仓库不包含检测模型、分类器或保险库。detect_file 会以内联方式发送小于 4 MB 的文件,不会存储这些文件;较大的文件以及传递给 redact_file 的任何文件,都会上传到你的 Strac 文档保险库。

它支持哪些 MCP 客户端?

任何支持 stdio 的客户端都可以——Claude Desktop、Claude Code、Cursor、VS Code 等。如果你需要将其作为服务而非子进程运行,可以使用 --transport streamable-http。

它能检测机密信息,还是只能检测 PII?

两者都能。除了个人、健康和支付数据,Strac 还会分类 AWS 访问密钥和秘密密钥、GitHub 和 GitLab 令牌、Slack 令牌、GCP 凭据、Azure 存储密钥和服务主体密钥、私钥,以及 JDBC 和 MongoDB 连接字符串。请参阅完整目录。

为什么 redact_text 不会返回它发现的值?

因为把这些值返回就会抵消脱敏效果。如果工具在脱敏字符串的检测结果中返回 "123-45-6789",模型最终就会拿到你刚刚移除的数据。默认情况下,你会获得类型和位置;如果调用方确实需要原始值,请传入 include_matched_text=true。

redact_file 会修改我的原文件吗?

不会。它会写入副本,拒绝解析后指向源文件的 output_path(包括通过符号链接指向的路径),并且除非你传入 overwrite=true,否则不会替换现有文件。

如果 Strac API 返回意外内容,会发生什么?

工具会报错。对于无法验证的扫描结果,它绝不会报告为干净——如果响应格式错误或无法解析,工具会抛出错误,而不是返回“未发现敏感数据”,因为静默的漏报是 DLP 工具绝不能出现的故障。

这与 Strac 平台有何不同?

此仓库提供按需工具,由你的 Agent 决定是否调用。Strac 平台则覆盖你的 SaaS、云和数据库连接器,无论 Agent 是否请求,都会强制执行策略——在 Agent 收到数据之前先进行内联脱敏,并提供补救措施和审计记录。请参阅 strac.io/mcp-integrations。


链接

安全

切勿提交 API 密钥。sk_live_ 密钥是服务端凭据;请将其保存在 MCP 客户端的 env 块或密钥管理器中,而不是源代码管理系统中。如需报告漏洞,请发送邮件至 [email protected]。

许可证

MIT — 请参阅 LICENSE。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。