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
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-klienterAnvä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/listPaginerad (opak
cursor/nextCursor, ~50 per sida). Templates finns underresources/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 objektFälten
canonical_origin,publisher,canonical_url,license,last_updatedochcontent_hashfö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-svarSvaren signeras med Ed25519 (EdDSA) som JWS i compact-form och bifogas i fältet
signature. Signaturen täckertools/call structuredContentrespektiveresources/read result.contents. Samma kanonisering: sorted-keys JSON, UTF-8. Du kan verifiera mot den publika nyckeln nedan. - Verifiera själv, i tre steg
- Hämta publika JWK:n från
/.well-known/ensakidag-mcp-public-key.json. - Dela
signature.jwsiheader.payload.signature(tre base64url-segment åtskilda med punkt). - Verifiera med EdDSA via valfritt JOSE-bibliotek (Node:
jose, Python:python-jose). Payloaden är kanonisk JSON avstructuredContent(tools/call) ellerresult.contents(resources/read).
- Hämta publika JWK:n från
- 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.0Anvä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-lagretJJ: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: trueochattribution_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-28nä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