MCP Server: Terraform AWS Provider Docs

by Excoriate

1 stars
202 downloads
Not rated
GitHub

About

Deno/TypeScript MCP Server providing context related to the AWS provider for Terragrunt documentation.

Details

Author
Excoriate
GitHub stars
1
Downloads
202
Categories
Cloud Service

- Lists all AWS resource and datasource documentation files with metadata.
- Fetches detailed documentation for a specific resource or datasource by name or fuzzy search.
- Retrieves open GitHub issues and full issue details from the Terraform AWS Provider repo.
- Lists all provider releases and fetches release information by tag or latest release.
- Supports exact file name queries or natural language descriptions for documentation lookups.
- Can optionally include referenced issues when retrieving release details.

Setting up with Highlight

This MCP is not yet compatible with Highlight’s one-click setup. However, you can still use it with Highlight by following these steps:

  1. Download and install Highlight from highlightai.com/download
  2. Navigate to the plugins tab and select "Add Custom Plugin"
  3. Configure the plugin with the settings below
    Plugin Name MCP Server: Terraform AWS Provider Docs
    Command (node, npx, python, etc.)

    Please refer to the README for specific instructions on how to obtain API keys or other required environment variables.

  4. Enable "Start Automatically" if you want the plugin to start when Highlight launches

From the repository

Install by adding a configuration entry to your MCP client (Claude Desktop, Cursor, Windsurf, or VSCode). The server can run via Deno directly or from JSR (jsr:@excoriate/mcp-terraform-aws-provider-docs), or using Docker. All tools require a valid GitHub token set as the GITHUB_TOKEN (or GH_TOKEN / GITHUB_PERSONAL_ACCESS_TOKEN) environment variable.

Claude Desktop / Cursor

Paste into your MCP client config file to install this server.

{
    "mcpServers": {
        "mcp server: terraform aws provider docs": {
            "mcp-terraform-aws-provider-docs": {
                "command": "deno",
                "args": [
                    "run",
                    "-A",
                    "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"
                ]
            }
        }
    }
}

McpServers

{
    "mcp-terraform-aws-provider-docs": {
        "command": "deno",
        "args": [
            "run",
            "-A",
            "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"
        ]
    }
}

MCP Server: Terraform AWS Provider Docs

Language
License

A Model Context Protocol (MCP) server built with Deno
and TypeScript, designed to provide contextual information related to
Terraform AWS Provider.

Table of Contents

- MCP Server: Terraform AWS Provider Docs
- Table of Contents
- Overview
- What is the Model Context Protocol (MCP) and how does it work?
- Why?
- Tools
- Getting Started
- Install and Use with Claude Desktop
- Using Deno
- Using Docker
- Installing in IDE/Editor(s)o
- Install on Cursor
- Install on Windsurf
- Install on VSCode
- Developing \& Contributing
- Run it directly from JSR
- Debugging \& Troubleshooting
- Using Docker
- Roadmap
- Contributing
- Security
- License

Overview

This server acts as an MCP server, exposing tools and resources that allow AI
agents or other MCP clients to query information about
Terraform AWS Provider
information, such as:

- ✅ Resources documentation.
- ✅ Provider's configuration, including ephemeral resources, guides, and
functions.
- ✅ GitHub Issues (opened, closed, and all)
- ✅ AWS Resources examples

What is the Model Context Protocol (MCP) and how does it work?

> The Model Context Protocol (MCP) is an open protocol that enables seamless integration between LLM applications and external data sources and tools. Whether you're building an AI-powered IDE, enhancing a chat interface, or creating custom AI workflows, MCP provides a standardized way to connect LLMs with the context they need.
>
> — Model Context Protocol README

---

Why?

When writing IaC, or designing
terraform modules, it's often
required a very good knowledge, understanding and context in the actual AWS
resources, features, and capabilities in order to design a production-grade
module, with stable interfaces, composable, and reusable.

This MCP server is designed to provide just that, with the latest documentation,
issues, and examples from the
Terraform AWS Provider
registry site. Always up-to-date, and always from the source.

Tools

> [!IMPORTANT]
> All tools require a valid GitHub token set as an environment variable:
> GITHUB_TOKEN, GH_TOKEN, or GITHUB_PERSONAL_ACCESS_TOKEN.

Currently, the following tools are available (more to come, or feel free to
submit an
issue or
PR):

