SatGate – Economic Firewall for AI Agents

io.github.SatGate-io由 GitHub 帳號 SatGate-io 發布v0.5.0更新於 Oct 24, 2026

Budget, payment and audit controls for AI agent API calls and MCP tool calls.

已驗證SSE可網頁執行金融開發者工具安全與監控

概覽

AI 產生的概覽

SatGate 為 AI 代理的 API 與 MCP 工具呼叫提供預算、付款政策,以及每次允許或拒絕的簽章回執。

可以做什麼
SatGate 是部署在 API 與 MCP 工具前面的閘道。它計量代理與 MCP 流量,在工作執行前落實擁有者預算,並可對指定路由的外部代理收費,每次允許或拒絕都會產生簽章回執。它會解析 MCP JSON-RPC 工具呼叫,依工具歸屬成本,並支援可委派、可縮減預算的 macaroon 能力權杖。路由可採用 public、capability 或付費通道政策。
適用情境
當自主代理呼叫付費 API 或 MCP 工具,而你需要硬性預算上限、依工具歸屬成本或子代理權限委派時適用。適合想在路由閘道之外再加一層經濟治理的團隊。
執行需求
可使用託管的遠端端點,或本機 npm 橋接套件(stdio)。驗證採用 OAuth;遠端連線需要 SATGATE_URL 與 Authorization 標頭中的 bearer 權杖,本機橋接需要 SATGATE_TOKEN 環境變數。權杖在 SatGate Cloud 中簽發。issue/pay/verify SDK 介面目前處於私有測試階段。
安裝前請注意
此伺服器涉及憑證:SATGATE_TOKEN 與 Authorization bearer 權杖屬於機密,應限定權限並定期輪換。預算達到上限會直接攔截請求,設定不當可能中斷代理工作。付費路由涉及真實的 Lightning 付款(例如示範中為 10 sats),付款流程應由擁有者確認。使用託管路由時,流量與成本資料會傳送至 SatGate Cloud。

安裝

在 SourceWeft 中

  1. 開啟 儀表板中的 SatGate – Economic Firewall for AI Agents,將其新增到工作區。
  2. 連接 所需的 憑證。它們會被私密儲存,絕不會在公開頁面上展示。
  3. 為需要使用其工具的對話啟用該服務。

Web executable,透過 SSE。 遠端服務在工作區中設定後即可從網頁執行環境執行。

交給代理程式安裝

把這段提示詞貼上到 Claude Code、Codex、Cursor 等代理程式,或 SourceWeft 對話中。代理程式會讀取該伺服器的安裝指南,先向你展示發布者、端點和登入方式,經你同意後再把它新增到你的客戶端。金鑰不會寫進任何命令。

閱讀 https://sourceweft.com/mcp/io.github.SatGate-io%2Fsatgate/install.md,並按其中說明把這個 MCP 伺服器接入我的客戶端。修改任何設定之前,先告訴我它的發布者、端點和登入方式,等我確認。不要把 API 金鑰寫進命令或我會提交的檔案;問我金鑰應從哪裡取得。

檢視代理程式所依據的安裝指南

其他 MCP 客戶端

把它新增到你客戶端的 mcpServers 設定中。 客戶端會在首次連接時完成 OAuth 登入。

{
  "mcpServers": {
    "satgate-economic-firewall-for-ai-agents": {
      "type": "sse",
      "url": "https://satgate-mcp-saas.fly.dev/sse"
    }
  }
}

README

[SatGate]

SatGate

Observe, control and admit AI agent traffic
Every allow or deny comes with a signed receipt

[CI Status] [Go Report Card] [Go Reference] [License]

Why • Build • Features • Quick Start • Docs • Website • Blog


SatGate is a gateway in front of APIs and MCP tools. It meters agent and MCP traffic (Observe), enforces owner budgets before work runs (Control), and charges external agents on the routes you choose (Admit; the Charge policy in the dashboard). Every allow or deny comes with a signed receipt.

Try it as an agent. This hosted route returns HTTP 402 with a Lightning invoice and a macaroon. The price is 10 sats, and one payment buys access until the credential_expires_at time in that response, not just one request:

bash
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo

Agent instructions are in llms.txt.

Build Agents with SatGate

SatGate's developer primitive is three calls: issue(), pay(), and verify().

python
import osfrom satgate import SatGate
satgate = SatGate(api_key=os.getenv("SATGATE_API_KEY"))
capability = satgate.issue(    task="research market prices",    agent="research-agent",    allow=["mcp:web.search", "api:prices.read"],    budget_usd=25,    expires_in="1h",)
receipt = satgate.pay(    upstream="https://api.example.com/search",    capability=capability,    max_usd=4.20,)
verified = satgate.verify(receipt)print(verified.decision, verified.evidence_pack_id)

Install today:

bash
pip install satgatenpm install @satgate/sdk

The public packages install today; the issue/pay/verify API namespace is in private beta. Calls without private-beta access raise a structured error instead of returning fake receipts:

text
SatGateAuthError: This API namespace requires private beta access. Visit cloud.satgate.io/docs to request access.

