Confluence MCP Server
by pawankumar94
A Model Context Protocol (MCP) server implementation for Atlassian Confluence. This server provides a set of tools for interacting with Confluence through the MCP protocol, allowing AI agents to seamlessly work with Confluence content.
Last updated: N/A
Confluence MCP Server
A Model Context Protocol (MCP) server implementation for Atlassian Confluence. This server provides a set of tools for interacting with Confluence through the MCP protocol, allowing AI agents to seamlessly work with Confluence content. Built with Flask for easy deployment to Cloud Run.
Features
- Search pages and spaces using Confluence Query Language (CQL)
- List all available Confluence spaces
- Create, read, update, and delete Confluence pages
- Rich metadata support for Confluence resources
- Flask-based server for Cloud Run deployment
- MCP tools for AI agent integration
Installation
- Clone the repository
- Install dependencies:
pip install -r requirements.txt
Configuration
Create a .env
file in the project root with the following variables:
CONFLUENCE_URL=https://your-instance.atlassian.net/wiki
CONFLUENCE_ACCESS_TOKEN=your_access_token
PORT=8080 # Optional, defaults to 8080
To get an access token:
- Log in to your Atlassian account
- Go to Account Settings > Security > Create and manage API tokens
- Create a new API token and copy it
Available Tools
The server provides the following MCP tools:
1. Search Content
@tool("search_confluence")
def search(query: str) -> Dict[str, Any]
2. Get Spaces
@tool("get_spaces")
def get_spaces() -> Dict[str, Any]
3. Get Page Content
@tool("get_page_content")
def get_page_content(space_key: str, page_id: str) -> Dict[str, Any]
4. Create Page
@tool("create_page")
def create_page(space_key: str, title: str, content: str) -> Dict[str, Any]
5. Update Page
@tool("update_page")
def update_page(space_key: str, page_id: str, content: str) -> Dict[str, Any]
6. Delete Page
@tool("delete_page")
def delete_page(space_key: str, page_id: str) -> Dict[str, Any]
Running Locally
Run the server locally:
python example.py
The server will start on http://localhost:8080
Cloud Run Deployment
- Build the Docker image:
docker build -t confluence-mcp .
- Tag and push to Google Container Registry:
docker tag confluence-mcp gcr.io/[PROJECT-ID]/confluence-mcp
docker push gcr.io/[PROJECT-ID]/confluence-mcp
- Deploy to Cloud Run:
gcloud run deploy confluence-mcp \
--image gcr.io/[PROJECT-ID]/confluence-mcp \
--platform managed \
--allow-unauthenticated \
--set-env-vars="CONFLUENCE_URL=[YOUR_URL],CONFLUENCE_ACCESS_TOKEN=[YOUR_TOKEN]"
Error Handling
All tools include proper error handling and will return appropriate error messages in the response. The response format includes:
- Success case: Relevant data in the specified format
- Error case:
{"error": "error message"}
Security Considerations
- Always use environment variables for sensitive data
- Consider using Cloud Run's built-in secret management
- Implement proper authentication for your endpoints
- Keep your Confluence access token secure
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
License
This project is licensed under the MIT License - see the LICENSE file for details.