Skip to main content
Glama
itk-dev

ITK Dev Docker MCP Server

Official
by itk-dev
README.md
# ITK Dev Docker MCP Server

Model Context Protocol (MCP) server that provides AI coding assistants with access to
ITK Dev Docker documentation and project analysis tools.

## What is MCP?

MCP (Model Context Protocol) is an open protocol that enables AI assistants like Claude to
access external resources and tools. This server provides:

- **Documentation Resources**: Access to ITK Dev Docker documentation
- **Project Tools**: Analyze, detect, and compare ITK Dev projects

## Installation

This MCP server is part of the [ITK Dev Claude Plugins](https://github.com/itk-dev/itkdev-claude-plugins).

### Via Plugin Marketplace (Recommended)

Install through the ITK Dev plugin marketplace:

```bash
/plugin marketplace add itk-dev/itkdev-claude-plugins
/plugin install itkdev-tools@itkdev-marketplace
```

The MCP server will be automatically configured.

### Manual Installation

For development or standalone use:

#### Prerequisites

- Node.js 18 or later
- npm

#### Build

```bash
git clone https://github.com/itk-dev/mcp-itkdev-docker.git
cd mcp-itkdev-docker
npm install
npm run build
```

#### Configure Claude Code

Add to `~/.claude.json` or `.mcp.json` in your project:

```json
{
  "mcpServers": {
    "itkdev-docker": {
      "command": "npx",
      "args": ["-y", "github:itk-dev/mcp-itkdev-docker"]
    }
  }
}
```

Or for local development:

```json
{
  "mcpServers": {
    "itkdev-docker": {
      "command": "node",
      "args": ["/path/to/mcp-itkdev-docker/dist/index.js"]
    }
  }
}
```

### Verify Installation

Restart Claude Code and check that the MCP server is connected. You can ask Claude:

> "What ITK Dev templates are available?"

Claude should be able to list templates using the `itkdev_list_templates` tool.

## Available Resources

| URI | Description |
|-----|-------------|
| `itkdev://docs/cli` | CLI tool commands, templates, and setup procedures |
| `itkdev://docs/compose` | Docker Compose patterns and configurations |
| `itkdev://docs/taskfile` | Taskfile automation patterns |

## Available Tools

### itkdev_list_templates

List all available ITK Dev Docker templates with their characteristics.

**Example prompt:**
> "What templates are available for Drupal projects?"

### itkdev_detect_project

Analyze a directory to detect ITK Dev project configuration.

**Parameters:**

- `path` (required): Absolute path to the project directory

**Example prompt:**
> "Analyze the project at /Users/me/projects/mysite"

**Returns:**

- Project type (Drupal/Symfony)
- Template in use
- PHP version
- Web root
- Services defined
- ITK version

### itkdev_get_template_files

List all files that would be installed by a template.

**Parameters:**

- `template` (required): Template name (e.g., `drupal-11`)

**Example prompt:**
> "What files does the drupal-11 template include?"

### itkdev_compare_project

Compare a project against its template to find differences.

**Parameters:**

- `path` (required): Absolute path to the project
- `template` (optional): Template to compare against (auto-detected from .env)

**Example prompt:**
> "Is my project at /Users/me/projects/mysite up to date with its template?"

**Returns:**

- Missing files
- Outdated files (with version comparison)
- Matching files
- Update recommendations

### itkdev_get_template_content

Get the content of a specific file from a template.

**Parameters:**

- `template` (required): Template name
- `file` (required): Relative file path

**Example prompt:**
> "Show me the docker-compose.yml from the drupal-11 template"

## Use Cases

### Setting Up a New Project

> "I need to set up a new Drupal 11 project. What template should I use and what are the steps?"

Claude will read the documentation and provide step-by-step instructions.

### Checking Project Status

> "Analyze my project at /path/to/project and tell me if it needs updates"

Claude will detect the project configuration and compare against the template.

### Understanding Configurations

> "What services are included in the drupal-11 template and what do they do?"

Claude will read the documentation and explain each service.

### Troubleshooting

> "My Docker containers won't start. Can you help debug?"

Claude will read troubleshooting documentation and analyze your project configuration.

## Development

### Watch Mode

```bash
npm run dev
```

Rebuilds on file changes.

### Project Structure

```text
mcp-itkdev-docker/
├── src/
│   └── index.ts      # MCP server implementation
├── dist/             # Compiled output (gitignored)
├── docs/             # Documentation served as MCP resources
│   ├── itkdev-docker-cli.md
│   ├── itkdev-docker-compose.md
│   └── itkdev-task-files.md
├── package.json
├── tsconfig.json
└── README.md
```

## Troubleshooting

### Server Not Connecting

1. If using the plugin, verify installation with `/plugin list`
2. For manual installation, check that the path is absolute and correct
3. Check Node.js version (`node --version` should be 18+)
4. Restart Claude Code after configuration changes

### Tools Not Working

1. Verify the MCP server is running (check Claude Code status)
2. For manual installation, ensure `npm run build` completed successfully
3. Look for error messages in Claude Code's output

TDQS

A3.5/5.0

Scored across 5 tools

Disambiguation5/5

Each tool targets a distinct action: detect inspects a project, list_templates enumerates templates, get_template_files and get_template_content retrieve file listings vs. file bodies, and compare_project diffs configs. The template-listing vs. template-file-content pair is clearly separated by naming and description, so misselection is unlikely.

Naming Consistency5/5

All five tools share the itkdev_ prefix and a consistent snake_case verb_noun pattern (detect_project, get_template_files, compare_project, get_template_content, list_templates). The convention is uniform and predictable, with no mixing of styles.

Tool Count4/5

Five tools is a tight, well-scoped set that matches the narrow template-inspection domain, with no redundant entries. It sits at the lower end of the range and feels slightly thin given that the server appears to be a scaffolding helper.

Completeness3/5

The surface is entirely read-only: detection, listing, content retrieval, and diffing are covered, but there is no tool to actually apply/install a template or initialize a project from one. For a Docker scaffolding server that is a notable gap, leaving agents to perform the core write action outside the toolset.

Maintenance

ActivityInactive
ResponsivenessNo issues