JUHE API Marketplace
ranjaka avatar
MCP Server

MCP Server Demo

A Model Context Protocol server that provides tools and resources for Java CI/CD workflows and GitLab CI template management.

0
GitHub Stars
8/5/2025
Last Updated
No Configuration
Please check the documentation below.

README Documentation

MCP Server Demo

A demonstration Model Context Protocol (MCP) server that provides tools and resources for Java CI/CD workflows and GitLab CI template management.

📁 Repository Structure

mcp-server-demo/
├── main.py                 # Main entry point for the MCP server
├── server.py               # MCP server implementation with tools and resources
├── pyproject.toml          # Python project configuration and dependencies
├── uv.lock                 # Dependency lock file
├── .gitlab-ci.yml          # GitLab CI configuration (template-based)
├── ci-templates/           # GitLab CI template resources
│   ├── build.gitlab-ci.yml
│   ├── sast-scanner.gitlab-ci.yml
│   ├── sca-scanner.gitlab-ci.yml
│   └── build-image.gitlab-ci.yml
└── README.md               # This file

🚀 Features

MCP Server Tools

  • Mathematical Operations: sum_two_numbers() - Add two integers
  • CI/CD Template Management: Access to GitLab CI template resources
  • Java Build Tools: Maven-based build commands and configurations
  • Security Scanning: SAST and SCA scanning capabilities
  • Docker Operations: Image building and registry management
  • Deployment Automation: Environment-specific deployment commands

GitLab CI Templates

  • Build Templates: Java and Python build configurations
  • Security Scanning: SAST and SCA scanning templates
  • Docker Integration: Image build and push templates
  • Reusable Components: Template-based CI/CD pipeline generation

🛠️ Setup Instructions

Prerequisites

  • Python 3.13 or higher
  • uv package manager

Installation

  1. Clone the repository

    git clone <repository-url>
    cd mcp-server-demo
    
  2. Install dependencies

    uv sync
    
  3. Verify installation

    uv run python --version
    

🚀 Starting the MCP Server

Method 1: Using uv run

uv run mcp dev main.py

Method 2: Direct execution

uv run python main.py

Method 3: Using the MCP CLI

uv run mcp run main.py

🔧 Configuration

Environment Variables

The server uses standard MCP configuration. No additional environment variables are required for basic operation.

GitLab CI Templates

The ci-templates/ directory contains reusable GitLab CI templates:

  • build.gitlab-ci.yml - Build job templates for Java and Python
  • sast-scanner.gitlab-ci.yml - Static Application Security Testing templates
  • sca-scanner.gitlab-ci.yml - Software Composition Analysis templates
  • build-image.gitlab-ci.yml - Docker image build and push templates

📋 Usage Examples

Using the MCP Server Tools

  1. Add two numbers

    result = sum_two_numbers(5, 3)  # Returns 8
    
  2. Access CI templates

    # Access build template
    build_template = read_build_ci_file()
    
    # Access SAST scanner template
    sast_template = read_sast_scanner_ci_file()
    

Generating GitLab CI Files

The server provides resources to help generate GitLab CI configurations using the available templates:

  1. Java Application CI

    • Uses .build-java template
    • Includes SAST and SCA scanning
    • Docker image building and deployment
  2. Python Application CI

    • Uses .build-python template
    • Includes security scanning
    • Container deployment capabilities

🔍 Available Resources

File Resources

  • file://ci-templates/build.gitlab-ci.yml - Java and Python build templates
  • file://ci-templates/sast-scanner.gitlab-ci.yml - SAST scanning templates
  • file://ci-templates/sca-scanner.gitlab-ci.yml - SCA scanning templates
  • file://ci-templates/build-image.gitlab-ci.yml - Docker build templates

Dynamic Resources

  • greeting://{name} - Personalized greeting messages
  • pipeline://{project_name} - CI/CD pipeline status
  • project://{project_name} - Project information
  • template://{template_name} - Template information

🧪 Testing

Run the server in development mode

uv run mcp dev main.py

Test individual tools

uv run python -c "from server import sum_two_numbers; print(sum_two_numbers(10, 5))"

📦 Dependencies

Core Dependencies

  • mcp[cli]>=1.11.0 - Model Context Protocol server and CLI tools

Development Dependencies

  • Python 3.13+ for modern language features
  • uv for fast dependency management

🤝 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

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

🆘 Troubleshooting

Common Issues

  1. MCP server not starting

    • Ensure Python 3.13+ is installed
    • Verify dependencies with uv sync
    • Check for port conflicts
  2. Template access issues

    • Verify ci-templates/ directory exists
    • Check file permissions
    • Ensure template files are properly formatted
  3. GitLab CI generation problems

    • Verify template syntax
    • Check for missing template dependencies
    • Ensure proper job inheritance

Getting Help

  • Check the MCP documentation
  • Review the template files in ci-templates/
  • Examine the server implementation in server.py

🔗 Related Links

Quick Actions

Key Features

Model Context Protocol
Secure Communication
Real-time Updates
Open Source