Token导航 LogoToken导航TokenDH.com
Prompt Cleaner MCP logo
AI代理未说明官方级别未说明来源级核验

Prompt Cleaner MCP

MCP Server

一个基于TypeScript的提示词清洗工具,提供敏感信息脱敏、结构化输出和客户端友好的内容标准化功能。

工具数

0

提示词数

0

GitHub Stars

1

资源数

0
TypeScriptWindsurfAI代理Windsurf

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

dacebt

提供方

dacebt

最后核验

2026/5/17 20:23

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

详细介绍

Prompt Cleaner

提示清理工具(MCP服务器)

TypeScript MCP服务器,提供提示清理工具和健康检查功能。所有提示均通过该服务器路由 cleaner,采用秘密遮蔽技术、结构化模式,并提供客户端友好的输出规范化。

特点/特性

  • 工具

- health-pingliveness probe 返回 { ok: true }。 - cleaner清理原始提示;返回包含修正后的字符串、备注、开放问题、风险和删除内容的结构化JSON。

  • 秘密编辑(或:秘密删节)敏感模式从日志和输出中被清除 src/redact.ts.
  • 输出归一化: src/server.ts 将内容转换为 type: "json" 对于拒绝JSON内容类型的客户端,转换为纯文本。
  • 可配置的大型语言模型基础URL、API密钥、模型、超时、日志级别;可选本地仅强制执行。
  • 确定性模型策略通过单一模型 LLM_MODEL默认情况下,不进行动态模型选择/列出。

要求

  • Node.js 版本 >= 20

安装与构建

npm install
npm run build

  • 开发人员(标准输入输出服务器):
npm run dev

检查器(调试)

使用MCP Inspector在stdio上测试工具:

npm run inspect

环境

