Logo

2025-09-15

Wiki.js MCP Server Integration

Custom MCP server enabling Claude AI to interact with Wiki.js API for automated documentation management from both CLI and Desktop environments.

Model Context Protocol (MCP)Python 3.11+Wiki.js GraphQL APINetwork Architecture
MCP server architecture diagram

Architecture showing Claude AI clients connecting to Wiki.js via MCP server

📋 Overview

Developed and deployed custom Model Context Protocol (MCP) server that connects Claude AI to Wiki.js API, enabling automated documentation creation, updates, and management across homelab network.

🎯 Challenge

Needed to enable Claude Code CLI and Claude Desktop to interact with Wiki.js documentation platform remotely, requiring custom API integration and network-based MCP server implementation.

💡 Solution

Built Python-based MCP server with Wiki.js API integration, deployed on dedicated homelab infrastructure with network access, enabling remote documentation management from multiple Claude AI clients.

🛠️ Technologies

Model Context Protocol (MCP)

Protocol for AI-to-service communication enabling tool integration

Python 3.11+

MCP server implementation with async API calls

Wiki.js GraphQL API

API integration for page creation, updates, and management

Network Architecture

Cross-server communication within homelab infrastructure

✨ Key Features

🤖 **AI-Powered Documentation**: Claude creates and updates wiki pages automatically

📡 **Remote Access**: Network-based MCP server accessible across homelab

💻 **Multi-Client Support**: Works with both Claude Code CLI and Claude Desktop

🔄 **Automated Workflows**: Generate documentation from code analysis

🏗️ Technical Highlights

MCP Server Implementation

Built custom MCP server in Python with async API calls to Wiki.js GraphQL endpoint, supporting page creation, updates, searches, and hierarchical organization.

Cross-Platform Integration

Configured remote MCP server accessible to both Claude Code CLI and Claude Desktop, demonstrating network-based AI tool integration across different client environments.

💻 Implementation

MCP Server Tool Implementation

from mcp import types
from mcp.server import Server

class WikiJSMCPServer:
    def __init__(self, api_url: str, api_token: str):
        self.api_url = api_url
        self.api_token = api_token
        self.server = Server("wikijs-mcp")
        
    @self.server.call_tool()
    async def create_page(self, title: str, content: str, space_id: str = None):
        """Create a new page in Wiki.js"""
        headers = {"Authorization": f"Bearer {self.api_token}"}
        payload = {
            "title": title,
            "content": content,
            "contentType": "markdown"
        }
        return await self._make_api_request("POST", "/pages", payload)

🚀 Deployment Specs

MCP ServerPython 3.11+ custom implementation
API Endpointhttp://192.168.1.30:3080
AuthenticationBearer token
NetworkInternal homelab (192.168.1.x)
ClientsClaude Code CLI, Claude Desktop
API Calls (30 days)1247
Success Rate99.2%

📸 Gallery

AI assistant managing documentation

Claude automatically generating and organizing project documentation

🎓 Key Learnings

  • 📚Model Context Protocol server development and deployment
  • 📚GraphQL API integration patterns and authentication
  • 📚Remote AI service architecture in homelab environments
  • 📚Cross-platform AI tool integration strategies