SatGate
Puerta de enlace API de código abierto que añade control de presupuesto, atribución de costos y monetización a las llamadas API de agentes de IA. Compatible con MCP, con seguimiento de costos por herramienta, tokens portadores basados en macarrones, micropagos Lightning L402 y control de presupuesto empresarial (Fiat402). El cortafuegos económico para la economía de agentes.
Documentación
SatGate
Observa, controla y admite el tráfico de agentes de IA
Cada permiso o denegación viene con un recibo firmado
Por qué • Construir • Características • Inicio rápido • Documentación • Sitio web • Blog
SatGate es una puerta de enlace frente a APIs y herramientas MCP. Mide el tráfico de agentes y MCP (Observa), aplica los presupuestos del propietario antes de que se ejecute el trabajo (Controla), y cobra a agentes externos en las rutas que elijas (Admite; la política de Cargo en el panel de control). Cada permiso o denegación viene con un recibo firmado.
Pruébalo como agente. Esta ruta alojada cuesta 10 sats:
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo
La llamada no pagada devuelve HTTP 402 con una factura Lightning y términos. Las instrucciones para agentes están en llms.txt.
Construye Agentes con SatGate
La primitiva de desarrollo de SatGate son tres llamadas: issue(), pay() y 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)
Instala hoy:
pip install satgate
npm install @satgate/sdk
Los paquetes públicos se instalan hoy; el espacio de nombres de la API issue/pay/verify está en beta privada. Las llamadas sin acceso a la beta privada generan un error estructurado en lugar de devolver recibos falsos:
SatGateAuthError: This API namespace requires private beta access. Visit cloud.satgate.io/docs to request access.
Ejemplos ejecutables:
examples/python/issue_pay_verify.pyexamples/node/issue-pay-verify.mjs
Funciona con: MCP · herramientas de OpenAI · herramientas de Anthropic · LangChain · CrewAI · HTTP sin procesar
☁️ ¿No quieres autoalojar? Prueba SatGate Cloud
SaaS gestionado: cero configuración, aislamiento multiinquilino, panel empresarial.
Nivel Observe gratuito. No se requiere tarjeta de crédito.
El Problema
Los agentes de IA están haciendo llamadas a APIs de forma autónoma. Generan subagentes, llaman a herramientas MCP y trabajan durante la noche mientras duermes.
Tu stack actual responde: "¿Está autenticada esta solicitud?"
Nadie responde: "¿Debería este agente tener autoridad para gastar, delegar o invocar este recurso de pago?"
✓ Network Firewall → "Can this packet enter?"
✓ Application Firewall → "Is this request safe?"
? Economic Firewall → "Should this agent act, spend, or pay?"
Esa es la brecha. SatGate la llena.
¿Qué es SatGate?
SatGate es un Firewall Económico para solicitudes de agentes de IA. Colócalo frente a tus APIs y herramientas MCP para aplicar autoridad con alcance, presupuestos, contexto de vías de pago y recibos de Evidence Pack antes de que los agentes actúen.
No es otra capa de enrutamiento. Las puertas de enlace de enrutamiento (Bifrost, LiteLLM, Portkey) optimizan qué proveedor maneja una llamada. SatGate gobierna si la llamada debería ocurrir en absoluto según autoridad, política, presupuesto y contexto de vías de pago.
Úsalos juntos:
Agent → SatGate (economic governance) → Routing Gateway → LLM Providers
Características
- 🛡️ Tokens de Capacidad (Macaroons) — Credenciales criptográficas con restricciones integradas, delegación y revocación en la siguiente solicitud. No son claves API: son tokens que los agentes pueden subdelegar de forma segura.
- 🎯 Consciente de MCP — Analiza llamadas de herramientas MCP JSON-RPC. Sabe que el Agente X gastó $47 en
search_databasey $12 ensend_email— no solo "1,000 solicitudes". - 💰 Aplicación de Presupuestos — Detenciones estrictas por agente, equipo o API. Cuando el presupuesto llega a cero, las solicitudes se bloquean. No se registran. No se alertan. Se bloquean.
- ⚡ Gobernanza de Vías de Pago — Gobierna el acceso a APIs de pago a través de L402, x402, facturación por clave API y libros mayores empresariales sin convertir ninguna vía en el plano de control.
- 🔒 Denegación por Defecto — Todas las rutas requieren credenciales válidas a menos que sean explícitamente públicas. Zero Trust por diseño.
- 🚀 <50ms de Sobrecarga — Proxy Go ligero. Añade gobernanza sin añadir latencia.
- 📦 Autoalojado — Tu infraestructura, tus reglas. Binario único, Docker o Kubernetes.
- 🔌 Integración Directa — Funciona con cualquier backend HTTP. REST, GraphQL, servidores MCP. Sin cambios de código.
Inicio Rápido
Demo 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
Prueba las tres 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 → De pago. Tres políticas, una puerta de enlace; las vías de pago son contexto gobernado, no el límite del producto.
Demo de pago alojada (Admite; Cargo en el panel de control). Sin nodo Lightning local:
curl -i -H "X-SatGate-Tenant: satgate-demo" https://api.satgate.io/paid/agent-demo
Las llamadas no pagadas devuelven 402. El precio es de 10 sats. Muestra la factura al propietario, consulta el estado del pago y luego reintenta. Las reglas de consulta están en llms.txt.
📖 Guía completa de inicio rápido →
Otros Métodos de Instalación
# 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
Configuración
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íticas
| Política | Descripción | Caso de uso |
|---|---|---|
public | Sin autenticación | Comprobaciones de salud, documentación, webhooks |
capability | Requiere Macaroon válido | Endpoints de API protegidos |
l402 | Requiere pago Lightning y registra el contexto de vías de pago | Endpoints monetizados; el contexto x402/libro mayor se puede conservar en Evidence Packs |
En Qué se Diferencia
| SatGate | Puertas de Enrutamiento | Puertas de API Tradicionales | |
|---|---|---|---|
| Preocupación principal | Gobernanza económica | Enrutamiento de proveedores | Gestión de tráfico |
| Aplicación de presupuestos | Límites estrictos (bloqueados al límite) | Solo alertas suaves | ❌ |
| Atribución de costos MCP | Granularidad por herramienta | ❌ | ❌ |
| Modelo de credenciales | Macaroons (delegables) | Claves API | Claves API / OAuth |
| Delegación de agentes | Subtokens con presupuestos reducidos | ❌ | ❌ |
| Gobernanza de vías de pago | L402, x402, facturación por clave API, libros mayores empresariales | ❌ | ❌ |
| Funciona junto a | — | ✅ Úsalos juntos | ✅ Úsalos juntos |
Arquitectura
┌──────────────────────────────────────────────────┐
│ SatGate │
│ │
│ Request → Route Match → Policy Check → Proxy │
│ │ │
│ ┌──────────────┼──────────────┐ │
│ │ │ │ │
│ [public] [capability] [paid rail] │
│ pass verify token verify │
│ check budget payment │
│ log MCP tool context │
└──────────────────────────────────────────────────┘
Conceptos clave:
- Macaroons: Tokens portadores con restricciones integradas (caducidad, alcance, presupuesto, IP). No son claves API: admiten delegación sin viajes de ida y vuelta al servidor.
- Delegación: El Agente A le da al Agente B un subtoken con permisos reducidos y un límite de presupuesto de $50. B no puede escalar.
- Análisis MCP: SatGate lee cargas útiles MCP JSON-RPC para atribuir costos a llamadas de herramientas específicas, no solo a endpoints HTTP.
- Contexto de vías de pago: SatGate trata L402, x402, facturación por clave API y libros mayores empresariales como vías a gobernar. Los Evidence Packs conservan qué vía estuvo involucrada sin convertir la vía en el producto.
SDKs
| Lenguaje | Paquete | Documentación |
|---|---|---|
| Python | pip install satgate | README |
| JavaScript | npm install @satgate/sdk | README |
Proxy MCP (NUEVO)
SatGate ahora incluye un proxy MCP nativo que gobierna llamadas de herramientas para cualquier agente compatible con MCP:
# Run MCP proxy with 1000-credit budget
satgate-mcp --config satgate-mcp.yaml
- Aplicación de presupuestos: 402 estricto cuando los agentes agotan su asignación
- Delegación: Los agentes padres generan tokens de subagente con presupuestos recortados
- Costos por herramienta:
web_search: 5,dalle_generate: 50(se admiten patrones comodín) - Dos transportes: stdio (sidecar local) o SSE/HTTP (multiagente remoto)
- Tres modos de autenticación: ninguno, token estático, macaroon (cadena HMAC)
Consulta pkg/mcpserver/README.md para la documentación completa.
Documentación
- Descripción de la Arquitectura
- Guía de Inicio Rápido
- Referencia de Configuración
- Lista de Verificación de Producción
- Despliegue en Kubernetes
- Integración con LangChain
- Guía de Puerta de Enlace MCP
☁️ SatGate Cloud y Enterprise
¿El autoalojamiento no es lo tuyo? SatGate Cloud es la versión totalmente gestionada: la misma puerta de enlace, cero operaciones.
La puerta de enlace de código abierto maneja protección, presupuestos y aplicación de vías de pago. SatGate Cloud añade el plano de control:
- 📊 Observa — Paneles en tiempo real, atribución de uso, etiquetado de centros de costos
- 🎚️ Controla — Aplicación de presupuestos y políticas antes de que se ejecuten las solicitudes de agentes
- 🤖 SatGate Mint — Aprovisionamiento de agentes sin intervención (K8s, AWS, OIDC)
- 🏢 Multiinquilino — Aislamiento de equipos, RBAC, SSO/SCIM
- 📝 Auditoría — Registro a prueba de manipulaciones, exportaciones de cumplimiento
Empieza Gratis → (El modo Observe es gratuito, ilimitado, para siempre)
Contribuciones
¡Agradecemos las contribuciones! Consulta CONTRIBUTING.md para las pautas.
git clone https://github.com/satgate-io/satgate.git
cd satgate
go mod download
go test ./...
go build -o satgate ./cmd/satgate
Licencia
Licencia Apache 2.0 — consulta LICENSE para más detalles.
Enlaces
- 🌐 satgate.io — Sitio web
- 📝 Blog — Artículos técnicos
- 🏢 Gobernanza Empresarial — Casos de uso para CISO/CFO/CTO
- 💰 Precios — Nivel Observe gratuito, Pro para aplicación
- 🔒 Modelo de Seguridad — Arquitectura y cumplimiento
- 🧪 Sandbox — Pruébalo sin registrarte
- 📊 Calculadora de ROI — Estima ahorros
- ⚖️ Comparar — SatGate vs Zuplo, Bifrost, nativo de la nube
- 📧 contact@satgate.io
Construido con ⚡ por SatGate — El Firewall Económico