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.

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 Server | Python 3.11+ custom implementation |
| API Endpoint | http://192.168.1.30:3080 |
| Authentication | Bearer token |
| Network | Internal homelab (192.168.1.x) |
| Clients | Claude Code CLI, Claude Desktop |
| API Calls (30 days) | 1247 |
| Success Rate | 99.2% |
📸 Gallery

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
