Wiki MCP Server
by albertshao
An MCP Server implementation for managing Confluence wiki pages. It supports creating, updating, deleting, and searching wiki pages, and automatically selects the correct Confluence knowledge base based on the user query.
Last updated: N/A
๐ Wiki MCP Server
An MCP (Model Context Protocol) Server implementation for managing Confluence wiki pages.
Supports:
- Creating new wiki pages
- Updating existing wiki pages
- Deleting wiki pages
- Searching wiki pages by keyword
- Auto-selecting correct Confluence knowledge base (
alm
,wpb
, etc.) based on user query
Built with FastAPI, following MCP Server Best Practices, and ready for production deployment.
๐ Tech Stack
- Python 3.10+
- FastAPI
- MCP SDK
- Requests (for Confluence API interaction)
- ContextVars (for session management)
๐ฆ Project Structure
wiki_mcp_server/
โโโ src/wiki_mcp_server/
โ โโโ server.py # MCP server entry point
โ โโโ service.py # Business logic (Confluence API interactions)
โ โโโ tools.py # MCP tool definitions
โ โโโ prompts.py # MCP prompt definitions
โ โโโ resources.py # MCP resource definitions
โ โโโ utils.py # Helper functions (wiki_type inference etc.)
โ โโโ utils/session_context.py # Session context manager
โ โโโ middleware.py # Authentication and session initialization middleware
โโโ Dockerfile # Container configuration
โโโ requirements.txt # Python dependencies
โโโ README.md # Project documentation
โโโ smithery.yaml # Smithery integration config (optional)
โโโ pyproject.toml # Python project metadata
โ๏ธ Installation
- Clone the repository:
git clone https://your-repo-url/wiki_mcp_server.git
cd wiki_mcp_server
- Install dependencies:
pip install -r requirements.txt
- (Optional) Configure your environment variables if needed.
๐ Running Locally
Run the server:
cd src
uvicorn wiki_mcp_server.server:app --host 0.0.0.0 --port 9999 --reload
After startup, you can visit:
- OpenAPI docs (Swagger UI): http://localhost:9999/docs
- ReDoc docs: http://localhost:9999/redoc
๐งช Example Request
Headers Required:
| Key | Example Value | |:---|:---| | user_name | [email protected] | | alm_confluence_base_url | https://your-confluence-site/wiki/rest/api | | alm_confluence_api_token | your-api-token | | wpb_confluence_base_url | (optional if available) | | wpb_confluence_api_token | (optional if available) |
โ ๏ธ If headers are missing or invalid, server will return HTTP 400 error.
Example: Create Page
POST /create_page
{
"space_key": "TEST",
"title": "Test Page Created by MCP Server",
"content": "<p>Hello, World!</p>",
"user_query": "Please create a page in GSNA knowledge base."
}
Behavior:
- Server will infer
wiki_type=alm
from user_query. - Create the page in Confluence and return page metadata.
๐ง Auto Inference Logic
- If the query mentions
gsna
,global
,alm-confluence
โ alm - If the query mentions
wpb
,wealth
โ wpb - Otherwise default to alm
(You can also manually specify wiki_type
in input)
๐ณ Docker (Optional)
Build and run containerized server:
docker build -t wiki-mcp-server .
docker run -d -p 9999:9999 --name wiki-mcp-server wiki-mcp-server
๐ License
MIT License.
๐ Contact
For issues or collaboration requests, please contact:
- Developer: Shawn
- Email: [email protected]
- Project maintained by internal MCP Working Group
---# wiki_mcp_server