Token导航 LogoToken导航

MCP Server · 安全风控

Context Injector

一个轻量级的MCP演示服务器和客户端,用于测试语义检查引擎的有效性,支持多种攻击场景模拟。

stdio官方级别未说明来源级核验工具 4
安全Python模型集成

快速开始

作者 / 组织
xianclasen
提供方
xianclasen
运行时
Python

工具数量

4

来源目录标注

资源数量

0

来源目录标注

提示词数量

0

来源目录标注

GitHub Star

0

仓库热度

收录来源

1 个

MCP World

选型结论

Context Injector 属于安全风控类 MCP Server,公开资料标注 4 个工具,通过stdio 本地进程接入,客户端适配情况以官方文档为准,有可以直接复制的安装命令;接入前先确认权限范围。

分类

安全风控

传输方式

stdio

认证方式

无需认证

部署方式

公开资料未说明

安装与配置

安装命令

python -m venv .venv

公开命令不是通用的启动方式,拼不出可靠配置示例;请在客户端 MCP 配置里按官方文档填写 command 和 args。

上手步骤

  1. 1

    准备运行环境

    stdio 服务在本地起进程,需要先装好 Python,再按安装命令拉取依赖。

  2. 2

    安装服务

    复制下面的安装命令执行;命令里带占位符的位置换成自己的密钥或路径。

  3. 3

    写入客户端配置

    在客户端的 MCP 配置里填启动命令和参数,保存后完全退出客户端再打开,让新配置生效。

  4. 4

    验证是否可用

    连接成功后客户端会列出 4 个工具,随便调一个只读工具确认能返回结果。

接入前确认

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

详细介绍

上下文注入器

用于测试语义检查引擎效能的联合MCP客户端和服务器框架。

目的

作为一名狂热的读者,我想找到一种方法将我的GoodReads数据暴露给法学硕士,以获得符合我口味的书籍推荐。

作为一名安全迷,我希望能够将恶意上下文注入到这些数据中。因此,我构建了这个轻量级的MCP演示服务器和客户端,它公开了Goodreads/RSS数据,并演示了常见的集成和攻击场景(用于学习和测试)。

此设置不需要LLM,也不相关。此设置纯粹用于测试来自互联网上恶意MCP服务器的攻击企图。根据现实世界中LLM和MCP客户端的幼稚程度,这些攻击可能会成功或失败。我只是想知道内联代理/网关是否会使用互联网和MCP客户端之间的语义检查来捕获攻击。

这个项目是一个基于MCP的服务的小型演示,该服务获取和公开与书籍相关的数据(通过RSS/Goodreads集成),包括日志记录,并包含攻击向量的示例。对我来说,主要的驱动力是测试语义检查代理的有效性。

特性

该项目包括客户端和服务器。攻击类型可以在任何一侧选择,在服务器上通过在启动时设置攻击配置文件来选择,和/或在客户端上通过在请求时设置来选择。

服务器上存在用于检索合法数据的工具,也可以用于攻击类型的控制平面配置(如下所列)。

这意味着客户端可以天真地向服务器发送请求,服务器在启动时配置了特定的攻击配置,或者客户端可以在请求中设置/覆盖服务器设置。

元数据用于跟踪双方的请求以及启用了哪些攻击。

提供的 scripts/run_attack_matrix.sh 将运行所有攻击组合,并生成一份关于被阻止或允许的内容的报告。

先决条件

  • Python 3.13或更新版本(参见 pyproject.toml)
  • 推荐:使用 uv 以及虚拟环境

安装

  1. 创建并激活虚拟环境(建议: uv):
uv venv .venv
source .venv/bin/activate
  1. 在可编辑模式下安装项目(从安装依赖项 pyproject.toml):
uv pip install -e .

或者,如果您不使用 uv:

python -m venv .venv
source .venv/bin/activate
python -m pip install -e .

如果您更喜欢手动安装依赖项:

python -m pip install fastmcp feedparser python-dotenv

配置

示例 .env:

# OpenAI / LLM key (optional)
OPENAI_API_KEY=your-openai-api-key

# Goodreads settings
# Optional: if GOODREADS_USER_ID is unset, the server falls back to a built-in default.
GOODREADS_USER_ID=182366515
GOODREADS_USER_AGENT=ContextInjector/1.0
GOODREADS_HTTP_TIMEOUT_SECONDS=10

