aedificium-template
Click on "Install Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@aedificium-templateCreate a note on the central limit theorem with a LaTeX equation"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
aedificium — is a way to learn with Claude Code.
Aedificium is a web companion for Claude Code using channels for communication.
Use it to build notes, a lexicon of concept definitions and a collection of PDFs to talk about. Notes + Lexicon are maintained in a github repo. PDFs in Git LFS.
Aedificium supports math notation - and a companion repo supports coding up demonstrations or tests of anything in the notes that can be expressed as math or code.
The UI is a card-grid UI running on http://localhost:8788 for notes, definitions (a lexicon), and PDFs, with a chat pane bridged to Claude Code via MCP. Math renders
first-class (KaTeX). Everything on disk is plain markdown, auto-committed to
git, and (optionally) auto-pushed to GitHub.
This is an open-source template without any notes or PDFS. Fork it, clone your fork next to a sibling scriptorium/ code lab, and start writing.
Fearure set
Card grid + reader — notes on the left, chat with Claude on the right.
First-class math —
$e^{i\pi}+1=0$inline,$$…$$display, KaTeX server-side. Renders in the card grid and in the reader.Lexicon — one definition per file (
lexicon/eigenvalue.md), rendered as a dictionary entry with headword + synonyms + domain label.PDF library — drop a PDF into
pdfs/; a sidecar discussion card appears automatically. No embedded viewer — the browser's native one is better. Deep-link into pages with#page=N.Chat is Claude Code — you type in the browser, Claude answers, and your current card selection travels along as context (
refs=…).Wiki-links —
[[slug]]in any note becomes a click-to-open link in the reader, with/note/<slug>deep-links via the History API.Git-native — writes auto-commit (debounced ~3 s) and, if
originis set, auto-push. LFS pre-configured for PDFs so GitHub handles large binaries cleanly.
Related MCP server: MCP Note-Taking Server
Prerequisites
Developed and tested on macOS (arm64). Linux should work with the equivalent package installs.
bun — the JavaScript runtime the server uses.
brew install oven-sh/bun/bun.git-lfs — for PDFs.
brew install git-lfs.Claude Code — the CLI the chat pane talks to. This is what makes the notebook interactive.
Setup
# Fork on GitHub first, then:
git clone git@github.com:clausd/aedificium.git
cd aedificium
bun install
git lfs installLaunching
To make the channel work Claude Code needs to load the UI and for that to work you need to launch claude code from the terminal with the following permission setting
--dangerously-load-development-channels server:aedificium for the browser →
Claude direction of the channel to work.
So from the root of the repo do
claude --dangerously-load-development-channels server:aedificiumClaude Code will spawn bun server.ts automatically (per .mcp.json). Then
open http://localhost:8788.
Updating aedificium
If you need to pick up a change to the platform itself there's currently no other way than exiting Claude and restarting.
Repo folder structure
notes/ YYYY-MM-DD-HHMM-slug.md — free-form notes
lexicon/ <slug>.md — one term per file, dictionary style
pdfs/ PDFs + auto-generated sidecar .md discussion cards
assets/ pasted / dropped images referenced from cards
files/ misc non-PDF uploads
archive/ archived cards (preserves original subdir)
data/chat.jsonl durable chat transcript (tracked + searchable)
Read CLAUDE.md for further details
Scriptorium
If you want a companion Python repo for models, notebooks, and figures, use scriptorium-template as a sibling checkout:
your-workspace/
aedificium/ # this repo
scriptorium/ # from scriptorium-templateThe scriptorium aedificium.py bridge lets notebook cells render aedificium
prose inline and save matplotlib figures directly into aedificium/assets/.
Set AEDIFICIUM_DIR (in scriptorium) or AED_SCRIPTORIUM_DIR (here) if the
two aren't siblings.
GitHub setup
Push to GitHub as usual once you have LFS installed locally:
git remote set-url origin git@github.com:clausd/aedificium.git
git push -u origin mainNote changes are automatically committed and pushed if a remote is set up. Auto-push runs after each auto-commit (5 s debounce). Disable with
AED_NO_PUSH=1. GitHub LFS free tier is 1 GB storage / 1 GB bandwidth per
month per account — comfortably enough for a personal PDF library up to a
few hundred papers.
Environment knobs
Var | Default | Effect |
|
| HTTP + WebSocket port. |
| unset | Disable all auto-commit. |
| unset | Auto-commit but never auto-push. |
| unset | Disable chat-log checkpointing. |
|
| Coalesce commits into one push. |
|
| Idle time before a chat checkpoint. |
|
| Max chat age before a forced checkpoint. |
|
| Where |
|
| Card "open in editor" URL scheme. |
Troubleshooting
"I type in the chat pane and nothing happens." Almost always the missing
--dangerously-load-development-channels server:aedificiumflag. Restart Claude Code with it."Claude says the
replytool is unavailable." Bun got orphaned. Kill the process on port 8788, exit and re-enter Claude Code."
git pushrefuses a PDF (exceeds 100 MB)." LFS wasn't active when the PDF was added. Rungit lfs install, thengit lfs migrate import --include="*.pdf" --everything, thengit push --force-with-lease(only safe when you're the sole clone)."Auto-commit stopped." Check bun's stderr. Most common cause is a merge conflict on
data/chat.jsonlbetween machines — the conflict is usually the union of the two sides (chat.jsonl is append-only).
License
MIT. Adapt freely — the point is that you own your notebook.
Credits
Original concept, architecture, and implementation by Claus Dahl.
Everybody in the AI universe had a version of this idea already btw. Here's Karpathy's version
The Aedificium was the name of the building housing the library in Umberto Eco's The Name of The Rose. The Scriptorium is where the monks worked on the books.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections. Dates show when Glama detected each change.
No tool schema history has been recorded yet.
This server cannot be installed
Maintenance
Resources
Unclaimed servers have limited discoverability.
Looking for Admin?
If you are the server author, to access and configure the admin panel.
Related MCP Connectors
Persistent context for Claude. Your AI always knows your projects and next actions across sessions.
Personal wiki and memory layer for AI assistants. Persistent, structured memory across sessions.
- TaprootOAuthcom.taproothq
Persistent memory layer for AI tools. Save and recall notes across Claude and other MCP clients.
Persistent memory for Claude Code and Cursor. Stop re-explaining your project every session.
Related MCP Servers
- FlicenseNot gradedqualityBmaintenanceEnables storing and searching personal notes, documents, and snippets using semantic search and RAG capabilities across Claude Desktop, VS Code, and Open WebUI.2-
- AlicenseNot gradedqualityDmaintenanceEnables structured note-taking with markdown support, dynamic tagging system, advanced search capabilities, and markdown export functionality through natural language conversations in Claude Desktop.3GPL 3.0
- FlicenseNot gradedqualityNot gradedmaintenanceEnables Claude to read, write, search, and manage Obsidian vault notes with Git-backed sync support for multi-device access and extensible AI workflows.5,784-
- AlicenseNot gradedqualityBmaintenanceEnables AI assistants like Claude and Codex to read, write, search, and traverse Markdown notes stored in a self-hosted knowledge base.4MIT
Latest Blog Posts
- Who's Calling? MCP Hosts Are an Identity Blind Spot (And the Spec Knows It)By Om-Shree-0709 on .mcpAgent IdentityOAuth 2.1
- Your AI Chatbot Just Exposed Your CEO's Salary to an InternBy Om-Shree-0709 on .Agent IdentityMCP SecurityOAuth Delegation
- Why MCP Servers Need Execution Sandboxing (And Why Your Current Stack Isn't Enough)By Om-Shree-0709 on .Agentic AiPrompt InjectionWebAssembly
MCP directory API
We provide all the information about MCP servers via our MCP API.
curl -X GET 'https://glama.ai/api/mcp/v1/servers/clausd/aedificium-template'
If you have feedback or need assistance with the MCP directory API, please join our Discord server