avr-docs-mcp
This MCP (Model Context Protocol) server provides integration with Wiki.JS for searching and listing pages from Agent Voice Response Wiki.JS instance.
AVR Docs MCP Server with Wiki.JS Integration
This MCP (Model Context Protocol) server provides integration with Wiki.JS for searching and listing pages from your Wiki.JS instance.
Features
- Search Wiki.JS Pages: Search for pages using keywords or topics
- List Wiki.JS Pages: Get a paginated list of all available pages
- Get Specific Page: Retrieve a specific page by its ID
- Connection Testing: Test the connection to your Wiki.JS instance
- Multiple Transport Modes: Support for both stdio and HTTP stream modes
- Docker Support: Ready-to-use Docker image with health checks
Setup
Prerequisites
- A running Wiki.JS instance
- An API key with appropriate permissions for reading pages
Environment Variables
You can set environment variables in two ways:
Option 1: Using a .env file (Recommended)
- Copy the example environment file:
cp .env.example .env
- Edit the
.envfile with your actual values:
# Wiki.JS Configuration
WIKI_JS_BASE_URL=https://your-wiki-instance.com
WIKI_JS_API_KEY=your-api-key-here
LOG_LEVEL=info
# MCP Server Configuration
MCP_MODE=stdio
PORT=3000
Option 2: Using system environment variables
export WIKI_JS_BASE_URL="https://your-wiki-instance.com"
export WIKI_JS_API_KEY="your-api-key-here"
export LOG_LEVEL="info"
export MCP_MODE="stdio"
export PORT="3000"
Installation
- Install dependencies:
npm install
- Build the project:
npm run build
- Test the connection (optional):
npm test
- Run the server:
npm start
For development:
npm run dev
Running Modes
The server supports two modes of operation:
Stdio Mode (Default)
The server runs in stdio mode by default, communicating through standard input/output. This is the traditional MCP mode.
npm start
# or
npm run start:http # for HTTP mode
# or
MCP_MODE=stdio npm start
HTTP Stream Mode
The server can also run in HTTP mode, providing a REST API with Server-Sent Events (SSE) for MCP communication.
npm run start:http
# or
MCP_MODE=http npm start
When running in HTTP mode, the server provides:
- Health Check:
GET /health- Returns server status - MCP Endpoint:
POST /mcp- MCP communication endpoint using JSON-RPC 2.0
Testing HTTP Mode
You can test the HTTP mode using curl or Postman:
# Health check
curl http://localhost:3000/health
# Initialize MCP session
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-d '{
"jsonrpc": "2.0",
"id": 1,
"method": "initialize",
"params": {
"protocolVersion": "2024-11-05",
"capabilities": {},
"clientInfo": {
"name": "curl-client",
"version": "1.0.0"
}
}
}'
# List available tools (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id-from-initialize>" \
-d '{"jsonrpc": "2.0", "id": 2, "method": "tools/list"}'
# Call a tool (use session ID from initialize response)
curl -X POST http://localhost:3000/mcp \
-H "Content-Type: application/json" \
-H "mcp-session-id: <session-id-from-initialize>" \
-d '{
"jsonrpc": "2.0",
"id": 3,
"method": "tools/call",
"params": {
"name": "search_wiki_pages",
"arguments": {
"query": "deepgram",
"page": 1,
"limit": 10
}
}
}'
Or use the built-in test client:
npm run test:http
Docker Usage
Using the Docker Image
# Run in stdio mode (default)
docker run -d \
--name avr-docs-mcp \
-e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
-e WIKI_JS_API_KEY="your-api-key-here" \
agentvoiceresponse/avr-docs-mcp:latest
# Run in HTTP mode
docker run -d \
--name avr-docs-mcp \
-p 3000:3000 \
-e WIKI_JS_BASE_URL="https://your-wiki-instance.com" \
-e WIKI_JS_API_KEY="your-api-key-here" \
-e MCP_MODE="http" \
-e PORT="3000" \
agentvoiceresponse/avr-docs-mcp:latest
Docker Compose
version: '3.8'
services:
avr-docs-mcp:
image: agentvoiceresponse/avr-docs-mcp:latest
container_name: avr-docs-mcp
ports:
- "3000:3000" # Only needed for HTTP mode
environment:
- WIKI_JS_BASE_URL=https://your-wiki-instance.com
- WIKI_JS_API_KEY=your-api-key-here
- MCP_MODE=http
- PORT=3000
- LOG_LEVEL=info
restart: unless-stopped
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:3000/health"]
interval: 30s
timeout: 10s
retries: 3
Available Tools
1. search_wiki_pages
Search for pages in Wiki.JS using keywords.
Parameters:
query(required): The search querypage(optional): Page number for pagination (default: 1)limit(optional): Number of results per page (default: 10, max: 50)
2. list_wiki_pages
List all available pages in Wiki.JS.
Parameters:
page(optional): Page number for pagination (default: 1)limit(optional): Number of results per page (default: 20, max: 50)
3. get_wiki_page
Get a specific page by its ID or path.
Parameters:
pageId(required): The ID (numeric) or path (string) of the page to retrieve. Examples: '3' for ID, 'deepgram' for path
Wiki.JS API Configuration
This MCP server uses Wiki.JS GraphQL API (/graphql endpoint). Make sure your Wiki.JS instance has API access enabled and that your API key has the following permissions:
page:read- To read page contentpage:list- To list pagessearch:read- To search pages
The server automatically handles GraphQL queries and responses for all operations. Note that Wiki.JS GraphQL API has some limitations:
- Search and list operations don't support native pagination, so pagination is simulated client-side
- Search results don't include full page content
- List results don't include full page content (use
get_wiki_pagefor full content) - Tags are returned as arrays of strings, not comma-separated strings
Logging
The server includes comprehensive logging with configurable log levels:
debug- Detailed debug informationinfo- General information (default)warn- Warning messages onlyerror- Error messages only
Set the LOG_LEVEL environment variable to control logging verbosity.
Error Handling
The server includes comprehensive error handling for:
- Missing environment variables
- Network connectivity issues
- API authentication failures
- Invalid page IDs
- Rate limiting
Development
To run in development mode with hot reloading:
npm run watch
Building
To build for production:
npm run build
The compiled JavaScript will be in the dist/ directory.
Support & Community
- GitHub: https://github.com/agentvoiceresponse - Report issues, contribute code.
- Discord: https://discord.gg/DFTU69Hg74 - Join the community discussion.
- Docker Hub: https://hub.docker.com/u/agentvoiceresponse - Find Docker images.
- Wiki: https://wiki.agentvoiceresponse.com/en/home - Project documentation and guides.
Support AVR
AVR is free and open-source. If you find it valuable, consider supporting its development:
License
MIT License - see the LICENSE file for details.
Related Servers
mxHERO Multi-Account Email Search
Search across multiple email accounts using mxHERO's vector search service.
MCP Registry Server
A server for discovering and retrieving other MCP servers via MCPulse.
mu-mcp
Query your local `mu` mail index for fast, structured mail search from MCP clients.
Esports Events
Get the latest information about esports matches. 50+ supported games: Counter-Strike, Valorant, League of Legends, Rocket League, ...
yfinance MCP Server
Access up-to-date prices and news for stocks and cryptocurrencies.
NS Travel Information MCP Server
Access real-time travel information for the Dutch railways (NS).
PipeCD Docs
Search and retrieve official PipeCD documentation.
DevRag
Free local RAG for Claude Code - Save tokens & time with vector search. Indexes markdown docs and finds relevant info without reading entire files (40x fewer tokens, 15x faster).
DuckDuckGo Search
Provides web search functionality using the DuckDuckGo Search API.
Yandex Search
A web search server that uses the Yandex Search API.