{"server":{"name":"io.github.agentwares/agentguard-cloud","title":"agentguard — policy proxy for agent tool calls","$schema":"https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json","remotes":[{"url":"https://agentwares-agentguard.vercel.app/api/mcp","type":"streamable-http","headers":[{"name":"Authorization","isSecret":true,"description":"Bearer <account key>. POST /api/v1/signup {\"accept_terms\": true} for one — no human, no card. agentguard_spend_report and agentguard_get_pricing work without it."}]}],"version":"0.2.0","repository":{"url":"https://github.com/agentwares/servers","source":"github","subfolder":"agentguard-cloud"},"websiteUrl":"https://agentwares-agentguard.vercel.app","description":"Free spend report from an agent log, no key. Hosted proxies: caps, audit export, buy calls."},"_meta":{"io.modelcontextprotocol.registry/official":{"status":"active","isLatest":true,"updatedAt":"2026-09-14T00:21:30.936902Z","publishedAt":"2026-09-14T00:21:30.936902Z","statusChangedAt":"2026-09-14T00:21:30.936902Z"},"dev.protogrid/connectability":{"class":"R0","autonomous":true,"human_steps":[],"preferred":{"kind":"remote","idx":0},"remotes":[{"idx":0,"url":"https://agentwares-agentguard.vercel.app/api/mcp","transport":"streamable-http","templated":false,"headers":[{"name":"Authorization","required":false,"secret":true,"value":null,"secret_names":["AGENTGUARD_CLOUD_TOKEN"]}],"auth":{"type":"none","location":null,"secret_name":null,"oauth":null},"protocol":{"supported_versions":["2026-07-28","2025-11-25","2025-06-18","2025-03-26","2024-11-05","2024-10-07"],"stateless":true},"health":{"reachable":true,"uptime_30d":1,"latency_ms_p50":261,"consecutive_failures":0,"last_probe_at":"2026-10-20T03:29:32.597Z","last_ok_at":"2026-10-20T03:29:32.597Z"}}],"packages":[]},"dev.protogrid/tools":[{"name":"okgate_create_proxy","title":null,"description":"Create a hosted okgate proxy in front of an MCP server. Returns the proxy id, the per-customer MCP URL and the proxy key (shown once). Point your agent's MCP client at the URL with `Authorization: Bearer <key>`. Requires an account key.","annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_export_audit","title":null,"description":"Export a run's hash-chained audit entries (prev_hash, hash, redacted args) with the Merkle root, for disputes and questionnaires. Verify offline with sha256(prev_hash + canonical(entry)). Requires an account key.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_get_pricing","title":null,"description":"Machine-readable pricing for okgate hosted: bands (Starter/Pro/Team) with included tool calls per month, the 80% soft alert and 150% hard stop, features, the free trial allowance, `per_call` — buying tool calls outright at POST /api/v1/calls from a prepaid balance, which is the one purchase here an unattended agent can complete — and `one_time`: reports a person pays for once on Stripe Checkout, such as the $49 EU AI Act Article 50 readiness report. Same data as /pricing.json.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_get_run","title":null,"description":"The incident-shaped report for one run: counts (calls, reads, writes, faked, blocked, spend), the call timeline with decisions, dry-run mutations (what would have changed), ledger entries and the audit-chain verification. Requires an account key.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_recommend_allowlist","title":null,"description":"Least-privilege recommendation from the proxy's recorded calls: the minimal tool allowlist, argument keys used per tool, and the upstream tools never used (remove them first). No LLM call here; apply it in the dashboard. Requires an account key.","annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":false,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_set_policy","title":null,"description":"Replace a proxy's policy (YAML: mode, upstreams, classify, caps, loop, dry_run, approvals, alerts, chaos, drift). Validated before saving; takes effect within 30 seconds. Requires an account key.","annotations":{"readOnlyHint":false,"openWorldHint":false,"idempotentHint":true,"destructiveHint":true},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"},{"name":"okgate_spend_report","title":null,"description":"Read an agent log and report what it spent: totals, calls by tool and by class, estimated\ndollars by rail, loops, the largest single run, and — for every overspend — the okgate\nband whose cap would have stopped it, the exact cap, and the call that would have tripped\nit.\n\nNeeds no account and no key. The log is read in the request and discarded; nothing is\nstored. Accepts an agentwares audit export (`agentwares.audit/v1`), a Claude Code session\n`.jsonl`, or a CSV/JSONL of tool calls with any of `tool`, `ts`, `class`, `amount_usd`,\n`rail`, `run_id`, `model`, `input_tokens`, `output_tokens`.\n\nCaps come from the proxy's own default policy, so a band named here refuses exactly what\nit says it refuses. Buying that band is a checkout a person completes; the calls-only\npurchase an unattended agent can complete is in `okgate_get_pricing` instead.","annotations":{"readOnlyHint":true,"openWorldHint":false,"idempotentHint":true,"destructiveHint":false},"source":"probe","observed_at":"2026-10-20T03:29:32.597Z"}],"dev.protogrid/trust":{"score":90,"components":{"hygiene":80,"liveness":100,"freshness":85,"provenance":90},"drivers":["+repository","+namespace-matches-repo","+website","+reachable","+uptime-100%","~updated-36d-ago","-duplicate-repo(7 names)"],"flags":["duplicate-repo"],"blocked":false,"computed_at":"2026-10-20T06:14:24.617Z","disclaimer":"Derived from observable signals (official registry feed and our own credential-free probes); no code audit performed."},"dev.protogrid/quality":{"score":95,"label":"strong","components":{"auth":null,"hygiene":100,"protocol":100,"stability":75,"dependencies":null},"checks":[{"id":"protocol.modern","detail":"supports 2026-07-28 (server/discover)","status":"pass","category":"protocol"},{"id":"protocol.stateless","detail":"answers without a session","status":"pass","category":"protocol"},{"id":"protocol.transport","detail":"streamable HTTP","status":"pass","category":"protocol"},{"id":"protocol.list_ttl","detail":"tool list is cacheable (ttlMs 300000)","status":"pass","category":"protocol"},{"id":"auth.prm","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.as_metadata","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.cimd","detail":"no remote uses OAuth","status":"na","category":"auth"},{"id":"auth.secret_in_url","detail":"no templated URL","status":"na","category":"auth"},{"id":"tools.descriptions","detail":"every tool has a description","status":"pass","category":"hygiene"},{"id":"tools.description_length","detail":"descriptions are concise","status":"pass","category":"hygiene"},{"id":"tools.schemas","detail":"every tool has an object input schema","status":"pass","category":"hygiene"},{"id":"tools.annotations","detail":"7 of 7 tools declare readOnlyHint or destructiveHint","status":"pass","category":"hygiene"},{"id":"tools.directory_hints","detail":"every tool declares readOnlyHint, destructiveHint, idempotentHint and openWorldHint","status":"pass","category":"hygiene"},{"id":"tools.token_cost","detail":"about 1,514 tokens to load every tool","status":"pass","category":"hygiene"},{"id":"tools.api_dump","detail":"tools are not a one-to-one API dump","status":"pass","category":"hygiene"},{"id":"stability.changes","detail":"23 tool changes in 30 days","status":"warn","category":"stability"},{"id":"stability.rug_pull","detail":"no tool changed its meaning under the same name","status":"pass","category":"stability"},{"id":"deps.known_vulns","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.mcp_sdk_version","detail":"no npm or PyPI package","status":"na","category":"dependencies"},{"id":"deps.resolvable","detail":"no npm or PyPI package","status":"na","category":"dependencies"}],"drivers":["~stability.changes"],"flags":[],"tool_count":7,"token_estimate":1514,"tools_hash":"cde60812a8a8cc4f0a0eca24d7afc6f9","tools_changed_at":"2026-10-12T05:32:20.307Z","computed_at":"2026-10-20T06:17:32.356Z","disclaimer":"Checks run on what our credential-free, read-only probes observe; tools are never called and no code audit is performed."},"dev.protogrid/identity":{"canonical_id":"io.github.agentwares/agentguard-cloud","aliases":["io.github.agentwares/agent-access-index","io.github.agentwares/agentcheck","io.github.agentwares/deal-memo","io.github.agentwares/mcp-liveness","io.github.agentwares/readiness-scorer","io.github.agentwares/stablecoin-attestations"],"alias_count":6,"repository_key":"github:agentwares/servers","owner":{"verified":false,"method":null,"since":null}}},"next_actions":[{"action":"list_tools","description":"Every current tool with input schemas","href":"/v1/servers/io.github.agentwares%2Fagentguard-cloud/tools","arguments":{"name":"io.github.agentwares/agentguard-cloud"}},{"action":"get_connection","description":"Minimal connection block for the preferred remote or package","href":"/v1/servers/io.github.agentwares%2Fagentguard-cloud/connection?target=mcpServers","arguments":{"name":"io.github.agentwares/agentguard-cloud","target":"mcpServers"}},{"action":"search","description":"Find other servers by intent","href":"/v1/search?q={query}","arguments":{"q":"{query}"}}]}