{"id":27671541,"url":"https://github.com/Excoriate/mcp-terragrunt-docs","last_synced_at":"2025-04-24T23:37:01.457Z","repository":{"id":289240909,"uuid":"970577442","full_name":"Excoriate/mcp-terragrunt-docs","owner":"Excoriate","description":"Deno/TypeScript MCP Server providing context related to Terragrunt documentation.","archived":false,"fork":false,"pushed_at":"2025-04-22T09:14:03.000Z","size":248,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-22T09:42:29.439Z","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-22T08:11:46.000Z","updated_at":"2025-04-22T09:20:32.000Z","dependencies_parsed_at":"2025-04-22T09:44:02.257Z","dependency_job_id":"17fc0c4f-41d2-4f3a-aa2e-0f572820480c","html_url":"https://github.com/Excoriate/mcp-terragrunt-docs","commit_stats":null,"previous_names":["excoriate/mcp-terragrunt-docs"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terragrunt-docs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terragrunt-docs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terragrunt-docs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Excoriate%2Fmcp-terragrunt-docs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Excoriate","download_url":"https://codeload.github.com/Excoriate/mcp-terragrunt-docs/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250729114,"owners_count":21477608,"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-04-24T23:37:00.206Z","updated_at":"2025-04-24T23:37:01.451Z","avatar_url":"https://github.com/Excoriate.png","language":"TypeScript","funding_links":[],"categories":["Developer Tools","Community Servers","Document Processing","🌐 Web Development","Knowledge \u0026 Memory"],"sub_categories":["Documentation"],"readme":"# MCP Server: Terragrunt Docs Provider\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) \u003c!-- Assuming MIT, add LICENSE file if needed --\u003e\n\nA [Model Context Protocol (MCP)](modelcontextprotocol.io) server built with Deno and TypeScript, designed to provide contextual information related to [Terragrunt](https://terragrunt.gruntwork.io/).\n\n## Overview\n\nThis server acts as an MCP provider, exposing tools and resources that allow AI agents or other MCP clients to query information about Terragrunt documentation and development information, such as GitHub issues.\n\n- Watch a realistic demo 📺 on Claude Desktop [here](https://screen.studio/share/UKJNhBNq)\n\n---\n\n## Why?\n\nWhen writing IaC configurations, mostly in terragrunt, the IDE support isn't that good, in VSCode the terraform plugin is good, but not for terragrunt; it does not recognize the terragrunt blocks and does not provide any autocompletion. When interacting with AI autocompletion, it's common to get incorrect results, or false-positive linting errors. With this MCP server, you can provide to your LLM/AI assistant the latest documentation and issues from the Terragrunt GitHub repository, so it can use that to provide you with the most accurate information.\n\n## Tools\n\n\u003e **Note:** All tools require a valid GitHub token set as an environment variable: `GITHUB_TOKEN`, `GH_TOKEN`, or `GITHUB_PERSONAL_ACCESS_TOKEN`.\n\n| Tool Name                   | Purpose                                                                 | Inputs                                   | Outputs                                                                 | Use Case                                                                                          |\n|-----------------------------|-------------------------------------------------------------------------|------------------------------------------|-------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------|\n| `list-doc-categories`       | Retrieve all documentation categories from Terragrunt docs.             | None                                     | Array of objects with `name` (string) and `link` (string) properties    | Use when you need to explore the available documentation structure or when building a documentation navigation system. This is typically the first tool to call when starting to work with Terragrunt docs. |\n| `list-all-docs-by-category` | List all docs in a specific category.                                   | category (string)                        | Array of objects with `name` (string), `link` (string), and `content` (string) | Use when you need to see all available documentation within a specific category, such as when building a category-specific documentation viewer or when you need to scan through all docs in a particular area. |\n| `read-document-from-category` | Read a specific doc from a category.                                    | category (string), document (string)     | Object containing `content` (string) with the full markdown content     | Use when you need to access the complete content of a specific document, such as when implementing documentation search or when you need to reference specific documentation in your application. |\n| `read-all-docs-from-category` | Retrieve and merge all docs in a category into one response.            | category (string)                        | Object containing `content` (string) with all docs merged into one      | Use when you need a comprehensive view of all documentation within a category, such as when building a documentation search feature or when you need to analyze the complete documentation set for a specific topic. |\n| `get-all-open-issues`         | Retrieve all open issues from Terragrunt GitHub repo.                   | all (boolean, optional)                  | Array of objects with `title` (string), `number` (number), `state` (string), `created_at` (string), `updated_at` (string), `body` (string), and `labels` (string[]) | Use when you need to track or analyze current issues in the Terragrunt project, such as when building an issue dashboard, performing issue triage, or when you need to stay updated with the latest project challenges and discussions. |\n\n## Setup\n\n1. **Install Deno:**\n   - [Deno Installation Guide](https://deno.land/manual/getting_started/installation)\n2. **Clone the repository:**\n\n   ```sh\n   git clone https://github.com/Excoriate/mcp-terragrunt-docs.git\n   cd mcp-terragrunt-docs\n   ```\n\n3. **Set your GitHub token as an environment variable:**\n   - On Unix/macOS:\n\n     ```sh\n     export GITHUB_TOKEN=ghp_xxx... # or GH_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN\n     ```\n   - On Windows (cmd):\n\n     ```cmd\n     set GITHUB_TOKEN=ghp_xxx...\n     ```\n\u003eNote: You can also set the token in the `.env` file.\n\n4. **Run the MCP server:**\n\n   ```sh\n   # directly using deno\n   deno run -A main.ts\n\n   # Using the justfile\n   just run\n\n   # You can also debug it, and inspect it locally\n   just inspect\n   ```\nThe most straightforward method is to use it directly from [JSR](https://jsr.io/) (Javascript Registry ❤️)\n```sh\n# export your github token\nexport GITHUB_TOKEN=ghp_xxx...\n\n# run it\ndeno run -A jsr:@excoriate/mcp-terragrunt-docs@0.1.0\n```\n\n### Usage with Claude Desktop\nTo use this Deno-based MCP server with Claude Desktop, add the following to your `claude_desktop_config.json`:\n\n#### Using Deno\n\n```json\n{\n  \"mcpServers\": {\n    \"terragrunt_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\n#### Using Docker\n\n```json\n{\n  \"mcpServers\": {\n    \"terragrunt_docs\": {\n      \"command\": \"docker\",\n      \"args\": [\n        \"run\",\n        \"-e\", \"GITHUB_TOKEN=\u003cYOUR_TOKEN\u003e\", \"mcp-terragrunt-docs\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"\u003cYOUR_TOKEN\u003e\"\n      }\n    }\n  }\n}\n```\n\n#### Using JSR\n\n```json\n{\n  \"mcpServers\": {\n    \"terragrunt_docs\": {\n      \"command\": \"deno\",\n      \"args\": [\n        \"run\",\n        \"-A\",\n        \"jsr:@excoriate/mcp-terragrunt-docs@0.1.0\"\n      ],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"\u003cYOUR_TOKEN\u003e\"\n      }\n    }\n  }\n}\n```\n\n### Build the Docker image\n\n```sh\ndocker build -t mcp-terragrunt-docs .\n```\n\n### Run the MCP server in Docker\n\n```sh\ndocker run -it --rm \\\n  -e GITHUB_TOKEN=ghp_xxx... \\\n  mcp-terragrunt-docs\n```\n\n- Replace `ghp_xxx...` with your [GitHub Personal Access Token](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) with appropriate permissions.\n- You can also use `GH_TOKEN` or `GITHUB_PERSONAL_ACCESS_TOKEN` as the environment variable name.\n- If you want to use a local `.env` file, you can pass it with `--env-file .env`.\n\n## Contributing\n\nSee [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for detailed contribution guidelines, including setup, code style, PR process, and codebase structure reference.\n\n## Security\n\nSee [SECURITY.md](SECURITY.md) for the project's security policy, including how to 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-terragrunt-docs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FExcoriate%2Fmcp-terragrunt-docs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FExcoriate%2Fmcp-terragrunt-docs/lists"}