Skip to main content
Glama
DriftHound MCP Server

DriftHound MCP Server

Official
by drifthoundhq

DriftHound MCP Server

An MCP (Model Context Protocol) server that enables Claude to discover and understand IaC drift from DriftHound.

Features

  • list_projects_with_drift - Find all projects that have drifting environments

  • list_environments - List environments for a project with status filtering

  • get_drift_details - Get full Terraform plan output for drift analysis

  • get_environment_info - Get repository, branch, and directory for remediation

Related MCP server: Infracost MCP Server

Installation

The package is published to GitHub Packages. Because GitHub Packages requires authentication even for public packages, you need a GitHub personal access token with the read:packages scope.

  1. Add the following to your ~/.npmrc:

@drifthoundhq:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_PAT
  1. Use npx directly in your MCP client config — no global install needed (see below).

From source

npm install
npm run build

Configuration

Environment Variables

Variable

Required

Description

DRIFTHOUND_API_URL

Yes

Base URL of your DriftHound instance

DRIFTHOUND_API_TOKEN

Yes

API token from DriftHound admin UI

Claude Code Configuration

Add to your Claude Code settings (~/.claude/settings.json):

{
  "mcpServers": {
    "drifthound": {
      "command": "npx",
      "args": ["-y", "@drifthoundhq/mcp-server"],
      "env": {
        "DRIFTHOUND_API_URL": "https://drifthound.example.com",
        "DRIFTHOUND_API_TOKEN": "your-api-token"
      }
    }
  }
}

Claude Desktop Configuration

Add to your Claude Desktop config (claude_desktop_config.json):

{
  "mcpServers": {
    "drifthound": {
      "command": "npx",
      "args": ["-y", "@drifthoundhq/mcp-server"],
      "env": {
        "DRIFTHOUND_API_URL": "https://drifthound.example.com",
        "DRIFTHOUND_API_TOKEN": "your-api-token"
      }
    }
  }
}

Usage

Once configured, Claude can use these tools to discover and understand drift:

Discover Drift

Claude, what projects have drift?

Claude will use list_projects_with_drift to find projects needing attention.

Investigate a Project

Show me the drifting environments in the EKS project

Claude will use list_environments with status=drift filter.

Analyze Drift Details

What's causing drift in eks/production?

Claude will use get_drift_details to get the full Terraform plan output.

Get Remediation Info

Where can I find the code to fix eks/production drift?

Claude will use get_environment_info to get the repository URL and directory.

Kubernetes Deployment

A Docker image is published to ghcr.io/drifthoundhq/mcp-server on every release. The server runs in HTTP mode when the PORT environment variable is set, exposing the MCP protocol at /mcp.

The quickest way to deploy on Kubernetes is via the Helm chart published to the OCI registry:

helm install drifthound oci://ghcr.io/drifthoundhq/charts/drifthound-mcp-server \
  --namespace drifthound \
  --create-namespace \
  --set drifthoundApiUrl=https://your-drifthound.example.com \
  --set drifthoundApiToken=your-api-token

Once running, point Claude Code at the in-cluster endpoint:

{
  "mcpServers": {
    "drifthound": {
      "url": "http://drifthound-drifthound-mcp-server.drifthound.svc.cluster.local:3000/mcp"
    }
  }
}

See the Helm chart README for the full configuration reference, external secret support, and port-forward instructions for local access.

Development

# Run in development mode
npm run dev

# Build for production
npm run build

# Start production server
npm start

API Requirements

This MCP server requires DriftHound to have the read API endpoints enabled:

  • GET /api/v1/projects - List projects

  • GET /api/v1/projects/:key - Get project details

  • GET /api/v1/projects/:key/environments - List environments

  • GET /api/v1/projects/:key/environments/:key - Get environment details

  • GET /api/v1/projects/:key/environments/:key/drift - Get latest drift check

License

MIT

Available Tools

4 tools
get_drift_detailsA

Get the latest drift check details for an environment including the full Terraform/Terragrunt plan output (raw_output). This shows exactly what resources will be added, changed, or destroyed. Essential for understanding what needs to be fixed.

Inputs: project_key (required), environment_key (required).

get_environment_infoA

Get detailed information about an environment including its GitHub repository URL, branch, and directory path. Use this to know where to find and clone the IaC code for remediation.

Inputs: project_key (required), environment_key (required).

list_environmentsA

List all environments for a specific project with their current status (ok, drift, error, unknown). Optionally filter by status to find only drifting environments. Returns environment keys, names, directories, and last drift check summary.

Inputs: project_key (required), status.

list_projects_with_driftA

List all projects that have environments with drift or error status. Returns project keys, names, repositories, branches, and the number of environments in drift or error state. Use this to discover which projects need attention.

Inputs: no named parameters.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

Loading tool schema changelog…

    TDQS

    A4.3/5.0

    Scored across 4 tools

    Disambiguation5/5

    Each tool has a clearly distinct purpose: listing projects with drift, listing environments, getting drift details, and getting environment info. No ambiguity in their roles.

    Naming Consistency5/5

    All tool names follow a consistent verb_noun pattern (list_projects_with_drift, list_environments, get_drift_details, get_environment_info). The naming is predictable and readable.

    Tool Count5/5

    With 4 tools, the set is well-scoped for a drift monitoring server. Each tool covers a distinct aspect: discovery, details, and context. Not too few or too many for the domain.

    Completeness4/5

    The tools cover discovery and information retrieval for drift detection. However, there is no tool to trigger a drift check or perform remediation, which may be intentional but leaves a minor gap.

    Maintenance

    ActivityMaintained
    ResponsivenessNo recent community issues

    Related MCP Connectors

    Related MCP Servers

    • A
      license
      Not graded
      quality
      B
      maintenance
      🌍 Terraform Model Context Protocol (MCP) Tool - An experimental CLI tool that enables AI assistants to manage and operate Terraform environments. Supports reading Terraform configurations, analyzing plans, applying configurations, and managing state with Claude Desktop integration. ⚡️
      371
      MIT
    • A
      license
      A
      quality
      D
      maintenance
      Enables Claude to interact with Infracost for Terraform cost estimation and cloud governance. Supports generating cost breakdowns, comparing configurations, creating tagging policies, setting up cost guardrails, and posting cost comments to PRs.
      16
      2
      MIT