Skip to main content
Glama

Wiki MCP ๐Ÿš€

CI Release License: MIT Node TypeScript

An open-source company knowledge wiki with AI superpowers. Markdown files + Smart search + MCP server + Web UI + Docker

Wiki MCP is a self-hosted knowledge base that combines the simplicity of Markdown files with the power of AI agents through the Model Context Protocol (MCP). Your wiki is just a folder of .md files โ€” git-friendly, portable, and yours forever.

โœจ Features

Feature

Description

๐Ÿ“ Markdown Files

Your wiki is just .md files with YAML frontmatter โ€” edit in any editor!

๐Ÿค– MCP Server

AI agents (Claude, pi, Cursor, etc.) can read, write, and search your wiki

๐Ÿ” Smart Search

Typo-tolerant search with Meilisearch (fallback: SQLite FTS5)

๐ŸŒ Web UI

Clean black-and-white editor built with React + shadcn/ui โ€” live preview, split view, autocomplete, light/dark

๐Ÿ”— Wiki Links

[[page-slug]] or [[category/page-slug]] with autocomplete while typing

๐Ÿ“‚ Dynamic Categories

Create custom folders (categories) on the fly โ€” not just finance/ops/service

๐Ÿณ Docker Ready

One command to run everything: docker compose up -d

๐Ÿ‘€ File Watcher

Edit files in VS Code/Obsidian โ€” changes auto-sync to search index

๐Ÿ“Š Graph View

See how pages connect with a full link graph

๐Ÿ”„ Dual Transport

MCP over stdio (local) or Streamable HTTP (Docker/remote)

Related MCP server: om

๐Ÿ—๏ธ Architecture

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                     docker compose up                    โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚ Meilisearch โ”‚  โ”‚  Wiki API   โ”‚  โ”‚    Web UI       โ”‚  โ”‚
โ”‚  โ”‚  (search)   โ”‚โ—„โ”€โ”‚  (MCP+REST) โ”‚โ—„โ”€โ”‚   (browser)     โ”‚  โ”‚
โ”‚  โ”‚  :7700      โ”‚  โ”‚  :3000      โ”‚  โ”‚   :80           โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ”‚                          โ”‚                               โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ดโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”  โ”‚
โ”‚  โ”‚  Volumes: content/ (markdown), data/ (SQLite)     โ”‚  โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜  โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜
         โ†‘                              โ†‘
    ๐Ÿค– AI Agents (MCP)            ๐Ÿ‘ค Humans (Browser)
    pi, Claude, Cursor...         View & Edit

๐Ÿš€ Quick Start

git clone https://github.com/Dreamernosleep/wiki-mcp.git
cd wiki-mcp
npm run setup

The setup script checks for Node 22+ and Docker, creates your .env, generates a search-engine password, asks for the ports (defaults: UI on 80, API on 3000), starts everything with Docker Compose, and prints the URLs plus an MCP config block to paste into your AI tool. Re-running it is safe: existing .env values are kept. Use npm run setup -- --yes for a non-interactive install.

Option 1b: Plain Docker Compose

git clone https://github.com/Dreamernosleep/wiki-mcp.git
cd wiki-mcp
cp .env.example .env     # optional: edit ports and MEILISEARCH_KEY
docker compose up -d     # Meilisearch + API + Web UI

# Open http://localhost in your browser!

About Meilisearch: it is an open-source search engine that runs as a local container here. No account, no external service, no cost. MEILISEARCH_KEY is simply a password that locks your own instance. If the container is unavailable the wiki falls back to SQLite full-text search.

Option 2: Local Development

# Prerequisites: Node.js 22+, Docker (for Meilisearch)

# Install dependencies
npm install

# Start Meilisearch
docker run -d -p 7700:7700 getmeili/meilisearch

# Run the API in development mode (http://localhost:3000)
npm run dev

# In a second terminal, run the web UI (http://localhost:5173, proxies /api to :3000)
cd ui && npm install && npm run dev

Option 3: MCP Only (for AI agents)

npm install && npm run build

# Run as MCP server (stdio)
MCP_TRANSPORT=stdio node dist/server.js

๐Ÿ”Œ Connect AI Agents

pi / Claude Desktop (Local)

{
  "mcpServers": {
    "wiki": {
      "command": "node",
      "args": ["/path/to/wiki-mcp/dist/server.js"],
      "env": {
        "MCP_TRANSPORT": "stdio",
        "MEILISEARCH_URL": "http://localhost:7700"
      }
    }
  }
}

Claude Code / Cursor / Remote Agents (HTTP)

{
  "mcpServers": {
    "wiki": {
      "url": "http://localhost:3000/mcp"
    }
  }
}

๐Ÿ› ๏ธ MCP Tools (11)

Tool

Description

list_categories

List all wiki categories

create_category

Create a new category (folder)

create_page

Create a new page with markdown

get_page

Get a page by category/slug

update_page

Update a page's content

delete_page

Delete a page

list_pages

List all pages (filter by category)

search_pages

Smart search (typo-tolerant, ranked)

get_linked_pages

Get pages linked to/from a page