Runnable examples:

  • examples/python/issue_pay_verify.py
  • examples/node/issue-pay-verify.mjs

Works with: MCP · OpenAI tools · Anthropic tools · LangChain · CrewAI · Raw HTTP


🎬 See SatGate in Action

[Watch Explainer]  [Watch Delegation]


☁️ Don't want to self-host? Try SatGate Cloud

Managed SaaS — zero setup, multi-tenant isolation, enterprise dashboard.
Free Observe tier. No credit card required.

[Try SatGate Cloud]


The Problem

AI agents are making API calls autonomously. They spawn sub-agents, call MCP tools, and run overnight while you sleep.

Your existing stack answers: "Is this request authenticated?"

Nobody answers: "Should this agent have authority to spend, delegate, or invoke this paid resource?"

✓ Network Firewall    → "Can this packet enter?"✓ Application Firewall → "Is this request safe?"? Economic Firewall    → "Should this agent act, spend, or pay?"

That's the gap. SatGate fills it.

What is SatGate?

SatGate is an Economic Firewall for AI agent requests. Drop it in front of your APIs and MCP tools to enforce scoped authority, budgets, paid-rail context, and Evidence Pack receipts before agents act.

Not another routing layer. Routing gateways (Bifrost, LiteLLM, Portkey) optimize which provider handles a call. SatGate governs whether the call should happen at all based on authority, policy, budget, and paid-rail context.

Use them together:

Agent → SatGate (economic governance) → Routing Gateway → LLM Providers

Features

  • 🛡️ Capability Tokens (Macaroons) — Cryptographic credentials with built-in caveats, delegation, and next-request revocation. Not API keys — tokens that agents can safely sub-delegate.
  • 🎯 MCP-Aware — Parses MCP JSON-RPC tool calls. Know that Agent X spent $47 on search_database and $12 on send_email — not just "1,000 requests."
  • 💰 Budget Enforcement — Hard stops per agent, team, or API. When the budget hits zero, requests are blocked. Not logged. Not alerted. Blocked.
  • ⚡ Paid-Rail Governance — Govern paid API access across L402, x402, API-key billing, and enterprise ledgers without making any one rail the control plane.
  • 🔒 Default-Deny — All routes require valid credentials unless explicitly public. Zero Trust by design.
  • 🚀 <50ms Overhead — Lightweight Go proxy. Adds governance without adding latency.
  • 📦 Self-Hosted — Your infrastructure, your rules. Single binary, Docker, or Kubernetes.
  • 🔌 Drop-in — Works with any HTTP backend. REST, GraphQL, MCP servers. No code changes.

Quick Start

60-Second Demo

bash
# Run from a clone. The example config is examples/gateway.yaml in this repo.# macOS Apple Silicon. Other v0.5.2 assets: satgate-darwin-amd64, satgate-linux-amd64,# satgate-linux-arm64, satgate-windows-amd64.exegit clone https://github.com/SatGate-io/satgate.gitcd satgatecurl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgatechmod +x satgate
# Mock Lightning. Demo mode prints:# SECURITY WARNING: Using ephemeral root key. Set CAPABILITY_ROOT_KEY for production use.# That warning is expected. Tokens do not persist across restarts.export ADMIN_TOKEN=my-secret-tokenexport LIGHTNING_BACKEND=mock./satgate --config examples/gateway.yaml

Try the three policies:

bash
# 1. Public — no auth neededcurl http://localhost:8080/health
# 2. Protected — mint a capability token, then use itcurl -X POST http://localhost:8080/api/capability/mint \  -H "X-Admin-Token: my-secret-token" \  -H "Content-Type: application/json" \  -d '{"scope": "api:read", "duration": "1h"}'
# Use the token:curl -H "Authorization: Bearer YOUR_CAPABILITY_TOKEN" \  http://localhost:8080/api/capability/ping
# 3. Paid — get a payment challenge (L402 today; x402/other rails as governed context)curl http://localhost:8080/api/micro

Public → Protected → Paid. Three policies, one gateway; paid rails are governed context, not the product boundary.

Hosted paid demo (Admit; Charge in the dashboard). No local Lightning node:

bash
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo

Unpaid calls return 402 with a Lightning invoice and a macaroon. The price is 10 sats, and one payment buys access until the credential_expires_at time in that response, not just one request. For Lightning, show the invoice to the owner, poll payment status, then retry. Poll rules are in llms.txt.

📖 Full Quick Start Guide →

Other Install Methods

bash
# Release binary. ghcr.io/satgate-io/satgate:latest is private; anonymous pulls get 401.# Assets: satgate-darwin-arm64, satgate-darwin-amd64, satgate-linux-amd64,# satgate-linux-arm64, satgate-windows-amd64.execurl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgatechmod +x satgate
# Build from sourcegit clone https://github.com/SatGate-io/satgate.gitcd satgate && go build -o satgate ./cmd/satgate

Configuration

