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

Agentguard47

by bmdhodlversion 0.2.2i★ –iRuns on your computer
Registry nameio.github.bmdhodl/agentguard47

Install

Overview

Description from the maker (original English)

Read-only MCP server for coding-agent traces, alerts, costs, usage, and budget health.

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: Runs on your computer
  • Transport: stdio
  • Category: Clinics & health
  • You need to fill in: AGENTGUARD_API_KEY

Install

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

Before you install

  • Basic checks: 1 of 1 passed
  • Runs on your computer with your user’s permissions (files, network, apps).
  • You fill in yourself: AGENTGUARD_API_KEY, AGENTGUARD_URL

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

You need

  • 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 …”.

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

{
  "mcpServers": {
    "agentguard47": {
      "command": "npx",
      "args": [
        "-y",
        "@agentguard47/mcp-server"
      ],
      "env": {
        "AGENTGUARD_API_KEY": "your-value",
        "AGENTGUARD_URL": "your-value"
      }
    }
  }
}

Run this in your terminal

claude mcp add agentguard47 --env AGENTGUARD_API_KEY=your-value --env AGENTGUARD_URL=your-value -- npx -y @agentguard47/mcp-server

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": {
    "agentguard47": {
      "command": "npx",
      "args": [
        "-y",
        "@agentguard47/mcp-server"
      ],
      "env": {
        "AGENTGUARD_API_KEY": "your-value",
        "AGENTGUARD_URL": "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": {
    "agentguard47": {
      "type": "stdio",
      "command": "npx",
      "args": [
        "-y",
        "@agentguard47/mcp-server"
      ],
      "env": {
        "AGENTGUARD_API_KEY": "your-value",
        "AGENTGUARD_URL": "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 one runs on your computer, and ChatGPT can only connect to servers on the internet. Pick another app.

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

Values you fill in

  • AGENTGUARD_API_KEY secret required env
    AgentGuard read API key for querying traces, alerts, costs, usage, and savings.
  • AGENTGUARD_URL env
    Optional AgentGuard API base URL. Defaults to production.

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

What it can do

Runs on your computer; the tool list appears in your AI app after you install it.

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 bmdhodl, 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 applicable

    Endpoint responds

    This one runs on your computer; there is no internet endpoint

  • – Not applicable

    Sign-in with OAuth

    Runs on your computer and uses local settings instead

  • … Not checked yet

    No hidden instructions in tool descriptions

    Runs on your computer; we can only read tool lists from internet endpoints

Compared with others in Clinics & healthi

  • More stars than 0% of the other 866 servers in this category
  • Published to the registry more recently than 15% of the other 866 servers in this category
  • Basic checks equal to or better than 100% of the other 866 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 Agentguard47 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: AGENTGUARD_API_KEY

Does it run on my computer or in the cloud?

It runs on your computer. Your AI app starts it when needed, and data does not pass through the maker’s servers (unless it calls an online service itself).

Is it still maintained?

The GitHub repo last changed –, and the latest version (0.2.2) reached the registry 5 months ago.

Which apps can use it?

Apps that support MCP, such as Claude Desktop, Claude Code, Cursor and VS Code. You also need Node.js on your computer.

What can I use instead?

In the same category: Mirobody, FHIR MCP Server, Google Health MCP

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

Mirobody

by thetahealth

Lab results to LOINC codes and UCUM units, symptoms and diagnoses to ICPC-3. Offline, no API key.

Runs on your computer★ 1,408Apache-2.0Updated 5 days ago
Install

MCP server providing seamless access to FHIR APIs for AI tools and healthcare applications

Runs on your computer★ 137Apache-2.0Updated 8 days ago
Install

Google Health MCP

by davidmosiah

Privacy-first unofficial Google Health API v4 MCP server for health, sleep, activity, HR agents

Runs on your computer★ 79MITUpdated 4 months 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.

AgentGuard

Stop runaway agents with runtime checks in Python.

AgentGuard checks budgets, repeated tool calls, retries, and elapsed time in instrumented Python code. Guards raise exceptions so your application can stop the next operation. The base SDK has no runtime dependencies and needs no account.

Names: this repository is agent47, the PyPI package is agentguard47, and the Python import is agentguard. AgentGuard 2.0.0 requires Python 3.11 or newer. On Python 3.9 or 3.10, pin agentguard47==1.4.0. See the Python migration guide before upgrading.

Getting started

Install in a virtual environment, then run the offline checks:

python -m pip install agentguard47

agentguard doctor agentguard demo

doctor checks the installation and local trace writing. demo exercises budget, loop, and retry stops without provider keys or network access. Follow the trace path printed by the command to inspect its output. agentguard demo --feedback prints a local redacted report; nothing is sent.

For a fresh PowerShell install and a runnable raw starter, follow the published-release walkthrough.

Share a stop receipt (new in 2.0.0)

agentguard receipt agentguard_demo_traces.jsonl prints a receipt of each stop with the trace's SHA-256 drawn as a barcode. Add --format markdown to paste it into a PR or issue. The hash identifies the trace file; it is not a signature. This stop receipt records a covered guard refusal. Anthropic's official /receipts plugin summarizes past Claude Code work (30 days by default). Neither output proves prevented spend or provides a signed attestation. The agentguard receipt command stays the same.

Guard a Claude Code session (new in 2.0.0)
agentguard hook claude-code --install --write

This installs a Claude Code hook that refuses the third identical tool call in a row and a call that already failed twice. "Identical" ignores JSON key order and preserves case and whitespace in values. The optional no_progress_max rule refuses a tool after repeated empty or same-error results even when input changes; it is off by default. Refusals omit raw input and go to .agentguard/claude-code/trace.jsonl. It checks tool calls, not tokens or subscription quota. See the Claude Code hook guide.

Guard a script without editing it (new in 2.0.0)
agentguard run --budget-usd 5 agent.py

This patches the OpenAI and Anthropic clients, then runs agent.py in the same interpreter. Settings come from flags, then environment variables, then .agentguard.json. A guard stop exits 1. Every run ends with the trace path on stderr, ready for agentguard receipt. agentguard run python -m mypkg works too. The bounds are the same as patching the client yourself; see enforcement boundary.

Subprocesses start a separate interpreter and are not patched by the parent. A detached, uninstrumented child can keep running after the guarded script exits. The offline reproduction demonstrates that boundary with two simulated calls and no network access.

agentguard run prices every patched call at paid rates, including a local model behind an OpenAI-compatible URL such as Ollama. A dollar budget can then stop a model that costs nothing. For a local model, patch the client in the script with free_local_clients=[client] and a BudgetGuard token or call cap, then run the script with python; see free local clients.

Stop before a third call

Save this as budget_demo.py and run python budget_demo.py. It makes no network requests.

from agentguard import BudgetExceeded, BudgetGuard

budget = BudgetGuard(max_calls=2) completed = 0

for _ in range(3): try: budget.check() # Check before the operation.

Put your provider or tool call here.

completed += 1 budget.consume(calls=1) # Record the completed operation. except BudgetExceeded: print(f"Stopped before call {completed + 1}")

assert completed == 2

Expected output: Stopped before call 3.

Stop a reworded loop

A stuck agent often rewords each retry, so no call repeats exactly. max_no_progress counts results instead: the same tool coming back empty, or with the same error, N times in a row stops the run whatever the arguments. normalize=True canonicalizes containers while preserving case and whitespace in argument values. Both options are off by default.

from agentguard import LoopDetected, LoopGuard

loop = LoopGuard(normalize=True, max_no_progress=3)

for pattern in ["retry_count", "retryCount", "retries"]: loop.check("grep", {"pattern": pattern}) matches = [] # Put your search here. This one finds nothing. try: loop.record_result("grep", matches, tool_args={"pattern": pattern}) except LoopDetected as stop: print(stop)

Expected output: No progress: grep came back empty 3 times in a row (limit: 3). Change the approach instead of rewording the call. Functions wrapped with trace_tool feed results to the guard automatically. Any other result in between starts the count over, so pagination and edit-then-test cycles do not trip it.

Connect a provider

Install the provider's client separately. For OpenAI:

python -m pip install openai
from agentguard import BudgetGuard, JsonlFileSink, Tracer, patch_openai

budget = BudgetGuard(max_cost_usd=5.00) tracer = Tracer( service="my-agent", sink=JsonlFileSink(".agentguard/traces.jsonl"), ) patch_openai(tracer, budget_guard=budget)

Make your OpenAI chat.completions.create or responses.create calls after this setup.

Standard OpenAI clients created earlier are covered too, including resource objects obtained before the patch. Activate the patch before sending requests or saving bound methods and raw/streaming response helpers. Those saved references can retain the original callable; recreate them after activation. patch_openai_async() covers async clients, and agentguard.init() enables both. See the enforcement boundary.

The patch checks recorded usage before dispatch and records response usage afterward, including streamed calls once the final usage arrives. A response can exceed the remaining cost or token allowance. Concurrent requests do not reserve capacity. Chat Completions streams request include_usage unless the caller already set it.

The OpenAI Agents SDK runs on responses.create, so agentguard.init() before the Runner puts every model call under the budget (example). Hosted tools and background=True responses are not covered. See the getting started guide for setup, traces, and framework starters.

How enforcement works

flowchart TD

accTitle: AgentGuard operation checks accDescr: Check a limit before an operation, then record usage. A[Instrumented operation] --> B{Guard check} B -->|Limit reached| C[Raise exception] B -->|Allowed| D[Run operation] D --> E[Record usage and trace] E --> A

Text equivalent: check before an operation, run it if allowed, then record usage. A guard exception returns control to your application's error handler.

GuardChecksRaises
BudgetGuardRecorded calls, tokens, or estimated costBudgetExceeded
LoopGuardRepeated tool calls; opt in to normalize=True and max_no_progress=N for reworded onesLoopDetected
FuzzyLoopGuardTool frequency and alternating patternsLoopDetected
RetryGuardRetries per toolRetryLimitExceeded
TimeoutGuardElapsed time when checkedTimeoutExceeded
RateLimitGuardCalls within a sliding minuteBudgetExceeded
X402SpendGuardPayment amounts before the payment callbackBudgetExceeded

For task budgets, use BudgetGuard.goal(...). For signatures and defaults, read the guard source and public exports.

Budgets can also persist across runs: configure JsonFileStateStore, a shared key, and period="day" for a daily counter. Set warn_at_pct=0.8 and an on_warning callback for an 80% warning. Workers must explicitly share the store and key; child-agent budget inheritance is not automatic. Monthly SDK limits are not implemented. See the capability matrix.

Limits and security

  • Guards cover operations you instrument. Installing the package does not intercept every action in Cursor, Claude Code, or another agent.
  • A guard is not a sandbox or permission system. A permitted operation can still be destructive.
  • Timeout checks do not interrupt an already blocked function or cancel an agent running on a provider's server.
  • Cost estimates are not invoices. Supply reported cost or use strict cost resolution when an estimate is insufficient.
  • Recorded-budget preflight refuses the next instrumented call when stored usage is already at a cap. It does not reserve concurrent in-flight requests, predict the next response, or cap a provider subscription. See the enforcement boundary.
  • The base SDK uses the standard library. Optional framework extras install third-party dependencies and need their own security review.
  • The optional [crewai] extra pulls ChromaDB. The 2026-09-12 audit found four unresolved advisories, including PYSEC-2026-311 / CVE-2026-45829. Review that exposure before installing the extra. Base SDK installs do not include ChromaDB.
  • Trace content can contain application data. Review it before sharing or configuring a remote sink.

See security reporting, the dated dependency audit, and release notes. Audit results describe their recorded date, not a permanent clean bill of health.

Local traces and optional hosted ingest

The SDK is the free local proof path. Start local. Add hosted ingest only when you need retained history, alerts, team visibility, spend trends, hosted decision history, or dashboard-managed remote kill signals.

Local guards remain authoritative. HttpSink mirrors trace and decision events; it does not execute remote kill signals by itself. See the dashboard contract before configuring it.

Local use has no hosted event quota, retention period, or API-key allocation. Network egress requires an integration you configure, such as HttpSink or an OpenTelemetry exporter.

Nothing in the local SDK phones home. The AgentGuard website describes the optional hosted service.

Documentation

You want toStart here
See which paths actually stop a callEnforcement boundary
Install and trace a first runGetting started

| Find guides and source references | [Do

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

Ask PopNx