通过(某种方式)进行配置 .env 或者环境变量:

  • LLM_API_BASE (字符串,默认 http://localhost:1234/v1): 兼容OpenAI的基础URL。
  • LLM_API_KEY (字符串,可选):API的承载令牌。
  • LLM_MODEL (字符串,默认 open/ai-gpt-oss-20b模型标识符已发送至API。
  • LLM_TIMEOUT_MS (数字, 默认 60000): 请求超时。
  • LOG_LEVEL (error|warn|info|debug,默认 info): 日志详细程度(将 JSON 日志输出到标准错误流)。
  • ENFORCE_LOCAL_API (true|false,默认 false): 如果 true仅允许本地主机API。
  • LLM_MAX_RETRIES (数字,默认 1): 对于可重试的HTTP/网络错误,重试次数。
  • RETOUCH_CONTENT_MAX_RETRIES (数字,默认 1):当清理器返回非JSON内容时进行重试。
  • LLM_BACKOFF_MS (数字,默认 250): 初始退避延迟,单位为毫秒。
  • LLM_BACKOFF_JITTER (0..1,默认 0.2): 应用于退避的抖动因子。

示例 .env:

LLM_API_BASE=http://localhost:1234/v1
LLM_MODEL=open/ai-gpt-oss-20b
LLM_API_KEY=sk-xxxxx
LLM_TIMEOUT_MS=60000
LOG_LEVEL=info
ENFORCE_LOCAL_API=false
LLM_MAX_RETRIES=1
RETOUCH_CONTENT_MAX_RETRIES=1
LLM_BACKOFF_MS=250
LLM_BACKOFF_JITTER=0.2

工具(API合约)

所有工具均遵循MCP工具的语义。内容以如下形式返回: [{ type: "json", json: }] 并归一化为 type: "text" 由服务器为需要的客户端提供。

  • 健康监测

- 输入: {} - 输出: { ok: true }

  • 清洁工

- 输入: { prompt: string, mode?: "code"|"general", temperature?: number } - 输出: { retouched: string, notes?: string[], openQuestions?: string[], risks?: string[], redactions?: ["[REDACTED]"][] } - 行为:应用来自(某处)的系统提示 prompts/cleaner.md调用已配置的大型语言模型(LLM),提取第一个JSON对象,使用Zod进行验证,并对敏感信息进行模糊处理。

  • “sanitize-text”翻译成中文是“净化文本”或“清理文本”。这个短语通常用于描述对文本进行清理、过滤或规范化处理的过程,以去除不必要的字符、格式或潜在的安全风险 (的别名,或 cleaner

- 与……相同的输入/输出模式和行为 cleaner针对那些关键词匹配“净化”、“个人可识别信息 (PII)”或“遮蔽”的代理进行暴露检测。

  • 规范化提示(或:标准化提示) (别名、绰号 cleaner

- 相同的输入/输出模式和行为 cleaner对于关键词匹配“标准化”、“格式化”或“预处理”的代理,已将其暴露出来。

每次调用API密钥覆盖

src/llm.ts 接受 apiKey 在每个调用的覆盖选项中;若无则回退到 LLM_API_KEY.

项目结构

  • src/server.tsMCP服务器布线、工具列表/调用、输出规范化、日志记录。
  • src/tools.ts工具注册与调度。
  • src/cleaner.ts更清洁的管道和JSON提取/验证。
  • src/llm.ts带有超时、重试和错误规范化功能的LLM客户端。
  • src/redact.ts秘密编辑工具。
  • src/config.ts环境配置与验证。
  • test/*.test.tsVitest 套件,涵盖工具、形状、清理器和健康检查功能。

测试

npm test

设计决策

  • 单一模式政策用途 LLM_MODEL 来自环境;没有模型列表/选择工具以保持行为确定性并减少表面积。
  • 输出归一化src/server.ts (使)转变;(使)皈依;(使)转换 json 满意于;乐于 text 对于拒绝使用JSON的客户端。
  • 秘密编辑/秘密删节: src/redact.ts 从日志和输出中过滤掉敏感令牌。

故障排除

  • 大型语言模型(LLM)超时增加 LLM_TIMEOUT_MS检查网络可达性至 LLM_API_BASE
  • 来自清理器的非JSON数据最多重试次数为 RETOUCH_CONTENT_MAX_RETRIES如果持续存在,请减少 temperature 或者确保配置的模型符合输出约定。
  • 来自LLM的HTTP 5xx状态码自动重试最多至 LLM_MAX_RETRIES 使用指数退避(LLM_BACKOFF_MSLLM_BACKOFF_JITTER)。
  • 本地API强制执行错误如果 ENFORCE_LOCAL_API=trueLLM_API_BASE 必须指向本地主机(localhost)。
  • 日志/输出中的秘密编辑自动运行;如果看到泄露的标记,请更新模式以 src/redact.ts

风帆冲浪(示例)

在Windsurf设置中添加一个MCP服务器,指向已构建的stdio服务器:

{
  "mcpServers": {
    "prompt-cleaner": {
      "command": "node",
      "args": ["/absolute/path/to/prompt-cleaner/dist/server.js"],
      "env": {
        "LLM_API_BASE": "http://localhost:1234/v1",
        "LLM_API_KEY": "sk-xxxxx",
        "LLM_MODEL": "open/ai-gpt-oss-20b",
        "LLM_TIMEOUT_MS": "60000",
        "LOG_LEVEL": "info",
        "ENFORCE_LOCAL_API": "false",
        "LLM_MAX_RETRIES": "1",
        "RETOUCH_CONTENT_MAX_RETRIES": "1",
        "LLM_BACKOFF_MS": "250",
        "LLM_BACKOFF_JITTER": "0.2"
      }
    }
  }
}

用法:

  • 在聊天中,要求客服使用 cleaner 带着你原始的提示。
  • 或者,如果您的设置中提供了访问权限,可以从代理用户界面调用工具。

大语言模型(LLM)API兼容性

  • 与支持OpenAI兼容的聊天完成API(例如,LM Studio本地服务器)配合使用,这些API提供了 /v1/chat/completions
  • 通过(某种方式)进行配置 LLM_API_BASE 并且可选 LLM_API_KEY使用 ENFORCE_LOCAL_API=true 在开发时限制为本地主机。
  • 设定;套装;一套 LLM_MODEL 到特定提供者的模型标识符。此服务器遵循单模型策略以确保确定性和可重复性。
  • 提供者必须返回有效的JSON;当内容不是严格的JSON格式时,清理程序会包含有限的重试机制。

链接

  • 模型上下文协议(规范):https://modelcontextprotocol.io
  • 更简洁的系统提示: prompts/cleaner.md

注释

  • 日志以 JSON 行的形式输出到标准错误输出,以避免干扰 MCP 的标准输入输出。
  • 一些客户拒绝 json 内容类型;此服务器将其规范化为 text 自动地。

安全

  • 秘密被(彻底)清除/抹去 src/redact.ts 来自日志和更干净的输出。
  • ENFORCE_LOCAL_API=true 限制使用仅限于本地API端点。

目录标签

目录标签

TypeScriptWindsurfAI代理提示词处理本地部署敏感信息脱敏结构化输出内容标准化LLM集成

支持客户端

Windsurf

接入字段

传输方式(transport,传输协议)

未说明

鉴权方式(authType,认证方式)

none

工具数量(toolCount,工具数)

0

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

未说明none部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

仍需确认:installCommand

来源信息

继续浏览同类 MCP