MCP-server

#ensakidag som MCP-server

Nio år av JJ:s dagliga teknik- och AI-betraktelser som en öppen, verifierbar kunskapstjänst för AI-agenter. Signerade svar, full provenance, CC BY 4.0. Folkbildning i maskinläsbar form.

Kom igång

Server-URL
https://ensakidag.se/api/mcp(alias: /mcp)
Föreslaget namn
ensakidag
Autentisering
Ingen
Rate limit
60 anrop per 5 minuter per IP
500+ avsnitt
30+ teman
hela katalogen sökbar

JSON-konfig (för mcpServers-klienter: Cursor, Codex CLI m.fl.)

Cursor läser ~/.cursor/mcp.json. Claude (Desktop, claude.ai, Cowork, mobil) och ChatGPT använder istället UI-flödet under Inställningar → Connectors - se nedan.

{
  "mcpServers": {
    "ensakidag": {
      "url": "https://ensakidag.se/api/mcp"
    }
  }
}

Lägg till i din assistent

  • Cursor (och andra mcpServers-klienter)
    Lägg JSON-konfigen nedan i ~/.cursor/mcp.json (eller motsvarande mcp.json för din klient). Notera: flat ”url”, ingen ”transport”-wrapper.
  • Claude (Desktop, claude.ai, Cowork, mobil)
    Inställningar → Kontakter/Connectors → Lägg till anpassad connector → klistra in https://ensakidag.se/api/mcp. UI-flöde, ingen JSON-fil.
  • ChatGPT (Pro/Business/Enterprise)
    Inställningar → Connectors → Lägg till MCP-server-URL: https://ensakidag.se/api/mcp. UI-flöde; nyare ChatGPT är kräsnare på auth-headers - säg till om något krånglar.
  • Codex CLI och övriga mcpServers-klienter
    Använd JSON-konfigen nedan (samma form som Cursor) i klientens mcp.json.

Så använder du den

Nämn ensakidag i din prompt så plockar assistenten upp verktygen. Några startpunkter:

  • Använd ensakidag och hitta JJ:s fem bästa avsnitt om AI - och berätta hur de har åldrats enligt facit.
  • Sök i ensakidag efter ”integritet” och sammanfatta hur JJ:s syn har förändrats över åren.
  • Hämta temat ”ai-och-arbete” från ensakidag och ge mig syntesen plus tre nyckelavsnitt.
  • Vilka avsnitt är relaterade till #ensakidag 285? Förklara kopplingarna.
  • Lista de tio senaste #ensakidag-avsnitten och citera ett guldkorn ur vart och ett.
  • Jämför vad JJ sa om kryptovalutor 2017 med vad han säger 2024 - använd ensakidag och ange avsnittsnummer.

Verktyg

Alla verktyg är read-only över en sluten korpus. Varje verktyg har en outputSchema (JSON Schema) som beskriver formen på structuredContent, samt annotations: readOnlyHint: true, idempotentHint: true, openWorldHint: false. Listande verktyg returnerar även en resource_link per träff så att klienter kan dereferera via resources/read.

  • search_episodes(query, limit?, year?, topic?)

    query: sträng · limit: 1-50 (default 10) · year: int · topic: slug

    Hybrid sökning: semantisk (pgvector över transkript-chunks) sammanslagen med svensk fulltext via reciprocal rank fusion. Returnerar rankade avsnitt med snippet, facit-betyg och kanonisk URL.

  • get_episode(number)

    number: int (kanoniskt) · alias: id, episode

    Hämtar ett helt avsnitt: JJ:s beskrivning och transkript plus AI-lagret (faktaruta, 2026-uppdatering, bedömning, guldkorn, kopplingar), teman och kanonisk URL.

  • list_topics()

    inga argument

    Listar alla teman med slug, etikett, antal avsnitt och kanonisk URL.

  • get_topic(slug)

    slug: sträng

    Hämtar ett tema: etikett, AI-syntes, höjdpunkter och alla avsnitt kopplade till temat.

  • find_related(number)

    number: int

    Hittar relaterade avsnitt via uttryckliga kopplingar (edges) och delade teman. Max 12 träffar.

  • list_latest(limit?)

    limit: 1-50 (default 10)

    Listar de senaste avsnitten efter publiceringsdatum.

  • server_info()

    inga argument

    Returnerar serverversion, build, dataset_version, episode_count, available_count, topic_count, content_hash, schema_version och capabilities. Använd för cache-invalidering och regressionstester.

