README.md•4.01 kB
# DevOps MCP Server
A Model Context Protocol (MCP) server for DevOps operations, providing tools for Docker image management and GitLab CI/CD configuration.
## Features
### Docker Tools
- **Search Docker Images**: Find Docker images by keyword
- **Get Image Tags**: Retrieve all available tags for a specific Docker image
### GitLab CI Tools
- **Search GitLab CI References**: Find GitLab CI reference YAML files
- **Get Reference Versions**: List all versions for a specific CI reference
- **Get Pipeline Info**: Retrieve detailed GitLab CI custom pipeline information
## Installation
```bash
npm install devops-mcp-server
```
## Prerequisites
### PEM Certificate
This server requires a PEM certificate for authenticating with the DevOps API at `https://labs.pointware.com`.
1. Place your PEM certificate file in the `certs/` directory as `client-cert.pem`
2. The certificate will be included when packaging the server
## Configuration
### For Claude Desktop
Add this configuration to your Claude Desktop config file:
**MacOS**: `~/Library/Application Support/Claude/claude_desktop_config.json`
**Windows**: `%APPDATA%\Claude\claude_desktop_config.json`
```json
{
"mcpServers": {
"devops": {
"command": "node",
"args": [
"/path/to/devops-mcp-server/dist/index.js"
]
}
}
}
```
Or if installed globally via npm:
```json
{
"mcpServers": {
"devops": {
"command": "devops-mcp-server"
}
}
}
```
## Available Tools
### 1. search_docker_images
Search for Docker images by keyword.
**Parameters:**
- `keyword` (string, required): Search term (e.g., "nginx", "postgres")
**Example:**
```
Search for nginx Docker images
```
### 2. get_docker_image_tags
Get all available tags for a specific Docker image.
**Parameters:**
- `imageName` (string, required): Docker image name
**Example:**
```
Get tags for nginx image
```
### 3. search_gitlab_references
Search for GitLab CI reference YAML files.
**Parameters:**
- `keyword` (string, required): Search term (e.g., "node", "python")
**Example:**
```
Search for GitLab CI references related to node
```
### 4. get_gitlab_reference_versions
Get all versions for a specific GitLab CI reference.
**Parameters:**
- `referenceName` (string, required): Reference name
**Example:**
```
Get versions for node-ci-template reference
```
### 5. get_gitlab_pipeline_info
Get detailed information about a GitLab CI custom pipeline.
**Parameters:**
- `pipelineName` (string, required): Pipeline name
**Example:**
```
Get information about custom-deploy-pipeline
```
## Development
### Setup
```bash
# Install dependencies
npm install
# Build the project
npm run build
# Watch mode for development
npm run watch
```
### Project Structure
```
devops-mcp-server/
├── src/
│ ├── api/ # API client with PEM authentication
│ ├── tools/ # MCP tool implementations
│ ├── types/ # TypeScript type definitions
│ └── index.ts # Main server entry point
├── certs/ # PEM certificates directory
├── dist/ # Compiled JavaScript output
└── package.json
```
### API Endpoints
The server communicates with the following API endpoints:
- `GET /api/v1/docker/images?keyword={keyword}` - Search Docker images
- `GET /api/v1/docker/images/{imageName}/tags` - Get Docker image tags
- `GET /api/v1/gitlab/references?keyword={keyword}` - Search GitLab CI references
- `GET /api/v1/gitlab/references/{referenceName}/versions` - Get reference versions
- `GET /api/v1/gitlab/pipelines/{pipelineName}` - Get pipeline information
## Security
- All API requests are authenticated using PEM certificates
- The certificate file is included in the package distribution
- HTTPS is enforced for all API communications
## Requirements
- Node.js >= 18.0.0
- PEM certificate file for API authentication
## License
MIT
## Support
For issues and questions, please open an issue on the GitHub repository.