返回市场
mcp-terragrunt文档服务器

mcp-terragrunt文档服务器

作者:Excoriate16 星标更新:2025-04-22

项目介绍

MCP Server: Terragrunt 文档提供者

语言 许可证 <!-- 假设为MIT,如有需要添加LICENSE文件 -->

这是一个使用Deno和TypeScript构建的Model Context Protocol (MCP)服务器,旨在提供与Terragrunt相关的上下文信息,包括GitHub问题。

概述

此服务器作为MCP提供者,提供了工具和资源,允许AI代理或其他MCP客户端查询关于Terragrunt文档和开发信息,如GitHub问题。

  • 观看真实演示 📺 在Claude Desktop 这里

为什么?

在编写IaC配置时,大多数情况下是使用Terragrunt,IDE支持并不理想。例如,在VSCode中,Terraform插件很好用,但不适用于Terragrunt;它无法识别Terragrunt块,并且不提供任何自动完成功能。当与AI自动完成功能交互时,通常会得到错误的结果或误报的代码检查错误。通过这个MCP服务器,你可以向你的LLM/AI助手提供来自Terragrunt GitHub仓库的最新文档和问题,以便它可以为你提供最准确的信息。

工具

注意: 所有工具都需要设置一个有效的GitHub令牌作为环境变量:GITHUB_TOKENGH_TOKENGITHUB_PERSONAL_ACCESS_TOKEN

工具名称目的输入输出使用场景
list-doc-categories从Terragrunt文档中检索所有文档类别。包含name(字符串)和link(字符串)属性的对象数组当你需要探索可用的文档结构或构建文档导航系统时使用。这通常是开始处理Terragrunt文档时调用的第一个工具。
list-all-docs-by-category列出特定类别的所有文档。类别(字符串)包含name(字符串)、link(字符串)和content(字符串)属性的对象数组当你需要查看特定类别内的所有可用文档时使用,例如构建特定类别的文档查看器或需要扫描特定领域的所有文档时。
read-document-from-category从类别中读取特定文档。类别(字符串),文档(字符串)包含content(字符串)的完整Markdown内容对象当你需要访问特定文档的完整内容时使用,例如实现文档搜索或需要在应用程序中引用特定文档时。
read-all-docs-from-category检索并合并类别中的所有文档到一个响应中。类别(字符串)包含content(字符串)的所有文档合并成一个的对象当你需要查看类别内所有文档的综合视图时使用,例如构建文档搜索功能或需要分析特定主题的完整文档集时。
get-all-open-issues从Terragrunt GitHub仓库中检索所有开放的问题。全部(布尔值,可选)包含title(字符串)、number(数字)、state(字符串)、created_at(字符串)、updated_at(字符串)、body(字符串)和labels(字符串数组)的对象数组当你需要跟踪或分析Terragrunt项目中的当前问题时使用,例如构建问题仪表板、执行问题分类或需要了解最新的项目挑战和讨论时。

设置

  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... # 或 GH_TOKEN 或 GITHUB_PERSONAL_ACCESS_TOKEN
      
    • 在Windows(cmd)上:

      set GITHUB_TOKEN=ghp_xxx...
      

注意:您也可以在.env文件中设置令牌。

  1. 运行MCP服务器:

    # 直接使用deno
    deno run -A main.ts
    
    # 使用justfile
    just run
    
    # 您还可以调试并本地检查它
    just inspect
    

最简单的方法是从JSR(JavaScript注册表❤️)直接使用

# 导出您的GitHub令牌
export GITHUB_TOKEN=ghp_xxx...

# 运行它
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_TOKENGITHUB_PERSONAL_ACCESS_TOKEN作为环境变量名。
  • 如果您想使用本地.env文件,可以通过--env-file .env传递它。

贡献

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

安全

参见SECURITY.md以获取项目的安全策略,包括如何报告漏洞和负责任披露指南。

许可证

本项目根据MIT许可证授权。