Resurser & promptmallar

Servern stödjer alla tre MCP-primitiv: Tools, Resources och Prompts. Avsnitt och teman finns som förstklassiga resurser med stabila URI:er, och tre färdiga promptmallar driver de vanligaste frågorna mot arkivet.

Resources

  • ensakidag://episode/{number}
    Ett avsnitt - samma payload som get_episode, inklusive provenance och signatur.
  • ensakidag://topic/{slug}
    Ett tema - samma payload som get_topic.
  • resources/list
    Paginerad (opak cursor / nextCursor, ~50 per sida). Templates finns under resources/templates/list.

Prompts

  • basta_avsnitt_om(amne)
    Hitta JJ:s bästa avsnitt om ett ämne och bedöm hur de har åldrats.
  • jj_over_tid(tema)
    Sammanfatta hur JJ:s syn på ett tema utvecklats över åren, med avsnittsexempel.
  • relaterat_sparr(nummer)
    Utgå från ett avsnitt och kartlägg de relaterade avsnitten och den röda tråden.

Tillit & verifiering

Arkivet är byggt för att gå att citera med säkerhet. Varje resultat från MCP-servern bär med sig var det kommer ifrån, och varje svar är kryptografiskt signerat. Detta är ett pionjärspår: ingen MCP-klient verifierar signaturer automatiskt än, men vi pilotar verifierbara MCP-svar - besläktat med C2PA content credentials för bild och video.

  • Provenance på varje objekt
    Fälten canonical_origin, publisher, canonical_url, license, last_updated och content_hash följer med varje avsnitt och tema. content_hash är SHA-256 över en kanonisk JSON-serialisering med sorterade nycklar (UTF-8) av objektet självt, så den ändras om och endast om innehållet ändras.
  • Signatur på varje tools/call- och resources/read-svar
    Svaren signeras med Ed25519 (EdDSA) som JWS i compact-form och bifogas i fältet signature. Signaturen täcker tools/call structuredContent respektive resources/read result.contents. Samma kanonisering: sorted-keys JSON, UTF-8. Du kan verifiera mot den publika nyckeln nedan.
  • Verifiera själv, i tre steg
    1. Hämta publika JWK:n från /.well-known/ensakidag-mcp-public-key.json.
    2. Dela signature.jws i header.payload.signature (tre base64url-segment åtskilda med punkt).
    3. Verifiera med EdDSA via valfritt JOSE-bibliotek (Node: jose, Python: python-jose). Payloaden är kanonisk JSON av structuredContent (tools/call) eller result.contents (resources/read).
  • Manifest och nyckel

Version & spårbarhet

Verktyget server_info svarar på frågan ”vad pratar jag med?”. Anropa det när du vill veta exakt vilken deployment och vilket dataset du pratar med - för cache-invalidering, regressionstester eller bara för transparens.

  • server
    name, version, build - vilken kod som kör.
  • dataset
    dataset_version (datum för senaste innehållsändring), episode_count (kanoniskt, följer numreringen), available_count (faktiskt publicerade och sökbara), topic_count, content_hash - fingeravtryck över hela datasetet, ändras iff innehållet ändras.
  • api
    schema_version + capabilities (search, topics, related, signing, provenance, resources, prompts) - vad du kan räkna med att servern stödjer just nu.

Öppenhet & licens

  • CC BY 4.0
    Använd fritt - kommersiellt, redaktionellt, för träning - så länge du anger ”#ensakidag av Joakim Jardenberg, CC BY 4.0” och länkar till avsnittets kanoniska URL.
  • JJ:s ord vs AI-lagret
    JJ:s egna ord (beskrivning, transkript, guldkorn) hålls strikt åtskilda från det AI-redaktionella lagret (faktaruta, 2026-uppdatering, bedömning). Båda finns i samma svar, alltid märkta vid källan.
  • Content signals
    /llms.txt deklarerar explicit ai_train: true och attribution_required: true. Träning på innehållet är välkommen, attribution är ett krav.

