Tessera MCP
Local MCP server for semantic search over non-markdown Obsidian attachments. Covers PDFs, images, audio, CSV, and code: everything markdown cannot see. Sibling to Obsidian Semantic MCP.
Tessera is the attachment layer for the Obsidian memory stack. obsidian-semantic-mcp already handles .md files. Tessera handles everything else: PDFs become searchable page by page, images go through OCR and local vision description, audio files get transcribed with timestamps via whisper.cpp, and HTML, CSV, and code files each get a sensible loader.
Everything is indexed locally in SQLite. Search returns ranked results with source path and page or timestamp. Claude reaches it directly: ask “what was that diagram I screenshotted last month?” and tessera answers.
Built in Rust using rmcp. Zero cloud dependencies: Ollama for embeddings and vision, whisper.cpp for audio, all running locally.
What it does
- PDFs: text extracted per page via
lopdf - Images: OCR and text description via local Ollama vision model
- Audio: full transcript with timestamps via local whisper.cpp
- HTML, CSV, code: per-type loaders with sensible chunking
- Single
tessera index <vault>command, incremental on subsequent runs - Registered with Claude Code via
claude mcp add tessera
Status
In the forge. v0.4.0. Attachment layer of the vault memory stack, sibling to Obsidian Semantic MCP.