ต้นแบบ · รุ่นทดลอง: มีทุก server ในทะเบียนทางการ อัปเดตทุก 30 นาที รีวิวและบัญชีผู้ใช้จะมาในขั้นถัดไป
PopNx MCPที่รวม MCP สำหรับคนใช้ AI · อธิบายเป็นภาษาคน

Bulwark

โดย bpolaniaรุ่น 0.2.0i★ –iรันบนเครื่อง
ชื่อใน registryio.github.bpolania/bulwark

ติดตั้ง

ภาพรวม

คำอธิบายจากผู้ทำ (ภาษาอังกฤษตามต้นฉบับ)

AI agent governance: content scanning, audit logs, policy evaluation, session management.

สามเสาของ PopNx MCP

สามเรื่องนี้ไม่รวมเป็นคะแนนเดียว เพราะความเห็น การวัด และความนิยม เป็นคนละเรื่องกัน

ใช้ทำอะไรได้

ตัวนี้ยังไม่ได้เรียบเรียงเป็นภาษาไทย ด้านล่างคือข้อเท็จจริงที่เราอ่านจาก registry

  • การเชื่อมต่อ: รันบนเครื่อง
  • ช่องทาง (transport): stdio
  • หมวด: เครื่องมือนักพัฒนา
  • ต้องใส่ค่าเหล่านี้: BULWARK_SESSION_TOKEN

ติดตั้ง

เลือกโปรแกรม AI ที่คุณใช้ แล้วคัดลอกค่าตั้งไปวาง

ก่อนติดตั้ง

ค่าที่ติดป้ายความลับคือกุญแจของบัญชีคุณ อย่าส่งให้ใคร และอย่าวางในแชต

ต้องเตรียมก่อน

  • Dockerติดตั้ง Docker ในเครื่อง

คุณใช้แอปไหน

เลือกแอปด้านบน เราจำไว้ให้ ครั้งหน้าปุ่มจะขึ้นว่า “ติดตั้งลง …”

เปิด Claude Desktop → Settings → Developer → Edit Config แล้ววางค่านี้ในไฟล์ claude_desktop_config.json

