HTTP请求治理服务

Palaryn MCP Server是一个为AI代理提供的HTTP请求治理服务,通过MCP协议实现策略强制执行的API访问控制。

  • by palaryn-ai
  • JavaScript
  • 本地部署
  • 更新于

使用说明

Palaryn MCP服务器

AI代理发出的每个HTTP请求的代理I/O治理——作为MCP服务器公开。

Palaryn MCP将Palaryn网关封装为 模型上下文协议 服务器,让Claude Code、Cursor、Windsurf和任何兼容MCP的客户端策略强制访问外部API,无需代码更改。


它的作用

AI代理发出的每个HTTP请求都会通过Palaryn管道:

Claude Code / Cursor / MCP Client
        |
        | stdio (JSON-RPC 2.0) or HTTP (/mcp)
        v
  Palaryn MCP Server
        |
        +---> Rate Limiting     (per-actor sliding window)
        +---> Anomaly Detection (statistical outlier flagging)
        +---> Policy Engine     (YAML rules: allow / deny / require approval)
        +---> DLP Scanner       (secrets, PII, 119 detection patterns)
        +---> Prompt Injection  (3-layer cascade: regex → DeBERTa → LLM)
        +---> Call Limits       (per-user / workspace daily & monthly caps)
        +---> HTTP Execution    (retries, backoff, SSRF protection)
        +---> Output DLP Scan   (response body scanning)
        +---> Audit Logging     (immutable append-only trace)
        |
        v
   External API

暴露了三个MCP工具:

工具 方法 能力 描述
http_request 任意 推断 执行任何HTTP请求(GET、POST、PUT、PATCH、DELETE、HEAD、OPTIONS)
http_get 得到 read GET请求简写
http_post 职位 write POST请求简写

每个工具都接受: url (必填), headers, body, timeout_ms, purpose, labels.


快速开始

选项1:托管(需要Palaryn帐户)

claude mcp add --transport http palaryn https://app.palaryn.com/mcp

完成。来自Claude Code的所有请求现在都通过Palaryn路由。首次使用时,系统会提示您通过OAuth登录。

选项2:项目级配置

创建 .mcp.json 在项目根目录中(请参见 .mcp.json.example):

{
  "mcpServers": {
    "palaryn": {
      "type": "stdio",
      "command": "npx",
      "args": ["palaryn-mcp"],
      "env": {
        "POLICY_PACK_PATH": "./policy-packs/default.yaml"
      }
    }
  }
}

备注:确保 palaryn-mcp 已安装(例如,通过 npm install palaryn-mcp)所以 npx 可以解决它。


配置

环境变量

变量 默认值 描述
PALARYN_MCP_WORKSPACE ws-claude-code 工具调用的工作区ID
PALARYN_MCP_ACTOR claude-code 审计跟踪的参与者ID
PALARYN_MCP_PLATFORM claude_code 平台标识符
POLICY_PACK_PATH ./policy-packs/default.yaml 活动策略包的路径

自定义策略包

通过环境变量传递自定义策略:

claude mcp add palaryn \
  -e POLICY_PACK_PATH=./policy-packs/prod_strict.yaml \
  -- node bin/palaryn-mcp.js

策略包

包括三个预构建的策略包:

default.yaml --明智的启动规则

  • 阻止SSRF(云元数据端点)
  • 允许所有读取操作(GET)
  • 写入需要人工批准(POST/PUT/PATCH)
  • 拒绝删除和管理操作

dev_fast.yaml --允许发展

  • SSRF模块
  • 允许未经批准的读取和写入
  • 删除/管理操作需要批准

prod_strict.yaml --生产的最低权限

  • 阻止SSRF+内部IPs+localhost
  • 只允许读取已分配的域(例如。, api.github.com, api.slack.com)
  • 要求对所有写入进行安全审查
  • 拒绝所有删除和管理操作
  • 任何不匹配的内容都需要管理员批准

自定义策略示例

name: my-policy
version: "1.0.0"
description: "Custom policy for my project"

domain_blocklist:
  - "169.254.169.254"

rules:
  - name: "Allow GitHub API"
    effect: ALLOW
    priority: 10
    conditions:
      capabilities: ["read"]
      domains: ["api.github.com"]

  - name: "Require approval for writes"
    effect: REQUIRE_APPROVAL
    priority: 20
    conditions:
      capabilities: ["write"]
    approval:
      scope: "admin"
      ttl_seconds: 3600
      reason: "Write operations require approval"

  - name: "Deny everything else"
    effect: DENY
    priority: 100
    conditions: {}

运作原理

建筑

Palaryn MCP服务器是一个瘦适配器层,它将MCP工具调用转换为Palaryn网关管道:

MCP Client (Claude Code, Cursor, etc.)
     |
     | JSON-RPC 2.0 over stdio
     v
+-----------------------------+
|   Palaryn MCP Server        |
|                             |
|  tools/list -> 3 HTTP tools |
|  tools/call -> Gateway      |
+-----------------------------+
     |
     v
