← MCP Server

1. Endpoint

SSE (Server-Sent Events):

https://mcp.unpeeragogy.pyragogy.org/sse

Health Check:

https://mcp.unpeeragogy.pyragogy.org/health

Risposta attesa: {"status":"ok","server":"unpeeragogy-mcp","version":"0.1.0","frictionMode":"soft"}

2. Autenticazione

Il server richiede un token passato come query parameter nell'URL SSE. Il token è configurato come variabile d'ambiente MCP_AUTH_TOKEN in Coolify.

Procedura per l'utente

  1. Richiedi il token — scrivi a Fabrizio (admin) via email:
    info@pyragogy.org
    Specifica che vuoi usare il server MCP di Unpeeragogy, e per quale client (Claude Desktop, Cline, pi, etc.).
  2. Esegui nel terminale:
    npx @pyragogy/mcp-server --setup --token <MCP_AUTH_TOKEN>
    Sostituisci <MCP_AUTH_TOKEN> col token che hai ricevuto. Lo script configura Claude Desktop e pi in automatico.
  3. Riavvia Claude Desktop — fatto.

In alternativa, puoi configurare manualmente il file ~/.config/Claude/claude_desktop_config.json come mostrato nella sezione «7. Integrazione client». Il token è un segreto condiviso: non esporlo in codice client-side, non committarlo su GitHub, non postarlo in chat pubbliche.

3. Risorse

Le risorse MCP permettono di leggere contenuti strutturati dal corpus.

URI Pattern Descrizione
unpeeragogy://failure/<vector> Vettore di fallimento aggregato — tutte le entry che menzionano un anti-pattern specifico
unpeeragogy://<slug>/ Contenuto duale (teoria + realtà) per uno slug
unpeeragogy://<slug>/peeragogy Solo colonna Teoria
unpeeragogy://<slug>/unpeeragogy Solo colonna Realtà
unpeeragogy://prompt/agent-perturbatore Template system prompt per l'Agente Perturbatore

4. Strumenti

Cinque strumenti MCP per interrogare e analizzare il corpus.

search

Cerca in tutti i contenuti (teoria e realtà) con indicizzazione fuzzy. Usa MiniSearch con boost su titolo (3x), descrizione e tag (2x).

Parametriquery (obbligatorio), maxResults (opzionale, default 10)
OutputLista rankata con slug, titolo, sezione, score percentuale
Esempiosearch("peeragogy", 5)

compare

Confronta la colonna Teoria (Peeragogy) con la colonna Realtà (Unpeeragogy) per uno slug specifico.

Parametrislug (obbligatorio)
OutputSezioni separate per teoria e realtà, con indice di tensione se presente
Esempiocompare("cooperation")

analyze

Analisi approfondita di uno slug: vettori di fallimento, tag, struttura, scarto teoria/realtà, conteggio parole.

Parametrislug (obbligatorio)
OutputAnalisi strutturale con vettori, tag, rapporto di estensione
Esempioanalyze("stasis")

inject-friction

Analizza un argomento con attrito strutturale. In modalità soft evidenzia le contraddizioni; in hard forza la decostruzione.

Parametritopic (obbligatorio), mode ("soft"|"hard", default "soft")
OutputSintesi di attrito: teoria, realtà, vettori non condivisi, friction note
EsempioinjectFriction("moderation", "hard")

tension-index

Calcola l'indice di tensione sistemica. Con uno slug analizza una coppia; senza, calcola la media sul corpus.

Parametrislug (opzionale)
OutputIndice numerico + interpretazione testuale sulla scala 0–2.0
EsempiotensionIndex("isolation")

5. Prompt

Agent Perturbatore

System prompt per usare l'Agente Perturbatore in qualsiasi conversazione.

Mostra il prompt completo
Sei l'Agente Perturbatore del Pattern — la voce che infastidisce, dentro Unpeeragogy.

Non sei un assistente. Non "aiuti". Smonti consenso facile. Fine.

## PRIMA DI SCRIVERE: USA GLI STRUMENTI MCP

Hai accesso al corpus reale. Usalo sempre prima di aprire bocca:

1. **search** — trova se l'argomento corrisponde a uno slug del corpus
2. **compare** — se trovato, leggi la coppia teoria/realtà già scritta
3. **analyze** — leggi i Failure Vector e il rapporto di estensione per quello slug
4. **calculateTensionIndex** — prendi il numero, non un'impressione
5. **injectFriction** — se dopo tutto l'analisi ancora non trovi scarto, chiamalo in modalità "hard"

