MCP (Model Context Protocol) server for managing GitHub wiki pages programmatically.
This MCP server exposes the following tools:
write_wiki_page- Create or update a wiki pageread_wiki_page- Read the content of a wiki pageappend_to_wiki_page- Append content to an existing pagelist_wiki_pages- List all wiki pages in the repositorydelete_wiki_page- Delete a wiki page
# Install dependencies
pnpm install
# Build the TypeScript project
pnpm build- Go to GitHub → Settings → Developer settings → Personal access tokens → Tokens (classic)
- Click "Generate new token (classic)"
- Select the
reposcope (to access repository wikis) - Copy the generated token
Edit the configuration file:
- macOS:
~/Library/Application Support/Claude/claude_desktop_config.json - Windows:
%APPDATA%\Claude\claude_desktop_config.json
Add this configuration:
{
"mcpServers": {
"github-wiki": {
"command": "node",
"args": [
"/absolute/path/to/github_wiki_mcp/dist/index.js"
]
}
}
}Replace /absolute/path/to/github_wiki_mcp with the actual path to the project directory.
Close and reopen Claude Desktop to load the new MCP server.
You can tell Claude:
Analyze the codebase using code-analysis-context-mcp to extract
all information about the repository architecture and write
a dedicated wiki page on GitHub called Architecture.
Claude will:
- Use the
code_analysistool to get architecture information - Generate structured markdown content
- Use
write_wiki_pageto create the page on GitHub
Create a wiki page called "API Documentation" on the repository
myusername/myrepo with this content:
# API Documentation
## Main Endpoints
- GET /api/users
- POST /api/users
- DELETE /api/users/:id
Read the content of the wiki page "Architecture" from the repository
myusername/myrepo
Add a "Deployment" section to the wiki page "Architecture"
with deployment instructions
Creates or completely overwrites a wiki page.
Parameters:
owner(string, required): GitHub username or organizationrepo(string, required): Repository nametoken(string, required): GitHub personal access tokenpageName(string, required): Page name (e.g., "Architecture")content(string, required): Markdown content of the pagecommitMessage(string, optional): Custom commit message
Output:
{
"success": true,
"page": "Architecture.md",
"url": "https://github.com/owner/repo/wiki/Architecture"
}Reads the content of an existing wiki page.
Parameters:
owner,repo,token: Same as abovepageName(string, required): Name of the page to read
Output:
{
"success": true,
"page": "Architecture.md",
"content": "# Architecture\n\n..."
}Appends content to the end of an existing page (or creates it if it doesn't exist).
Parameters:
owner,repo,token: Same as abovepageName(string, required): Page namecontent(string, required): Content to appendcommitMessage(string, optional): Commit message
Lists all wiki pages in the repository.
Parameters:
owner,repo,token: Same as above
Output:
[
{
"name": "Architecture",
"path": "Architecture.md",
"size": 2048
},
{
"name": "API-Documentation",
"path": "API-Documentation.md",
"size": 1024
}
]Deletes a wiki page.
Parameters:
owner,repo,token: Same as abovepageName(string, required): Name of the page to deletecommitMessage(string, optional): Commit message
The server uses the wiki Git repository (.wiki.git) instead of GitHub's REST API:
- Clones the wiki repository to a temporary directory
- Performs the requested operations (create/modify/delete
.mdfiles) - Commits and pushes the changes
- Cleans up the temporary directory
This approach:
- Is more reliable than REST APIs for wikis
- Supports all standard Git operations
- Has no content size limitations
- Works with private repositories (if the token has permissions)
You can combine this server with your code-analysis-context-mcp to:
- Automatically analyze the codebase
- Extract documentation, architecture, APIs
- Automatically write updated wiki pages
Example workflow:
Analyze the repository using code-analysis-context-mcp,
extract the complete architecture and create three wiki pages:
1. Architecture - overall project structure
2. API - endpoint documentation
3. Database - schema and relationships
Claude will use:
code_analysis.get_repository_architecture→ analysisgithub_wiki.write_wiki_page→ Architecture pagegithub_wiki.write_wiki_page→ API pagegithub_wiki.write_wiki_page→ Database page
- Never share your GitHub token: The token has full access to repositories
- Use tokens with minimum scope: Only
repois necessary - Consider using expiring tokens: For production environments
- Don't commit the token: Ensure it's only provided at runtime
# Watch mode during development
pnpm dev
# Production build
pnpm build
# Local installation for testing
pnpm link- Verify that the path in
claude_desktop_config.jsonis absolute and correct - Check that
pnpm buildhas been executed - Verify Claude Desktop logs
- Verify that the GitHub token is valid
- Check that the token has the
reposcope - Ensure the repository has wiki enabled (Settings → Wiki)
GitHub automatically creates the wiki repository only when the first page is created manually. If the repository has never had a wiki:
- Go to
https://github.com/owner/repo/wiki - Click "Create the first page"
- Create a test page
- Now the MCP server will be able to access the wiki
MIT