+-----------------------------+
|   Palaryn Gateway Pipeline  |
|                             |
|  1. Rate Limiting           |
|  2. Anomaly Detection       |
|  3. Policy Evaluation       |
|  4. DLP Scan (input)        |
|  5. Prompt Injection (3L)   |
|  6. Call Limit Check        |
|  7. HTTP Execution          |
|  8. DLP Scan (output)       |
|  9. Audit Logging           |
+-----------------------------+
     |
     v
   External API

MCP协议

服务器实现 模型上下文协议 规范:

方法 说明
initialize 协议握手——返回服务器信息和功能
tools/list 返回带有JSON模式的3个HTTP工具定义
tools/call 通过网关管道执行工具
ping 健康检查

两种运输方式

模式 协议 最适合
工作室 JSON-RPC 2.0通过stdin/stdout 克劳德代码、游标、本地IDE代理
超文本传输协议 可流式HTTP /mcp 托管/远程部署,共享服务器

响应格式

每个工具调用返回两个内容块:

  1. 主要内容:实际的HTTP响应正文(或错误消息)
  2. 网关元数据:策略决策、DLP报告、呼叫限制、时间
{
  "content": [
    { "type": "text", "text": "{\"data\": \"response from API\"}" },
    { "type": "text", "text": "--- Gateway Metadata ---\n{...}" }
  ],
  "isError": false
}

安全特性

快速注射检测(3层级联)

针对快速注入攻击的三层防御,以级联方式进行评估(首先是快速层,只有在需要时才使用昂贵层):

  1. 正则表达式+启发式 (同步,<1ms,$0)--17个类别的119个模式,具有文本规范化(零宽度字符剥离、同形符折叠、ROT13/bbase64解码、leetspeak、HTML/URL解码)。多语言:英语、波兰语、德语、西班牙语、法语。
  2. 微调DeBERTa (sync,~50ms,$0)——用于语义分类的局部ML模型。URL感知扫描(提取查询参数值,忽略URL结构)。API成本为零,离线工作。
  3. LLM分类器 (异步,~800ms,~0.001/req)——通过gpt-4o-mini进行语义分类。检测12种攻击类别,包括指令覆盖、提示提取、角色扮演劫持、社会工程、游戏操纵、内存操纵、数据泄露、多语言注入、复合攻击和分类器自我操纵。

级联逻辑:只有在Regex+DeBERTa什么都没发现的情况下,LLM才会运行——API调用减少约35%。

DLP(数据丢失防护)

  • 119种检测模式:秘密(14)、个人身份信息(5)、即时注射(65)、工具注射(28)、泄露(6)、敏感文件(9)
  • 扫描请求参数和响应体
  • 检测API密钥、令牌、密码、SSN、信用卡号码、URL中的AWS凭据、降价图像注入、大负载exfiltering
  • 在敏感数据到达外部服务之前自动对其进行编辑
  • 可配置的严重性级别和多个检测后端

政策引擎

  • 基于YAML的优先级排序策略规则
  • 四项决定: ALLOW, DENY, TRANSFORM, REQUIRE_APPROVAL
  • 条件:能力级别、HTTP方法、目标域、工具名称
  • SSRF保护的域阻止列表
  • 可选的OPA/Rego集成,用于高级策略逻辑

SSRF保护

  • 阻止对云元数据端点的请求(169.254.169.254等)
  • 阻止私有/保留IP范围
  • 整数编码IP检测(例如2852039166→ 169.254.169.254)
  • 生产环境的域分配

通话限制

  • 每位用户每日和每月通话限制
  • 每个工作区的每日和每月通话限制
  • 每项任务的最大步数
  • 防止代理执行中出现失控循环
  • 响应中剩余呼叫的实时限制跟踪

速率限制

  • 每个演员和每个工作空间的滑动窗口速率限制
  • 防止滥用并确保公平的资源分配

集成模式

克劳德代码

# Hosted (requires Palaryn account)
claude mcp add --transport http palaryn https://app.palaryn.com/mcp

光标

添加到光标MCP设置中:

{
  "mcpServers": {
    "palaryn": {
      "type": "stdio",
      "command": "npx",
      "args": ["palaryn-mcp"]
    }
  }
}

帆板运动

添加到您的Windsurf MCP配置中:

{
  "mcpServers": {
    "palaryn": {
      "serverUrl": "https://app.palaryn.com/mcp"
    }
  }
}

远程MCP(HTTP)

为了将Palaryn作为远程MCP服务器托管,完整网关包括 /mcp 使用OAuth 2.0的HTTP端点。联系我们 App.palaryn.com 访问。


工具参考

http_request

通过Palaryn网关执行任意HTTP请求。

参数 类型 必填 说明
url string 是 目标URL
method string 否 HTTP方法(默认:GET)
headers object 否 HTTP标头作为键值对
body string 否 请求正文(通常为JSON)
timeout_ms number 否 请求超时(毫秒)
purpose string 否 为什么发出此请求
labels string[] 否 分类标签

http_get

GET请求的简写。参数与 http_request 减 method 和 body.

http_post

POST请求的简写。参数与 http_request 减 method.


许可证

麻省理工学院