pmwiki-mcp
MCP server for searching and reading PmWiki pages with text queries and group filtering.
MCP 服务配置
复制以下 JSON 到 OPClaw 或其他 MCP 客户端的配置文件中即可使用
{
"mcpServers": {
"docker.io/kcofoni/pmwiki-mcp": {
"args": [
"run",
"-i",
"--rm",
"docker.io/kcofoni/pmwiki-mcp:v1.0.2"
],
"command": "docker"
}
}
}
可用工具 (5 个)
该服务在 MCP 协议中暴露的工具,AI 可按需调用
tavily_search 14 个参数 需填 1 项
Search the web for current information on any topic. Use for news, facts, or data beyond your knowledge cutoff. Returns snippets and source URLs.
必填参数:query
tavily_extract 6 个参数 需填 1 项
Extract content from URLs. Returns raw page content in markdown or text format.
必填参数:urls
tavily_crawl 11 个参数 需填 1 项
Crawl a website starting from a URL. Extracts content from pages with configurable depth and breadth.
必填参数:url
tavily_map 8 个参数 需填 1 项
Map a website's structure. Returns a list of URLs found starting from the base URL.
必填参数:url
tavily_research 2 个参数 需填 1 项
Perform comprehensive research on a given topic or question. Use this tool when you need to gather information from multiple sources to answer a question or complete a task. Returns a detailed response based on the research findings.
必填参数:input
服务介绍
PmWiki MCP Server
MCP (Model Context Protocol) server for interfacing an LLM with PmWiki.
Version française / French version
# Architecture
The server uses the MCP protocol with SSE (Server-Sent Events) transport to enable an LLM to interact with your PmWiki instance.
# # Endpoints
GET /sse: SSE connection to establish bidirectional communicationPOST /messages/: Receive messages from the MCP client
# Getting Started
# # With Docker Compose (Docker Hub image)
The simplest method is to use the published image from Docker Hub:
docker compose up -d
# # With Docker Compose (local build)
If you want to build the image locally:
- Edit
docker-compose.ymland comment out theimage:line, then uncomment thebuild: .line - Run:
docker compose up -d - -build
# # Direct Docker Usage
Without docker-compose, you can run directly:
docker run -d \
- -name pmwiki-mcp-server \
-p 3000:3000 \
-v /path/to/your/wiki.d:/wiki_data:ro \
-e WIKI_DIR=/wiki_data \
kcofoni/pmwiki-mcp:latest
The server will be accessible at http://localhost:3000 (or http://vmtest:3000 from other machines on the network).
# # Verification
# Check that the server is running
docker logs pmwiki-mcp-server
# Test the SSE connection
curl -N http://localhost:3000/sse
# Client Configuration
# # Claude Desktop
Add this configuration to your Claude Desktop configuration file:
On macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
On Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"pmwiki": {
"command": "mcp-proxy",
"args": [
"- -transport=sse",
"http://vmtest:3000/sse"
]
}
}
}
Important notes:
vmtestis the hostname of the machine hosting the MCP server Docker container- Replace
vmtestwith:localhostif Claude Desktop runs on the same machine as the server- The hostname or IP address of the machine running the Docker container (e.g.,
192.168.1.100:3000/sse)
- The
mcp-proxytool must be installed (usually provided with Claude Desktop) - The proxy handles the SSE connection between Claude Desktop and the MCP server
# Available Features
Once connected, your LLM will have access to:
# # Resources
- All wiki pages are exposed as resources with the URI
pmwiki://Group.PageName
# # Tools
-
search_wiki: Search for text across all pages
- Parameters:
query(required): Text to search forcase_sensitive(optional): Case-sensitive search (default: false)
- Parameters:
-
read_page: Read the complete content of a page
- Parameters:
page_name(required): Page name (e.g.,Main.HomePageorMain/HomePage)
- Parameters:
-
list_pages: List all wiki pages
- Parameters:
group(optional): Filter by group
- Parameters:
# Configuration
# # Wiki Directory Mount
The PmWiki directory is mounted from the host machine to the Docker container:
volumes:
- /home/docker/appdata/html/wiki.d:/wiki_data:ro
Important:
/home/docker/appdata/html/wiki.dis the path on the host machine - this is an example to adapt- Replace this path with the actual path to your PmWiki
wiki.ddirectory - The volume is mounted read-only (
:ro) for security reasons /wiki_datais the internal container path (do not modify)
# Docker Hub
The image is publicly available on Docker Hub:
- Repository: kcofoni/pmwiki-mcp
- Latest tag:
kcofoni/pmwiki-mcp:latest - Stable version:
kcofoni/pmwiki-mcp:v1.0.2
To pull the latest version:
docker pull kcofoni/pmwiki-mcp:latest
To pull a specific version:
docker pull kcofoni/pmwiki-mcp:v1.0.2
# Technical Architecture
- Language: Python 3.11
- Web Framework: Starlette + Uvicorn
- Protocol: MCP over SSE
- Page Format: PmWiki (files in
wiki.d/)
# Logs
# View logs in real-time
docker logs -f pmwiki-mcp-server
# Last 50 lines
docker logs - -tail 50 pmwiki-mcp-server
# Troubleshooting
# # Server won't start
Check that the wiki directory exists:
ls -la /home/docker/appdata/html/wiki.d
# # 404 error on a page
Use the list_pages tool to see all available pages. The exact PmWiki filename format must be used (e.g., Main.HomePage not Main/HomePage for the file).
# # SSE connection fails
Check that port 3000 is properly exposed:
docker ps | grep pmwiki-mcp-server
# Development
# # File Structure
pmwiki-mcp/
├── pmwiki_mcp_server.py # MCP server
├── requirements.txt # Python dependencies
├── Dockerfile # Docker image
├── docker-compose.yml # Docker Compose configuration
├── README.md # This documentation (English)
└── README_fr.md # French documentation
# # Code Modification
After modifying the code:
docker compose up -d - -build
# License
This project is licensed under the MIT License - see the LICENSE file for details.