Prototype · Preview: every server in the official registry, synced every 30 minutes. Reviews and accounts come in a later step.
PopNx MCPMCP servers for people who use AI · explained in plain words

SatGate – Economic Firewall for AI Agents

by SatGate-ioversion 0.5.0i★ –iComputer or cloud
Registry nameio.github.SatGate-io/satgate

Install

Overview

Description from the maker (original English)

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

PopNx MCP’s three pillars

These three are never merged into one score: opinions, measurements and popularity are different things.

What you can do with it

We have not written a plain-language summary for this one yet. Below are the facts we read from the registry.

  • Connection: Computer or cloud
  • Transport: stdio, SSE
  • Category: Online shops & payments
  • You need to fill in: SATGATE_URL, SATGATE_TOKEN, Authorization

Install

Pick the AI app you use, then copy the settings.

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on the maker’s server: what you ask it goes through their server.
  • You fill in yourself: SATGATE_URL, SATGATE_TOKEN, Authorization

Values marked secret are keys to your account. Never share them or paste them into a chat.

You need

  • Runs in the cloudNothing to install; it connects over the internet
  • npmNode.js installed (for the npx command)

Which app do you use?

Pick your app above. We remember it, so next time the button says “Install in …”.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Or run it on your computer

Open Claude Desktop → Settings → Developer → Edit Config, and paste this into claude_desktop_config.json

{
  "mcpServers": {
    "satgate": {
      "command": "npx",
      "args": [
        "-y",
        "satgate-mcp-bridge"
      ],
      "env": {
        "SATGATE_URL": "your-value",
        "SATGATE_TOKEN": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add --transport sse satgate https://satgate-mcp-saas.fly.dev/sse --header 'Authorization: your-value'

Or run it on your computer

claude mcp add satgate --env SATGATE_URL=your-value --env SATGATE_TOKEN=your-value -- npx -y satgate-mcp-bridge

Fill in the empty values before running it.

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "satgate": {
      "url": "https://satgate-mcp-saas.fly.dev/sse",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in Cursor

Or copy the settings yourself

Paste into .cursor/mcp.json in your project, or ~/.cursor/mcp.json

{
  "mcpServers": {
    "satgate": {
      "command": "npx",
      "args": [
        "-y",
        "satgate-mcp-bridge"
      ],
      "env": {
        "SATGATE_URL": "your-value",
        "SATGATE_TOKEN": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "satgate": {
      "type": "sse",
      "url": "https://satgate-mcp-saas.fly.dev/sse",
      "headers": {
        "Authorization": "your-value"
      }
    }
  }
}

Or run it on your computer

Open in VS Code

Or copy the settings yourself

Paste into .vscode/mcp.json in your project

{
  "servers": {
    "satgate": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "satgate-mcp-bridge"
      ],
      "env": {
        "SATGATE_URL": "your-value",
        "SATGATE_TOKEN": "your-value"
      }
    }
  }
}

Your browser asks to open the app, then the app shows the settings and asks you to confirm. Key values are left empty for you to fill in.

This address needs a key in a request header, which the add-connector menu cannot set. Use Claude Code, Cursor or VS Code instead.

Your choice stays on this device in a cookie; no account needed.

Values you fill in

  • SATGATE_URL required env
    SatGate Cloud MCP URL
  • SATGATE_TOKEN secret required env
    Agent token minted in SatGate Cloud (MCP Setup)
  • Authorization secret required HTTP header
    Bearer token minted in SatGate Cloud (MCP Setup)

These settings are generated from the maker’s registry entry. If the README says otherwise, follow the README.

What it can do

We have not read this server’s tool list yet; we check endpoints in rotation.

Basic checksi

We check information anyone can see; we have not read the code. Checks that do not apply are left out of the count. · Checked Nov 7, 2026

  • ✓ Pass

    Maker matches the repo

    The registry name was verified with the GitHub account SatGate-io, which owns the repo

  • … Not checked yet

    Still maintained

    We have not read this repo from GitHub yet

  • … Not checked yet

    Has a licence

    We have not read this repo from GitHub yet

  • … Not checked yet

    Endpoint responds

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    Sign-in with OAuth

    Not checked yet; we check endpoints in rotation

  • … Not checked yet

    No hidden instructions in tool descriptions

    Not checked yet; we read the tool list when we check the endpoint

Compared with others in Online shops & paymentsi

  • More stars than 0% of the other 1748 servers in this category
  • Published to the registry more recently than 47% of the other 1748 servers in this category
  • Basic checks equal to or better than 100% of the other 1748 servers in this category

Compared with every active server in this category in the registry. Stars count only when the publisher owns the repo.

Common questions

Is SatGate – Economic Firewall for AI Agents safe?

It passed 1 of 1 applicable basic checks. We have not read the code. Before adding a key or token, see what access the server asks for and use a key with only the permissions you need.

What keys or codes does it need?

You need to fill in: SATGATE_URL, SATGATE_TOKEN, Authorization

Does it run on my computer or in the cloud?

Either way works: install it on your computer or connect to the cloud version.

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.5.0) reached the registry 39 days ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. It connects by URL, so apps that accept remote MCP servers work too, such as ChatGPT in developer mode.

What can I use instead?

In the same category: Spree Commerce: open-source B2B and marketplace ecommerce, Stripe MCP, MCP Cn Commerce

Alternatives

Servers in the same category from other makers, sorted by stars.

Reading a card:★ GitHub starsiThree pillars: reviews · checks · usageiUpdated = latest version published to the registryi

Stripe MCP

by stripe

Stripe’s official server lets AI view and manage customers, products, payments and invoices. Connect to Stripe’s cloud and sign in with OAuth.

Runs in the cloud★ 2,043MITUpdated 12 months ago
Install

MCP Cn Commerce

by TonyWang-hub

8 read-only MCP platform entries; support is operation-specific; merchant live acceptance pending

Runs on your computer★ 96MITUpdated 27 days ago
Install

README from the maker

Open the README

Copied from the maker’s repo as written. PopNx MCP has not reviewed or endorsed it. HTML, images and scripts are removed. Links lead off this site.

SatGate

Observe, control and admit AI agent traffic

Every allow or deny comes with a signed receipt

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:

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().

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)

Install today:

pip install satgate

npm 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:

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


☁️ 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.


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
# 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.exe

git clone https://github.com/SatGate-io/satgate.git cd satgate curl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgate chmod +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-token export LIGHTNING_BACKEND=mock ./satgate --config examples/gateway.yaml

Try the three policies:

# 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

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:

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 →](docs/getting-started/quickstart.md)

Other Install Methods
# 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.exe

curl -L https://github.com/SatGate-io/satgate/releases/download/v0.5.2/satgate-darwin-arm64 -o satgate chmod +x satgate

Build from source

git clone https://github.com/SatGate-io/satgate.git cd satgate && go build -o satgate ./cmd/satgate

Configuration

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:

# Run MCP proxy with 1000-credit budget

satgate-mcp --config satgate-mcp.yaml

  • Budget enforcement:

Only the beginning is shown; read the rest in the repo

Ask PopNx