MCP server for PocketBase security: audit collections for permissive API rules, preview fixes, and apply rule updates from your AI coding agent.
Server has 4 tools with clear names (audit_project, list_findings, preview_fix, apply_fix) and documented schemas using Zod. Descriptions are present and moderately detailed (100-200 chars). However, parameter descriptions lack specificity about constraints, formats, and error recovery. Output schemas are not formally documented, responses are text-only without structured field definitions. Error handling is minimal: most failures return generic text without actionable recovery guidance. The apply_fix tool correctly requires confirm:true to prevent accidental writes, but lacks dry-run capability. No tool annotations (readOnlyHint/destructiveHint) despite clear risk profiles.
Apply a rule fix to the PocketBase collection via PATCH /api/collections/{id}. Requires confirm: true and rule_value (the new rule string). Re-runs the audit afterwards so you can verify the leak is closed.
Scan a PocketBase instance for over-permissive API rules. Returns findings JSON with active-probe confirmation. Caches result for use by other tools.
List findings from the most recent audit, optionally filtered by severity.
Describe what a fix would change WITHOUT calling the PocketBase API. Returns the rule field, current value, and proposed safer value.
Output schemas not documented. Tools return text-only responses without structured field definitions. LLMs cannot reliably extract data for downstream tool chaining (e.g., finding_index from list_findings).
Parameter descriptions lack format/constraint details. 'url' parameter has no validation hint (must be HTTPS? what if malformed?). 'rule_value' has no syntax guidance for PocketBase rule expressions. 'finding_index' has no bounds check documented.
Error handling is generic. Failures return plain text ('Audit failed: {e.message}') without recovery guidance. LLM cannot determine if error is retryable, user-fixable, or fatal. No actionable next steps provided.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | C | 66 | 2026-07-28+ | v2 |
No tool annotations. apply_fix is destructive (PATCH to API) but lacks destructiveHint. audit_project is read-only but lacks readOnlyHint. LLMs cannot infer safety properties without explicit annotations.
Credentials passed as optional parameters (email, password) instead of server-side secret injection. While env vars are supported, the tool still accepts credentials as params, risking exposure in logs/traces.