get_graph

Get the full link graph

sync_files

Force sync from markdown files

๐ŸŒ REST API

Method

Endpoint

Description

GET

/api/categories

List categories

POST

/api/categories

Create category

DELETE

/api/categories/:id

Delete empty category

GET

/api/pages

List pages (?category=finance)

GET

/api/pages/:category/:slug

Get a page

POST

/api/pages

Create a page

PUT

/api/pages/:category/:slug

Update a page

DELETE

/api/pages/:category/:slug

Delete a page

GET

/api/search?q=...

Search pages

GET

/api/search/suggest?q=...

Autocomplete suggestions

GET

/api/graph

Get link graph

GET

/api/pages/:cat/:slug/links

Get linked pages

POST

/api/sync

Force file sync

GET

/api/raw/:category/:slug

Get raw markdown

GET

/health

Health check

๐Ÿ“ Project Structure

wiki-mcp/
โ”œโ”€โ”€ .github/                # GitHub Actions, issue templates
โ”œโ”€โ”€ src/
โ”‚   โ”œโ”€โ”€ server.ts           # MCP + REST API server
โ”‚   โ”œโ”€โ”€ db.ts               # SQLite (graph, metadata)
โ”‚   โ”œโ”€โ”€ files.ts            # Markdown file I/O
โ”‚   โ”œโ”€โ”€ search.ts           # Meilisearch client
โ”‚   โ”œโ”€โ”€ watcher.ts          # File watcher (auto-sync)
โ”‚   โ””โ”€โ”€ sync.ts             # Manual sync script
โ”œโ”€โ”€ ui/                     # Web UI (Vite + React + shadcn/ui)
โ”‚   โ”œโ”€โ”€ src/
โ”‚   โ”‚   โ”œโ”€โ”€ App.tsx         # App state and layout
โ”‚   โ”‚   โ”œโ”€โ”€ components/     # Sidebar, editor, preview, dialogs (+ ui/ from shadcn)
โ”‚   โ”‚   โ”œโ”€โ”€ lib/            # API client, markdown rendering
โ”‚   โ”‚   โ””โ”€โ”€ styles/
โ”‚   โ”‚       โ”œโ”€โ”€ brand.css   # โ˜… All colours, radius, fonts โ€” edit to re-theme
โ”‚   โ”‚       โ””โ”€โ”€ index.css   # Tailwind + token mapping
โ”‚   โ”œโ”€โ”€ BRANDING.md         # How to change colours / name
โ”‚   โ”œโ”€โ”€ Dockerfile          # Builds the bundle, serves it with nginx
โ”‚   โ””โ”€โ”€ nginx.conf.template # Serves the app and proxies /api to the API
โ”œโ”€โ”€ content/                # Your wiki (markdown files)
โ”‚   โ”œโ”€โ”€ finance/
โ”‚   โ”œโ”€โ”€ operations/
โ”‚   โ”œโ”€โ”€ service/
โ”‚   โ””โ”€โ”€ clients/            # Custom categories!
โ”œโ”€โ”€ data/                   # SQLite database
โ”œโ”€โ”€ docker-compose.yml      # One-command setup
โ”œโ”€โ”€ Dockerfile              # Wiki API container
โ””โ”€โ”€ README.md

๐Ÿ“ Markdown Format

Pages are stored as markdown files with YAML frontmatter:

---
id: abc123-uuid
category: finance
slug: q4-budget
title: Q4 Budget Planning
created: 2026-10-27
updated: 2026-10-27
created_by: agent
---

# Q4 Budget Planning

The Q4 budget depends on [[operations/procurement]] timelines.

## Key Figures
- Revenue target: $2.5M

Link pages with [[slug]] or [[category/slug]]:

See [[operations/procurement]] for details.
Or use full path: [[finance/expense-policy]]

๐ŸŽจ Theming the Web UI

The UI ships black-and-white with a light/dark toggle. Every colour, the corner radius and the fonts live in one file: ui/src/styles/brand.css. Change --primary there and every button, active row, focus ring and link follows. See ui/BRANDING.md for a walkthrough, including how to set a brand colour instead of black.

๐Ÿงช Development

# Run tests
npm test

# Test MCP client
npm run test:mcp

# Manual sync (rebuild DB from files)
npm run sync

# Docker commands
npm run docker:build
npm run docker:up
npm run docker:down
npm run docker:logs

๐Ÿค Contributing

We welcome contributions! Please see our Contributing Guide for details.

๐Ÿ“œ License

This project is licensed under the MIT License โ€” see the LICENSE file for details.

๐Ÿ™ Acknowledgments


Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    B
    maintenance
    Enables AI assistants to interact with a Markdown-based knowledge base with backlinks, tags, and full-text search, supporting note creation, reading, updating, renaming, and deletion through MCP tools.
    19 npm
    MIT
  • A
    license
    A
    quality
    A
    maintenance
    Provides AI agents with a local, private Markdown-based memory vault and SQLite search. Enables agents to search, read, list, and traverse linked knowledge pages via MCP with zero external runtime dependencies.
    7
    8
    MIT