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

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

Article actions
View in Markdown

Requires Chrome (latest) built-in AI.

Requires Chrome (latest) 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枚増やすという意味でも、試してみる価値はあるかなと思いました。

Share:

Hidetaka Okamoto profile photo

Hidetaka Okamoto

Business Development

I'm a Business Development professional at DigitalCube. Based on my experience in EC ASP development and as a Developer Advocate at Stripe, I'm working on methods to increase revenue for SaaS and EC sites, exploring efficiency improvements using generative AI, and developing new business models. You can follow me on Twitter at @hidetaka__dev

Related Articles