{"id":29013007,"url":"https://github.com/excoriate/mcp-terraform-aws-provider-docs","last_synced_at":"2025-06-25T19:05:53.261Z","repository":{"id":290307161,"uuid":"973984693","full_name":"Excoriate/mcp-terraform-aws-provider-docs","owner":"Excoriate","description":"Deno/TypeScript MCP Server providing context related to the AWS provider for Terragrunt documentation.","archived":false,"fork":false,"pushed_at":"2025-05-01T12:21:23.000Z","size":2981,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-06-19T01:39:00.922Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Excoriate.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-28T04:53:47.000Z","updated_at":"2025-05-01T12:21:16.000Z","dependencies_parsed_at":"2025-04-28T06:33:05.940Z","dependency_job_id":null,"html_url":"https://github.com/Excoriate/mcp-terraform-aws-provider-docs","commit_stats":null,"previous_names":["excoriate/mcp-terraform-aws-provider-docs"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/Excoriate/mcp-terraform-aws-provider-docs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terraform-aws-provider-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terraform-aws-provider-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terraform-aws-provider-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terraform-aws-provider-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Excoriate","download_url":"https://codeload.github.com/Excoriate/mcp-terraform-aws-provider-docs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terraform-aws-provider-docs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":261937037,"owners_count":23232846,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-06-25T19:05:52.378Z","updated_at":"2025-06-25T19:05:53.208Z","avatar_url":"https://github.com/Excoriate.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MCP Server: Terraform AWS Provider Docs\n\n[![Language](https://img.shields.io/badge/language-Deno/TypeScript-blue.svg)](https://deno.land/)\n[![License](https://img.shields.io/badge/license-MIT-green.svg)](LICENSE)\n\nA [Model Context Protocol (MCP)](modelcontextprotocol.io) server built with Deno\nand TypeScript, designed to provide contextual information related to\n[Terraform AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest).\n\n## Table of Contents\n\n- [MCP Server: Terraform AWS Provider Docs](#mcp-server-terraform-aws-provider-docs)\n  - [Table of Contents](#table-of-contents)\n  - [Overview](#overview)\n    - [What is the Model Context Protocol (MCP) and how does it work?](#what-is-the-model-context-protocol-mcp-and-how-does-it-work)\n    - [Why?](#why)\n  - [Tools](#tools)\n  - [Getting Started](#getting-started)\n    - [Install and Use with Claude Desktop](#install-and-use-with-claude-desktop)\n      - [Using Deno](#using-deno)\n      - [Using Docker](#using-docker)\n    - [Installing in IDE/Editor(s)o](#installing-in-ideeditorso)\n      - [Install on Cursor](#install-on-cursor)\n      - [Install on Windsurf](#install-on-windsurf)\n      - [Install on VSCode](#install-on-vscode)\n  - [Developing \\\u0026 Contributing](#developing--contributing)\n    - [Run it directly from JSR](#run-it-directly-from-jsr)\n    - [Debugging \\\u0026 Troubleshooting](#debugging--troubleshooting)\n    - [Using Docker](#using-docker-1)\n  - [Roadmap](#roadmap)\n  - [Contributing](#contributing)\n  - [Security](#security)\n  - [License](#license)\n\n\n\n## Overview\n\nThis server acts as an MCP server, exposing tools and resources that allow AI\nagents or other MCP clients to query information about\n[Terraform AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest)\ninformation, such as:\n\n- ✅ Resources documentation.\n- ✅ Provider's configuration, including ephemeral resources, guides, and\n  functions.\n- ✅ GitHub Issues (opened, closed, and all)\n- ✅ AWS Resources examples\n\n### What is the Model Context Protocol (MCP) and how does it work?\n\n\u003e 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.\n\u003e\n\u003e \u0026mdash; [Model Context Protocol README](https://github.com/modelcontextprotocol#:~:text=The%20Model%20Context,context%20they%20need.)\n\n---\n\n### Why?\n\nWhen writing IaC, or designing\n[terraform modules](https://www.terraform.io/language/modules), it's often\nrequired a very good knowledge, understanding and context in the actual AWS\nresources, features, and capabilities in order to design a production-grade\nmodule, with stable interfaces, composable, and reusable.\n\nThis MCP server is designed to provide just that, with the latest documentation,\nissues, and examples from the\n[Terraform AWS Provider](https://registry.terraform.io/providers/hashicorp/aws/latest)\nregistry site. Always up-to-date, and always from the source.\n\n## Tools\n\n\u003e [!IMPORTANT]\n\u003e All tools require a valid GitHub token set as an environment variable:\n\u003e `GITHUB_TOKEN`, `GH_TOKEN`, or `GITHUB_PERSONAL_ACCESS_TOKEN`.\n\nCurrently, the following tools are available (more to come, or feel free to\nsubmit an\n[issue](https://github.com/Excoriate/mcp-terraform-aws-provider/issues) or\n[PR](https://github.com/Excoriate/mcp-terraform-aws-provider/pulls)):\n\n| Tool Name              | Purpose                                                                 | Inputs                                                                 | Outputs                                                                                                                        | Use Case                                                                                                                                                                                                                                            |\n|------------------------|-------------------------------------------------------------------------|------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| `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.                                                                                        |\n| `get-resource-doc`     | Fetch a single AWS resource documentation file by name or fuzzy search   | `aws_resource` (string, optional): Resource name or description\u003cbr\u003e`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.                                     |\n| `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.                                                                                      |\n| `get-datasource-doc`   | Fetch a single AWS datasource documentation file by name or fuzzy search | `aws_datasource` (string, optional): Datasource name or description\u003cbr\u003e`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.                                 |\n| `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.                                                               |\n| `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.                                                         |\n| `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.                                                  |\n| `get-release-by-tag`   | Fetch detailed information for a specific release by tag                 | `tag` (string, required): Release tag (e.g. 'v5.96.0')\u003cbr\u003e`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.                                                                      |\n| `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.                                                                                           |\n\n## Getting Started\n\n### Install and Use with Claude Desktop\n\nTo use this Deno-based MCP server with Claude Desktop, add the following to your\n`claude_desktop_config.json`:\n\n#### Using Deno\n\n```json\n{\n  \"mcpServers\": {\n    \"tf_aws_provider_docs\": {\n      \"command\": \"deno\",\n      \"args\": [\n        \"run\",\n        \"-A\",\n        \"main.ts\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"\u003cYOUR_TOKEN\u003e\"\n      }\n    }\n  }\n}\n```\n\nOr, the recommended way, with deno directly from [JSR](https://jsr.io/)\n\n```json\n{\n  \"mcpServers\": {\n    \"tf_aws_provider_docs\": {\n      \"command\": \"deno\",\n      \"args\": [\n        \"run\",\n        \"-A\",\n        \"jsr:@excoriate/mcp-terraform-aws-provider-docs@0.1.0\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"\u003cYOUR_TOKEN\u003e\"\n      }\n    }\n  }\n}\n```\n\n#### Using Docker\n\n```json\n{\n  \"mcpServers\": {\n    \"tf_aws_provider_docs\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-e\",\n        \"GITHUB_TOKEN=\u003cYOUR_TOKEN\u003e\",\n        \"mcp-terraform-aws-provider-docs\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"\u003cYOUR_TOKEN\u003e\"\n      }\n    }\n  }\n}\n```\n\n### Installing in IDE/Editor(s)o\n\n#### Install on Cursor\n\nGo to: `Settings` -\u003e `Cursor Settings` -\u003e `MCP` -\u003e `Add new global MCP server`\n\nPasting the following configuration into your Cursor `~/.cursor/mcp.json` file\nis the recommended approach. See\n[Cursor MCP docs](https://docs.cursor.com/context/model-context-protocol) for\nmore info.\n\n```json\n{\n  \"mcpServers\": {\n    \"tf_aws_provider_docs\": {\n      \"command\": \"deno\",\n      \"args\": [\"-A\", \"jsr:@excoriate/mcp-terraform-aws-provider-docs@latest\"]\n    }\n  }\n}\n```\n\n#### Install on Windsurf\n\nAdd this to your Windsurf MCP config file. See\n[Windsurf MCP docs](https://docs.windsurf.com/windsurf/mcp) for more info.\n\n```json\n{\n  \"mcpServers\": {\n    \"tf_aws_provider_docs\": {\n      \"command\": \"deno\",\n      \"args\": [\"-A\", \"jsr:@excoriate/mcp-terraform-aws-provider-docs@latest\"]\n    }\n  }\n}\n```\n\n#### Install on VSCode\n\nAdd this to your VSCode MCP config file. See\n[VSCode MCP docs](https://code.visualstudio.com/docs/copilot/chat/mcp-servers)\nfor more info.\n\n```json\n{\n  \"servers\": {\n    \"Context7\": {\n      \"type\": \"stdio\",\n      \"command\": \"deno\",\n      \"args\": [\"-A\", \"jsr:@excoriate/mcp-terraform-aws-provider-docs@latest\"]\n    }\n  }\n}\n```\n\n## Developing \u0026 Contributing\n\nFor more details about debugging, testing, and contributing to this project,\nsee [DEVELOPER_GUIDE](DEVELOPER_GUIDE.md), and [CONTRIBUTING](CONTRIBUTING.md).\n\n### Run it directly from JSR\n\nYou can use the MCP server directly from [JSR](https://jsr.io/) (Javascript\nRegistry ❤️)\n\n```sh\n# export your github token\nexport GITHUB_TOKEN=ghp_xxx...\n\n# run it\ndeno run -A jsr:@excoriate/mcp-terraform-aws-provider-docs@latest\n```\n\n### Debugging \u0026 Troubleshooting\n\nif you want to debug it, use the built-in debugger\n([inspector](https://modelcontextprotocol.io/docs/tools/inspector)). There's a\njustfile recipe to help you out.\n\n```sh\n# start the mcp server, and the inspector\njust inspect\n```\n\n### Using Docker\n\nBuild the Docker image\n\n```sh\ndocker build -t mcp-terraform-aws-provider-docs .\n```\n\nRun the MCP server in Docker\n\n```sh\ndocker run -it --rm \\\n  -e GITHUB_TOKEN=ghp_xxx... \\\n  mcp-terraform-aws-provider-docs\n```\n\n\u003e [!TIP]\n\u003e Replace `ghp_xxx...` with your\n\u003e [GitHub Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens)\n\u003e with appropriate permissions.\n\u003e\n\u003e You can also use `GH_TOKEN` or `GITHUB_PERSONAL_ACCESS_TOKEN` as the\n\u003e environment variable name.\n\u003e\n\u003e If you want to use a local `.env` file, you can pass it with\n\u003e `--env-file .env`.\n\n## Roadmap\n\n- [ ] Add tool to retrieve provider's configuration.\n- [ ] Integrated with dedicated backend, to index, and provide advance search/code assistant documentation avoiding GitHub API rate limits.\n\n## Contributing\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md) for detailed contribution\nguidelines, including setup, code style, PR process, and codebase structure\nreference.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for the project's security policy, including how\nto report vulnerabilities and responsible disclosure guidelines.\n\n## License\n\nThis project is licensed under the [MIT License](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexcoriate%2Fmcp-terraform-aws-provider-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexcoriate%2Fmcp-terraform-aws-provider-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexcoriate%2Fmcp-terraform-aws-provider-docs/lists"}