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
Web Search
Enables free web searching using Google search results, with no API key required.
yfinance MCP Server
Access up-to-date prices and news for stocks and cryptocurrencies.
302AI Web Search
A web search server powered by the 302.AI API.
QuantConnect Docs
An MCP server for intelligent search and retrieval of QuantConnect PDF documentation.
RAG Documentation MCP Server
Retrieve and process documentation using vector search to provide relevant context for AI assistants.
MCP SOP Server
An MCP server for accessing and searching Standard Operating Procedures (SOPs) with Italian language support.
Search MCP Server
A server providing web and similarity search functionalities, designed for Claude Desktop. It requires external embedding and API services.
Ollama Deep Researcher
Conducts deep research using local Ollama LLMs, leveraging Tavily and Perplexity for comprehensive search capabilities.
Whois MCP
Performs WHOIS lookups to retrieve domain registration details, including owner, registrar, and expiration dates.
MCP Web Search Server
A web search server powered by DuckDuckGo, no API key required.