Wiki MCP
Provides typo-tolerant, ranked full-text search and autocomplete over the wiki's Markdown pages via Meilisearch, keeping the search index in sync with file changes and falling back to SQLite FTS5 if Meilisearch is unavailable.
This server does not currently have a deployable release on Glama. Follow the repository's setup instructions to install and configure it for your MCP client, including any required credentials and local dependencies.
Wiki MCP ๐
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 |
๐ค 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 UI built with React + shadcn/ui โ visual (WYSIWYG) editor that saves plain Markdown, Markdown source mode with live preview, light/dark |
๐ Wiki Links |
|
๐ Dynamic Categories | Create custom folders (categories) on the fly โ the install starts you with companies/contacts/accounts/services |
๐ณ Docker Ready | One command to run everything: |
๐ 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
Option 1: One-line install (Recommended)
The only prerequisite is Docker. No Node, no git.
curl -fsSL https://raw.githubusercontent.com/Dreamernosleep/wiki-mcp/main/setup.sh | bashThis downloads the project into ./wiki-mcp, creates your .env, generates a search-engine
password, starts everything with Docker Compose, and prints the URLs plus an MCP config block to
paste into your AI tool. Piped into bash it uses the defaults (UI on 80, API on 3000); to be
asked for the ports instead, run bash <(curl -fsSL https://raw.githubusercontent.com/Dreamernosleep/wiki-mcp/main/setup.sh).
Already have a clone? Run ./setup.sh from the repository root (./setup.sh --yes for no
prompts, --no-start to configure only). Re-running it is safe: existing .env values are kept.
Windows: run the installer inside WSL or Git Bash (Docker Desktop for Windows installs WSL).
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_KEYis 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 devOption 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 (18)
Tool | Description |
| List all wiki categories |
| Create a new category (folder) |
| Rename a category (display name, description) |
| Delete a category; with |
| Create a new page (from markdown, or from a template) |
| Get a page by category/slug |
| Update a page's content |
| Delete a page |
| List all pages (filter by category) |
| Smart search (typo-tolerant, ranked), optionally inside one category |
| Get pages linked to/from a page |
| Get the full link graph |
| Force sync from markdown files |
| List page templates |
| Get a template with its markdown body |
| Create a reusable page template |
| Update a template's name, category, default flag or body |
| Delete a template |
๐ REST API
Method | Endpoint | Description |
|
| List categories |
|
| Create category |
|
| Rename a category ( |
|
| Delete a category ( |
|
| List pages ( |
|
| Get a page |
|
| Create a page ( |
|
| Update a page |
|
| Delete a page |
|
| Search pages (optional |
|
| Autocomplete suggestions |
|
| Get link graph |
|
| Get linked pages |
|
| Force file sync |
|
| Get raw markdown |
|
| List page templates |
|
| Get a template |
|
| Create a template |
|
| Update a template |
|
| Delete a template |
|
| 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; gitignored, created on first start)
โ โโโ _templates/ # Page templates (see below)
โ โโโ companies/ # One page per client organization
โ โโโ contacts/ # People at those companies
โ โโโ accounts/ # Engagements: status, services, timeline
โ โโโ services/ # Your service catalog
โ โโโ engineering/ # 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: companies
slug: acme
title: Acme Inc
created: 2026-10-27
updated: 2026-10-27
created_by: agent
---
# Acme Inc
## Contacts
- [[contacts/jane-doe]] โ CEO
## Accounts
- [[accounts/acme-website-redesign]] โ active๐ Page Templates
Templates keep pages of the same kind (a company, a contact, meeting notes) in the same shape, whether a person creates them in the web UI or an agent creates them over MCP. A template is a markdown file in content/_templates/:
---
name: Company profile
description: One page per client organization
category: companies # optional: the category this template belongs to
default: true # optional: preselected for new pages in that category
---
# {{title}}
## Overview
- Domain:
- Industry:{{title}},{{category}}and{{date}}are filled in when a page is created from the template.A template with a
categoryis offered for that category; without one it is general purpose. Only one template per category can bedefault; setting a new default clears the previous one.The install ships a CRM-style starter kit: four categories (Companies, Contacts, Accounts, Services), each with a default template (Company profile, Contact card, Account, Service) that links records together with
[[category/slug]], plus three general templates (Procedure, Meeting notes, Decision record). Categories and templates are written on first start only; rename, edit or delete them freely.In the web UI, the New page dialog has a Template picker, and any open page can be saved as a template (the page heading becomes
{{title}}).Agents:
list_templatesshows what exists,create_pageaccepts atemplateid (and falls back to the category default whencontentis omitted), andcreate_template/update_template/delete_templatemanage them.
๐ Wiki Links
Link pages with [[slug]] or [[category/slug]]:
See [[acme]] for details.
Or use full path: [[companies/acme]]๐จ 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.
๐ Report a Bug
๐ก Request a Feature
๐ Security Policy
๐ Code of Conduct
๐ License
This project is licensed under the MIT License โ see the LICENSE file for details.
๐ Acknowledgments
Model Context Protocol โ AI agent integration
Meilisearch โ Smart search engine
shadcn/ui + Tailwind CSS โ Web UI components
Marked.js โ Markdown rendering
Chokidar โ File watching
node:sqlite โ Database
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
Loading tool schema changelogโฆ
This server cannot be deployed
Maintenance
Related MCP Connectors
Shared project wiki for AI agents: read and write pages, next actions, and activity logs over MCP.
Persistent memory, knowledge graph, task management and more for AI agents via MCP.
Knowledge base MCP for AI agents on iknow.dev. Search, read, and maintain via OAuth.
One memory, every AI. A shared, user-owned markdown memory your AI clients read and write over MCP.
Related MCP Servers
- FlicenseNot gradedqualityDmaintenanceEnables AI agents to interact with a persistent knowledge graph backend using MCP tools for reading, searching, and analyzing wiki pages with vector search and graph algorithms.5-
- AlicenseNot gradedqualityCmaintenanceEnables 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.23 npmMIT
- AlicenseNot gradedqualityBmaintenanceEnables agents to semantically search and read curated local markdown knowledge bases through MCP, with optional CLI and dashboard tooling.MIT
- AlicenseAqualityBmaintenanceProvides 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.79MIT