Pay-per-request security APIs for autonomous AI agents using x402 payment protocol. Detects prompt injection, validates tool calls, sanitizes responses, checks schema drift, validates identity/scope, and enforces quota limits. Exposes 6 Agent Safety Check tools via MCP.
Server exposes 6 security-focused tools via FastMCP with HTTP transport. All tools have descriptions (10-120 chars) and visible input schemas with typed parameters. However, descriptions are terse and lack actionable context for LLM selection. Parameter descriptions are minimal (5-40 chars). No output schemas documented. Error handling is absent, tools return raw JSON from backend without recovery guidance. Tools follow verb_noun naming but lack specificity (e.g., 'security_scan' vs 'scan_for_prompt_injection'). No tool annotations (readOnlyHint, destructiveHint). Composition is sound, each tool has one responsibility, but chaining context is missing.
Validate a tool call before execution.
Check whether an AI agent's declared scopes permit the requested action.
Check whether an AI agent is within its tool call, LLM call, and payment limits.
Sanitize an external tool response before returning it to an AI agent.
Detect risky changes between two versions of a tool schema or OpenAPI spec.
Scan text for prompt injection, jailbreak attempts, PII, and data exfiltration.
No output schemas documented. Tools return JSON strings without specifying field structure, types, or required fields. LLMs cannot plan downstream actions or extract specific data reliably.
Parameter descriptions are too brief (5-40 chars). E.g., 'Type of content' lacks format/enum guidance. 'Sensitivity level' does not explain what 'critical' vs 'high' means in practice. LLMs cannot infer constraints from names alone.
No error handling or recovery guidance. Tools return raw backend JSON (including error objects) without actionable next steps. E.g., if 'agent_id' is invalid, the LLM receives a backend error but no hint to retry with a different ID or call a discovery tool.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
Tool descriptions lack context for LLM selection. 'Scan text for prompt injection...' does not explain WHEN to call this vs other security tools, or what the LLM should do with the result. Descriptions should be 50-200 chars and answer: what, when, why.
No tool annotations (readOnlyHint, destructiveHint, idempotentHint). All tools are read-only but this is not declared. LLMs cannot infer retry safety or side-effect risk without explicit hints.