Token导航 LogoToken导航TokenDH.com
Policy Guard logo
安全风控stdio官方级别未说明来源级核验

Policy Guard

MCP Server

PolicyGuard是一个基于MCP协议的服务器,为AI代理提供策略访问控制、事件跟踪和合规性监控功能。

工具数

6

提示词数

0

GitHub Stars

0

资源数

0
Python访问控制安全

安装说明

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

作者 / 组织

PrateekKumar1709

提供方

PrateekKumar1709

最后核验

2026/5/17 20:23

运行时

Python

快速接入

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

命令预览

python3 -m venv .venv

详细介绍

PolicyGuard

用于AI代理的安全与治理MCP服务器

![Python 3.10+](https://www.python.org/downloads/) ![MCP](https://modelcontextprotocol.io/) ![License: MIT](https://opensource.org/licenses/MIT)

PolicyGuard是一个MCP(模型上下文协议)服务器,为AI代理提供基于策略的访问控制、事件跟踪和合规性监控。

注: 该项目展示了与 凯根特 (AI代理平台),可以扩展 kgateway (API网关),以获得额外的网络级安全性。

______________________________________________________________________

目录

______________________________________________________________________

概述

随着人工智能代理变得更加自主,组织需要控制来管理他们的行为。PolicyGuard是我的第一个MCP服务器项目,旨在探索如何在MCP层实现安全和治理。

问题

人工智能代理可以调用他们可以访问的任何工具。没有治理:

  • 代理可能会执行破坏性操作
  • 没有代理行为的审计跟踪
  • 无法执行安全策略
  • 无法了解合规性

解决方案

PolicyGuard添加了一个代理调用的安全层 之前 采取行动:

User Request → AI Agent → PolicyGuard (validate_action) → Allowed/Denied

______________________________________________________________________

特性

特性描述
策略强制根据安全规则验证操作
信任级别低、中、高管理层次结构
模式匹配通配符模式,如 delete_*, *_production
自动注册未知代理的信任度极低
事件跟踪自动违规记录
审计跟踪完整的行动历史记录
合规仪表板安全指标一览

______________________________________________________________________

建筑

┌─────────────────────────────────────────────────────────────────┐
│                         AI Agent / LLM                          │
│                                                                 │
│  "Before any action, call validate_action to check permission" │
└─────────────────────────────────────────────────────────────────┘
                              │
                              │ MCP Protocol
                              ▼
┌─────────────────────────────────────────────────────────────────┐
│                     PolicyGuard MCP Server                      │
│                                                                 │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐             │
│  │  validate   │  │   create    │  │   report    │             │
│  │   action    │  │   policy    │  │  incident   │             │
│  └─────────────┘  └─────────────┘  └─────────────┘             │
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐             │
│  │  register   │  │  get_audit  │  │    get      │             │
│  │   agent     │  │    log      │  │ compliance  │             │
│  └─────────────┘  └─────────────┘  └─────────────┘             │
└─────────────────────────────────────────────────────────────────┘
                              │
                              ▼
                    ┌───────────────────┐
                    │   JSON Storage    │
                    │   (policies,      │
                    │    agents,        │
                    │    audit_log,     │
                    │    incidents)     │
                    └───────────────────┘

______________________________________________________________________

MCP工具

PolicyGuard通过MCP公开了6个工具:

1. validate_action ⭐ 主要工具

在执行操作之前,检查是否允许该操作。

{
  "action_type": "tool_call",
  "target": "delete_records",
  "agent_id": "my-agent"
}

答复:

{
  "action_id": "act_a1b2c3d4e5f6",
  "allowed": false,
  "reason": "Delete operations require admin trust level"
}

2. register_agent

注册具有信任级别的代理。

{
  "agent_id": "data-processor",
  "name": "Data Agent",
  "trust_level": "medium"
}

3. create_policy

创建安全规则。

{
  "policy_id": "block-deletes",
  "name": "Block Deletes",
  "rules": "[{\"condition\": {\"tool_pattern\": \"delete_*\"}, \"action\": \"deny\"}]"
}

4. get_audit_log

查询操作历史记录。

5. get_compliance_status

获取安全仪表板指标。

6. report_incident

手动报告安全事件。

______________________________________________________________________

快速开始

先决条件

  • Python 3.10+

本地安装

# Clone
git clone https://github.com/PrateekKumar1709/policyguard.git
cd policyguard

# Setup
python3 -m venv .venv
source .venv/bin/activate
pip install -e .

# Run
python src/main.py

测试工具

import json
from src.tools.validate_action import validate_action
from src.tools.register_agent import register_agent

# Register an agent
result = json.loads(register_agent.fn(
    agent_id="test-agent",
    name="Test Agent",
    trust_level="medium"
))
print(f"Registered: {result['agent_id']}")

# Validate an action
result = json.loads(validate_action.fn(
    action_type="tool_call",
    target="read_data",
    agent_id="test-agent"
))
print(f"Allowed: {result['allowed']}")

HTTP模式

python src/main.py --transport http --port 8000

______________________________________________________________________

Kubernetes部署

PolicyGuard包括一个用于Kubernetes部署的Helm图表。

使用种类

# Create cluster
kind create cluster --name policyguard

# Build and load image
docker build -t policyguard:latest .
kind load docker-image policyguard:latest --name policyguard

# Deploy
kubectl create namespace policyguard
helm install policyguard ./helm/policyguard -n policyguard

# Verify
kubectl get pods -n policyguard

端口转发

kubectl port-forward -n policyguard svc/policyguard 8000:8000

______________________________________________________________________

测试

单元测试

pytest tests/ -v

测试结果

tests/test_tools.py::TestValidateAction::test_allow_read_for_low_trust PASSED
tests/test_tools.py::TestValidateAction::test_deny_delete_for_low_trust PASSED
tests/test_tools.py::TestValidateAction::test_allow_delete_for_admin PASSED
tests/test_tools.py::TestValidateAction::test_deny_suspended_agent PASSED
tests/test_tools.py::TestRegisterAgent::test_register_new_agent PASSED
tests/test_tools.py::TestCreatePolicy::test_create_valid_policy PASSED
... (16 tests total)
============================== 16 passed ==============================

E2E测试输出

[1/6] register_agent      ✅ SUCCESS
[2/6] create_policy       ✅ SUCCESS  
[3/6] validate_action     ✅ ALLOWED (read_data)
[4/6] validate_action     ✅ DENIED (delete_records)
[5/6] report_incident     ✅ SUCCESS
[6/6] get_compliance_status ✅ SUCCESS

ALL 6 MCP TOOLS WORKING!

______________________________________________________________________

kagent集成

PolicyGuard与 凯根特 用于Kubernetes原生AI代理管理。

截图

代理列表 -PolicyGuard代理已注册并准备就绪:

Agent List

代理工具 -6个可用的PolicyGuard MCP工具:

Agent Tools

合规仪表板 -询问合规状态:

Compliance Chat

政策验证 -根据策略拒绝操作:

Validation Chat

快速设置

# 1. Install kagent CRDs
helm install kagent-crds ./kagent-reference/helm/kagent-crds -n kagent --create-namespace

# 2. Install kagent with Ollama (free local LLM)
helm upgrade --install kagent ./kagent-reference/helm/kagent -n kagent \
  --set providers.default=ollama \
  --set providers.ollama.model=qwen2.5:1.5b \
  --set tag=0.7.13

# 3. Deploy PolicyGuard
helm install policyguard ./helm/policyguard -n policyguard --create-namespace

# 4. Create RemoteMCPServer
kubectl apply -f - <<EOF
apiVersion: kagent.dev/v1alpha2
kind: RemoteMCPServer
metadata:
  name: policyguard
  namespace: kagent
spec:
  protocol: STREAMABLE_HTTP
  url: http://policyguard.policyguard:8000/mcp
  timeout: 30s
EOF

# 5. Create PolicyGuard Agent
kubectl apply -f - <<EOF
apiVersion: kagent.dev/v1alpha2
kind: Agent
metadata:
  name: policyguard-agent
  namespace: kagent
spec:
  description: "Security agent using PolicyGuard"
  type: Declarative
  declarative:
    modelConfig: "default-model-config"
    systemMessage: |
      You are a PolicyGuard Security Agent. Use the PolicyGuard tools to:
      - validate_action: Check if actions are allowed
      - register_agent: Register new agents
      - create_policy: Define security rules
      - get_compliance_status: View compliance dashboard
    tools:
    - type: McpServer
      mcpServer:
        name: policyguard
        kind: RemoteMCPServer
        apiGroup: kagent.dev
        toolNames:
        - validate_action
        - register_agent
        - create_policy
        - get_audit_log
        - get_compliance_status
        - report_incident
EOF

已验证工作

# Check status
$ kubectl get agents,remotemcpservers -n kagent
NAME                TYPE          READY   ACCEPTED
policyguard-agent   Declarative   True    True

NAME          PROTOCOL          URL                                       ACCEPTED
policyguard   STREAMABLE_HTTP   http://policyguard.policyguard:8000/mcp   True

# Invoke agent via CLI
$ kagent invoke -t "Get compliance status" --agent policyguard-agent

Response:
- Security Posture: Healthy
- Total Policies: 1, Enabled: 1  
- Total Incidents: 0
- Agents Registered: 0

# Test validation
$ kagent invoke -t "Can test-agent delete the database?" --agent policyguard-agent

Response:
The action delete_database was not allowed for test-agent.
Reason: Delete operations require admin trust level.

访问kagent用户界面

kubectl port-forward -n kagent svc/kagent-ui 8080:8080
# Open http://localhost:8080

______________________________________________________________________

安全模型

信任级别

级别分数用例
low1未知代理,只读
medium2已验证的代理
high3受信任的代理
admin4完全访问

政策规则

{
  "condition": {
    "tool_pattern": "delete_*",
    "trust_level_below": "admin"
  },
  "action": "deny",
  "message": "Delete requires admin"
}

赋值顺序

  1. 特工停职? → DENY
  2. 工具是否在拒绝列表中? → DENY
  3. 工具不在允许列表中? → DENY
  4. 政策匹配? → 应用规则
  5. 默认→ ALLOW

______________________________________________________________________

项目结构

policyguard/
├── helm/
│   └── policyguard/          # Helm chart
│       ├── Chart.yaml
│       ├── values.yaml
│       └── templates/
├── src/
│   ├── main.py               # Entry point
│   ├── core/
│   │   ├── server.py         # MCP server
│   │   └── utils.py          # Utilities
│   └── tools/
│       ├── validate_action.py
│       ├── register_agent.py
│       ├── create_policy.py
│       ├── get_audit_log.py
│       ├── get_compliance_status.py
│       └── report_incident.py
├── tests/
│   └── test_tools.py         # 16 unit tests
├── Dockerfile
├── pyproject.toml
└── README.md

______________________________________________________________________

使用的技术

  • FastMCP -Python MCP服务器SDK
  • 派丹蒂克 -数据验证
  • -Kubernetes打包
  • 测试 -测试

______________________________________________________________________

未来改进

  • \[\]数据库后端(PostgreSQL)
  • \[\]Web仪表板用户界面
  • \[\]普罗米修斯指标
  • \[\]RBAC集成
  • \[\]策略版本控制

______________________________________________________________________

许可证

MIT许可证

______________________________________________________________________

黑客松

MCP_HACK//26 -“MCP和AI代理入门课程”

这是我的第一个MCP服务器项目!我创建PolicyGuard是为了学习:

  • MCP服务器的工作原理
  • 如何将工具暴露给AI代理
  • 如何在Kubernetes上部署MCP服务器
  • 如何在MCP层实现安全/治理

我建造了什么

  • ✅ 用于安全治理的6个MCP工具
  • ✅ 具有模式匹配的策略引擎
  • ✅ 信任级别系统
  • ✅ 审计日志和事件跟踪
  • ✅ Kubernetes的Helm图
  • ✅ 16个单元测试
  • ✅ kagent集成示例

目录标签

目录标签

Python访问控制安全AI代理安全本地部署策略管理合规监控事件跟踪

接入字段

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

stdio

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

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

6

资源数量(resourceCount,资源数)

0

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

0

权限和风险

stdionone部署方式未说明

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

安装前确认

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

来源信息

继续浏览同类 MCP