{
  "mcpServers": {
    "bulwark": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "BULWARK_CONFIG",
        "-e",
        "BULWARK_SESSION_TOKEN",
        "ghcr.io/bpolania/bulwark:v0.2.0",
        "mcp",
        "start"
      ],
      "env": {
        "BULWARK_CONFIG": "ใส่ค่าของคุณ",
        "BULWARK_SESSION_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

พิมพ์คำสั่งนี้ใน Terminal

claude mcp add bulwark --env BULWARK_CONFIG='ใส่ค่าของคุณ' --env BULWARK_SESSION_TOKEN='ใส่ค่าของคุณ' -- docker run -i --rm -e BULWARK_CONFIG -e BULWARK_SESSION_TOKEN ghcr.io/bpolania/bulwark:v0.2.0 mcp start

เติมค่าที่เว้นว่างไว้ก่อนรัน

เปิดใน Cursor

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .cursor/mcp.json ของโปรเจกต์ หรือ ~/.cursor/mcp.json

{
  "mcpServers": {
    "bulwark": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "BULWARK_CONFIG",
        "-e",
        "BULWARK_SESSION_TOKEN",
        "ghcr.io/bpolania/bulwark:v0.2.0",
        "mcp",
        "start"
      ],
      "env": {
        "BULWARK_CONFIG": "ใส่ค่าของคุณ",
        "BULWARK_SESSION_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

เปิดใน VS Code

หรือคัดลอกค่าตั้งเอง

วางในไฟล์ .vscode/mcp.json ของโปรเจกต์

{
  "servers": {
    "bulwark": {
      "type": "stdio",
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "BULWARK_CONFIG",
        "-e",
        "BULWARK_SESSION_TOKEN",
        "ghcr.io/bpolania/bulwark:v0.2.0",
        "mcp",
        "start"
      ],
      "env": {
        "BULWARK_CONFIG": "ใส่ค่าของคุณ",
        "BULWARK_SESSION_TOKEN": "ใส่ค่าของคุณ"
      }
    }
  }
}

เบราว์เซอร์จะถามก่อนเปิดแอป จากนั้นแอปแสดงค่าตั้งให้ตรวจแล้วกดยืนยัน ช่อง key เว้นว่างไว้ให้คุณใส่เอง

ตัวนี้รันในเครื่องคุณ แต่ ChatGPT ต่อได้เฉพาะ server บนอินเทอร์เน็ต ลองเลือกแอปอื่น

ตัวเลือกเก็บในคุกกี้บนเครื่องนี้ ไม่ต้องมีบัญชี

ค่าที่ต้องใส่เอง

  • BULWARK_CONFIG env
    Path to bulwark.yaml configuration file
  • BULWARK_SESSION_TOKEN ความลับ env
    Session token for operator authentication (bwk_sess_...)

ค่าตั้งนี้สร้างจากข้อมูลใน registry ของผู้ทำ ถ้าไม่ตรงกับ README ให้เชื่อ README

ทำอะไรได้บ้าง

รันในเครื่องคุณ รายการเครื่องมือจะขึ้นในแอป AI หลังติดตั้ง

ผลตรวจเบื้องต้นi

เราตรวจจากข้อมูลที่ใครก็เปิดดูได้ ยังไม่ได้อ่านโค้ด ข้อที่ไม่เกี่ยวกับตัวนี้ไม่นับในตัวหาร · ตรวจเมื่อ 8 พ.ย. 2569

  • ✓ ผ่าน

    ตัวตนผู้ทำตรงกับ repo

    ชื่อใน registry ยืนยันด้วยบัญชี GitHub bpolania ซึ่งเป็นเจ้าของ repo

  • … ยังไม่ตรวจ

    ยังมีคนดูแล

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • … ยังไม่ตรวจ

    มีสัญญาอนุญาต (license)

    ยังไม่ได้อ่านข้อมูล repo จาก GitHub

  • – ไม่เกี่ยว

    endpoint ตอบ

    ตัวนี้รันบนเครื่องคุณ ไม่มี endpoint บนอินเทอร์เน็ต

  • – ไม่เกี่ยว

    ล็อกอินแบบ OAuth

    ตัวนี้รันบนเครื่อง ใช้ค่าที่ตั้งในเครื่องแทน

  • … ยังไม่ตรวจ

    คำอธิบายเครื่องมือไม่มีคำสั่งแอบแฝง

    รันในเครื่องคุณ เราอ่านรายการเครื่องมือได้เฉพาะตัวที่มี endpoint บนอินเทอร์เน็ต

เทียบกับตัวอื่นในหมวด เครื่องมือนักพัฒนาi

  • ดาวมากกว่า 0% ของอีก 4919 ตัวในหมวดนี้
  • ส่งรุ่นใหม่เข้า registry ล่าสุดกว่า 5% ของอีก 4919 ตัวในหมวดนี้
  • ผลตรวจเบื้องต้นดีกว่าหรือเท่ากับ 100% ของอีก 4919 ตัวในหมวดนี้

เทียบกับทุก server ที่ยังใช้งานในหมวดนี้ทั้งทะเบียน ดาวนับเฉพาะเมื่อผู้ลงทะเบียนเป็นเจ้าของ repo

คำถามที่พบบ่อย

Bulwark ปลอดภัยไหม?

จากการตรวจเบื้องต้นของเรา ผ่าน 1 จาก 1 ข้อที่ตรวจได้ เรายังไม่ได้อ่านโค้ด ก่อนใส่กุญแจหรือ token ให้ดูว่า server ขอสิทธิ์อะไร และเลือกกุญแจที่ทำได้เท่าที่จำเป็น

ต้องใช้กุญแจหรือรหัสอะไรบ้าง?

ต้องใส่ค่าเหล่านี้: BULWARK_SESSION_TOKEN

ตัวนี้รันบนเครื่องหรือบนคลาวด์?

รันบนเครื่องของคุณ โปรแกรม AI จะเปิด server ขึ้นมาเองเมื่อใช้ ข้อมูลไม่ต้องผ่านเซิร์ฟเวอร์ของผู้ทำ (ยกเว้นตัวที่ไปเรียกบริการออนไลน์ต่อ)

ยังมีคนดูแลอยู่ไหม?

repo บน GitHub มีการแก้โค้ดล่าสุด – และส่งรุ่นล่าสุด (0.2.0) เข้า registry 9 เดือนที่ผ่านมา

ใช้กับโปรแกรมไหนได้บ้าง?

โปรแกรมที่รองรับ MCP เช่น Claude Desktop, Claude Code, Cursor และ VS Code ตัวนี้ต้องมี Docker ในเครื่องด้วย

มีตัวไหนใช้แทนได้บ้าง?

ในหมวดเดียวกันมี GitHub, Desktop Commander, Cloudflare MCP

ตัวที่ใช้แทนได้

server หมวดเดียวกันจากผู้ทำคนอื่น เรียงตามดาว

อ่านการ์ด:★ ดาว GitHubiสามเสา: รีวิว · ผลตรวจ · การใช้งานiอัปเดต = วันที่ส่งรุ่นล่าสุดเข้า registryi

GitHub

โดย github

server ทางการของ GitHub ให้ AI อ่านและจัดการโค้ด issue และ pull request ในบัญชีของคุณได้ ใช้ผ่านคลาวด์ของ GitHub หรือรันในเครื่องด้วย Docker ก็ได้

บนเครื่องหรือคลาวด์★ 34,245MITอัปเดต 4 วันที่ผ่านมา
ติดตั้ง

Desktop Commander

โดย wonderwhy-er

MCP server for terminal commands, file operations, and process management

รันบนเครื่อง★ 10,225MITอัปเดต 17 วันที่ผ่านมา
ติดตั้ง

Cloudflare MCP

โดย cloudflare

Cloudflare MCP servers

รันบนคลาวด์★ 4,446Apache-2.0อัปเดต 14 เดือนที่ผ่านมา
ติดตั้ง

README จากผู้ทำ

เปิดอ่าน README

ส่วนนี้คัดจาก repo ของผู้ทำตามต้นฉบับ PopNx MCP ไม่ได้ตรวจหรือรับรองเนื้อหา ตัด HTML รูปภาพ และสคริปต์ออกแล้ว ลิงก์จะพาออกนอกเว็บ

Bulwark

Open-source governance layer for AI agents.

Bulwark sits between AI agents and external tools, enforcing policies, managing credentials, inspecting content, and maintaining a complete audit trail. One policy governs all your agents — Claude Code, OpenClaw, Codex, or any MCP/HTTP client.

Why Bulwark?

AI agents are powerful but ungoverned. They can access any tool, leak any credential, and leave no audit trail. Bulwark fixes this:

  • Policy enforcement — YAML-based rules control which tools agents can use, with glob patterns, scope-based precedence, and hot-reload
  • Credential management — Agents never see real secrets. Bulwark injects credentials at the last mile, encrypted at rest with age
  • Content inspection — Scan requests and responses for secrets, PII, and prompt injection. Block or redact automatically
  • Audit logging — Every action recorded in a tamper-evident SQLite database with blake3 hash chains
  • Rate limiting — Token-bucket rate limits per session, operator, tool, or globally. Cost tracking with budget enforcement
  • MCP-native — Works as an MCP gateway or HTTP forward proxy. Governance metadata on every tool call response

Install

# Homebrew (macOS / Linux)

brew install bpolania/tap/bulwark

Docker

docker pull ghcr.io/bpolania/bulwark

From source

git clone https://github.com/bpolania/bulwark.git cd bulwark && cargo build --release

Quick Start: Govern Claude Code with GitHub

This walkthrough connects Claude Code to GitHub through Bulwark. Every tool call is policy-evaluated, audited, and credential-injected — in about 5 minutes.

Prerequisites: Claude Code installed, a GitHub personal access token, and Node.js/npm (for the GitHub MCP server).

1. Initialize and verify
bulwark init my-project && cd my-project

bulwark doctor

doctor runs 9 diagnostic checks. All should pass.

2. Store your GitHub token
bulwark cred add github-token --type bearer_token

Prompts for the token — hidden input, encrypted with age at rest

Configure the credential-to-tool binding in your bindings file so Bulwark knows to inject this token for GitHub tool calls.

3. Configure the upstream GitHub server

Edit bulwark.yaml:

mcp_gateway:

upstream_servers:

  • name: github command: "npx" args: ["-y", "@modelcontextprotocol/server-github"] env: GITHUB_PERSONAL_ACCESS_TOKEN: "${GITHUB_TOKEN}"

policy: policies_dir: "./policies" hot_reload: true

audit: enabled: true

inspect: enabled: true inspect_requests: true inspect_responses: true

Make sure GITHUB_TOKEN is set in your shell (export GITHUB_TOKEN=ghp_...).

4. Write a policy
cat > policies/base.yaml << 'EOF'

metadata: name: quickstart-policy scope: global

rules:

  • name: allow-reads description: "Allow all read operations" match: actions: ["read_*", "get_*", "list_*", "search_*"] verdict: allow priority: 10
  • name: allow-github-writes description: "Allow creating issues, comments, PRs" match: tools: ["github__*"] actions: ["create_*", "update_*"] verdict: allow priority: 10
  • name: block-destructive description: "Block all delete and force-push operations" match: actions: ["delete_*", "force_push_*"] verdict: deny priority: 20 message: "Destructive operations are blocked by policy"
  • name: default-deny match: {} verdict: deny priority: -100 message: "No policy explicitly allows this action"

EOF

bulwark policy validate

5. Create a session and connect Claude Code
# Create a session (--ttl is in seconds: 28800 = 8 hours)

bulwark session create --operator $(whoami) --agent-type claude-code --ttl 28800

→ Token: bwk_sess_7f3a...

export BULWARK_SESSION="bwk_sess_7f3a..." # paste your actual token

Register Bulwark as an MCP server in Claude Code

claude mcp add --transport stdio bulwark \ --env BULWARK_SESSION=$BULWARK_SESSION \ -- bulwark mcp start

6. Use Claude Code — now governed

Start Claude Code. GitHub tools appear namespaced as github__list_issues, github__create_issue, etc.

Try it:

"List the open issues in my repo"

Open a second terminal:

bulwark audit tail
22:01:03  github__list_issues   ✓ allow   3ms  (allow-reads)

Every call is logged with the verdict, matched rule, and timing. Now try something destructive:

"Delete issue #1"

22:02:01  github__delete_issue  ✗ deny    <1ms (block-destructive)

Blocked. Sub-millisecond — policy evaluation happens in memory. The agent gets a structured error explaining which rule denied it.

What just happened

Claude Code connected to Bulwark (not directly to GitHub). For every tool call, Bulwark validated the session, scanned for secrets/PII, evaluated the policy, injected the real GitHub token, scanned the response, and recorded a tamper-evident audit event. Same agent experience — full governance underneath.

Going Deeper

Content inspection — 13 built-in patterns scan for AWS keys, GitHub tokens, private keys, PII, and prompt injection. Redaction happens before content reaches the agent.

bulwark inspect rules

bulwark inspect scan --text "my key is [PopNx MCP ตัดค่าที่หน้าตาเหมือนกุญแจออก]"

Policy replay — Preview the impact of policy changes against real audit history before deploying:

bulwark policy test --dir ./new-policies/ --since 1h

Audit forensics — Reconstruct a session timeline and verify the hash chain:

bulwark session inspect <session-id>

bulwark audit verify bulwark audit export --since 24h --format json

HTTP proxy mode — For non-MCP agents, Bulwark runs as a forward proxy with TLS interception:

bulwark proxy start

bulwark ca export # trust the CA in your HTTP client

Architecture

┌─────────────┐     ┌──────────────────────────────────────────────┐     ┌──────────────┐

│ │ │ Bulwark │ │ │ │ AI Agent │────>│ Session > Inspect > Policy > Inject > Proxy │────>│ Upstream │ │ (Claude, │<────│ <── Audit <── Inspect <── Response <─────── │<────│ Tool/API │ │ Codex, │ │ │ │ │ │ custom) │ └──────────────────────────────────────────────┘ └──────────────┘ └─────────────┘

Integration Modes

ModeTransportBest For
MCP Gateway (stdio)stdio/JSON-RPCClaude Code, OpenClaw, any MCP client
MCP Gateway (HTTP)Streamable HTTPRemote agents, MCP registry, multi-agent
HTTP ProxyHTTP/HTTPSCodex, curl, any HTTP client

Example Policy

# policies/base.yaml

metadata: name: my-policy scope: global

rules:

  • name: allow-reads verdict: allow priority: 10 match: actions: ["read*", "get*", "list*"]
  • name: block-destructive-in-prod verdict: deny priority: 100 match: actions: ["delete*", "drop*"] conditions: environments: ["production"]
  • name: default-deny verdict: deny match: {}

See examples/policies/ for complete policy sets (startup, enterprise, development, multi-agent).

CLI

bulwark init <path>              # Scaffold a new project

bulwark proxy start # Start HTTP/HTTPS proxy bulwark mcp start # Start MCP gateway (stdio) bulwark mcp serve # Start MCP gateway (HTTP) bulwark doctor # Diagnose setup issues (9 checks) bulwark status # Health dashboard bulwark policy validate # Validate policy files bulwark policy test --dir # Test policies against audit log bulwark session create|list|revoke|inspect bulwark cred add|list|remove|test bulwark audit search|tail|stats|export|verify bulwark inspect scan|rules # Content inspection bulwark ca export|path # CA certificate management bulwark completions # Shell completions (bash/zsh/fish)

Documentation

  • Getting Started
  • Architecture Overview
  • Policy Reference
  • Configuration Reference
  • Credential Management
  • Audit System
  • Content Inspector
  • Rate Limiting
  • Threat Model
  • Agent Guides: Claude Code | Codex | OpenClaw

Development

git clone https://github.com/bpolania/bulwark.git

cd bulwark cargo build --workspace cargo test --workspace # 487 tests cargo clippy --workspace --all-targets -- -D warnings

Project Structure
crates/

cli/ # CLI binary and commands proxy/ # HTTP/HTTPS forward proxy with TLS MITM mcp/ # MCP governance gateway config/ # Configuration loading and types policy/ # YAML policy engine with hot-reload vault/ # Credential storage and session management audit/ # Tamper-evident audit logging inspect/ # Content inspection (secrets, PII, injection) ratelimit/ # Token-bucket rate limiter and cost tracker common/ # Shared types and error definitions

License

Apache 2.0. See LICENSE.

ถาม PopNx