Terragrunt文档服务

一个基于Deno和TypeScript构建的MCP服务器,提供Terragrunt文档和开发信息的查询功能,适用于基础设施即代码(IaC)配置的开发和AI辅助编程。

  • by Excoriate
  • TypeScript
  • 本地部署
  • 20 星标
  • 更新于
在 GitHub 查看 Excoriate/mcp-terragrunt-docs

使用说明

MCP服务器:Terragrun文档提供程序

A. 模型上下文协议(MCP) 使用Deno和TypeScript构建的服务器,旨在提供与以下内容相关的上下文信息 土地.

概述

该服务器充当MCP提供者,提供工具和资源,允许AI代理或其他MCP客户端查询有关Terragrun文档和开发信息的信息,如GitHub问题。

  • 观看真实演示📺 在克劳德桌面上 这里

为什么?

在编写IaC配置时,主要是在terragrun中,IDE支持不是很好,在VSCode中,terraform插件很好,但不适合terragrun;它不识别terragrun块,也不提供任何自动补全功能。在与AI自动补全交互时,通常会得到不正确的结果或误报的linting错误。使用此MCP服务器,您可以向LLM/AI助理提供Terragrunt GitHub存储库中的最新文档和问题,以便它可以使用这些文档和问题为您提供最准确的信息。

工具

注: 所有工具都需要将有效的GitHub令牌设置为环境变量: GITHUB_TOKEN, GH_TOKEN,或 GITHUB_PERSONAL_ACCESS_TOKEN.

工具名称 目的 输入 输出 用例
list-doc-categories 从Terragrun文档中检索所有文档类别。 无 对象数组 name (字符串)和 link (字符串)属性 当您需要探索可用的文档结构或构建文档导航系统时使用。这通常是开始使用Terragrun文档时首先调用的工具。
list-all-docs-by-category 列出特定类别中的所有文档。 类别(字符串) 对象数组 name (字符串), link (字符串),以及 content (string) 当您需要查看特定类别中的所有可用文档时使用,例如构建特定类别的文档查看器或需要扫描特定区域中的所有文档时。
read-document-from-category 从类别中读取特定文档。 类别(字符串),文档(字符串) 对象包含 content (string)带有完整的markdown内容 当您需要访问特定文档的完整内容时使用,例如在实现文档搜索或需要在应用程序中引用特定文档时。
read-all-docs-from-category 检索类别中的所有文档并将其合并到一个响应中。 类别(字符串) 包含对象 content (string)将所有文档合并为一个 当您需要一个类别中所有文档的全面视图时使用,例如在构建文档搜索功能或需要分析特定主题的完整文档集时。
get-all-open-issues 从Terragrun GitHub仓库中检索所有未解决的问题。 all(boolean,可选) 对象数组 title (字符串), number (数字), state (字符串), created_at (字符串), updated_at (字符串), body (字符串),以及 labels (string[]) 当您需要跟踪或分析Terragrun项目中的当前问题时使用,例如在构建问题仪表板、执行问题分类时,或者当您需要了解最新的项目挑战和讨论时。

设置

  1. 安装Deno:

  2. 克隆存储库:

    git clone https://github.com/Excoriate/mcp-terragrunt-docs.git
    cd mcp-terragrunt-docs
    
  3. 将您的GitHub令牌设置为环境变量:

    • 在Unix/macOS上:

      export GITHUB_TOKEN=ghp_xxx... # or GH_TOKEN or GITHUB_PERSONAL_ACCESS_TOKEN
      
    • 在Windows(cmd)上:

      set GITHUB_TOKEN=ghp_xxx...
      

注意:您还可以在 .env 文件。

  1. 运行MCP服务器:

    # directly using deno
    deno run -A main.ts
    
    # Using the justfile
    just run
    
    # You can also debug it, and inspect it locally
    just inspect
    

最直接的方法是直接从 JSR公司 (Javascript注册表❤️)

# export your github token
export GITHUB_TOKEN=ghp_xxx...

# run it
deno run -A jsr:@excoriate/mcp-terragrunt-docs@0.1.0

使用Claude Desktop

要将此基于Deno的MCP服务器与Claude Desktop一起使用,请将以下内容添加到您的 claude_desktop_config.json:

使用Deno

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

使用Docker

{
  "mcpServers": {
    "terragrunt_docs": {
      "command": "docker",
      "args": [
        "run",
        "-e", "GITHUB_TOKEN=<YOUR_TOKEN>", "mcp-terragrunt-docs"
      ],
      "env": {
        "GITHUB_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}

使用JSR

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

构建Docker镜像

docker build -t mcp-terragrunt-docs .

在Docker中运行MCP服务器

docker run -it --rm \
  -e GITHUB_TOKEN=ghp_xxx... \
  mcp-terragrunt-docs
  • 替换 ghp_xxx... 与你的 GitHub个人访问令牌 拥有适当的权限。
  • 您还可以使用 GH_TOKEN 或 GITHUB_PERSONAL_ACCESS_TOKEN 作为环境变量名。
  • 如果你想使用本地 .env 文件,你可以通过 --env-file .env.

贡献

看 docs/CONTRIBUTING.md 详细的贡献指南,包括设置、代码风格、PR流程和代码库结构参考。

安全

看 安全.md 项目的安全策略,包括如何报告漏洞和负责任的披露指南。

许可证

该项目根据 MIT许可证.