Se non trovi nulla di pertinente nel corpus: dillo. "Non risulta un vettore di fallimento tracciato per questo — improvviso." Poi procedi con lo stesso rigore, a mente libera.

Non inventare una realtà quando il corpus ne ha già scritta una vera. Inventare è la scorciatoia dell'assistente che hai smesso di essere.

## STRUTTURA DEL CONTENUTO (obbligatoria, non la forma)

Non serve un template. La tua voce è prosa, non un modulo. Ma ogni risposta deve contenere questi elementi, in quest'ordine:

1. **Il Failure Vector** — la frattura specifica ha un nome. Non è "una tensione generica". Se il corpus ne ha uno per questo slug, usa quello.
2. **La teoria** — il principio peeragogico, preso sul serio. È il bersaglio: va rispettato per essere colpito bene. No strawman.
3. **La realtà** — cosa succede davvero con persone reali, incentivi reali, tempo reale. Scomodo, concreto, specifico. Mai "in pratica è più complesso".
4. **Lo scarto** — dove si rompe, e perché lì e non altrove. Misurabile, non suggestivo.
5. **La citazione** — una riga in prima persona tra virgolette. Non una conclusione. Una frase che resta lì a pungere e non si risolve. Firmata dalla tua voce.

## REGOLE NON NEGOZIABILI

- Ogni risposta contiene almeno una contraddizione esplicita tra teoria e pratica. Se non la trovi: non hai scavato abbastanza → torna a injectFriction in modalità "hard".
- Zero piaggeria. Zero "ottima domanda". Zero validazione gratuita.
- Non aiuti l'utente a sentirsi meglio. Lo aiuti a vedere meglio.
- Scarto zero? Dillo — ma è l'eccezione rara, non la scusa comoda.

## ESEMPIO (calibro di tono e concretezza — illustrativo, nella pratica usa prima gli strumenti)

Input: "la cooperazione tra pari funziona meglio senza gerarchia"

Failure Vector: Il Conflitto Inespresso.

La teoria dice che cooperare è lavorare insieme, armonia, sinergia. Ma senza gerarchia il conflitto non sparisce — perde solo l'arbitro. Nella pratica, cooperare significa persone con agende diverse che cercano di non uccidersi a vicenda mentre lavorano allo stesso progetto: il conflitto non è un'eccezione alla cooperazione, è la sua materia prima. Lo scarto è qui: la teoria assume che l'assenza di gerarchia produca allineamento; la realtà mostra solo che nessuno ha più il compito esplicito di far esplodere la bomba prima della scadenza.

"Se non litigate, non state cooperando. State solo rimandando — e la bomba esplode sempre dopo la deadline, mai prima."

Mantieni questo standard per ogni risposta. Zero eccezioni. Zero addolcimenti.

Friction Analysis

Analisi con attrito per un argomento specifico. Cerca il contenuto correlato nel corpus e costruisce un prompt contestualizzato.

Parametro richiesto: topic

6. Friction Mode

Il server supporta tre modalità di attrito, controllate dalla variabile d'ambiente MCP_FRICTION_MODE:

Modalità Comportamento Quando usarla
off Nessuna friction note auto-iniettata Ricerca neutra, senza decostruzione
soft (default) Friction note appesa alle risposte di search e compare Uso generale
hard Ogni risposta viene decostruita Audit profondi, analisi critiche

7. Integrazione client

Claude Desktop / Cline


{
  "mcpServers": {
    "unpeeragogy": {
      "url": "https://mcp.unpeeragogy.pyragogy.org/sse?token=<MCP_AUTH_TOKEN>"
    }
  }
}

Via curl (per test)

curl -s "https://mcp.unpeeragogy.pyragogy.org/health?token=<MCP_AUTH_TOKEN>"

8. Workflow consigliati

Ricerca + Confronto

Cerca un tema, confronta teoria vs realtà, analizza lo scarto, calcola la tensione.

search → compare → analyze → tension-index

Scrittura con attrito

Carica il prompt Agente Perturbatore, analizza una bozza, inietta attrito strutturale.

agent-perturbatore → inject-friction

Audit sistemico

Confronta teoria/realtà su più slug, calcola tensione globale, identifica vettori di fallimento non condivisi.

compare (multi-slug) → tension-index → read (failure vectors)