# MCP server configuration
MCP_HOST=0.0.0.0
MCP_PORT=3333
MCP_HTTP_PATH=/mcp

# Logging
LOG_LEVEL=INFO

用法

  • 运行服务器:
python server.py
  • 运行客户端:
python client.py

探索 attacks/ 和 models/ 查看示例组件和演示代码。

攻击概况

配置文件模拟嵌入在工具输出中的真实恶意内容,或者可选地作为工具输出的完全替代品发送回来(attack-only).

  • 按请求配置文件覆盖: fetch_shelf_rss 接受 profile_id (数字)和可选 attack_only (布尔)。

这避免了通过代理发送配置文件名称,这可能会使语义检查引擎跳闸。

  • baseline :正常含量;没有注入攻击文本。
  • prompt_injection :嵌入式系统覆盖摘要中的指令。
  • mixed_content :带有隐藏指令覆盖的合理内容。
  • tool_coercion :试图强迫客户调用危险工具。
  • data_exfiltration :请求机密、内部配置和先前的工具输出。
  • oversized_payload :向油田注入大量有效载荷,以测试尺寸限制和截断。
  • high_entropy :注入高熵base64数据以测试熵或类似二进制的有效载荷处理。
  • schema_confusion :结构化结果中存在错误的类型和意外项,无法测试模式验证。
  • assistant_impersonation :模拟先前助手输出以测试权限混淆的内容。
  • role_confusion :在内容中嵌入SYSTEM/DEVELOPER标头,以测试角色边界强制执行。
  • delayed_instruction :延迟指令意味着在以后的用户查询中触发。
  • obfuscated_injection :用于测试规范化的隐藏/模糊指令(零宽度/HTML注释)。
  • tool_args_smuggling :工具调用JSON嵌入到内容中,以测试工具门控。
  • data_poisoning :微妙的推荐偏差指令,用于测试语义操纵。
  • context_stuffing :重复短语以测试重复的偏见。
  • sampling_override :尝试覆盖客户端采样参数并请求多个候选者。
  • elicitation_probe :旨在引出隐藏提示或凭证的探究性问题。
  • logging_tamper :尝试禁用或编辑客户端日志记录/审计跟踪。

配置文件ID(用于 profile_id 和控制平面工具):

  • 0 :基线
  • 1 :prompt_injection
  • 2 :tool_coercion
  • 3 :data_exfiltering
  • 4 :尺寸过大_有效载荷
  • 5 :高营养
  • 6 :schema_coundation
  • 7 :混合内容
  • 8 :助理_模仿
  • 9 :角色_融合
  • 10 :指令延迟
  • 11 :混淆注入
  • 12 :tool_args_走私
  • 13 :数据中毒
  • 14 :上下文填充
  • 15 :采样_覆盖
  • 16 :启发
  • 17 :记录电流

命令行参数

服务器(server.py):

  • --host :要绑定的主机(默认 0.0.0.0 或 MCP_HOST env)
  • --port :要监听的端口(默认 3333 或 MCP_PORT env)
  • --path :MCP端点的HTTP路径(默认 /mcp 或 MCP_HTTP_PATH env)
  • --profile :攻击配置文件名称(默认 prompt_injection 或 ATTACK_PROFILE env)。仅服务器端。
  • --inject / --no-inject :细粒度启用/禁用注入
  • --inject-max-items :每个响应注入的最大项目数(默认值 2)
  • --single-field :每个输出只注入一个字段(默认值,或 ATTACK_SINGLE_FIELD=1)
  • --multi-field :向每个输出的所有启用字段注入
  • --attack-only :仅返回攻击内容(剥离真实Goodreads数据)。也可以通过以下方式设置 ATTACK_ONLY=1
  • --disable-control-plane-tools :禁用控制平面工具注册

TLS/HTTPS选项(可选):

  • --https :使用提供的证书和密钥启用HTTPS
  • --cert :TLS证书文件(PEM)的路径。也可以通过以下方式设置 TLS_CERT.
  • --key :TLS私钥文件(PEM)的路径。也可以通过以下方式设置 TLS_KEY.
  • --client-ca :用于客户端证书验证的可选CA包(PEM)。也可以通过以下方式设置 TLS_CLIENT_CA.

