Cover image
CodeByWaqas_MRConfluenceLinker-mcp-server
Public

CodeByWaqas_MRConfluenceLinker-mcp-server

Try Now
2025-03-22

Mirror ofhttps://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server

3 years

Works with Finder

0

Github Watches

0

Github Forks

0

Github Stars

GitLab PR Analysis MCP Server

This project provides an MCP (Model Control Protocol) server that integrates GitLab merge request analysis with Confluence documentation. It allows you to fetch merge request details, analyze code changes, and store the results in Confluence pages.

Features

  • Fetch merge request details from GitLab
  • Analyze code changes in merge requests
  • Generate detailed reports including:
    • Basic merge request information
    • Code change statistics
    • File type analysis
    • Detailed file changes
  • Store analysis results in Confluence
  • Comprehensive logging for debugging

Prerequisites

  • Python 3.8 or higher
  • GitLab account with API access
  • Confluence account (optional, for storing analysis results)
  • Access to the required GitLab project(s)

Installation

  1. Clone the repository:
git https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server.git
cd MRConfluenceLinker-mcp-server
  1. Create and activate a virtual environment:
python -m venv .venv
source .venv/bin/activate  # On Windows, use: .venv\Scripts\activate
  1. Install dependencies:
pip install -r requirements.txt

or

uv add "mcp[cli]" python-gitlab python-dotenv atlassian-python-api requests

Configuration

  1. Copy the example environment file:
cp .env.example .env
  1. Edit the .env file with your credentials:
GITLAB_URL=https://gitlab.com
GITLAB_TOKEN=your_gitlab_token
GITLAB_PROJECT_ID=your_project_id

# Optional Confluence integration
CONFLUENCE_URL=your_confluence_url
CONFLUENCE_USERNAME=your_username
CONFLUENCE_TOKEN=your_confluence_token
CONFLUENCE_SPACE=your_space_key

Obtaining Credentials

  • GitLab Token: Generate a personal access token in GitLab with api scope
  • Confluence Token: Generate an API token in your Atlassian account settings

Usage

  1. Start the MCP server:
python src/MRConfluenceLinker-mcp-server/server.py

or

Setup with Claude Desktop

# claude_desktop_config.json
# Can find location through:
# Claude -> Settings -> Developer -> Edit Config
{
  "mcpServers": {
      "MRConfluenceLinker-mcp-server": {
          "command": "uv",
          "args": [
              "--directory",
              "/<Absolute-path-to-folder>/MRConfluenceLinker-mcp-server/src/MRConfluenceLinker-mcp-server",
              "run",
              "server.py"
          ]
      }
  }
}

2. The server will listen for commands through stdin/stdout. You can interact with it using prompts like:

Can you fetch details for merge request #1 from project "my-project"? Can you analyze code changes in merge request #1 from project "my-project"? Can you store a summary of merge request #1 from project "my-project" in Confluence?


## Available Tools

The server provides the following tools:

1. `fetch_mr_details`: Fetches details of a specific merge request or all merge requests
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id` (optional): Specific merge request ID

2. `analyze_code_changes`: Analyzes code changes in a merge request
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id`: The merge request ID to analyze

3. `store_in_confluence`: Stores analysis results in Confluence
   - Parameters:
     - `project_id`: The GitLab project ID
     - `mr_id` (optional): Specific merge request ID
     - `analysis` (optional): Analysis results to store

## Logging

The server generates detailed logs in `mcp_server.log` and outputs to stderr. This helps in debugging issues with:
- GitLab API access
- Confluence integration
- Code analysis
- Page creation and updates

## Error Handling

The server includes comprehensive error handling for:
- Missing environment variables
- API authentication issues
- Network connectivity problems
- Invalid project or merge request IDs
- Confluence permission issues

## Contributing

1. Fork the repository
2. Create a feature branch
3. Commit your changes
4. Push to the branch
5. Create a Pull Request

## License

This project is licensed under the MIT License - see the LICENSE file for details.

