SatGate

Gateway de API open-source que adiciona controle de orçamento, atribuição de custos e monetização a chamadas de API de agentes de IA. Compatível com MCP, com rastreamento de custos por ferramenta, tokens bearer baseados em macaroon, micropagamentos Lightning L402 e controle de orçamento empresarial (Fiat402). O firewall econômico para a economia de agentes.

Documentação

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

Por quê • Construir • Recursos • Início Rápido • Documentação • Site • Blog


SatGate é um gateway na frente de APIs e ferramentas MCP. Ele mede o tráfego de agentes e MCP (Observe), aplica orçamentos do proprietário antes de o trabalho ser executado (Control) e cobra agentes externos nas rotas que você escolher (Admit; a política Charge no painel). Cada permissão ou negação vem com um recibo assinado.

Experimente como um agente. Esta rota hospedada custa 10 sats:

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

A chamada não paga retorna HTTP 402 com uma fatura Lightning e termos. As instruções para agentes estão em llms.txt.

Construa Agentes com SatGate

A primitiva de desenvolvimento do SatGate são três chamadas: issue(), pay() e verify().

import os
from 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)

Instale hoje:

pip install satgate
npm install @satgate/sdk

Os pacotes públicos são instalados hoje; o namespace da API issue/pay/verify está em beta privado. Chamadas sem acesso ao beta privado geram um erro estruturado em vez de retornar recibos falsos:

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

Exemplos executáveis:

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

Funciona com: MCP · ferramentas OpenAI · ferramentas Anthropic · LangChain · CrewAI · HTTP bruto


🎬 Veja o SatGate em Ação

Watch Explainer  Watch Delegation


☁️ Não quer auto-hospedar? Experimente o SatGate Cloud

SaaS gerenciado — zero configuração, isolamento multi-tenant, painel empresarial.
Camada Observe gratuita. Sem necessidade de cartão de crédito.

Try SatGate Cloud


O Problema

Agentes de IA estão fazendo chamadas de API de forma autônoma. Eles geram subagentes, chamam ferramentas MCP e executam durante a noite enquanto você dorme.

Sua pilha atual responde: "Esta solicitação está autenticada?"

Ninguém responde: "Este agente deveria ter autoridade para gastar, delegar ou invocar este recurso pago?"

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

Essa é a lacuna. O SatGate a preenche.

O que é o SatGate?

O SatGate é um Firewall Econômico para solicitações de agentes de IA. Coloque-o na frente de suas APIs e ferramentas MCP para aplicar autoridade com escopo, orçamentos, contexto de trilhos pagos e recibos de Evidence Pack antes de os agentes agirem.

Não é outra camada de roteamento. Gateways de roteamento (Bifrost, LiteLLM, Portkey) otimizam qual provedor lida com uma chamada. O SatGate governa se a chamada deve acontecer com base em autoridade, política, orçamento e contexto de trilhos pagos.

Use-os juntos:

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

Recursos

  • 🛡️ Capability Tokens (Macaroons) — Credenciais criptográficas com caveats integrados, delegação e revogação na próxima solicitação. Não são chaves de API — são tokens que os agentes podem subdelegar com segurança.
  • 🎯 Ciente de MCP — Analisa chamadas de ferramentas MCP JSON-RPC. Saiba que o Agente X gastou $47 em search_database e $12 em send_email — não apenas "1.000 solicitações".
  • 💰 Aplicação de Orçamento — Paradas rígidas por agente, equipe ou API. Quando o orçamento chega a zero, as solicitações são bloqueadas. Não registradas. Não alertadas. Bloqueadas.
  • ⚡ Governança de Trilhos Pagos — Governa o acesso pago a APIs em L402, x402, cobrança por chave de API e ledgers empresariais sem tornar nenhum trilho o plano de controle.
  • 🔒 Negação por Padrão — Todas as rotas exigem credenciais válidas, a menos que sejam explicitamente públicas. Zero Trust por design.
  • 🚀 <50ms de Sobrecarga — Proxy Go leve. Adiciona governança sem adicionar latência.
  • 📦 Auto-Hospedado — Sua infraestrutura, suas regras. Binário único, Docker ou Kubernetes.
  • 🔌 Plug-and-Play — Funciona com qualquer backend HTTP. REST, GraphQL, servidores MCP. Sem alterações de código.

Início Rápido

Demonstração de 60 Segundos

# Download the binary (macOS Apple Silicon — see Releases for other platforms)
curl -L https://github.com/satgate-io/satgate/releases/latest/download/satgate-darwin-arm64 -o satgate
chmod +x satgate

# Start with example config (mock Lightning, auto-generated keys)
export ADMIN_TOKEN=my-secret-token
export LIGHTNING_BACKEND=mock
./satgate --config examples/gateway.yaml

Experimente as três políticas:

# 1. Public — no auth needed
curl http://localhost:8080/health

# 2. Protected — mint a capability token, then use it
curl -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

