Suggests a relevant xkcd comic during a conversation, via semantic search over every comic.
MCPpedia last refreshed this data
Config is the same across clients — only the file and path differ.
{
"mcpServers": {
"xkcdai": {
"env": {
"XKCDAI_DATA_DIR": "C:\\your\\path\\to\\xkcdai\\data"
},
"command": "C:\\your\\path\\to\\xkcdai\\.venv\\Scripts\\xkcdai-server.exe"
}
}
}Are you the author?
Add this badge to your README to show your security score and help users find safe servers.
An MCP server that surfaces the right xkcd comic during a conversation, if one is relevant.
No automated test available for this server. Check the GitHub README for setup instructions.
Five weighted categories — click any category to see the underlying evidence.
No known CVEs.
No package registry to scan.
Be the first to review
Have you used this server?
Share your experience — it helps other developers decide.
Sign in to write a review.
Others in entertainment / search
Context7 Platform -- Up-to-date code documentation for LLMs and AI code editors
Production ready MCP server with real-time search, extract, map & crawl.
Use any LLMs (Large Language Models) for Deep Research. Support SSE API and MCP server.
Web and local search using Brave Search API
MCP Security Weekly
Get CVE alerts and security updates for io.github.papjuli/xkcdai and similar servers.
Start a conversation
Ask a question, share a tip, or report an issue.
Sign in to join the discussion.
An MCP server that surfaces the right xkcd comic during a conversation, if one is relevant.
Live connector:
https://xkcdai.onrender.com/mcp— add it in claude.ai → Settings → Connectors. See Use the deployed MCP server.
It builds a semantic index over every xkcd comic (title + mouseover text +
transcript) using on-device embeddings, then exposes a single find_xkcd tool.
A Claude conversation can call it whenever the topic feels xkcd-shaped; a
relevance threshold means weak matches return nothing, so it stays quiet instead
of forcing a tenuous reference.
The fetched transcripts, explanations, and the embeddings are currently committed in this repo, under data/.
xkcd JSON API ─┐
├─► comics.json + explain.json ─► embeddings.npy ─► find_xkcd ─► Claude
explainxkcd ──┘ (cache) (bge-small) (cosine) (mentions it
(transcripts + if it fits)
explanations)
fastembed (ONNX) with BAAI/bge-small-en-v1.5 — local, free,
offline after first download, no PyTorch. Swap the model in src/xkcdai/embed.py
(e.g. BAAI/bge-base-en-v1.5 for marginally better ranking at ~3× the size).min_score (default 0.62) is just a coarse
floor; the real "should I bring this up?" decision is made by the calling model,
guided by the score bands documented on the find_xkcd tool.The server is deployed at https://xkcdai.onrender.com on Render. Add it as a Claude custom connector to use it in the Claude web and mobile apps (note: the Free plan only allows one custom connector). Anyone can add the same URL in their own account.
In claude.ai (web — do this once; it then syncs to the mobile app):
/mcp path: https://xkcdai.onrender.com/mcpfind_xkcd tool is now available in chats, on desktop and phone.
For Claude to suggest comics on its own, also add the instruction from
Make Claude suggest comics proactively
to your Profile preferences.Notes
main auto-redeploy.python -m venv .venv
# Windows (PowerShell): .venv\Scripts\Activate.ps1
# macOS/Linux: source .venv/bin/activate
pip install -e .
# Fetch comics + their explainxkcd context, then embed (downloads the model once).
# First run ~10 min; re-running later only fetches what's new.
xkcdai build
Add --no-enrich to skip the explainxkcd fetch (faster/offline, weaker matches).
Test it from the command line:
xkcdai search "my code finally compiled after an hour"
xkcdai search "ar
... [View full README on GitHub](https://github.com/papjuli/xkcdai#readme)