mcp-wiki-server
# mcp-wiki-server
A minimal, agent-agnostic MCP server that exposes search over local markdown documentation. Any MCP-compatible client (Claude Code, Claude Desktop, or a custom agent built on any model) can connect to it — the server has no knowledge of which agent or LLM is calling it.
## Tools exposed
- `search_docs(query, limit?)` — keyword search across `docs/*.md`, returns matching files with a snippet.
- `read_doc(path)` — read the full contents of a doc by its relative path.
## Setup
```bash
npm install
npm run build
```
## Run it standalone (for debugging)
```bash
npm run inspect
```
This launches the [MCP Inspector](https://github.com/modelcontextprotocol/inspector), a web UI for calling your tools directly without needing a full LLM client.
## Wire it into Claude Code
```bash
claude mcp add wiki-search -- node /absolute/path/to/mcp-wiki-server/dist/index.js
```
## Wire it into Claude Desktop
Add to `claude_desktop_config.json`:
```json
{
"mcpServers": {
"wiki-search": {
"command": "node",
"args": ["/absolute/path/to/mcp-wiki-server/dist/index.js"]
}
}
}
```
Any other MCP client follows the same pattern: point it at `node dist/index.js` as a subprocess command.
## Add your own docs
Drop `.md` files into `docs/` (subfolders supported). No re-deploy needed — `search_docs` reads from disk on every call.
## Next steps toward a shared/remote deployment
1. Swap `StdioServerTransport` for the Streamable HTTP transport in `src/index.ts`.
2. Point `docs/` at a real source (Confluence/Notion/Drive) instead of local files.
3. Containerize and deploy to Cloud Run.
4. Add auth (OAuth2/OIDC or Cloud Run IAM) in front of the HTTP endpoint.
TDQS
Scored across 2 tools
The two tools serve clearly distinct purposes: search_docs finds documents by keyword, while read_doc retrieves the full content of a known document by path. There is no overlap or ambiguity between them.
Both tools use a verb_noun pattern (search_docs, read_doc), making the pattern predictable. There is a minor inconsistency in pluralization—search_docs is plural while read_doc is singular—but it does not cause confusion.
With only two tools, the server feels minimally scoped. This is appropriate for a simple read-only wiki, but it is on the thin side and offers no additional utility beyond search and read.
For a read-only documentation server, the search-and-read lifecycle is complete. The only notable gap is the lack of a way to list or browse all documents without a search query, which could be a minor workaround in some cases.