2026forge

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.