FAQ

Behöver jag en API-nyckel?
Nej. Öppen endpoint, ingen autentisering. Rate limit: 60 anrop per 5 minuter per IP. Vill du köra hårdare - hör av dig.
Vad kan jag fråga om?
Allt JJ pratat om i ett snabbt föränderligt teknik- och AI-landskap sedan 2017: internet, sociala medier, integritet, plattformar, kryptovalutor, AI-modeller, arbetsliv, mediebranschen, demokrati. Cirka 500 avsnitt på svenska.
Vad är indexerat?
Hela #ensakidag-katalogen. JJ:s egna ord (beskrivning, transkript, guldkorn) och ett AI-redaktionellt lager (faktaruta, 2026-uppdatering, bedömning), tydligt åtskilda i alla svar.
Vilken licens?
CC BY 4.0. Ange ”#ensakidag av Joakim Jardenberg, CC BY 4.0” och länka till avsnittets kanoniska URL.
Hur fräscht är det?
Nya avsnitt läggs till löpande. Använd server_info för exakt dataset_version och content_hash i din cache.
Kan jag lita på svaren - hur verifierar jag en signatur?
Varje tools/call-svar är signerat med Ed25519 (EdDSA) som JWS i compact-form. Hämta den publika nyckeln från /.well-known/ensakidag-mcp-public-key.json, dela signaturens header.payload.signature, verifiera med valfritt JOSE-bibliotek. Kanonisering: sorterade nycklar, UTF-8.
Hur vet jag vilken version och dataset jag pratar med?
Anropa server_info. Du får version, build, dataset_version, content_hash och schema_version. Samma fält finns i initialize-svaret.
/mcp eller /api/mcp - vilken ska jag använda?
Båda funkar - samma protokoll, samma svar. /api/mcp är kanonisk i manifest och dokumentation. /mcp är ett alias som dessutom visar denna sida när en webbläsare öppnar den.
Får jag träna modeller på innehållet?
Ja, så länge attributionen är på plats (CC BY 4.0). Det står också uttryckligen i llms.txt: ai_train: true, attribution_required: true.
Hur skiljer ni JJ:s ord från AI-kommentar?
JJ:s ord (beskrivning, transkript, guldkorn) är märkta som källa. AI-lagret (faktaruta, 2026-uppdatering, bedömning) är märkt som AI-genererad redaktionell kommentar. Båda i samma svar - aldrig sammanblandade.
Vad är ”facit” och varför saknar nya avsnitt det?
Facit är vår bedömning i efterhand: tre 1-5-betyg (träffsäkerhet, tidlöshet, historiskt värde) plus en ärlig kommentar om vad som åldrats väl och illa. Nya avsnitt får facit först när de hunnit åldras lite.
Hur fungerar sökningen?
Hybrid: pgvector-baserad semantisk sökning över transkript-chunks (OpenAI text-embedding-3-small, 1536-dim) plus svensk fulltext på titel/beskrivning/transkript, sammanslagna med reciprocal rank fusion. Korta frågor viktas mot lexikalisk match.
Vad är guldkorn, teman och kopplingar?
Guldkorn är citerbara passager med kontext. Teman är kuraterade trådar genom arkivet (med en AI-syntes). Kopplingar är handredigerade länkar mellan avsnitt med en kort motivering.
Kan jag bygga något ovanpå?
Ja. CC BY 4.0, öppen endpoint, full provenance och signaturer. Bygg en agent, en sökapp, en visualisering - skicka gärna länk.
Hur kontaktar jag er?
joakim@jardenberg.com

Vart detta är på väg

Vi kör nu på protokollversion 2025-11-25 med full primitiv-täckning (Tools, Resources, Prompts), outputSchema, tool-annotations, paginering och signerade svar. Det som ligger framför oss:

  • MCP Apps - 2026-07-28 RC:ns UI-tillägg som låter servrar leverera inbäddade vyer direkt i klienten.
  • Spåra och adoptera release candidate 2026-07-28 när den landar som stable.

Byggd av joakim@jardenberg.com. /llms.txt · /.well-known/mcp.json · /.well-known/ensakidag-mcp-public-key.json · /.well-known/mcp/server-card.json