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
-
Clone the repository
git clone <repository-url> cd mcp-server-demo
-
Install dependencies
uv sync
-
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 Pythonsast-scanner.gitlab-ci.yml
- Static Application Security Testing templatessca-scanner.gitlab-ci.yml
- Software Composition Analysis templatesbuild-image.gitlab-ci.yml
- Docker image build and push templates
📋 Usage Examples
Using the MCP Server Tools
-
Add two numbers
result = sum_two_numbers(5, 3) # Returns 8
-
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:
-
Java Application CI
- Uses
.build-java
template - Includes SAST and SCA scanning
- Docker image building and deployment
- Uses
-
Python Application CI
- Uses
.build-python
template - Includes security scanning
- Container deployment capabilities
- Uses
🔍 Available Resources
File Resources
file://ci-templates/build.gitlab-ci.yml
- Java and Python build templatesfile://ci-templates/sast-scanner.gitlab-ci.yml
- SAST scanning templatesfile://ci-templates/sca-scanner.gitlab-ci.yml
- SCA scanning templatesfile://ci-templates/build-image.gitlab-ci.yml
- Docker build templates
Dynamic Resources
greeting://{name}
- Personalized greeting messagespipeline://{project_name}
- CI/CD pipeline statusproject://{project_name}
- Project informationtemplate://{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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.
🆘 Troubleshooting
Common Issues
-
MCP server not starting
- Ensure Python 3.13+ is installed
- Verify dependencies with
uv sync
- Check for port conflicts
-
Template access issues
- Verify
ci-templates/
directory exists - Check file permissions
- Ensure template files are properly formatted
- Verify
-
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