Non-invasive AI Agent operation monitoring - MCP Server. Intercepts and logs HTTP requests made by AI agents with PII scrubbing and compliance monitoring.
Two tools with complete schemas and descriptions, but both suffer from significant gaps. make_http_request has a clear verb-noun name and detailed description (194 chars), but lacks error handling guidance and security warnings about PII/secrets in responses. agentwatch_log_reasoning is a stub with incomplete implementation (returns hardcoded true). Neither tool documents output schemas explicitly. Parameter descriptions are present but lack constraint details (e.g., confidence range 0.0-1.0 not validated, reason max 2000 chars not enforced). No tool annotations (readOnlyHint, destructiveHint, idempotentHint). Missing recovery guidance for common failure modes.
Log the reasoning behind an API action for audit purposes. Call this before any high-risk operation to record why you are taking this action. The reasoning is stored alongside the operation log so users can review the Agent's decision-making in the Guardrly dashboard. Args: reason: Human-readable explanation (max 2000 chars). action_type: Optional category label (e.g. "product_update"). confidence: Optional confidence score between 0.0 and 1.0. Returns: {"logged": true}
Make an HTTP request to any external API. Guardrly will intercept and log this request for monitoring and compliance. Args: method: HTTP verb - GET, POST, PUT, DELETE, or PATCH. url: Full URL including scheme (https://). headers: Optional request headers dict. body: Optional request body - either a JSON-serialisable dict or a raw string. Values are never stored; only field names are captured in the operation log. Returns: dict with keys: status_code (int) - HTTP response status code. body (str) - Response body text.
make_http_request lacks error handling guidance. No recovery instructions for HTTP errors (4xx, 5xx), timeouts, or network failures. LLM cannot determine if retry is safe or what to do next.
agentwatch_log_reasoning is a stub returning hardcoded {"logged": true}. Implementation incomplete; confidence parameter not validated (0.0-1.0 range); reason max 2000 chars not enforced. Tool is non-functional for audit purposes.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). make_http_request is marked WRITE risk but lacks destructiveHint annotation. LLM cannot infer idempotency or side-effect severity from schema alone.
Output schemas not documented. make_http_request returns {status_code, body} but no schema definition visible. agentwatch_log_reasoning returns {logged} with no type info. LLM cannot validate response structure or plan downstream calls.
Inferred effective spec: <=2025-11-25.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 56 | <=2025-11-25 | v2 |
Security risk: make_http_request accepts arbitrary headers and body, then logs field names. No warning that secrets (API keys, auth tokens, PII) in headers/body will be captured. No guidance on sanitization or what data is safe to pass.