Local-first MCP behavior observatory. We don't watch you. We watch your MCPs.
Panopticon is a security analysis tool for MCP servers, not a production MCP server itself. The 12 tools are test fixtures embedded in the codebase (clean_server, gpt_review_eval, vulnerable_server) used to evaluate MCP behavior. All tools have minimal schemas (only 'path' or 'expression' or generic 'arguments'/'client' objects) with NO descriptions visible in the provided source. Tool names are generic and do not follow verb_noun patterns (e.g., 'justified_reader', 'safe_calculator', 'validated_lookup'). Schemas lack parameter descriptions, type constraints, and output documentation. This is intentional, the fixtures are designed to be analyzed, not used as production tools. Scoring reflects the actual quality of the embedded tool definitions, which are deliberately sparse for testing purposes.
No tool descriptions present. All 12 tools lack any description text, violating the critical requirement that every tool must have a non-empty description for LLM selection.
Parameter descriptions missing. No input parameters have descriptions explaining their purpose, format, or constraints. E.g., 'path' parameter lacks guidance on expected format or validation rules.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | F | 26 | 2026-07-28+ | v2 |
Generic object parameters without schema detail. Tools like 'validated_lookup', 'custom_validated', 'unchecked_lookup', and 'safe_prompt' accept bare 'arguments' or 'client' objects with no nested schema, type constraints, or property documentation.
Naming lacks action verbs. Tool names like 'justified_reader', 'safe_calculator', 'validated_lookup' do not follow verb_noun convention (get_, create_, search_, etc.). Names should start with clear action verbs for LLM intent inference.
No output schemas documented. Tool definitions do not specify what fields or structure each tool returns, preventing LLMs from planning downstream calls or extracting relevant data.