Pública → Protegida → Paga. Três políticas, um gateway; trilhos pagos são contexto governado, não o limite do produto.

Demonstração paga hospedada (Admit; Charge no painel). Sem nó Lightning local:

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

Chamadas não pagas retornam 402. O preço é de 10 sats. Mostre a fatura ao proprietário, consulte o status do pagamento e tente novamente. As regras de consulta estão em llms.txt.

📖 Guia Completo de Início Rápido →

Outros Métodos de Instalação

# Docker
docker run -v $(pwd)/gateway.yaml:/etc/satgate/gateway.yaml \
  -e ADMIN_TOKEN=my-secret-token -e LIGHTNING_BACKEND=mock \
  -p 8080:8080 ghcr.io/satgate-io/satgate:latest

# Build from source
git clone https://github.com/satgate-io/satgate.git
cd satgate && go build -o satgate ./cmd/satgate

Configuração

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

Tipos de Política

PolíticaDescriçãoCaso de Uso
publicSem autenticaçãoVerificações de saúde, documentação, webhooks
capabilityExige Macaroon válidoEndpoints de API protegidos
l402Exige pagamento Lightning e registra contexto de trilho pagoEndpoints monetizados; o contexto x402/ledger pode ser preservado em Evidence Packs

Como É Diferente

SatGateGateways de RoteamentoGateways de API Tradicionais
Preocupação principalGovernança econômicaRoteamento de provedorGerenciamento de tráfego
Aplicação de orçamentoLimites rígidos (bloqueados no limite)Apenas alertas suaves❌
Atribuição de custo MCPGranularidade por ferramenta❌❌
Modelo de credencialMacaroons (delegáveis)Chaves de APIChaves de API / OAuth
Delegação de agenteSubtokens com orçamentos reduzidos❌❌
Governança de trilhos pagosL402, x402, cobrança por chave de API, ledgers empresariais❌❌
Funciona em conjunto—✅ Use junto✅ Use junto

Arquitetura

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

Conceitos-chave:

  • Macaroons: Tokens portadores com caveats incorporados (expiração, escopo, orçamento, IP). Não são chaves de API — eles suportam delegação sem idas e voltas ao servidor.
  • Delegação: O Agente A dá ao Agente B um subtoken com permissões reduzidas e um limite de orçamento de $50. B não pode escalar.
  • Análise MCP: O SatGate lê payloads MCP JSON-RPC para atribuir custos a chamadas de ferramentas específicas, não apenas a endpoints HTTP.
  • Contexto de trilho pago: O SatGate trata L402, x402, cobrança por chave de API e ledgers empresariais como trilhos a serem governados. Os Evidence Packs preservam qual trilho foi envolvido sem tornar o trilho o produto.

SDKs

LinguagemPacoteDocumentação
Pythonpip install satgateREADME
JavaScriptnpm install @satgate/sdkREADME

Proxy MCP (NOVO)

O SatGate agora inclui um proxy MCP nativo que governa chamadas de ferramentas para qualquer agente compatível com MCP:

# Run MCP proxy with 1000-credit budget
satgate-mcp --config satgate-mcp.yaml
  • Aplicação de orçamento: 402 rígido quando os agentes esgotam sua alocação
  • Delegação: Agentes pais criam tokens de subagente com orçamentos definidos
  • Custos por ferramenta: web_search: 5, dalle_generate: 50 (padrões curinga suportados)
  • Dois transportes: stdio (sidecar local) ou SSE/HTTP (multiagente remoto)
  • Três modos de autenticação: nenhum, token estático, macaroon (cadeia HMAC)

Consulte pkg/mcpserver/README.md para documentação completa.

Documentação

☁️ SatGate Cloud e Enterprise

Auto-hospedagem não é para você? SatGate Cloud é a versão totalmente gerenciada — mesmo gateway, zero operações.

O gateway de código aberto lida com proteção, orçamentos e aplicação de trilhos pagos. O SatGate Cloud adiciona o plano de controle:

  • 📊 Observe — Painéis em tempo real, atribuição de uso, etiquetagem de centros de custo
  • 🎚️ Control — Aplicação de orçamento e política antes de as solicitações de agentes serem executadas
  • 🤖 SatGate Mint — Provisionamento de agentes sem toque (K8s, AWS, OIDC)
  • 🏢 Multi-tenant — Isolamento de equipe, RBAC, SSO/SCIM
  • 📝 Auditoria — Registro à prova de adulteração, exportações de conformidade

Comece Grátis → (o modo Observe é gratuito, ilimitado, para sempre)

Contribuindo

Aceitamos contribuições! Consulte CONTRIBUTING.md para diretrizes.

git clone https://github.com/satgate-io/satgate.git
cd satgate
go mod download
go test ./...
go build -o satgate ./cmd/satgate

Licença

Apache License 2.0 — consulte LICENSE para detalhes.

Links


Construído com ⚡ por SatGate — O Firewall Econômico