yaml
version: 1
server:  listen: ":8080"
admin:  capabilityRootKey: "${CAPABILITY_ROOT_KEY}"
lightning:  provider: "${LIGHTNING_BACKEND}"  config:    connectionString: "${NWC_CONNECTION_STRING}"
upstreams:  api:    url: "http://localhost:3000"
routes:  - name: public-health    match:      pathPrefix: /health    upstream: api    policy:      kind: public
  - name: protected-api    match:      pathPrefix: /api/    upstream: api    policy:      kind: capability      scope: "api:read"
  - name: premium-api    match:      pathPrefix: /premium/    upstream: api    policy:      kind: l402  # paid-rail policy; use payment_context to preserve L402/x402/ledger evidence      priceSats: 100

Policy Types

PolicyDescriptionUse Case
publicNo authenticationHealth checks, docs, webhooks
capabilityRequires valid MacaroonProtected API endpoints
l402Requires Lightning payment and records paid-rail contextMonetized endpoints; x402/ledger context can be preserved in Evidence Packs

How It's Different

SatGateRouting GatewaysTraditional API Gateways
Primary concernEconomic governanceProvider routingTraffic management
Budget enforcementHard caps (blocked at limit)Soft alerts only❌
MCP cost attributionPer-tool granularity❌❌
Credential modelMacaroons (delegatable)API keysAPI keys / OAuth
Agent delegationSub-tokens with reduced budgets❌❌
Paid-rail governanceL402, x402, API-key billing, enterprise ledgers❌❌
Works alongside—✅ Use together✅ Use together

Architecture

┌──────────────────────────────────────────────────┐│                    SatGate                        ││                                                   ││  Request → Route Match → Policy Check → Proxy    ││                             │                     ││              ┌──────────────┼──────────────┐     ││              │              │              │      ││          [public]    [capability]   [paid rail]  ││          pass        verify token     verify     ││                      check budget     payment    ││                      log MCP tool     context    │└──────────────────────────────────────────────────┘

Key Concepts:

  • Macaroons: Bearer tokens with embedded caveats (expiry, scope, budget, IP). Not API keys — they support delegation without server roundtrips.
  • Delegation: Agent A gives Agent B a sub-token with reduced permissions and a $50 budget cap. B can't escalate.
  • MCP Parsing: SatGate reads MCP JSON-RPC payloads to attribute costs to specific tool calls, not just HTTP endpoints.
  • Paid-rail context: SatGate treats L402, x402, API-key billing, and enterprise ledgers as rails to govern around. Evidence Packs preserve which rail was involved without making the rail the product.

SDKs

LanguagePackageDocs
Pythonpip install satgateREADME
JavaScriptnpm install @satgate/sdkREADME

MCP Proxy (NEW)

SatGate now includes a native MCP proxy that governs tool calls for any MCP-compatible agent:

bash
# Run MCP proxy with 1000-credit budgetsatgate-mcp --config satgate-mcp.yaml
  • Budget enforcement: Hard 402 when agents exhaust their allocation
  • Delegation: Parent agents mint sub-agent tokens with carved budgets
  • Per-tool costs: web_search: 5, dalle_generate: 50 (wildcard patterns supported)
  • Two transports: stdio (local sidecar) or SSE/HTTP (remote multi-agent)
  • Three auth modes: none, static token, macaroon (HMAC chain)

See pkg/mcpserver/README.md for full documentation.

Documentation

☁️ SatGate Cloud & Enterprise

Self-hosting not your thing? SatGate Cloud is the fully managed version — same gateway, zero ops.

The open-source gateway handles protection, budgets, and paid-rail enforcement. SatGate Cloud adds the control plane:

  • 📊 Observe — Real-time dashboards, usage attribution, cost center tagging
  • 🎚️ Control — Budget and policy enforcement before agent requests execute
  • 🤖 SatGate Mint — Zero-touch agent provisioning (K8s, AWS, OIDC)
  • 🏢 Multi-tenant — Team isolation, RBAC, SSO/SCIM
  • 📝 Audit — Tamper-evident logging, compliance exports

Start Free → (Observe is free, up to a fair-use cap)

Contributing

We welcome contributions! See CONTRIBUTING.md for guidelines.

bash
git clone https://github.com/satgate-io/satgate.gitcd satgatego mod downloadgo test ./...go build -o satgate ./cmd/satgate

License

Apache License 2.0 — see LICENSE for details.

Links


Built with ⚡ by SatGate — The Economic Firewall

來源:README.md,提交 9c94681

工具

0
該伺服器需要登入,因此 SourceWeft 無法在沒有帳號的情況下讀取其工具,也未收錄。已連接帳號所能看到的內容可能因帳號及其權限而異。

版本歷史

1
  1. v0.5.0最新Sep 29, 2026

評分

已滿足適用檢查項的 85%

該評分衡量此收錄條目的完整程度,依據註冊中心條目、端點與公開來源計算得出。它不是對伺服器本身的評價,也不表示伺服器安全或目前可用:可連通性是帶日期的檢查結果,評分也不包含安裝量或使用者評價。

  • 近 30 天內可連通必需25 分
  • 已宣告認證方式必需10 分
  • 已列出工具15 分

    請讓伺服器在無憑證時回應 tools/list,或發布可在沙箱中無憑證啟動的軟體包。

  • 描述必需15 分
  • 圖示10 分
  • 文件15 分
  • 授權條款10 分