MCP server: One MCP server.

Agentguard

@mukundakattaRun by its publisher: served from their own domain, namespace checked by the registry.MCP server · External

Network-egress firewall for agent tools: check URLs against a declarative policy.

AI agent governancev0.1.0MITJavaScript
Freeno charge per call

Runs on your machine from its package; the steps are below.

What it does

  1. Reads
  2. Writes
  3. High impact

At most: only reads or looks up information.

What it costs

Free

Odel charges nothing per call. The publisher may charge for its own service.

Runs locally over stdio

This server isn't hosted — your MCP client launches it from a package registry. Use one of the commands below, or drop the config into your client (e.g. Claude Desktop).

npm@mukundakatta/agentguard-mcpv0.1.0

Run

npx -y @mukundakatta/agentguard-mcp

MCP client config

{
  "mcpServers": {
    "agentguard": {
      "command": "npx",
      "args": [
        "-y",
        "@mukundakatta/agentguard-mcp"
      ]
    }
  }
}
README2 min read

agentguard-mcp

MCP server for @mukundakatta/agentguard. Lets Claude Desktop, Cursor, Cline, Windsurf, Zed, or any other MCP client check whether a URL is allowed under a network-egress policy before any fetch.

bash
npx -y @mukundakatta/agentguard-mcp

Three tools:

  • check_url — single URL check: returns { allowed, reason } without making any actual request.
  • check_urls_batch — batch check with per-URL decisions plus a summary.
  • validate_policy — sanity-check a policy spec for empty allowlists, overly broad * wildcards, and malformed host patterns.

Add to your client

Claude Desktop

Edit ~/Library/Application Support/Claude/claude_desktop_config.json (macOS) or %APPDATA%\Claude\claude_desktop_config.json (Windows):

json
{
  "mcpServers": {
    "agentguard": {
      "command": "npx",
      "args": ["-y", "@mukundakatta/agentguard-mcp"]
    }
  }
}

Same shape for Cursor (~/.cursor/mcp.json), Cline, Windsurf, Zed.

Tool examples

check_url:

json
{
  "url": "https://api.openai.com/v1/chat",
  "policy": { "allow": ["api.openai.com", "*.anthropic.com"] }
}

Returns:

json
{ "allowed": true, "reason": "matched_allowlist", "detail": null }

check_urls_batch:

json
{
  "urls": [
    "https://api.openai.com/v1/chat",
    "https://evil.example.com/leak"
  ],
  "policy": { "allow": ["api.openai.com"] }
}

Returns:

json
{
  "results": [
    { "url": "https://api.openai.com/v1/chat", "allowed": true, ... },
    { "url": "https://evil.example.com/leak", "allowed": false, "reason": "not_in_allowlist", ... }
  ],
  "summary": { "total": 2, "allowed_count": 1, "denied_count": 1 }
}

validate_policy:

json
{ "policy": { "allow": ["*", "https://api.example.com", "api.example.com/v1"] } }

Returns issues for the * wildcard, the scheme prefix, and the path suffix — common mistakes when first writing a policy.

Why a separate MCP server

@mukundakatta/agentguard is a zero-dependency JavaScript library. This MCP server makes its decision engine accessible from any MCP-aware AI assistant: ask Claude "does my agent's tool list pass this firewall?" or "which of these 50 URLs would my policy block?" and the assistant calls these tools directly.

Note: this MCP server only checks URLs — it does not actually wrap fetch or block real requests. For runtime enforcement, use @mukundakatta/agentguard directly inside your Node process.

Sibling MCP servers

Part of the agent-stack series:

License

MIT

Similar modules

Browse AI agent governance