Integration
MCP proxy
The MCP proxy sits between the agent client and the real MCP server. The client connects to AvertGate; AvertGate inspects every tools/call and forwards it upstream.
Single upstream
UPSTREAM_COMMAND="npx" \
UPSTREAM_ARGS="-y @modelcontextprotocol/server-filesystem /data" \
npx @avertgate/cli start
Multiple upstreams
UPSTREAM_SERVERS accepts a JSON array, a standard mcpServers dictionary, or a path to a JSON file:
UPSTREAM_SERVERS='{
"filesystem": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-filesystem", "/data"] },
"github": { "command": "npx", "args": ["-y", "@modelcontextprotocol/server-github"] }
}'
If tool names collide, the second is namespaced as server__tool and referred to by that name in the policy.
Client configuration
In your MCP client define AvertGate as the command instead of the real server:
{
"mcpServers": {
"governed": {
"command": "npx",
"args": ["@avertgate/cli", "start"],
"env": { "UPSTREAM_COMMAND": "npx", "UPSTREAM_ARGS": "-y @modelcontextprotocol/server-filesystem /data" }
}
}
}
What is inspected?
tools/call: the full request/response loop.resources: the policy'sresourcesrules (uri_pattern).