About satgate-proxy
satgate-proxy is an MCP server published by git+SatGate-io in the Developer Tools category: budget-enforced MCP proxy — hard-cap your AI agent tool spend.
The repository has 2 stars and 0 forks, with the last commit 8 months ago. Six months or more without a commit doesn't mean the server is broken, but check the open issues before depending on it in production.
Install
npx satgate-proxyclaude mcp add satgate-proxy -- npx -y satgate-proxynpx -y satgate-proxyThis server has no ConduID identity, so agent calls to it are not receipted. Pin the version you install and review the source before granting it credentials.
Ask AI
Ask AI about satgate-proxy
Powered by Claude · Grounded in docs
Security checks
- ✓README presentThe repository ships documentation.
- !Scoped permissionsDoesn't declare a permission scope. Assume it can do anything its process can.
4 checks have not been run yet.
README
satgate-proxy
Budget-enforced MCP proxy — hard-cap your AI agent tool spend.
MCP servers are an open tap. Every tools/call costs money and there's no built-in spending limit. satgate-proxy sits between your MCP client (Claude Desktop, Cursor) and the server, enforcing a hard budget cap.
Zero dependencies. Node.js built-ins only. npx and go.
Quick Start — Local Mode (New in v0.3.0)
No server, no API key, no account. Budget enforced in-process:
npx satgate-proxy --local --budget 5.00 \
--server @modelcontextprotocol/server-google-search
Or with a config file:
# satgate.yaml
server: @modelcontextprotocol/server-google-search
budget: 5.00
mcp_pricing:
web_search: 5
dalle_generate: 50
'*': 1
npx satgate-proxy --local --config satgate.yaml
Claude Desktop config (local mode):
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": [
"satgate-proxy",
"--local", "--budget", "5.00",
"--server", "@modelcontextprotocol/server-google-search"
]
}
}
}
No env vars needed. No accounts. Just a budget cap.
SaaS Mode (Teams & Enterprise)
For server-side enforcement with L402 macaroons:
{
"mcpServers": {
"google-search": {
"command": "npx",
"args": [
"satgate-proxy",
"--cap", "5.00",
"--server", "@modelcontextprotocol/server-google-search"
],
"env": {
"SATGATE_API_KEY": "your_macaroon_here"
}
}
}
}
Get your API key at cloud.satgate.io.
How It Works
Local Mode
┌──────────────┐ stdio ┌────────────────┐ stdio ┌──────────────┐
│ Claude │ ──── JSON-RPC ──▶ satgate-proxy │ ──── JSON-RPC ──▶ MCP Server │
│ Desktop │ ◀── JSON-RPC ── │ (budget gate) │ ◀── JSON-RPC ── │ (child proc) │
│ / Cursor │ └────────────────┘ └──────────────┘
└──────────────┘ ↑ intercepts tools/call
↑ deducts from budget
↑ blocks when exhausted
The proxy spawns your MCP server as a child process, intercepts every tools/call, deducts from your budget based on per-tool pricing, and blocks calls when the budget is exhausted.
SaaS Mode
┌──────────────┐ stdio ┌────────────────┐ SSE/HTTP ┌──────────────┐
│ Claude │ ──── JSON-RPC ──▶ satgate-proxy │ ──── JSON-RPC ──▶ SatGate │
│ Desktop │ ◀── JSON-RPC ── │ (this package) │ ◀── JSON-RPC ── │ MCP Proxy │
│ / Cursor │ └────────────────┘ │ + Budget │
└──────────────┘ │ Enforcement │
└──────┬───────┘
│
┌──────▼───────┐
│ MCP Server │
│ (hosted) │
└──────────────┘
Config File (satgate.yaml)
Instead of CLI flags, you can use a config file:
# satgate.yaml
server: @modelcontextprotocol/server-google-search
budget: 5.00
mcp_pricing:
web_search: 5 # 5 cents per search
dalle_generate: 50 # 50 cents per image
'*': 1 # 1 cent default for unlisted tools
Pricing is in cents. The '*' wildcard sets the default cost for any tool not explicitly listed.
CLI Flags
| Flag | Description | Default |
|---|---|---|
--server <package> |
MCP server package to proxy (required) | — |
--local |
Run in local mode (no SatGate server needed) | off |
--budget <amount> |
Budget cap in USD (local mode) | unlimited |
--config <path> |
Path to satgate.yaml config file |
— |
--cap <amount> |
Budget cap in USD (SaaS mode) | — |
--endpoint <url> |
SatGate proxy endpoint | https://satgate-mcp-saas.fly.dev |
--key <macaroon> |
API key (or SATGATE_API_KEY env var) |
— |
--verbose |
Debug logging to stderr | off |
-h, --help |
Show help | — |
Why?
MCP gives AI agents direct access to paid APIs — search, code execution, databases, you name it. There's no built-in spending limit. A runaway agent can burn through hundreds of dollars in minutes.
satgate-proxy adds a hard cap:
- Local mode: Set
--budget 5.00→ agent can spend at most $5, enforced in-process - SaaS mode: Set
--cap 5.00→ enforced server-side with L402 macaroons - Zero dependencies —
npxruns it instantly
Zero Dependencies
This package uses only Node.js built-ins (child_process, http, https, fs). No node_modules, no install step. npx satgate-proxy just works.
Links
- 🌐 satgate.io — Homepage
- ☁️ cloud.satgate.io — Dashboard & API keys
- 📦 GitHub — Source code
- 📋 MCP Specification — Model Context Protocol
License
MIT
README copy captured when this server was indexed; it may lag the repository. The original is authoritative.