MCP Server: Terraform AWS Provider Docs について
DenoとTypeScriptで構築されたMCPサーバーで、Terraform AWS Providerのドキュメント、GitHubのIssueとリリース、AWSリソースの例を提供します。Terraformでインフラコードを書く開発者向けです。
主な機能
- 01リソースとデータソースのドキュメント一覧
- 02名前やあいまい検索によるドキュメント取得
- 03オープンIssueと詳細の検索
- 04リリース一覧と詳細の取得
- 05AWSリソースの例の参照
活用シーン
- 01Terraformモジュール作成時のAWSリソース調査
- 02Providerの動作に関する既知Issueの確認
- 03リリース変更と関連Issueの確認
MCP 対応
Terraform AWS Providerのドキュメント、GitHubのIssueとリリース、AWSの例を検索するツールとリソースをMCPクライアントに公開します。ツールの利用には環境変数でGitHub tokenを設定する必要があります。
設定
ローカルサーバーの設定はどのクライアントでも共通です。コピーしてクライアントの MCP 設定ファイルに貼り付けてください。
このサーバーのパッケージやリモートエンドポイントはまだ取得できていません。プロジェクトの README の手順に従ってください。
ツール
ローカルサーバーのツールはマシン上で起動して初めて取得できます。メンテナーはまだツール一覧を提供していません。
詳細
MCP サーバー:Terraform AWS Provider のドキュメント
Deno と TypeScript で構築された Model Context Protocol (MCP) サーバーです。 Terraform AWS Provider に関連する情報をコンテキストに応じて提供するように設計されています。
目次
概要
このサーバーは MCP サーバーとして機能し、AI エージェントやその他の MCP クライアントが、 Terraform AWS Provider に関する情報を照会できるツールとリソースを提供します。対象となる情報は次のとおりです。
- ✅ リソースのドキュメント。
- ✅ 一時的なリソース、ガイド、関数を含む、プロバイダーの設定。
- ✅ GitHub の Issue(オープン、クローズ済み、すべて)
- ✅ AWS リソースの例
Model Context Protocol (MCP) とは何ですか?また、どのように機能しますか?
Model Context Protocol(MCP)は、LLM アプリケーションと外部のデータソースおよびツールをシームレスに統合できるオープンプロトコルです。AI を活用した IDE の構築、チャットインターフェースの強化、カスタム AI ワークフローの作成など、MCP は LLM を必要なコンテキストに接続するための標準化された方法を提供します。
なぜ必要なのですか?
IaC を記述したり、 Terraform モジュールを設計したりする際には、 本番環境に対応できる、安定したインターフェースを備え、組み合わせて再利用可能なモジュールを設計するために、実際の AWS リソース、機能、性能について十分な知識と理解、コンテキストが必要になることがよくあります。
この MCP サーバーは、まさにその情報を、 Terraform AWS Provider のレジストリサイトから最新のドキュメント、Issue、例とともに提供するように設計されています。常に最新で、常に情報源から直接取得します。
ツール
重要
すべてのツールを使用するには、有効な GitHub トークンを環境変数として設定する必要があります。
GITHUB_TOKEN、GH_TOKEN、またはGITHUB_PERSONAL_ACCESS_TOKENを設定してください。
現在、次のツールを利用できます(今後追加予定です。お気軽に Issue または PRを送信してください):
| ツール名 | 目的 | 入力 | 出力 | ユースケース |
|---|---|---|---|---|
list-resources | メタデータ付きで AWS リソースのドキュメントファイルをすべて一覧表示します | なし | id、subcategory、page_title、description、resource、resource_description、source、file_path を含むリソースオブジェクトの配列 | Terraform AWS Provider がサポートするすべての AWS リソースを見つけ、以降のクエリに使用するファイル名やパスを取得し、ダッシュボード、概要、分析を作成します。 |
get-resource-doc | 名前またはあいまい検索で、単一の AWS リソースのドキュメントファイルを取得します | aws_resource(文字列、任意):リソース名または説明file_name(文字列、任意):正確なファイル名(優先されます) | 要求されたリソースの解析・整形済みドキュメント。すべてのメタデータフィールドと Markdown 本文全体を含みます | 特定の AWS リソースの詳細なドキュメントを取得し、曖昧なクエリや自然言語のクエリを解決して、LLM やクライアントに構造化されたリソース情報を提供します。 |
list-datasources | メタデータ付きで AWS データソースのドキュメントファイルをすべて一覧表示します | なし | id、subcategory、page_title、description、datasource、datasource_description、source、file_path を含むデータソースオブジェクトの配列 | Terraform AWS Provider がサポートするすべての AWS データソースを見つけ、以降のクエリに使用するファイル名やパスを取得し、ダッシュボード、概要、分析を作成します。 |
get-datasource-doc | 名前またはあいまい検索で、単一の AWS データソースのドキュメントファイルを取得します | aws_datasource(文字列、任意):データソース名または説明file_name(文字列、任意):正確なファイル名(優先されます) | 要求されたデータソースの解析・整形済みドキュメント。すべてのメタデータフィールドと Markdown 本文全体を含みます | 特定の AWS データソースの詳細なドキュメントを取得し、曖昧なクエリや自然言語のクエリを解決して、LLM やクライアントに構造化されたデータソース情報を提供します。 |
get-open-issues | Terraform AWS Provider の GitHub リポジトリから未解決の issue を取得します | all(ブール値、任意):すべての issue、または最初の 30 件を取得します | ID、タイトル、説明、source、state、user、labels、作成・更新日時、コメントを含む issue オブジェクトの配列 | 現在の未解決 issue を分析、トリアージ、または報告します。ダッシュボードの作成、issue とドキュメントの関連付け、Terraform の動作が想定どおりか、既知の issue に関連するかどうかの把握に役立ちます。 |
get-issue | 特定の GitHub issue の詳細情報を取得します | issueNumber(数値、必須):正確な GitHub issue 番号 | 本文、日時、ラベル、コメントを含む、すべてのメタデータを備えた詳細な issue オブジェクト | 特定の issue を詳しく調査します。通常は get-open-issues の後に使用して、関心のある単一の issue に関する包括的な情報を取得します。 |
list-all-releases | Terraform AWS Provider の GitHub リポジトリからすべてのリリースを取得します | なし | ID、タグ、名前、作成者、公開日、URL、アセット数、概要本文を含むリリースオブジェクトの配列 | 利用可能なすべてのバージョン/リリースを一覧表示し、ダッシュボード、変更履歴、分析を作成して、プロバイダーのバージョンをドキュメント、issue、アップグレードガイドと関連付けます。 |
get-release-by-tag | タグを指定して特定のリリースの詳細情報を取得します | tag(文字列、必須):リリースタグ(例:'v5.96.0')include_issues(ブール値、任意):参照されている issue も取得します | メタデータをすべて含むリリースオブジェクト。include_issues が true の場合、リリースノートで参照されているすべての issue の詳細も含みます | 参照されている issue を含め、特定のバージョンを詳しく調査します。list-all-releases の後に使用するか、タグがわかっている場合は直接使用します。 |
get-latest-release | 最新リリースの詳細情報を取得します | include_issues(ブール値、任意):参照されている issue も取得します | メタデータをすべて含む最新リリースオブジェクト。include_issues が true の場合、リリースノートで参照されているすべての issue の詳細も含みます | 最新バージョンにすばやくアクセスし、新機能やバグ修正を確認できます。必要に応じて、参照されている issue も確認できます。 |
はじめに
Claude Desktop でのインストールと使用
この Deno ベースの MCP サーバーを Claude Desktop で使用するには、以下を
claude_desktop_config.json に追加してください。
Deno を使用する場合
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": [
"run",
"-A",
"main.ts"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
または、推奨される方法として、JSR から deno を直接使用します。
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": [
"run",
"-A",
"jsr:@excoriate/[email protected]"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
Docker を使用する場合
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "docker",
"args": [
"run",
"-e",
"GITHUB_TOKEN=<YOUR_TOKEN>",
"mcp-terraform-aws-provider-docs"
],
"env": {
"GITHUB_TOKEN": "<YOUR_TOKEN>"
}
}
}
}
IDE/エディターへのインストール
Cursor へのインストール
次の場所に移動します:Settings -> Cursor Settings -> MCP -> Add new global MCP server
以下の設定を Cursor の ~/.cursor/mcp.json ファイルに貼り付ける方法を
おすすめします。詳しくは
Cursor MCP のドキュメントを参照してください。
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
Windsurf へのインストール
これを Windsurf の MCP 設定ファイルに追加してください。詳しくは Windsurf MCP のドキュメントを参照してください。
{
"mcpServers": {
"tf_aws_provider_docs": {
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
VSCode へのインストール
これを VSCode の MCP 設定ファイルに追加してください。詳しくは VSCode MCP のドキュメント を参照してください。
{
"servers": {
"Context7": {
"type": "stdio",
"command": "deno",
"args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
}
}
}
開発と貢献
このプロジェクトのデバッグ、テスト、貢献について詳しくは、 DEVELOPER_GUIDE と CONTRIBUTING を参照してください。
JSR から直接実行する
MCP サーバーを JSR(JavaScript Registry ❤️)から直接使用できます。
# export your github token
export GITHUB_TOKEN=ghp_xxx...
# run it
deno run -A jsr:@excoriate/mcp-terraform-aws-provider-docs@latest
デバッグとトラブルシューティング
デバッグする場合は、組み込みのデバッガー (インスペクター)を使用してください。 役立つ justfile レシピが用意されています。
# start the mcp server, and the inspector
just inspect
Docker の使用
Docker イメージをビルドする
docker build -t mcp-terraform-aws-provider-docs .
Docker で MCP サーバーを実行する
docker run -it --rm \
-e GITHUB_TOKEN=ghp_xxx... \
mcp-terraform-aws-provider-docs
ヒント
ghp_xxx...を、適切な権限を持つ GitHub Personal Access Token に置き換えてください。環境変数名として
GH_TOKENまたはGITHUB_PERSONAL_ACCESS_TOKENも使用できます。ローカルの
.envファイルを使用する場合は、--env-file .envを指定して渡せます。
ロードマップ
- プロバイダーの設定を取得するツールを追加する。
- 専用のバックエンドと統合し、インデックスを作成して、高度な検索/コードアシスタント向けドキュメントを提供し、GitHub API のレート制限を回避する。
貢献
セットアップ、コードスタイル、PR のプロセス、コードベースの構成に関する参考情報など、詳細な貢献ガイドラインについては、CONTRIBUTING.md を参照してください。
セキュリティ
脆弱性の報告方法や責任ある開示のガイドラインなど、このプロジェクトのセキュリティポリシーについては、SECURITY.md を参照してください。
ライセンス
このプロジェクトは MIT License のもとでライセンスされています。
コメント
AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。