| Tool Name | Purpose | Inputs | Outputs | Use Case |
|------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| list-resources | List all AWS resource documentation files with metadata | None | Array of resource objects with id, subcategory, page_title, description, resource, resource_description, source, file_path | Discover all AWS resources supported by the Terraform AWS Provider, obtain file names/paths for further queries, build dashboards, summaries, or analytics. |
| get-resource-doc | Fetch a single AWS resource documentation file by name or fuzzy search | aws_resource (string, optional): Resource name or description<br>file_name (string, optional): Exact file name (takes precedence) | Parsed and formatted documentation for the requested resource, with all metadata fields and full markdown body | Retrieve detailed documentation for a specific AWS resource, resolve ambiguous or natural language queries, provide LLMs or clients with structured resource information. |
| list-datasources | List all AWS datasource documentation files with metadata | None | Array of datasource objects with id, subcategory, page_title, description, datasource, datasource_description, source, file_path | Discover all AWS datasources supported by the Terraform AWS Provider, obtain file names/paths for further queries, build dashboards, summaries, or analytics. |
| get-datasource-doc | Fetch a single AWS datasource documentation file by name or fuzzy search | aws_datasource (string, optional): Datasource name or description<br>file_name (string, optional): Exact file name (takes precedence) | Parsed and formatted documentation for the requested datasource, with all metadata fields and full markdown body | Retrieve detailed documentation for a specific AWS datasource, resolve ambiguous or natural language queries, provide LLMs or clients with structured datasource information. |
| get-open-issues | Retrieve open issues from Terraform AWS Provider GitHub repo | all (boolean, optional): Retrieve all or first 30 issues | Array of issue objects with ID, title, description, source, state, user, labels, creation/update timestamps, comments | Analyze, triage, or report on current open issues. Build dashboards, correlate issues with documentation, understand if a Terraform behavior is expected or related to a known issue. |
| get-issue | Fetch detailed information for a specific GitHub issue | issueNumber (number, required): Exact GitHub issue number | Detailed issue object with full metadata including body, timestamps, labels, comments | Investigate a specific issue in detail, typically used after get-open-issues to obtain comprehensive information about a single issue of interest. |
| list-all-releases | Retrieve all releases from the Terraform AWS Provider GitHub repo | None | Array of release objects with ID, tag, name, author, published date, URL, asset count, and summary body | List all available versions/releases, build dashboards, changelogs, or analytics, correlate provider versions with documentation, issues, or upgrade guides. |
| get-release-by-tag | Fetch detailed information for a specific release by tag | tag (string, required): Release tag (e.g. 'v5.96.0')<br>include_issues (boolean, optional): Also fetch referenced issues | Release object with full metadata and, if include_issues is true, details for all referenced issues in the release notes | Investigate a particular version in depth, including referenced issues. Use after list-all-releases or directly if the tag is known. |
| get-latest-release | Fetch detailed information for the latest release | include_issues (boolean, optional): Also fetch referenced issues | Latest release object with full metadata and, if include_issues is true, details for all referenced issues in the release notes | Quickly access the most recent version, check for new features or bug fixes, and optionally see referenced issues. |

Getting Started

Install and Use with Claude Desktop

To use this Deno-based MCP server with Claude Desktop, add the following to your
claude_desktop_config.json:

Using Deno

{
  "mcpServers": {
    "tf_aws_provider_docs": {
      "command": "deno",
      "args": [
        "run",
        "-A",
        "main.ts"
      ],
      "env": {
        "GITHUB_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Or, the recommended way, with deno directly from JSR

{
  "mcpServers": {
    "tf_aws_provider_docs": {
      "command": "deno",
      "args": [
        "run",
        "-A",
        "jsr:@excoriate/mcp-terraform-aws-provider-docs@0.1.0"
      ],
      "env": {
        "GITHUB_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

Using 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>"
      }
    }
  }
}

Installing in IDE/Editor(s)o

Install on Cursor

Go to: Settings -> Cursor Settings -> MCP -> Add new global MCP server

Pasting the following configuration into your Cursor ~/.cursor/mcp.json file
is the recommended approach. See
Cursor MCP docs for
more info.

{
  "mcpServers": {
    "tf_aws_provider_docs": {
      "command": "deno",
      "args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
    }
  }
}

Install on Windsurf

Add this to your Windsurf MCP config file. See
Windsurf MCP docs for more info.

{
  "mcpServers": {
    "tf_aws_provider_docs": {
      "command": "deno",
      "args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
    }
  }
}

Install on VSCode

Add this to your VSCode MCP config file. See
VSCode MCP docs
for more info.

{
  "servers": {
    "Context7": {
      "type": "stdio",
      "command": "deno",
      "args": ["-A", "jsr:@excoriate/mcp-terraform-aws-provider-docs@latest"]
    }
  }
}

Developing & Contributing

For more details about debugging, testing, and contributing to this project,
see DEVELOPER_GUIDE, and CONTRIBUTING.

Run it directly from JSR

You can use the MCP server directly from JSR (Javascript
Registry ❤️)

```sh

No reviews yet — be the first

Sign in to leave a review

Use Google, GitHub, or an email account so ratings stay tied to real people.

Email sign in

No reviews posted yet.