基础设施漂移检测服务

DriftHound MCP Server是一个模型上下文协议服务器,用于帮助Claude发现和理解基础设施即代码(IaC)的漂移情况。

  • by drifthoundhq
  • TypeScript
  • 本地部署
  • 更新于
在 GitHub 查看 drifthoundhq/mcp-server

使用说明

DriftHound MCP服务器

MCP(模型上下文协议)服务器,使Claude能够发现和理解DriftHound的IaC漂移。

特性

  • list_projects_with_drift -查找所有具有漂移环境的项目
  • list_environment -使用状态筛选列出项目的环境
  • get_drift_details -获取完整的地形图输出以进行漂移分析
  • get_environment_info -获取用于修复的存储库、分支和目录

安装

GitHub软件包(推荐)

该包已发布到GitHub Packages。因为GitHub Packages需要身份验证,即使是公共包,你也需要一个GitHub个人访问令牌 read:packages 范围。

  1. 将以下内容添加到您的 ~/.npmrc:
@drifthoundhq:registry=https://npm.pkg.github.com
//npm.pkg.github.com/:_authToken=YOUR_GITHUB_PAT
  1. 使用 npx 直接在MCP客户端配置中——不需要全局安装(见下文)。

来源

npm install
npm run build

配置

环境变量

变量 必填 描述
DRIFTHOUND_API_URL 是 您的DriftHound实例的基本URL
DRIFTHOUND_API_TOKEN 是 来自DriftHound管理员UI的API令牌

Claude代码配置

添加到您的克劳德代码设置(~/.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桌面配置

添加到您的Claude桌面配置(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"
      }
    }
  }
}

用法

配置后,Claude可以使用这些工具来发现和理解漂移:

发现漂移

Claude, what projects have drift?

克劳德将使用 list_projects_with_drift 寻找需要关注的项目。

调查一个项目

Show me the drifting environments in the EKS project

克劳德将使用 list_environments 和 status=drift 过滤器。

分析漂移细节

What's causing drift in eks/production?

克劳德将使用 get_drift_details 以获得完整的Terraform计划输出。

获取补救信息

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

克劳德将使用 get_environment_info 以获取存储库URL和目录。

Kubernetes部署

Docker镜像发布到 ghcr.io/drifthoundhq/mcp-server 每次发布。当以下情况发生时,服务器以HTTP模式运行 PORT 设置环境变量,在以下位置公开MCP协议 /mcp.

在Kubernetes上部署的最快方法是通过发布到OCI注册表的Helm chart:

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

运行后,将Claude Code指向集群内端点:

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

看 Helm chart自述 有关完整的配置参考、外部秘密支持和本地访问的端口转发指令。

发展

# Run in development mode
npm run dev

# Build for production
npm run build

# Start production server
npm start

API要求

此MCP服务器要求DriftHound启用读取API终结点:

  • GET /api/v1/projects -列出项目
  • GET /api/v1/projects/:key -获取项目详细信息
  • GET /api/v1/projects/:key/environments -列出环境
  • GET /api/v1/projects/:key/environments/:key -获取环境详细信息
  • GET /api/v1/projects/:key/environments/:key/drift -获取最新漂移检查

许可证

麻省理工学院