visus-mcp/visus-mcp

GitHub: visus-mcp/visus-mcp

一个面向 Claude 的 MCP 安全网关,在网页内容进入 LLM 前进行清洗、提示注入检测和 PII 脱敏,同时生成符合 EU AI Act 要求的加密审计证明。

Stars: 0 | Forks: 0

# Visus — Claude 的安全 Web 访问 [![npm version](https://img.shields.io/npm/v/visus-mcp?color=crimson&label=npm)](https://www.npmjs.com/package/visus-mcp) [![tests](https://img.shields.io/badge/tests-402%20passing-brightgreen)](https://github.com/visus-mcp/visus-mcp) [![tools](https://img.shields.io/badge/MCP%20tools-6-blue)](https://github.com/visus-mcp/visus-mcp) [![mcp](https://img.shields.io/badge/MCP-compatible-brightgreen)](https://modelcontextprotocol.io) [![license](https://img.shields.io/badge/license-MIT-blue)](https://github.com/visus-mcp/visus-mcp/blob/main/LICENSE) [![security](https://img.shields.io/badge/IPI%20Detection-10%20categories-red)](https://github.com/visus-mcp/visus-mcp/blob/main/SECURITY.md) [![security](https://img.shields.io/badge/frameworks-NIST%20AI%20RMF%20%7C%20CSF%202.0%20%7C%20OWASP%20%7C%20MITRE%20%7C%20ISO42001-orange)](https://github.com/visus-mcp/visus-mcp/blob/main/SECURITY.md) [![iso42001](https://img.shields.io/badge/ISO%2FIEC-42001%3A2023-blueviolet)](https://www.iso.org/standard/81230.html) [![euaiact](https://img.shields.io/badge/EU%20AI%20Act-Art.%209%2F13%2F15-blue)](https://github.com/visus-mcp/visus-mcp/blob/main/CRYPTO-PROOF-SPEC.md) 当你的 agent 获取网页时,它会读取所有内容 — 导航栏、Cookie 横幅、跟踪脚本、广告、SEO 垃圾信息。每个 token 都需要成本。有些页面还嵌入了旨在操纵 agent 行为的隐藏指令。 Claude 能处理其中的大部分内容。但它仍然必须首先读取所有内容。你仍然需要为每个 token 付费。 **visus-mcp 是一个预过滤器。** 它在任何一个字符进入 Claude 的上下文窗口之前就剥离了噪音 — 在臃肿页面上减少高达 70% 的 token 消耗,在 PII 进入对话历史之前对其进行脱敏,并在发现值得标记的内容时生成符合合规标准的审计日志。 它作为基础设施构建,而非取代 Claude 自身的安全训练。两者结合比单独使用任一层都更强大。 ``` npx visus-mcp@0.13.0 ``` *"网络向你展示什么,Lateos 就能安全地读取什么。"* ## 为什么你的 Agent 读取了太多内容 一篇典型的新闻文章:**12,000 个 token** 的原始 HTML。 实际文章内容:**约 800 个 token**。 你在为导航栏付费。页脚。Cookie 横幅。分析脚本。相关文章侧边栏。广告。 visus-mcp 获取同一页面并提供: - **visus_read** — 仅通过 Mozilla Readability 获取文章内容(在内容密集的页面上减少约 70% 的 token) - **visus_fetch** — 剥离噪音并进行格式转换的完整页面(自动检测 JSON/XML/RSS) - **visus_search** — 经过清洗的 DuckDuckGo 结果,在进入上下文之前移除 SEO 垃圾信息 **今天的真实示例:** 获取 npmjs.com/package/visus-mcp 返回了 149,589 字节的原始数据。visus-mcp 向 Claude 交付了 44,129 字节。同样的信息。减少了 70% 的 token。 **当页面试图主动操纵你的 agent 时** — 隐藏指令、混淆脚本、角色劫持尝试 — visus 也会剥离这些内容,并将其记录在结构化的合规报告中。这并不是因为 Claude 无法处理它们。而是因为你的 agent 不应该首先花费 token 去阅读攻击尝试。 ## Visus 如何工作 ``` URL → Playwright Render → Content-Type Detection → Specialized Handlers (PDF/JSON/SVG) OR HTML Pipeline → IPI Threat Detection (10 categories) → Injection Sanitizer (44 patterns) → PII Redactor → Cryptographic Proof Generation → Token Ceiling (24k cap) → Clean Content + Proof + Threat Summary → Claude ``` ### 安全流水线 1. **浏览器渲染**:通过 Playwright 的无头 Chromium 获取页面 2. **Content-Type 路由**:检测 MIME 类型并路由到专用处理器: - **PDF** (`application/pdf`) — 提取文本和元数据,清洗所有字段 - **JSON** (`application/json`) — 递归清洗所有字符串值,保留结构 - **SVG** (`image/svg+xml`) — 剥离危险元素(`