## Support

For support, please [create an issue](https://github.com/CodeByWaqas/MRConfluenceLinker-mcp-server/issues) or contact the maintainers.

## Project Structure

MRConfluenceLinker-mcp-server/ ├── src/ # Source code directory │ └── MRConfluenceLinker-mcp-server/ # Main server package │ ├── resources/ # Resource modules │ │ ├── init.py │ │ ├── client.py # Client implementation / GitLab PR integration │ ├── server.py # Main server implementation │ └── mcp_server.log # Server logs ├── pycache/ # Python cache files ├── .git/ # Git repository ├── .gitignore # Git ignore rules ├── CONTRIBUTING.md # Contributing guidelines ├── LICENSE # Project license ├── README.md # Project documentation ├── pyproject.toml # Python project configuration ├── requirements.txt # Project dependencies └── uv.lock # Dependency lock file


### Key Components

- **Source Code**: Located in the `src/MRConfluenceLinker-mcp-server/` directory
  - `server.py`: Main MCP server implementation
  - `resources/client.py`: Client-side implementation contains GitLab PR integration

- **Configuration Files**:
  - `requirements.txt`: Python package dependencies
  - `pyproject.toml`: Project metadata and build configuration
  - `uv.lock`: Locked dependency versions
  - `.env.example`: Environment variables template

- **Documentation**:
  - `README.md`: Project overview and setup instructions
  - `CONTRIBUTING.md`: Contribution guidelines
  - `LICENSE`: Project license

- **Development**:
  - `__pycache__/`: Python cache files
  - `mcp_server.log`: Server logs for debugging

相关推荐

  • Joshua Armstrong
  • Confidential guide on numerology and astrology, based of GG33 Public information

  • https://suefel.com
  • Latest advice and best practices for custom GPT development.

  • Emmet Halm
  • Converts Figma frames into front-end code for various mobile frameworks.

  • Elijah Ng Shi Yi
  • Advanced software engineer GPT that excels through nailing the basics.

  • Lists Tailwind CSS classes in monospaced font

  • https://maiplestudio.com
  • Find Exhibitors, Speakers and more

  • lumpenspace
  • Take an adjectivised noun, and create images making it progressively more adjective!

  • https://appia.in
  • Siri Shortcut Finder – your go-to place for discovering amazing Siri Shortcuts with ease

  • Carlos Ferrin
  • Encuentra películas y series en plataformas de streaming.

  • Yusuf Emre Yeşilyurt
  • I find academic articles and books for research and literature reviews.

  • tomoyoshi hirata
  • Sony α7IIIマニュアルアシスタント

  • apappascs
  • Discover the most comprehensive and up-to-date collection of MCP servers in the market. This repository serves as a centralized hub, offering an extensive catalog of open-source and proprietary MCP servers, complete with features, documentation links, and contributors.

  • ShrimpingIt
  • Micropython I2C-based manipulation of the MCP series GPIO expander, derived from Adafruit_MCP230xx

  • jae-jae
  • MCP server for fetch web page content using Playwright headless browser.

  • HiveNexus
  • An AI chat bot for small and medium-sized teams, supporting models such as Deepseek, Open AI, Claude, and Gemini. 专为中小团队设计的 AI 聊天应用,支持 Deepseek、Open AI、Claude、Gemini 等模型。

  • ravitemer
  • A powerful Neovim plugin for managing MCP (Model Context Protocol) servers

  • patruff
  • Bridge between Ollama and MCP servers, enabling local LLMs to use Model Context Protocol tools

    Reviews

    1 (1)
    Avatar
    user_1SdpDFTb
    2025-04-17

    I've been using CodeByWaqas_MRConfluenceLinker-mcp-server for a few weeks now and it's been a game-changer for our team. It integrates seamlessly with our Confluence pages, making it easy to link and manage our documents. The setup was straightforward and the documentation provided by MCP-Mirror was clear and helpful. Highly recommend this tool for anyone looking to streamline their Confluence workflow!