CircleCI MCPでCursor Rulesのルール違反をコミット前に検知する方法

CircleCI MCPでCursor Rulesのルール違反をコミット前に検知する方法

この記事の操作
Markdownで見る

Chrome(最新版)のBuilt-in AIが必要です。

Chrome(最新版)のBuilt-in AIが必要です。

CircleCI が提供する MCP サーバーには、git diff をベースにコーディング規約への準拠を確認する analyze_diff という機能があります。この機能を Cursor Rules と組み合わせることで、コード変更時に自動的にプロジェクト固有のルールをチェックするフローを構築できます。本記事では、実際に analyze_diff を使ってコードレビューを実施した様子を紹介し、他の類似ツールとの違いを整理します。

CircleCI MCP のコードレビュー機能

CircleCI MCP サーバーは、Model Context Protocol を通じて AI アシスタントに CircleCI のデータやツールを提供するサービスです。主な機能はビルド失敗の診断やテスト結果の分析ですが、それとは別に analyze_diff というコードレビューツールも含まれています。公式ドキュメントによれば、analyze_diff は次のように説明されています。

This tool is used to analyze a git diff (unstaged, staged, or all changes) against cursor rules to identify rule violations.

つまり、git diff の内容を Cursor Rules と照合し、ルール違反を検出する仕組みです。デフォルトではステージされた変更を対象としますが、ユーザーが明示的に指定すれば未ステージの変更や全変更も対象にできます。

CircleCI MCPで差分のルール適合チェックを実行する

Cursor 上で analyze_diff を実行する手順は比較的シンプルです。「analyze_diff を利用して、コードレビューして」と指示すると、Gitを使って差分のレビューを開始します。

  1. git status でリポジトリの状態を確認
  2. git diff で変更内容を取得
  3. Cursor Rules ファイルを読み込み
  4. analyze_diff ツールを実行してルール違反をチェック

MCPの実行結果を見ていると、実行したコマンドやレビュー結果をみることができます。

もしルール違反が検出された場合、ルールの内容や違反の理由・信頼度スコアなどが表示されます。問題ない場合は「All rules are compliant」というメッセージが出てきました。

意図的にルール違反状態を作ってみる

今回はルール違反時の動作を見たいので、後出しでルールを追加してみました。1つのtypescriptファイルに複数のクラスを定義しておきます。その後、次のような Cursor Rule を追加します。

---
alwaysApply: true
---

1つのファイルに1つのクラスだけにする。
ドメインが似通っているものはディレクトリで整理する。

これで再度MCPを実行すると、想定通りルール違反が検知されました。MCPは英語でレスポンスを返しますが、Cursor自身は日本語で返事してくれます。

このまま修正指示を出すと、修正作業が始まります。

CIrcleCIのMCPを使うことで、Cursor / Claude Code / Kiroなどを併用している開発などで発生しがちなルール違反についても、コミット前に検知できるようになります。修正提案も行われるため、CursorのRuleを他のコーディングエージェントが従っているか調整させる用途に使うと良さそうです。

ルールを作っておくと良さそう

より確実にルールに従わせるために、Cursor / Claude / Kiroなどが持つルールシステムを活用するのも一つです。例えば以下のように、コード変更後に必ず analyze_diff を実行するよう指示するルールファイルを作成してみましょう。

---
alwaysApply: true
---

# Cursor Rules 準拠レビュー

コード変更後は、必ず `analyze_diff` ツールを使用して Cursor Rules に準拠しているか確認すること。

## 適用タイミング

以下の作業後は必ず実施:
- リファクタリング
- 新規ファイル作成
- 既存ファイルの大幅な変更
- 複数ファイルにまたがる変更

## 実施手順

1. 変更内容を `git diff` で取得
2. `analyze_diff` ツールを使用してコードレビューを実施
3. ルール違反が検出された場合は、修正してから再度レビュー
4. すべてのルールに準拠していることを確認

## 注意事項

- ルール違反が検出された場合、修正を完了するまで作業を完了としないこと
- `analyze_diff` の結果が「All rules are compliant」であることを確認すること
- 新しいルールファイルが追加された場合は、そのルールも含めてレビューすること

alwaysApply: true を指定することで、コード変更を行うたび analyze_diff を使ってレビューを実施するようになります。

ただし、alwaysApply を使うと、すべての会話でこのルールが読み込まれるため、コンテキストウィンドウを消費します。また、AI が自動的にツールを実行するため、意図しないタイミングでレビューが走る可能性もあります。運用する際は、チームの開発フローに合わせて適切にルールを設計することが重要です。

まとめ

CircleCI MCP の analyze_diff は、git diff をベースに Cursor Rules への準拠をチェックする機能です。実際に使ってみると、ルール違反を具体的に指摘し、信頼度スコアとともに報告してくれるため、修正作業がスムーズに進みます。Cursor Rules を使ってレビュープロセスを必須化すれば、コード変更のたびに自動的にチェックが走る環境を構築できます。

とはいえエディタ自身がルールをちゃんと守ってくれれば、本来不要な機能ともいえます。とはいえ、Specの生成は Kiro にまかせていたり、Claude Codeも併用したりしている場合には、Cursor Rulesが参照されていない可能性についても想定する必要があります。Agents.mdなどが普及するまでの過渡期的な対応かもしれませんが、意図しない実装をブロックするための防壁を1枚増やすという意味でも、試してみる価値はあるかなと思いました。

シェア:

Hidetaka Okamoto profile photo

Hidetaka Okamoto

ビジネスデベロップメント

DigitalCubeのBizDev。EC ASPの開発やStripeのDeveloper Advocateとしての経験を元に、SaaSやECサイトの収益を増やすための方法・生成AIを使った効率化や新しい事業モデルの模索などに挑戦する。

⭐ この記事への反応

はてなアカウントでスターを付けることができます

関連記事