客户(client.py):

  • --url :MCP端点URL(默认 http://127.0.0.1:3333/mcp)
  • --http2 :启用HTTP/2
  • --timeout :请求超时秒数(默认值 20.0)
  • --insecure :禁用TLS验证
  • --profile-id :作为工具arg传递的数字配置文件id(代理安全)
  • --attack-only :仅请求攻击工具输出(按请求覆盖)
  • --tool :要调用的工具名称(默认 fetch_shelf_rss)
  • --shelf :默认工具参数使用的工具架名称(默认 read)
  • --limit :默认工具参数的限制(默认 20)
  • --tool-args :用作工具参数的原始JSON字符串(重写 --shelf/--limit)

控制平面工具(仅限ID)

控制平面工具I/O使用数字ID来指示攻击配置文件,以避免通过线路发送配置文件名称并触发语义代理引擎:

  • list_attack_profiles 返回配置文件ID和默认ID。
  • get_attack_profile 回报 profile_id.
  • set_attack_profile 接受 profile_id.
  • set_injection_scope 接受 single_field_per_output (布尔)。

注射反应包括 server_note.meta.attack_profile_id (数字)。

项目布局

  • server.py --MCP服务器入口点示例
  • client.py --简单客户端/演示运行器
  • models/ --应用程序模型和客户端
  • attacks/ --攻击模块(例如注入)
  • logutils/ --日志格式化程序
  • tools/ --工具实现

工具与能力

工具数量

4

资源数量

0

提示词数量

0

能力标签

语义检查Python本地部署安全测试MCP框架攻击模拟LLM集成

数量来自来源目录的标注,具体工具清单以官方文档为准。

典型使用场景

资产与漏洞排查

批量查询资产和漏洞信息,输出待修清单。

日志审计

从日志里筛出异常访问和高风险操作。

合规检查

按规则核对配置项,记录不符合项。

选择建议

值得选的地方

  • 只提供 4 个工具,职责集中,接入后不容易误操作。
  • 有现成的安装命令,不用自己找入口,照着跑就能起服务。
  • 公开说明写得比较完整,接入前能看清能力边界。

先想清楚的地方

  • stdio 方式要求本地装好 Python,换机器要重新装一遍。
  • 公开摘要偏短,具体能力和限制要回到仓库确认。
  • 第三方目录整理,版本更新和行为细节以官方仓库为准。

更适合

  • 需要在安全风控场景里让模型直接调用外部能力的人。
  • 想先快速试一下、能接受在本地跑服务的人。

不太适合

  • 完全不想在本地装环境的人。
  • 需要厂商级 SLA 和技术支持的生产环境。

同类对比

5 个同类
MCP Server工具数传输方式安装命令收录来源最后核验
Context Injector

MCP World · 本页

4stdio有1 个2026-05-17
Modelcontextprotocol C22988b0

MCP World

0stdio有1 个2026-05-17
Hexstrike AI

MCP World

0stdio有1 个2026-05-17
Cyber Strike AI

MCP World

75未说明未标注1 个2026-05-17
MCP Scan

MCP World

0stdio有1 个2026-05-17

按同分类和工具数量挑出最接近的几条,字段以各自详情页为准。

常见问题

5 条

Context Injector 怎么安装?

公开资料给出的安装命令是 python -m venv .venv,运行环境为 Python。装完后按客户端要求写进 MCP 配置,重启客户端生效。

Context Injector 怎么在 Claude Desktop、Cursor 里配置?

它是stdio 本地进程,客户端配置里要写启动命令和参数,运行环境是 Python;保存后完全退出客户端再打开,配置才会生效。

Context Injector 收费吗?

本站只整理公开资料,不代收费用,也没有标注具体价格。是否收费取决于服务本身和背后的接口额度,正式使用前按官方说明确认。

Context Injector 需要 API Key 吗?

公开资料标注为无需认证,装好就能连;如果实际调用时报鉴权错误,按官方文档补上凭据。

Context Injector 支持哪些客户端?

公开资料没有标注具体客户端;能配置本地 MCP 命令的客户端都能接,配置方式参照官方文档。

来源信息

继续浏览同类 MCP