Skip to main content
Glama

Confluence MCP Server

by manateeit
README.md5.4 kB
# Confluence MCP Server A Model Context Protocol (MCP) server that enables AI assistants to interact with Confluence, converting Markdown documents to professionally styled Confluence pages with Mermaid diagram support. ## Features - 🔄 **SSE Server**: Real-time Server-Sent Events for live progress updates - 📝 **Markdown to Confluence**: Convert Markdown content to Confluence storage format - 📊 **Mermaid Diagrams**: Render Mermaid diagrams as images in Confluence pages - 🎨 **Professional Styling**: Modern, clean page layouts - 💾 **Smart Caching**: Local cache to link markdown files to Confluence pages - 🔒 **Secure Authentication**: Confluence API token authentication - ☁️ **Fly.io Ready**: Optimized for deployment on Fly.io ## Tools Available - `confluence_list_spaces` - List all available Confluence spaces - `confluence_list_pages` - List pages in a specific space - `confluence_create_page` - Create new pages from Markdown content - `confluence_update_page` - Update existing pages with new content - `confluence_delete_page` - Delete pages and clean up cache ## Quick Start ### 1. Installation ```bash git clone <repository-url> cd confluence-mcp npm install ``` ### 2. Configuration Copy the example environment file and configure your Confluence credentials: ```bash cp .env.example .env ``` Edit `.env` with your Confluence details: ```env CONFLUENCE_BASE_URL=https://your-domain.atlassian.net CONFLUENCE_USERNAME=your-email@domain.com CONFLUENCE_API_TOKEN=your-api-token MCP_API_KEY=your-mcp-api-key PORT=3001 ``` ### 3. Get Confluence API Token 1. Go to [Atlassian Account Settings](https://id.atlassian.com/manage-profile/security/api-tokens) 2. Click "Create API token" 3. Give it a label and copy the token 4. Use your email as username and the token as password ### 4. Run the Server ```bash # Development npm run dev # Production npm run build npm start ``` The server will be available at `http://localhost:3001` ## Usage Examples ### Create a Page from Markdown ```markdown # My Documentation This is a sample page with a Mermaid diagram: ```mermaid graph TD A[Start] --> B[Process] B --> C[End] ``` Some **bold text** and *italic text*. ``` The MCP server will: 1. Convert the Markdown to Confluence storage format 2. Render the Mermaid diagram as a PNG image 3. Create a professionally styled page 4. Cache the mapping for future updates ### Update an Existing Page When you update a markdown file, the server can automatically update the corresponding Confluence page using the cached mapping. ## API Endpoints ### SSE Endpoints - `GET /mcp` - Establish SSE connection for MCP protocol - `POST /messages` - Send MCP messages (requires sessionId) ### Health Check - `GET /health` - Server health status ## Deployment on Fly.io ### 1. Install Fly CLI ```bash # macOS brew install flyctl # Other platforms: https://fly.io/docs/getting-started/installing-flyctl/ ``` ### 2. Login and Initialize ```bash fly auth login fly launch ``` ### 3. Set Secrets ```bash fly secrets set CONFLUENCE_BASE_URL=https://your-domain.atlassian.net fly secrets set CONFLUENCE_USERNAME=your-email@domain.com fly secrets set CONFLUENCE_API_TOKEN=your-api-token fly secrets set MCP_API_KEY=your-mcp-api-key ``` ### 4. Deploy ```bash fly deploy ``` ## Architecture ``` ┌─────────────────┐ ┌──────────────────┐ ┌─────────────────┐ │ AI Assistant │◄──►│ MCP Server │◄──►│ Confluence │ │ │ │ (SSE/HTTP) │ │ API │ └─────────────────┘ └──────────────────┘ └─────────────────┘ │ ▼ ┌──────────────────┐ │ Local Cache │ │ (JSON file) │ └──────────────────┘ ``` ## Development ### Project Structure ``` confluence-mcp/ ├── src/ │ ├── index.ts # Entry point │ ├── server.ts # MCP server with SSE support │ ├── services/ │ │ ├── confluence-client.ts # Confluence API client │ │ ├── markdown-converter.ts # Markdown to Confluence converter │ │ └── mermaid-renderer.ts # Mermaid diagram renderer │ ├── utils/ │ │ ├── cache.ts # Local cache management │ │ └── config.ts # Configuration management │ └── types/ │ └── index.ts # TypeScript type definitions ├── fly.toml # Fly.io configuration ├── package.json └── tsconfig.json ``` ### Building ```bash npm run build ``` ### Testing ```bash # Test health endpoint curl http://localhost:3001/health # Test SSE connection curl -N http://localhost:3001/mcp ``` ## Contributing 1. Fork the repository 2. Create a feature branch 3. Make your changes 4. Add tests if applicable 5. Submit a pull request ## License MIT License - see LICENSE file for details

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/manateeit/confluence-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server