Skip to main content
Glama
wiki-compiler
by Ray0907

wiki-compiler

A CLI + MCP server that compiles web sources into a structured, growing knowledge base — Obsidian-compatible, local-first, schema-driven.

"There is room here for an incredible new product instead of a hacky collection of scripts." — Andrej Karpathy

Most tools give your AI access to your notes. This one gives your AI a compiled knowledge structure — backlinked wiki pages built from raw sources, organized by a schema you define.


How it works

wiki add <url>
    │
    ▼
fetch page → strip HTML → send to Claude
    │
    ▼
Claude extracts: title, summary, key_concepts, categories, tags
    │
    ▼
vault/agent/{slug}.md  ← Obsidian-compatible markdown
    │
    ▼
wiki query "what do I know about X?"
    │
    ▼
Claude reads all vault pages → synthesized answer

Dual vault architecture (kepano's contamination insight):

  • vault/agent/ — compiler output, messy, experimental

  • vault/personal/ — your curated notes, never touched by the tool


Related MCP server: LLM Wiki MCP

Install

git clone https://github.com/Ray0907/wiki-compiler
cd wiki-compiler
uv sync
export ANTHROPIC_API_KEY=sk-ant-...

Usage

# Compile a source into your vault
uv run wiki.py add https://github.com/kepano/obsidian-skills

# Written: vault/agent/kepanoobsidian-skills-agent-skills-for-obsidian.md

# Ask a question against everything you've compiled
uv run wiki.py query "What is the Obsidian CLI used for?"

Then open vault/ as an Obsidian vault — every [[wikilink]] in the compiled pages becomes a node in your knowledge graph.


Output format

Each compiled page:

---
title: kepano/obsidian-skills
url: https://github.com/kepano/obsidian-skills
summary: A collection of agent skill files that teach AI agents how to read
  and write Obsidian vaults using Markdown, Bases, JSON Canvas, and CLI.
categories:
  - AI
  - Tools
tags:
  - obsidian
  - agents
  - mcp
date_compiled: '2026-04-03'
---
## Summary
A collection of agent skill files...

## Key Concepts
- [[Obsidian CLI]]
- [[Agent Skills]]
- [[JSON Canvas]]
- [[Model Context Protocol]]
- [[Vault Structure]]

Schema

schema.yaml controls what the compiler produces. Edit it to match your domain:

categories:
  - AI
  - Tools
  - Research
  - Knowledge Management
  - Agent Architecture

backlinks:
  min_concepts: 2
  max_concepts: 8
  format: "[[{concept}]]"

output:
  filename_pattern: "{slug}.md"
  frontmatter_fields:
    - title
    - url
    - summary
    - categories
    - tags
    - date_compiled

Schema is re-read on every run — no restart needed.


MCP Server

Connect to Claude Desktop, Cursor, or any MCP client:

uv run mcp_server.py

Two tools exposed:

  • add_document(url) — compile a URL into the vault

  • search_wiki(query) — query the vault

Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "wiki": {
      "command": "/path/to/wiki-compiler/.venv/bin/python",
      "args": ["/path/to/wiki-compiler/mcp_server.py"],
      "cwd": "/path/to/wiki-compiler",
      "env": {
        "ANTHROPIC_API_KEY": "sk-ant-..."
      }
    }
  }
}

Tests

uv run pytest tests/ -v
# 16 passed in 0.45s

Why not an Obsidian plugin?

Obsidian plugins can't run heavy LLM pipelines, are tied to one app, and the Obsidian team is already building native AI. The value here is the compiler — the pipeline that turns raw sources into a coherent, schema-consistent knowledge structure. Obsidian is just a convenient viewer for the output.

The MCP server makes the compiled vault available to any LLM client. As models improve, the compilation gets better — the schema and accumulated knowledge stay yours.


Roadmap

  • wiki compile — batch mode, multiple sources at once

  • Human review gate — promote pages from vault/agent/ to vault/personal/

  • wiki report — autonomous mode: one query spawns a team of agents, builds an ephemeral wiki, returns a full report

  • Obsidian CLI integration — use backlink graph for smarter query routing

Available Tools

3 tools
add_documentB

Fetch and compile a URL into the wiki vault.

Inputs: url (required).

lint_wikiA

Audit the wiki vault for contradictions, orphans, and missing cross-references.

Inputs: no named parameters.

search_wikiC

Answer a question using the local wiki vault.

Inputs: query (required).

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    B3.3/5.0

    Scored across 3 tools

    Disambiguation5/5

    Each tool targets a distinct operation: adding documents, searching the wiki, and auditing it. There is no overlap in purpose, and the descriptions clearly differentiate ingestion, query, and maintenance tasks.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern: add_document, search_wiki, lint_wiki. This makes the set predictable and easy to navigate.

    Tool Count4/5

    With only 3 tools, the server is at the low end of the typical range. The tools are focused and each serves a clear purpose, but the set is slightly sparse for a wiki compiler.

    Completeness3/5

    The core operations of adding, searching, and linting are covered, but there are no update, delete, or list document tools. This creates notable gaps in the document lifecycle and forces agents to work around them.

    Maintenance

    ActivityInactive
    ResponsivenessOutdated data

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      D
      maintenance
      MCP server for persistent, compounding markdown wikis maintained by LLMs. Enables incremental knowledge base building with interlinked pages, search, and raw source management.
      34 npm
      1
      MIT
    • F
      license
      Not graded
      quality
      D
      maintenance
      Compiles an Obsidian knowledge graph into a queryable MCP server, allowing AI agents to search concepts, get nodes, and retrieve related information.
      -
    • F
      license
      Not graded
      quality
      D
      maintenance
      Enables AI assistants to fetch webpages, convert them to Markdown, index into SQLite FTS5, and query the knowledge base through MCP tools.
      -