Extensible-MCP
LLM 与 MCP 服务器之间的安全代理层
项目简介
extensible-mcp 是一个部署在 LLM 与 MCP 服务器之间的安全代理层,通过动态加载、按需检索和确定性策略执行三重机制,解决 AI Agent 当前面临的安全与架构难题。当前的 MCP 集成方案要求在启动时预先配置所有服务器,工具定义全部注入上下文窗口——随着服务器数量增长,这会导致 token 膨胀、模型性能下降甚至上下文溢出。extensible-mcp 从根本上重构了这一模式。
核心能力
1. 动态 MCP 服务器加载
传统的 MCP 集成需要在客户端启动时静态配置服务器列表,新增服务器必须重启客户端。extensible-mcp 支持在运行时通过 URL 加载新的 MCP 服务器,LLM 可以在对话过程中主动调用 load_mcp_server(server_name, url) 获取全新能力,无需中断当前会话。这为多代理协作和按需扩展提供了原生基础。
2. 基于 RAG 的工具检索
不再将所有工具定义一股脑注入上下文。extensible-mcp 将所有已加载服务器的工具定义向量化存入向量索引,LLM 通过自然语言调用 search_tools(query) 语义检索匹配的工具定义,返回结果仅为当前任务所需,而非全部工具列表。这一设计显著降低了 token 消耗,同时保证了工具发现的准确性。向量检索默认使用 all-MiniLM-L6-v2 模型,可在本地运行。
3. 可插拔的策略过滤器管道
安全策略执行位于模型上下文之外。extensible-mcp 在搜索、调用、服务器加载三个环节均部署了过滤器链,每一环节的操作在执行前均经过确定性代码检查,LLM 无法绕过也无法被诱导绕过。内置参考过滤器支持:
- 工具访问控制(隐藏或禁止特定工具)
- Rego 策略评估(OPA 风格细粒度权限控制)
- 服务器加载白名单(仅允许从可信来源加载服务器)
开发者可通过编写自定义过滤器扩展任何环节的策略逻辑,策略引擎本身不限于 Rego,OPA、Cedar、Python 任意自定义逻辑均可接入。
4. 凭证与密钥隔离
敏感凭证不进入 LLM 上下文。Stdio 类型服务器通过环境变量传参,URL 类型服务器通过独立的 tokens 文件管理,代理在每次请求时自动注入正确的 Authorization 头,LLM 只能看到操作结果,永远接触不到实际密钥。当下游返回 401/403 时,代理将错误翻译为清晰提示,引导用户更新 token 文件,而非让 LLM 在对话中索要凭证。
5. 结构化安全保证
extensible-mcp 强制执行一条核心结构保证:LLM 只能调用此前通过 search_tools 发现过的工具。这意味着 LLM 永远无法直接调用一个它未曾检索到的工具,从架构层面消除了工具清单注入类攻击的可行路径。结合 Rego 策略,可进一步限制特定工具的调用参数、调用频率和调用场景。
技术实现
该项目的技术白皮书《Proof, Not Trust: Zero Trust for an Agentic World》详细阐述了设计背景:LLM 读取的任何文本均可能被投毒,网页、邮件、工具返回结果均可以是攻击向量。传统人在环 Human-in-the-Loop 在代理操作速度下失效,唯一有效的防护必须位于 LLM 上下文之外的确定性代码中。extensible-mcp 的三段式管道正是这一理念的实现。
项目核心使用 Python 3.11+ 开发,依赖 fastmcp 框架实现 MCP 协议代理,支持 stdio 和 Streamable HTTP 两种服务器连接方式。向量索引使用 sentence-transformers 的 all-MiniLM-L6-v2 模型(CPU 可运行)。Rego 策略通过 OPA WASM 执行,过滤器管道通过标准 Python 接口可任意扩展。104 个测试用例覆盖核心路径。
安装配置
环境要求
Python 3.11+ 和 uv 包管理器(推荐)或 pip。
安装步骤
第一步:克隆仓库并安装依赖
git clone https://github.com/SenteLabsAI/extensible-mcp.git
cd extensible-mcp
uv sync
第二步:创建配置文件
cp config.example.json config.json
第三步:编辑 config.json,添加 MCP 服务器
在 mcpServers 块中添加你要代理的服务器,支持 stdio 和 HTTP 两种类型。
第四步:运行代理
python -m extensible_mcp
代理默认在本地启动,监听 MCP 客户端连接。
适用人群
- 安全工程师与 AI 红队成员:需要为 AI Agent 部署确定性安全边界
- 企业 AI 平台团队:管理多个 MCP 服务器需要统一访问控制方案
- AI Agent 框架开发者:需要动态加载和按需检索能力的基础设施
- 合规与审计团队:需要对 AI Agent 操作日志进行独立审计
评论与建议
登录 后参与评论或提建议