trackmcp
Back to directory
Excoriate

mcp-terraform-aws-provider-docs

View on GitHub

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

1 stars TypeScriptServers & Infrastructure Updated May 1, 2025

Documentation

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

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 NamePurposeInputsOutputsUse Case
`list-resources`List all AWS resource documentation files with metadataNoneArray of resource objects with id, subcategory, page_title, description, resource, resource_description, source, file_pathDiscover 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`file_name` (string, optional): Exact file name (takes precedence)Parsed and formatted documentation for the requested resource, with all metadata fields and full markdown bodyRetrieve 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 metadataNoneArray of datasource objects with id, subcategory, page_title, description, datasource, datasource_description, source, file_pathDiscover 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`file_name` (string, optional): Exact file name (takes precedence)Parsed and formatted documentation for the requested datasource, with all metadata fields and full markdown bodyRetrieve 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 issuesArray of issue objects with ID, title, description, source, state, user, labels, creation/update timestamps, commentsAnalyze, 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 numberDetailed issue object with full metadata including body, timestamps, labels, commentsInvestigate 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 repoNoneArray of release objects with ID, tag, name, author, published date, URL, asset count, and summary bodyList 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')`include_issues` (boolean, optional): Also fetch referenced issuesRelease object with full metadata and, if `include_issues` is true, details for all referenced issues in the release notesInvestigate 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 issuesLatest release object with full metadata and, if `include_issues` is true, details for all referenced issues in the release notesQuickly 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

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

Or, the recommended way, with deno directly from JSR

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

Using Docker

json
{
  "mcpServers": {
    "tf_aws_provider_docs": {
      "command": "docker",
      "args": [
        "run",
        "-e",
        "GITHUB_TOKEN=",
        "mcp-terraform-aws-provider-docs"
      ],
      "env": {
        "GITHUB_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.

json
{
  "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.

json
{
  "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.

json
{
  "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
# export your github token
export GITHUB_TOKEN=ghp_xxx...

# run it
deno run -A jsr:@excoriate/mcp-terraform-aws-provider-docs@latest

Debugging & Troubleshooting

if you want to debug it, use the built-in debugger

(inspector). There's a

justfile recipe to help you out.

sh
# start the mcp server, and the inspector
just inspect

Using Docker

Build the Docker image

sh
docker build -t mcp-terraform-aws-provider-docs .

Run the MCP server in Docker

sh
docker run -it --rm \
  -e GITHUB_TOKEN=ghp_xxx... \
  mcp-terraform-aws-provider-docs

> [!TIP]

> Replace `ghp_xxx...` with your

> GitHub Personal Access Token

> with appropriate permissions.

>

> You can also use `GH_TOKEN` or `GITHUB_PERSONAL_ACCESS_TOKEN` as the

> environment variable name.

>

> If you want to use a local `.env` file, you can pass it with

> `--env-file .env`.

Roadmap

  • [ ] Add tool to retrieve provider's configuration.
  • [ ] Integrated with dedicated backend, to index, and provide advance search/code assistant documentation avoiding GitHub API rate limits.

Contributing

See CONTRIBUTING.md for detailed contribution

guidelines, including setup, code style, PR process, and codebase structure

reference.

Security

See SECURITY.md for the project's security policy, including how

to report vulnerabilities and responsible disclosure guidelines.

License

This project is licensed under the MIT License.

Frequently asked questions

What is mcp-terraform-aws-provider-docs?

mcp-terraform-aws-provider-docs is Deno/TypeScript MCP Server providing context related to the AWS provider for Terragrunt documentation.

How do I install mcp-terraform-aws-provider-docs?

Open the GitHub repository and follow its README. Most MCP servers are added to your client's MCP config, then called by your agent.

Is mcp-terraform-aws-provider-docs open source?

Yes — it is hosted on GitHub at https://github.com/Excoriate/mcp-terraform-aws-provider-docs and has 1 stars.

Related MCP tools

Run your own MCP server? See who uses it and what to fix.

Measure it with TrackMCP