satgate-proxy
Budget-enforced MCP proxy β hard-cap your AI agent tool spend
Installation
npx satgate-proxyAsk AI about satgate-proxy
Powered by Claude Β· Grounded in docs
I know everything about satgate-proxy. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
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
