MCP Server: Terragrunt Docs Provider について
MCP Server: Terragrunt Docs Provider は、Deno と TypeScript で構築された MCP サーバーで、Terragrunt のドキュメントや GitHub の issue を AI アシスタントに提供します。Terragrunt の設定を書くユーザー向けで、最新の文書を参照することで回答の精度向上を目指します。
主な機能
- 01Terragrunt ドキュメントのカテゴリ一覧の取得
- 02カテゴリ内の個別ドキュメントの読み取り
- 03カテゴリ内の全ドキュメントの統合取得
- 04Terragrunt リポジトリのオープンな issue の取得
活用シーン
- 01最新のドキュメントを基にした Terragrunt 設定の作成や確認
- 02Terragrunt プロジェクトの未解決 issue や議論の把握
- 03ドキュメント検索機能へのデータ提供
MCP 対応
本プロジェクトは MCP サーバーであり、ドキュメントのカテゴリ一覧、ドキュメント内容、オープンな issue を取得するツールを MCP クライアントに提供します。GitHub 関連のツールには、環境変数で設定する GitHub トークンが必要です。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー:Terragrunt Docs Provider
Deno と TypeScript で構築された Model Context Protocol(MCP) サーバーです。Terragrunt に関連するコンテキスト情報を提供するように設計されています。
概要
このサーバーは MCP プロバイダーとして機能し、AI エージェントやその他の MCP クライアントが、Terragrunt のドキュメントや GitHub のイシューなどの開発情報を照会できるツールとリソースを公開します。
- Claude Desktop での実際のデモはこちら 📺 こちらでご覧いただけます。
なぜ?
主に Terragrunt で IaC の設定を書く際、IDE のサポートはあまり充実していません。VSCode では Terraform プラグインの性能は優れていますが、Terragrunt には対応しておらず、Terragrunt のブロックを認識できず、自動補完も提供されません。AI による自動補完を使うと、誤った結果や誤検知のリントエラーがよく発生します。この MCP サーバーを使えば、Terragrunt の GitHub リポジトリから最新のドキュメントやイシューを LLM/AI アシスタントに提供でき、より正確な情報を返せるようになります。
ツール
注: すべてのツールを使用するには、有効な GitHub トークンを環境変数
GITHUB_TOKEN、GH_TOKEN、またはGITHUB_PERSONAL_ACCESS_TOKENに設定する必要があります。
| ツール名 | 目的 | 入力 | 出力 | 使用例 |
|---|---|---|---|---|
list-doc-categories | Terragrunt ドキュメントのすべてのカテゴリを取得します。 | なし | name(文字列)と link(文字列)のプロパティを持つオブジェクトの配列 | 利用可能なドキュメント構成を確認するときや、ドキュメントのナビゲーションシステムを構築するときに使用します。通常、Terragrunt ドキュメントの作業を始めるときに最初に呼び出すツールです。 |
list-all-docs-by-category | 特定のカテゴリに含まれるすべてのドキュメントを一覧表示します。 | category(文字列) | name(文字列)、link(文字列)、content(文字列)を持つオブジェクトの配列 | カテゴリ別のドキュメントビューアーを構築するときや、特定のカテゴリで利用可能なすべてのドキュメントを確認するときなどに使用します。 |
read-document-from-category | カテゴリから特定のドキュメントを読み取ります。 | category(文字列)、document(文字列) | 完全な Markdown コンテンツを含む content(文字列)プロパティを持つオブジェクト | ドキュメント検索を実装するときや、アプリケーションで特定のドキュメントを参照するときなどに、特定のドキュメントの全内容にアクセスするために使用します。 |
read-all-docs-from-category | カテゴリ内のすべてのドキュメントを取得し、1 つのレスポンスにまとめます。 | category(文字列) | すべてのドキュメントをまとめた content(文字列)プロパティを持つオブジェクト | ドキュメント検索機能を構築するときや、特定のトピックに関するドキュメント一式を分析するときなどに、カテゴリ内のすべてのドキュメントを包括的に確認するために使用します。 |
get-all-open-issues | Terragrunt の GitHub リポジトリからすべてのオープンな Issue を取得します。 | all(ブール値、任意) | title(文字列)、number(数値)、state(文字列)、created_at(文字列)、updated_at(文字列)、body(文字列)、labels(文字列配列)を持つオブジェクトの配列 | Issue ダッシュボードの構築や Issue のトリアージを行うとき、またはプロジェクトの最新の課題や議論を把握するときなどに、Terragrunt プロジェクトの現在の Issue を追跡または分析するために使用します。 |
セットアップ
-
Deno をインストールします。
-
リポジトリをクローンします。
git clone https://github.com/Excoriate/mcp-terragrunt-docs.git cd mcp-terragrunt-docs -
GitHub トークンを環境変数に設定します。
-
Unix/macOS の場合:
export GITHUB_TOKEN=ghp_xxx... # or GH_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN -
Windows(cmd)の場合:
set GITHUB_TOKEN=ghp_xxx...
-
注:
.envファイルにトークンを設定することもできます。
-
MCP サーバーを実行します。
# directly using deno deno run -A main.ts # Using the justfile just run # You can also debug it, and inspect it locally just inspect
最も簡単な方法は、JSR(Javascript Registry ❤️)から直接使用することです。
# export your github token
export GITHUB_TOKEN=ghp_xxx...
# run it
deno run -A jsr:@excoriate/[email protected]
Claude Desktop での使用方法
この Deno ベースの MCP サーバーを Claude Desktop で使用するには、claude_desktop_config.json に以下を追加します。
Deno を使用する場合
{
"mcpServers": {
"terragrunt_docs": {
"command": "deno",
"args": [
"run",
"-A",
"main.ts"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
},
}
}
}
Docker を使用する場合
{
"mcpServers": {
"terragrunt_docs": {
"command": "docker",
"args": [
"run",
"-e", "GITHUB_TOKEN=<YOUR_TOKEN>", "mcp-terragrunt-docs"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
JSR を使用する場合
{
"mcpServers": {
"terragrunt_docs": {
"command": "deno",
"args": [
"run",
"-A",
"jsr:@excoriate/[email protected]"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Docker イメージのビルド
docker build -t mcp-terragrunt-docs .
Docker で MCP サーバーを実行する
docker run -it --rm \
-e GITHUB_TOKEN=ghp_xxx... \
mcp-terragrunt-docs
ghp_xxx...を、適切な権限を持つGitHub Personal Access Tokenに置き換えてください。- 環境変数名には
GH_TOKENまたはGITHUB_PERSONAL_ACCESS_TOKENも使用できます。 - ローカルの
.envファイルを使用する場合は、--env-file .envを指定して渡せます。
コントリビュート
セットアップ、コードスタイル、PR の手順、コードベース構成のリファレンスなど、詳細なコントリビュートガイドラインについては、docs/CONTRIBUTING.md をご覧ください。
セキュリティ
脆弱性の報告方法や責任ある開示のガイドラインなど、プロジェクトのセキュリティポリシーについては、SECURITY.md をご覧ください。
ライセンス
このプロジェクトは MIT License の下でライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。