Skip to main content
Glama
jesusjaehan

LLM-Wiki-MCP

by jesusjaehan

LLM-Wiki_MCP

A local knowledge base built from PDF lecture slides on Agentic Coding, exposed through a browser viewer and an MCP server. No cloud services are required to run the wiki or the viewer.


What this project does

  1. Compiles a folder of PDFs into an interlinked Markdown wiki using compile_wiki.py and pypdf.

  2. Serves the wiki as a browser-readable site via viewer/server.py.

  3. Exposes the wiki as an MCP server (os_wiki_mcp_server.py) so that Claude Desktop and Claude Code can access the wiki through the MCP server.

The wiki covers nine lectures on Agentic Coding Basics: vibe coding, agentic coding, SDLC pipelines, agent specifications, subprocess calling, planning mode, orchestration, MCP, loops and hooks.


Related MCP server: Open Research KB

Repository structure

os-wiki-mcp/
├── os_wiki_mcp_server.py   MCP server — 4 registered tools
├── compile_wiki.py         PDF → Markdown compilation pipeline
├── wiki_tool.py            CLI: lint, search, query
├── requirements.txt        Python dependencies
├── .gitignore
│
├── viewer/
│   └── server.py           Local HTTP wiki browser (port 8000)
│
├── skills/
│   ├── ingest_source.md        Step-by-step ingest procedure
│   ├── lint_and_repair.md      Step-by-step lint and repair procedure
│   └── query_and_writeback.md  Step-by-step query and write-back procedure
│
├── wiki/
│   ├── sources/            9 compiled source summaries
│   ├── concepts/           8 concept pages
│   ├── entities/           4 entity profiles
│   ├── analyses/           2 synthesis reports
│   ├── templates/          Page scaffolds (source, concept, entity, analysis)
│   ├── index.md            Master table of contents
│   └── log.md              Append-only change log
│
├── raw/                    9 original PDF files (immutable)
├── docs/                   Design documents
├── demo/
│   └── screenshot.png
│
├── AGENTS.md               Agent persona and SOPs
├── SCHEME.md               YAML frontmatter schema
├── TASK.md                 Task contract (Task 1 complete)
├── CLAUDE.md               Environment-level rules
└── journal.md              Append-only operation log

Installation

Python 3.10 or higher is required.

pip install -r requirements.txt

requirements.txt installs:

  • mcp>=1.0.0 — MCP Python SDK (provides mcp.server.fastmcp.FastMCP)

  • pypdf>=4.0.0 — PDF text extraction used by compile_wiki.py

The viewer also uses the markdown package for richer rendering:

pip install markdown

No Anthropic API key is needed. The current implementation uses local rule-based synthesis only.


Generating the wiki

python compile_wiki.py

This reads every PDF in raw/, extracts text with pypdf, derives concepts and entities using keyword matching, writes Markdown pages into wiki/, and updates wiki/index.md and wiki/log.md. Existing pages in wiki/sources/, wiki/concepts/, and wiki/entities/ are cleared and rewritten on each run.

To verify the result:

python wiki_tool.py lint     # checks for dead links and orphan pages
python wiki_tool.py search "mcp"

Running the viewer

python viewer/server.py

Open http://localhost:8000 in a browser.

Options:
  --port  PORT    Port to listen on (default: 8000)
  --host  HOST    Host to bind    (default: 127.0.0.1)

The viewer provides:

  • Sidebar listing all pages grouped by type (Sources, Concepts, Entities, Analyses)

  • Client-side sidebar filter by slug text

  • Page type filter buttons (All / Source / Concept / Entity / Analysis)

  • Markdown rendering with fenced code blocks and tables

  • [[wikilink]] converted to clickable navigation links

  • Frontmatter shown as a metadata card at the top of each page

  • Dark / light mode toggle, persisted in localStorage

  • No JavaScript framework, no external CDN, no API calls


Running the MCP server

python os_wiki_mcp_server.py

The server runs as a stdio MCP process and prints its status to stderr:

[OS Wiki MCP] Server starting...
[OS Wiki MCP] Wiki root : /path/to/wiki
[OS Wiki MCP] Tools     : search_wiki, get_page, list_pages, query_wiki
[OS Wiki MCP] Transport : stdio
[OS Wiki MCP] Ready.

Claude Desktop configuration

Add the following to your Claude Desktop config (~/Library/Application Support/Claude/claude_desktop_config.json on macOS):

{
  "mcpServers": {
    "os-wiki": {
      "command": "python",
      "args": ["/absolute/path/to/os_wiki_mcp_server.py"]
    }
  }
}

Restart Claude Desktop. The os-wiki server appears in the tools list.


Available MCP tools

search_wiki

Searches all wiki pages (title, tags, body text) for a keyword. Returns up to 5 matching line snippets per page.

search_wiki(query="agentic")
search_wiki(query="mcp", page_type="concept")

page_type is optional and accepts: source, concept, entity, analysis, meta.

Response fields: query, total, results (list of slug, title, type, rel_path, snippets).


get_page

Fetches a single wiki page by its slug and returns its full content.

get_page(slug="mcp")
get_page(slug="andrej-karpathy")

Response fields: found, slug, title, type, rel_path, frontmatter, body, outgoing_links.

If the slug does not exist, found is false and an error message is returned.


list_pages

Lists all non-template wiki pages, optionally filtered by type.

list_pages()
list_pages(page_type="source")

Response fields: total, page_type, pages (list of slug, title, type, rel_path). Pages are sorted by type then slug.


query_wiki

Answers a natural language question using local rule-based synthesis. Matches the question against known topic areas (vibe coding, agentic coding, MCP, harness, hooks) and returns a pre-composed cross-linked Markdown report.

query_wiki(question="What is the difference between vibe and agentic coding?")
query_wiki(question="How does MCP work?")

Response fields: question, title, slug, answer (full Markdown), note (phase notice).

This tool does not call any external API. LLM-powered synthesis is not yet implemented.


Harness

Five files govern how agents and the compiler behave:

File

Purpose

AGENTS.md

Defines the LLM Wiki Librarian persona, three SOPs (Ingest, Query & Write-Back, Lint), and forbidden actions

SCHEME.md

Canonical directory layout, slug conventions, and required YAML frontmatter fields for each page type

TASK.md

Project task contract and completion checklist (status: complete)

CLAUDE.md

Environment-level rules: CLI commands, Markdown-only constraint, harness compliance requirement

journal.md

Append-only log of operations; one line added after each successful task cycle

The skills/ directory provides step-by-step checklists for the three SOPs defined in AGENTS.md: ingesting a new source, running lint and repairing errors, and querying with optional write-back.


Demo

Viewer screenshot This screenshot demonstrates the wiki viewer rendering the generated knowledge base.

Maintenance

ActivityInactive
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first MCP server for building and querying PDF knowledge bases. It indexes PDFs into DuckDB and exposes evidence-grounded retrieval tools to separate corpus-backed answers from independent reasoning.
    10
    3
    MIT
  • F
    license
    Not graded
    quality
    B
    maintenance
    Local MCP server that indexes documentation from URLs/files into a vector database, enabling coding agents to search and use up-to-date library and API documentation.
    -