关于 MCP Server: Terragrunt Docs Provider
MCP Server: Terragrunt Docs Provider 是一个基于 Deno 和 TypeScript 构建的 MCP 服务,为 AI 助手提供 Terragrunt 文档及 GitHub 议题等上下文信息。它面向编写 Terragrunt 配置的用户,帮助模型给出更准确的回答。
主要功能
- 01列出 Terragrunt 文档分类
- 02读取指定分类下的文档内容
- 03合并读取某一分类的全部文档
- 04获取 Terragrunt 仓库的未关闭议题
适用场景
- 01让 AI 助手依据最新文档编写或检查 Terragrunt 配置
- 02跟踪 Terragrunt 项目当前的议题与讨论
- 03为文档搜索功能提供数据来源
MCP 相关
该项目是一个 MCP 服务,向 MCP 客户端暴露用于查询 Terragrunt 文档分类、文档内容和开放议题的工具。使用 GitHub 相关工具需要配置 GitHub 令牌。
配置
本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。
我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。
工具
本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。
详细介绍
MCP 服务:Terragrunt 文档提供方
这是一个使用 Deno 和 TypeScript 构建的 模型上下文协议(MCP) 服务,旨在提供与 Terragrunt 相关的上下文信息。
概述
此服务充当 MCP 提供方,公开工具和资源,让 AI Agent 或其他 MCP 客户端能够查询 Terragrunt 文档和开发信息,例如 GitHub issue。
- 点击此处观看 Claude Desktop 上的真实演示 📺
为什么?
编写 IaC 配置时(大多使用 terragrunt),IDE 的支持并不理想。在 VSCode 中,terraform 插件很好用,但不支持 terragrunt;它无法识别 terragrunt 块,也不提供任何自动补全。使用 AI 自动补全时,常常会得到错误结果或误报的 lint 错误。借助此 MCP 服务,你可以向大模型/AI 助手提供 Terragrunt GitHub 仓库中的最新文档和 issue,让它据此为你提供最准确的信息。
工具
注意: 所有工具都需要通过环境变量
GITHUB_TOKEN、GH_TOKEN或GITHUB_PERSONAL_ACCESS_TOKEN设置有效的 GitHub 令牌。
| 工具名称 | 用途 | 输入 | 输出 | 使用场景 |
|---|---|---|---|---|
list-doc-categories | 获取 Terragrunt 文档中的所有文档类别。 | 无 | 对象数组,包含 name(字符串)和 link(字符串)属性 | 当你需要探索可用的文档结构,或构建文档导航系统时使用。开始使用 Terragrunt 文档时,通常首先调用此工具。 |
list-all-docs-by-category | 列出指定类别中的所有文档。 | category(字符串) | 对象数组,包含 name(字符串)、link(字符串)和 content(字符串) | 当你需要查看某个类别中的所有可用文档时使用,例如构建特定类别的文档查看器,或浏览某个领域中的所有文档。 |
read-document-from-category | 读取类别中的指定文档。 | category(字符串)、document(字符串) | 对象,包含完整 Markdown 内容的 content(字符串) | 当你需要访问某个特定文档的完整内容时使用,例如实现文档搜索,或在应用中引用特定文档。 |
read-all-docs-from-category | 获取并合并某个类别中的所有文档,作为单个响应返回。 | category(字符串) | 对象,包含合并所有文档后的 content(字符串) | 当你需要全面查看某个类别中的所有文档时使用,例如构建文档搜索功能,或分析特定主题的完整文档集。 |
get-all-open-issues | 获取 Terragrunt GitHub 仓库中的所有未关闭问题。 | all(布尔值,可选) | 对象数组,包含 title(字符串)、number(数字)、state(字符串)、created_at(字符串)、updated_at(字符串)、body(字符串)和 labels(字符串数组) | 当你需要跟踪或分析 Terragrunt 项目中的当前问题时使用,例如构建问题仪表板、进行问题分类,或了解项目的最新挑战和讨论。 |
设置
-
安装 Deno:
-
克隆仓库:
git clone https://github.com/Excoriate/mcp-terragrunt-docs.git cd mcp-terragrunt-docs -
将 GitHub 令牌设置为环境变量:
-
在 Unix/macOS 上:
export GITHUB_TOKEN=ghp_xxx... # 或 GH_TOKEN 或 GITHUB_PERSONAL_ACCESS_TOKEN -
在 Windows(cmd)上:
set GITHUB_TOKEN=ghp_xxx...
-
注意:你也可以在
.env文件中设置令牌。
-
运行 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 Registry ❤️)使用
# export your github token
export GITHUB_TOKEN=ghp_xxx...
# run it
deno run -A jsr:@excoriate/[email protected]
在 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/[email protected]"
],
"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 流程和代码库结构参考。
安全
请参阅 SECURITY.md,了解项目的安全策略,包括如何报告漏洞以及负责任披露指南。
许可证
本项目采用 MIT 许可证授权。
评论
一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。