2026 forge

Tessera MCP

Local MCP server for semantic search over non-markdown Obsidian attachments — PDFs, images, audio, CSV, code. The sibling to Obsidian Semantic MCP that covers everything markdown cannot see.

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 stored as 768-dimension embeddings in a local SQLite database. Cosine similarity search returns ranked chunks with source path and page or timestamp metadata. Claude reaches it through the MCP protocol — 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

Active. v0.4.0. In the forge alongside Obsidian Semantic MCP as the full vault memory stack.