Skip to main content
Glama
README.md
# 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.