MCP server for the UnPeeragogy project — a dual-column analysis of Peeragogy theory vs. reality. Provides tools for searching content, comparing theory/reality pairs, analyzing failure vectors, calculating tension indices, and generating friction-based insights through the Agent Perturbatore.
Server has 9 tools with complete schemas and descriptions, but quality is uneven. Naming is creative but sometimes opaque (agent-perturbatore, inject-friction). Descriptions are present (avg ~150 chars) but lack actionable guidance on when to use each tool vs. alternatives. Parameters are typed and mostly described, but several lack constraints (e.g., topic/query are free-form strings with no length limits or format guidance). Output schemas are not documented, LLMs cannot predict response structure. Error handling is minimal; no recovery guidance. Security is adequate (read-only tools, no secrets in params). Composition is reasonable but some tools overlap in intent (compare vs. analyze vs. tension-index all examine theory/reality gaps).
Agent Perturbatore — generates structural friction analysis against the corpus. Uses static corpus analysis (fallback from Hetzner GLM-5.2). Latency: instant.
Analyze a slug and return failure vectors, theory/reality gap, and structure.
Compare the Theory (Peeragogy) column with the Reality (Unpeeragogy) column for a specific slug.
SUPER-TOOL: maps epistemic gaps in the corpus. Scans all content and identifies: orphan slugs (theory-only or reality-only), vectors not covered by field reports, low-tension areas (possible false consensus), and produces a priority-ranked list of recommendations for new contributions.
Analyze a topic with structural friction (keyword-based). In 'soft' mode highlights contradictions; in 'hard' forces deconstruction even where no friction seems present.
Output schemas not documented. LLMs cannot predict response structure for any tool. Responses appear to be markdown strings or JSON objects, but format is not declared. This forces LLMs to parse unstructured output, wasting tokens and increasing hallucination risk.
Tool naming lacks clarity. 'agent-perturbatore' and 'inject-friction' are domain-specific but opaque to LLMs unfamiliar with peeragogy terminology. Names should start with action verbs (analyze_, generate_, calculate_) and avoid jargon. LLMs cannot infer intent from 'perturbatore' alone.
Overlapping tool intent. 'compare', 'analyze', and 'tension-index' all examine theory/reality gaps for a slug. Descriptions do not clearly distinguish when to use each. LLMs will waste reasoning cycles deciding between them or call all three redundantly.
| Scored | Grade | Overall | Spec posture | Rubric |
|---|---|---|---|---|
| 2026-09-23 | D | 58 | 2026-07-28+ | v2 |
SUPER-TOOL: tension-weighted knowledge graph. Builds a navigable graph of patterns and failure vectors, with edges weighted by shared tension. Options: query (filter by text), vector (filter by vector), minWeight (edge threshold). Output: markdown + structured JSON for d3-force.
Search across all content (theory and reality). Uses fuzzy indexing to find related terms.
SUPER-TOOL: generates a pre-filled field report draft from free text. Auto-detects failure vectors, estimates tension_index, suggests template (share-your-story or structural-analysis), and produces pre-filled YAML.
Calculate the systemic tension index. If a slug is specified, analyzes the theory/reality pair; otherwise calculates the average across the entire corpus.
String parameters lack constraints. 'query', 'topic', 'slug', and 'text' are free-form with no length limits, format patterns, or validation hints. LLMs may pass excessively long strings or invalid slugs. Descriptions should specify expected format (e.g., 'slug: 2-50 lowercase alphanumeric + hyphens').
No error handling guidance. Tools do not document what errors can occur, whether they are retryable, or what the LLM should do next. A failed slug lookup returns nothing; no hint to try search() first or list available slugs.